{"version":3,"sources":["node_modules/object-assign/index.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","node_modules/prop-types/checkPropTypes.js","node_modules/react/cjs/react.development.js","node_modules/react/index.js","node_modules/schedule/cjs/schedule.development.js","node_modules/schedule/index.js","node_modules/schedule/cjs/schedule-tracing.development.js","node_modules/schedule/tracing.js","node_modules/react-dom/cjs/react-dom.development.js","node_modules/react-dom/index.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@material-ui/core/colors/common.js","node_modules/@material-ui/core/colors/red.js","node_modules/@material-ui/core/colors/pink.js","node_modules/@material-ui/core/colors/purple.js","node_modules/@material-ui/core/colors/deepPurple.js","node_modules/@material-ui/core/colors/indigo.js","node_modules/@material-ui/core/colors/blue.js","node_modules/@material-ui/core/colors/lightBlue.js","node_modules/@material-ui/core/colors/cyan.js","node_modules/@material-ui/core/colors/teal.js","node_modules/@material-ui/core/colors/green.js","node_modules/@material-ui/core/colors/lightGreen.js","node_modules/@material-ui/core/colors/lime.js","node_modules/@material-ui/core/colors/yellow.js","node_modules/@material-ui/core/colors/amber.js","node_modules/@material-ui/core/colors/orange.js","node_modules/@material-ui/core/colors/deepOrange.js","node_modules/@material-ui/core/colors/brown.js","node_modules/@material-ui/core/colors/grey.js","node_modules/@material-ui/core/colors/blueGrey.js","node_modules/@material-ui/core/colors/index.js","node_modules/warning/warning.js","node_modules/@material-ui/core/styles/createGenerateClassName.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/extends.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/deepmerge/dist/es.js","node_modules/isobject/index.js","node_modules/is-plain-object/index.js","node_modules/@material-ui/core/styles/createBreakpoints.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@material-ui/core/styles/createMixins.js","node_modules/@material-ui/core/styles/colorManipulator.js","node_modules/@material-ui/core/styles/createPalette.js","node_modules/@material-ui/core/styles/createTypography.js","node_modules/@material-ui/core/styles/shadows.js","node_modules/@material-ui/core/styles/shape.js","node_modules/@material-ui/core/styles/spacing.js","node_modules/@material-ui/core/styles/transitions.js","node_modules/@material-ui/core/styles/zIndex.js","node_modules/@material-ui/core/styles/createMuiTheme.js","node_modules/jss/lib/utils/getDynamicStyles.js","node_modules/jss/lib/utils/toCssValue.js","node_modules/jss/lib/SheetsRegistry.js","node_modules/jss/node_modules/warning/browser.js","node_modules/jss/lib/SheetsManager.js","node_modules/jss/lib/utils/toCss.js","node_modules/jss/lib/rules/StyleRule.js","node_modules/jss/node_modules/symbol-observable/es/ponyfill.js","node_modules/jss/node_modules/symbol-observable/es/index.js","node_modules/jss/lib/utils/isObservable.js","node_modules/jss/lib/utils/cloneStyle.js","node_modules/jss/lib/utils/createRule.js","node_modules/jss/lib/utils/linkRule.js","node_modules/jss/lib/utils/escape.js","node_modules/jss/lib/RuleList.js","node_modules/jss/lib/sheets.js","node_modules/jss/lib/StyleSheet.js","node_modules/jss/lib/utils/moduleId.js","node_modules/jss/lib/utils/createGenerateClassName.js","node_modules/is-in-browser/dist/module.js","node_modules/jss/lib/PluginsRegistry.js","node_modules/jss/lib/rules/SimpleRule.js","node_modules/jss/lib/rules/KeyframesRule.js","node_modules/jss/lib/rules/ConditionalRule.js","node_modules/jss/lib/rules/FontFaceRule.js","node_modules/jss/lib/rules/ViewportRule.js","node_modules/jss/lib/plugins/rules.js","node_modules/jss/lib/plugins/observables.js","node_modules/jss/lib/plugins/functions.js","node_modules/jss/lib/renderers/DomRenderer.js","node_modules/jss/lib/renderers/VirtualRenderer.js","node_modules/jss/lib/Jss.js","node_modules/jss/lib/index.js","node_modules/jss-global/lib/index.js","node_modules/jss-nested/node_modules/warning/browser.js","node_modules/jss-nested/lib/index.js","node_modules/hyphenate-style-name/index.js","node_modules/jss-camel-case/lib/index.js","node_modules/jss-default-unit/lib/defaultUnits.js","node_modules/jss-default-unit/lib/index.js","node_modules/css-vendor/lib/prefix.js","node_modules/css-vendor/lib/camelize.js","node_modules/css-vendor/lib/supported-property.js","node_modules/css-vendor/lib/supported-value.js","node_modules/css-vendor/lib/index.js","node_modules/jss-vendor-prefixer/lib/index.js","node_modules/jss-props-sort/lib/index.js","node_modules/@material-ui/core/styles/jssPreset.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/createClass.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/typeof.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/inherits.js","node_modules/prop-types/factoryWithTypeCheckers.js","node_modules/prop-types/index.js","node_modules/brcast/dist/brcast.es.js","node_modules/@material-ui/core/styles/themeListener.js","node_modules/@material-ui/core/utils/exactProp.js","node_modules/@material-ui/core/styles/MuiThemeProvider.js","node_modules/@material-ui/core/styles/createStyles.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/recompose/getDisplayName.js","node_modules/recompose/wrapDisplayName.js","node_modules/react-jss/lib/ns.js","node_modules/react-jss/lib/propTypes.js","node_modules/react-jss/lib/contextTypes.js","node_modules/@material-ui/core/utils/getDisplayName.js","node_modules/@material-ui/core/styles/mergeClasses.js","node_modules/@material-ui/core/styles/getStylesCreator.js","node_modules/@material-ui/core/styles/getThemeProps.js","node_modules/@material-ui/core/styles/withStyles.js","node_modules/@material-ui/core/styles/withTheme.js","node_modules/@material-ui/core/styles/index.js","node_modules/classnames/index.js","node_modules/@material-ui/core/utils/helpers.js","node_modules/@material-ui/core/Paper/Paper.js","node_modules/@material-ui/core/Paper/index.js","node_modules/@material-ui/core/AppBar/AppBar.js","node_modules/@material-ui/core/AppBar/index.js","node_modules/@material-ui/core/Avatar/Avatar.js","node_modules/@material-ui/core/Avatar/index.js","node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","node_modules/react-transition-group/utils/PropTypes.js","node_modules/react-transition-group/Transition.js","node_modules/@material-ui/core/transitions/utils.js","node_modules/@material-ui/core/Fade/Fade.js","node_modules/@material-ui/core/Fade/index.js","node_modules/@material-ui/core/Backdrop/Backdrop.js","node_modules/@material-ui/core/Backdrop/index.js","node_modules/@material-ui/core/Badge/Badge.js","node_modules/@material-ui/core/Badge/index.js","node_modules/@material-ui/core/BottomNavigation/BottomNavigation.js","node_modules/@material-ui/core/BottomNavigation/index.js","node_modules/keycode/index.js","node_modules/@material-ui/core/utils/ownerDocument.js","node_modules/@material-ui/core/utils/ownerWindow.js","node_modules/@material-ui/core/ButtonBase/focusVisible.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@material-ui/core/node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/react-transition-group/utils/ChildMapping.js","node_modules/react-transition-group/TransitionGroup.js","node_modules/@material-ui/core/ButtonBase/Ripple.js","node_modules/@material-ui/core/ButtonBase/TouchRipple.js","node_modules/@material-ui/core/ButtonBase/createRippleHandler.js","node_modules/@material-ui/core/ButtonBase/ButtonBase.js","node_modules/@material-ui/core/ButtonBase/index.js","node_modules/@material-ui/core/utils/unsupportedProp.js","node_modules/@material-ui/core/BottomNavigationAction/BottomNavigationAction.js","node_modules/@material-ui/core/BottomNavigationAction/index.js","node_modules/@material-ui/core/Button/Button.js","node_modules/@material-ui/core/Button/index.js","node_modules/@material-ui/core/Card/Card.js","node_modules/@material-ui/core/Card/index.js","node_modules/@material-ui/core/CardActionArea/CardActionArea.js","node_modules/@material-ui/core/CardActionArea/index.js","node_modules/@material-ui/core/utils/reactHelpers.js","node_modules/@material-ui/core/CardActions/CardActions.js","node_modules/@material-ui/core/CardActions/index.js","node_modules/@material-ui/core/CardContent/CardContent.js","node_modules/@material-ui/core/CardContent/index.js","node_modules/@material-ui/core/Typography/Typography.js","node_modules/@material-ui/core/Typography/index.js","node_modules/@material-ui/core/CardHeader/CardHeader.js","node_modules/@material-ui/core/CardHeader/index.js","node_modules/@material-ui/core/CardMedia/CardMedia.js","node_modules/@material-ui/core/CardMedia/index.js","node_modules/@material-ui/core/IconButton/IconButton.js","node_modules/@material-ui/core/IconButton/index.js","node_modules/@material-ui/core/internal/SwitchBase.js","node_modules/@babel/runtime/helpers/inheritsLoose.js","node_modules/recompose/setStatic.js","node_modules/recompose/setDisplayName.js","node_modules/recompose/shouldUpdate.js","node_modules/fbjs/lib/shallowEqual.js","node_modules/recompose/shallowEqual.js","node_modules/recompose/pure.js","node_modules/@material-ui/core/SvgIcon/SvgIcon.js","node_modules/@material-ui/core/SvgIcon/index.js","node_modules/@material-ui/core/internal/svg-icons/CheckBoxOutlineBlank.js","node_modules/@material-ui/core/internal/svg-icons/CheckBox.js","node_modules/@material-ui/core/internal/svg-icons/IndeterminateCheckBox.js","node_modules/@material-ui/core/Checkbox/Checkbox.js","node_modules/@material-ui/core/Checkbox/index.js","node_modules/@material-ui/core/internal/svg-icons/Cancel.js","node_modules/@material-ui/core/Chip/Chip.js","node_modules/@material-ui/core/Chip/index.js","node_modules/@material-ui/core/CircularProgress/CircularProgress.js","node_modules/@material-ui/core/CircularProgress/index.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/createClass.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/typeof.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/inherits.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/react-event-listener/node_modules/@babel/runtime/helpers/extends.js","node_modules/react-event-listener/dist/react-event-listener.cjs.js","node_modules/@material-ui/core/ClickAwayListener/ClickAwayListener.js","node_modules/@material-ui/core/ClickAwayListener/index.js","node_modules/@material-ui/core/Collapse/Collapse.js","node_modules/@material-ui/core/Collapse/index.js","node_modules/@material-ui/core/CssBaseline/CssBaseline.js","node_modules/@material-ui/core/CssBaseline/index.js","node_modules/@material-ui/core/RootRef/RootRef.js","node_modules/@material-ui/core/RootRef/index.js","node_modules/@material-ui/core/Portal/Portal.js","node_modules/@material-ui/core/Portal/index.js","node_modules/dom-helpers/util/camelize.js","node_modules/dom-helpers/util/camelizeStyle.js","node_modules/dom-helpers/util/hyphenate.js","node_modules/dom-helpers/util/hyphenateStyle.js","node_modules/dom-helpers/style/getComputedStyle.js","node_modules/dom-helpers/style/removeStyle.js","node_modules/dom-helpers/util/inDOM.js","node_modules/dom-helpers/transition/properties.js","node_modules/dom-helpers/transition/isTransform.js","node_modules/dom-helpers/style/index.js","node_modules/dom-helpers/util/scrollbarSize.js","node_modules/dom-helpers/query/isWindow.js","node_modules/@material-ui/core/Modal/isOverflowing.js","node_modules/@material-ui/core/Modal/manageAriaHidden.js","node_modules/@material-ui/core/Modal/ModalManager.js","node_modules/@material-ui/core/Modal/Modal.js","node_modules/@material-ui/core/Modal/index.js","node_modules/@material-ui/core/Dialog/Dialog.js","node_modules/@material-ui/core/Dialog/index.js","node_modules/@material-ui/core/DialogActions/DialogActions.js","node_modules/@material-ui/core/DialogActions/index.js","node_modules/@material-ui/core/DialogContent/DialogContent.js","node_modules/@material-ui/core/DialogContent/index.js","node_modules/@material-ui/core/DialogContentText/DialogContentText.js","node_modules/@material-ui/core/DialogContentText/index.js","node_modules/@material-ui/core/DialogTitle/DialogTitle.js","node_modules/@material-ui/core/DialogTitle/index.js","node_modules/@material-ui/core/Divider/Divider.js","node_modules/@material-ui/core/Divider/index.js","node_modules/debounce/index.js","node_modules/@material-ui/core/Slide/Slide.js","node_modules/@material-ui/core/Slide/index.js","node_modules/@material-ui/core/Drawer/Drawer.js","node_modules/@material-ui/core/Drawer/index.js","node_modules/@material-ui/core/ExpansionPanel/ExpansionPanel.js","node_modules/@material-ui/core/ExpansionPanel/index.js","node_modules/@material-ui/core/ExpansionPanelActions/ExpansionPanelActions.js","node_modules/@material-ui/core/ExpansionPanelActions/index.js","node_modules/@material-ui/core/ExpansionPanelDetails/ExpansionPanelDetails.js","node_modules/@material-ui/core/ExpansionPanelDetails/index.js","node_modules/@material-ui/core/ExpansionPanelSummary/ExpansionPanelSummary.js","node_modules/@material-ui/core/ExpansionPanelSummary/index.js","node_modules/@material-ui/core/InputBase/Textarea.js","node_modules/@material-ui/core/InputBase/utils.js","node_modules/@material-ui/core/InputBase/InputBase.js","node_modules/@material-ui/core/InputBase/index.js","node_modules/@material-ui/core/FilledInput/FilledInput.js","node_modules/@material-ui/core/FilledInput/index.js","node_modules/@material-ui/core/FormControl/FormControl.js","node_modules/@material-ui/core/FormControl/index.js","node_modules/@material-ui/core/FormControlLabel/FormControlLabel.js","node_modules/@material-ui/core/FormControlLabel/index.js","node_modules/@material-ui/core/FormGroup/FormGroup.js","node_modules/@material-ui/core/FormGroup/index.js","node_modules/@material-ui/core/FormHelperText/FormHelperText.js","node_modules/@material-ui/core/FormHelperText/index.js","node_modules/@material-ui/core/FormLabel/FormLabel.js","node_modules/@material-ui/core/FormLabel/index.js","node_modules/@material-ui/core/utils/requirePropFactory.js","node_modules/@material-ui/core/Grid/Grid.js","node_modules/@material-ui/core/Grid/index.js","node_modules/@material-ui/core/GridList/GridList.js","node_modules/@material-ui/core/GridList/index.js","node_modules/@material-ui/core/GridListTile/GridListTile.js","node_modules/@material-ui/core/GridListTile/index.js","node_modules/@material-ui/core/GridListTileBar/GridListTileBar.js","node_modules/@material-ui/core/GridListTileBar/index.js","node_modules/@material-ui/core/Grow/Grow.js","node_modules/@material-ui/core/Grow/index.js","node_modules/@material-ui/core/withWidth/withWidth.js","node_modules/@material-ui/core/withWidth/index.js","node_modules/@material-ui/core/Hidden/HiddenJs.js","node_modules/@material-ui/core/Hidden/HiddenCss.js","node_modules/@material-ui/core/Hidden/Hidden.js","node_modules/@material-ui/core/Hidden/index.js","node_modules/@material-ui/core/Icon/Icon.js","node_modules/@material-ui/core/Icon/index.js","node_modules/@material-ui/core/Input/Input.js","node_modules/@material-ui/core/Input/index.js","node_modules/@material-ui/core/InputAdornment/InputAdornment.js","node_modules/@material-ui/core/InputAdornment/index.js","node_modules/@material-ui/core/InputLabel/InputLabel.js","node_modules/@material-ui/core/InputLabel/index.js","node_modules/@material-ui/core/LinearProgress/LinearProgress.js","node_modules/@material-ui/core/LinearProgress/index.js","node_modules/@material-ui/core/List/List.js","node_modules/@material-ui/core/List/index.js","node_modules/@material-ui/core/ListItem/ListItem.js","node_modules/@material-ui/core/ListItem/index.js","node_modules/@material-ui/core/ListItemAvatar/ListItemAvatar.js","node_modules/@material-ui/core/ListItemAvatar/index.js","node_modules/@material-ui/core/ListItemIcon/ListItemIcon.js","node_modules/@material-ui/core/ListItemIcon/index.js","node_modules/@material-ui/core/ListItemSecondaryAction/ListItemSecondaryAction.js","node_modules/@material-ui/core/ListItemSecondaryAction/index.js","node_modules/@material-ui/core/ListItemText/ListItemText.js","node_modules/@material-ui/core/ListItemText/index.js","node_modules/@material-ui/core/ListSubheader/ListSubheader.js","node_modules/@material-ui/core/ListSubheader/index.js","node_modules/@material-ui/core/Popover/Popover.js","node_modules/@material-ui/core/Popover/index.js","node_modules/@material-ui/core/MenuList/MenuList.js","node_modules/@material-ui/core/MenuList/index.js","node_modules/@material-ui/core/Menu/Menu.js","node_modules/@material-ui/core/Menu/index.js","node_modules/@material-ui/core/MenuItem/MenuItem.js","node_modules/@material-ui/core/MenuItem/index.js","node_modules/@material-ui/core/MobileStepper/MobileStepper.js","node_modules/@material-ui/core/MobileStepper/index.js","node_modules/@material-ui/core/NativeSelect/NativeSelectInput.js","node_modules/@material-ui/core/internal/svg-icons/ArrowDropDown.js","node_modules/@material-ui/core/NativeSelect/NativeSelect.js","node_modules/@material-ui/core/NativeSelect/index.js","node_modules/@material-ui/core/NoSsr/NoSsr.js","node_modules/@material-ui/core/NoSsr/index.js","node_modules/@material-ui/core/OutlinedInput/NotchedOutline.js","node_modules/@material-ui/core/OutlinedInput/OutlinedInput.js","node_modules/@material-ui/core/OutlinedInput/index.js","../../src/utils/isBrowser.js","../../src/utils/debounce.js","../../src/utils/isFunction.js","../../src/utils/getStyleComputedProperty.js","../../src/utils/getParentNode.js","../../src/utils/getScrollParent.js","../../src/utils/isIE.js","../../src/utils/getOffsetParent.js","../../src/utils/isOffsetContainer.js","../../src/utils/getRoot.js","../../src/utils/findCommonOffsetParent.js","../../src/utils/getScroll.js","../../src/utils/includeScroll.js","../../src/utils/getBordersSize.js","../../src/utils/getWindowSizes.js","../../src/utils/getClientRect.js","../../src/utils/getBoundingClientRect.js","../../src/utils/getOffsetRectRelativeToArbitraryNode.js","../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../../src/utils/isFixed.js","../../src/utils/getFixedPositionOffsetParent.js","../../src/utils/getBoundaries.js","../../src/utils/computeAutoPlacement.js","../../src/utils/getReferenceOffsets.js","../../src/utils/getOuterSizes.js","../../src/utils/getOppositePlacement.js","../../src/utils/getPopperOffsets.js","../../src/utils/find.js","../../src/utils/findIndex.js","../../src/utils/runModifiers.js","../../src/methods/update.js","../../src/utils/isModifierEnabled.js","../../src/utils/getSupportedPropertyName.js","../../src/methods/destroy.js","../../src/utils/getWindow.js","../../src/utils/setupEventListeners.js","../../src/methods/enableEventListeners.js","../../src/utils/removeEventListeners.js","../../src/methods/disableEventListeners.js","../../src/utils/isNumeric.js","../../src/utils/setStyles.js","../../src/utils/setAttributes.js","../../src/modifiers/applyStyle.js","../../src/modifiers/computeStyle.js","../../src/utils/isModifierRequired.js","../../src/modifiers/arrow.js","../../src/utils/getOppositeVariation.js","../../src/methods/placements.js","../../src/utils/clockwise.js","../../src/modifiers/flip.js","../../src/modifiers/keepTogether.js","../../src/modifiers/offset.js","../../src/modifiers/preventOverflow.js","../../src/modifiers/shift.js","../../src/modifiers/hide.js","../../src/modifiers/inner.js","../../src/modifiers/index.js","../../src/methods/defaults.js","../../src/index.js","node_modules/@material-ui/core/Popper/Popper.js","node_modules/@material-ui/core/Popper/index.js","node_modules/@material-ui/core/internal/svg-icons/RadioButtonUnchecked.js","node_modules/@material-ui/core/internal/svg-icons/RadioButtonChecked.js","node_modules/@material-ui/core/Radio/Radio.js","node_modules/@material-ui/core/Radio/index.js","node_modules/@material-ui/core/RadioGroup/RadioGroup.js","node_modules/@material-ui/core/RadioGroup/index.js","node_modules/@material-ui/core/Select/SelectInput.js","node_modules/@material-ui/core/Select/Select.js","node_modules/@material-ui/core/Select/index.js","node_modules/@material-ui/core/SnackbarContent/SnackbarContent.js","node_modules/@material-ui/core/SnackbarContent/index.js","node_modules/@material-ui/core/Snackbar/Snackbar.js","node_modules/@material-ui/core/Snackbar/index.js","node_modules/@material-ui/core/Step/Step.js","node_modules/@material-ui/core/Step/index.js","node_modules/@material-ui/core/internal/svg-icons/CheckCircle.js","node_modules/@material-ui/core/internal/svg-icons/Warning.js","node_modules/@material-ui/core/StepIcon/StepIcon.js","node_modules/@material-ui/core/StepIcon/index.js","node_modules/@material-ui/core/StepLabel/StepLabel.js","node_modules/@material-ui/core/StepLabel/index.js","node_modules/@material-ui/core/StepButton/StepButton.js","node_modules/@material-ui/core/StepButton/index.js","node_modules/@material-ui/core/StepConnector/StepConnector.js","node_modules/@material-ui/core/StepConnector/index.js","node_modules/@material-ui/core/StepContent/StepContent.js","node_modules/@material-ui/core/StepContent/index.js","node_modules/@material-ui/core/Stepper/Stepper.js","node_modules/@material-ui/core/Stepper/index.js","node_modules/@material-ui/core/SwipeableDrawer/SwipeArea.js","node_modules/@material-ui/core/SwipeableDrawer/SwipeableDrawer.js","node_modules/@material-ui/core/SwipeableDrawer/index.js","node_modules/@material-ui/core/Switch/Switch.js","node_modules/@material-ui/core/Switch/index.js","node_modules/@material-ui/core/Tab/Tab.js","node_modules/@material-ui/core/Tab/index.js","node_modules/@material-ui/core/Table/Table.js","node_modules/@material-ui/core/Table/index.js","node_modules/@material-ui/core/TableBody/TableBody.js","node_modules/@material-ui/core/TableBody/index.js","node_modules/@material-ui/core/TableCell/TableCell.js","node_modules/@material-ui/core/TableCell/index.js","node_modules/@material-ui/core/TableFooter/TableFooter.js","node_modules/@material-ui/core/TableFooter/index.js","node_modules/@material-ui/core/TableHead/TableHead.js","node_modules/@material-ui/core/TableHead/index.js","node_modules/@material-ui/core/Toolbar/Toolbar.js","node_modules/@material-ui/core/Toolbar/index.js","node_modules/@material-ui/core/internal/svg-icons/KeyboardArrowLeft.js","node_modules/@material-ui/core/internal/svg-icons/KeyboardArrowRight.js","node_modules/@material-ui/core/TablePaginationActions/TablePaginationActions.js","node_modules/@material-ui/core/TablePaginationActions/index.js","node_modules/@material-ui/core/TablePagination/TablePagination.js","node_modules/@material-ui/core/TablePagination/index.js","node_modules/@material-ui/core/TableRow/TableRow.js","node_modules/@material-ui/core/TableRow/index.js","node_modules/@material-ui/core/internal/svg-icons/ArrowDownward.js","node_modules/@material-ui/core/TableSortLabel/TableSortLabel.js","node_modules/@material-ui/core/TableSortLabel/index.js","node_modules/normalize-scroll-left/lib/main.js","node_modules/@material-ui/core/internal/animate.js","node_modules/@material-ui/core/Tabs/ScrollbarSize.js","node_modules/@material-ui/core/Tabs/TabIndicator.js","node_modules/@material-ui/core/Tabs/TabScrollButton.js","node_modules/@material-ui/core/Tabs/Tabs.js","node_modules/@material-ui/core/Tabs/index.js","node_modules/@material-ui/core/TextField/TextField.js","node_modules/@material-ui/core/TextField/index.js","node_modules/@material-ui/core/Tooltip/Tooltip.js","node_modules/@material-ui/core/Tooltip/index.js","node_modules/@material-ui/core/withMobileDialog/withMobileDialog.js","node_modules/@material-ui/core/withMobileDialog/index.js","node_modules/@material-ui/core/Zoom/Zoom.js","node_modules/@material-ui/core/Zoom/index.js","node_modules/@material-ui/core/index.es.js","node_modules/@firebase/polyfill/node_modules/whatwg-fetch/fetch.js","node_modules/@firebase/polyfill/dist/index.esm.js","node_modules/tslib/tslib.es6.js","node_modules/@firebase/util/dist/index.cjs.js","node_modules/@firebase/app/dist/index.cjs.js","node_modules/firebase/app/dist/index.cjs.js","node_modules/@firebase/logger/dist/index.esm.js","node_modules/process/browser.js","node_modules/@firebase/database/dist/index.cjs.js","node_modules/firebase/database/dist/index.esm.js","src/api/firebase.js","node_modules/local-storage/stub.js","node_modules/local-storage/tracking.js","node_modules/local-storage/local-storage.js","node_modules/date-fns/is_date/index.js","node_modules/date-fns/parse/index.js","node_modules/date-fns/add_days/index.js","node_modules/date-fns/add_milliseconds/index.js","node_modules/date-fns/add_hours/index.js","node_modules/date-fns/start_of_week/index.js","node_modules/date-fns/start_of_iso_week/index.js","node_modules/date-fns/get_iso_year/index.js","node_modules/date-fns/start_of_iso_year/index.js","node_modules/date-fns/start_of_day/index.js","node_modules/date-fns/difference_in_calendar_days/index.js","node_modules/date-fns/set_iso_year/index.js","node_modules/date-fns/add_iso_years/index.js","node_modules/date-fns/add_minutes/index.js","node_modules/date-fns/get_days_in_month/index.js","node_modules/date-fns/add_months/index.js","node_modules/date-fns/add_quarters/index.js","node_modules/date-fns/add_seconds/index.js","node_modules/date-fns/add_weeks/index.js","node_modules/date-fns/add_years/index.js","node_modules/date-fns/are_ranges_overlapping/index.js","node_modules/date-fns/closest_index_to/index.js","node_modules/date-fns/closest_to/index.js","node_modules/date-fns/compare_asc/index.js","node_modules/date-fns/compare_desc/index.js","node_modules/date-fns/difference_in_calendar_iso_weeks/index.js","node_modules/date-fns/difference_in_calendar_iso_years/index.js","node_modules/date-fns/difference_in_calendar_months/index.js","node_modules/date-fns/get_quarter/index.js","node_modules/date-fns/difference_in_calendar_quarters/index.js","node_modules/date-fns/difference_in_calendar_weeks/index.js","node_modules/date-fns/difference_in_calendar_years/index.js","node_modules/date-fns/difference_in_days/index.js","node_modules/date-fns/difference_in_milliseconds/index.js","node_modules/date-fns/difference_in_hours/index.js","node_modules/date-fns/sub_iso_years/index.js","node_modules/date-fns/difference_in_iso_years/index.js","node_modules/date-fns/difference_in_minutes/index.js","node_modules/date-fns/difference_in_months/index.js","node_modules/date-fns/difference_in_quarters/index.js","node_modules/date-fns/difference_in_seconds/index.js","node_modules/date-fns/difference_in_weeks/index.js","node_modules/date-fns/difference_in_years/index.js","node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","node_modules/date-fns/locale/en/build_format_locale/index.js","node_modules/date-fns/locale/en/index.js","node_modules/date-fns/distance_in_words/index.js","node_modules/date-fns/distance_in_words_strict/index.js","node_modules/date-fns/distance_in_words_to_now/index.js","node_modules/date-fns/each_day/index.js","node_modules/date-fns/end_of_day/index.js","node_modules/date-fns/end_of_hour/index.js","node_modules/date-fns/end_of_week/index.js","node_modules/date-fns/end_of_iso_week/index.js","node_modules/date-fns/end_of_iso_year/index.js","node_modules/date-fns/end_of_minute/index.js","node_modules/date-fns/end_of_month/index.js","node_modules/date-fns/end_of_quarter/index.js","node_modules/date-fns/end_of_second/index.js","node_modules/date-fns/end_of_today/index.js","node_modules/date-fns/end_of_tomorrow/index.js","node_modules/date-fns/end_of_year/index.js","node_modules/date-fns/end_of_yesterday/index.js","node_modules/date-fns/start_of_year/index.js","node_modules/date-fns/get_day_of_year/index.js","node_modules/date-fns/get_iso_week/index.js","node_modules/date-fns/is_valid/index.js","node_modules/date-fns/format/index.js","node_modules/date-fns/get_date/index.js","node_modules/date-fns/get_day/index.js","node_modules/date-fns/is_leap_year/index.js","node_modules/date-fns/get_days_in_year/index.js","node_modules/date-fns/get_hours/index.js","node_modules/date-fns/get_iso_day/index.js","node_modules/date-fns/get_iso_weeks_in_year/index.js","node_modules/date-fns/get_milliseconds/index.js","node_modules/date-fns/get_minutes/index.js","node_modules/date-fns/get_month/index.js","node_modules/date-fns/get_overlapping_days_in_ranges/index.js","node_modules/date-fns/get_seconds/index.js","node_modules/date-fns/get_time/index.js","node_modules/date-fns/get_year/index.js","node_modules/date-fns/is_after/index.js","node_modules/date-fns/is_before/index.js","node_modules/date-fns/is_equal/index.js","node_modules/date-fns/is_first_day_of_month/index.js","node_modules/date-fns/is_friday/index.js","node_modules/date-fns/is_future/index.js","node_modules/date-fns/is_last_day_of_month/index.js","node_modules/date-fns/is_monday/index.js","node_modules/date-fns/is_past/index.js","node_modules/date-fns/is_same_day/index.js","node_modules/date-fns/start_of_hour/index.js","node_modules/date-fns/is_same_hour/index.js","node_modules/date-fns/is_same_week/index.js","node_modules/date-fns/is_same_iso_week/index.js","node_modules/date-fns/is_same_iso_year/index.js","node_modules/date-fns/start_of_minute/index.js","node_modules/date-fns/is_same_minute/index.js","node_modules/date-fns/is_same_month/index.js","node_modules/date-fns/start_of_quarter/index.js","node_modules/date-fns/is_same_quarter/index.js","node_modules/date-fns/start_of_second/index.js","node_modules/date-fns/is_same_second/index.js","node_modules/date-fns/is_same_year/index.js","node_modules/date-fns/is_saturday/index.js","node_modules/date-fns/is_sunday/index.js","node_modules/date-fns/is_this_hour/index.js","node_modules/date-fns/is_this_iso_week/index.js","node_modules/date-fns/is_this_iso_year/index.js","node_modules/date-fns/is_this_minute/index.js","node_modules/date-fns/is_this_month/index.js","node_modules/date-fns/is_this_quarter/index.js","node_modules/date-fns/is_this_second/index.js","node_modules/date-fns/is_this_week/index.js","node_modules/date-fns/is_this_year/index.js","node_modules/date-fns/is_thursday/index.js","node_modules/date-fns/is_today/index.js","node_modules/date-fns/is_tomorrow/index.js","node_modules/date-fns/is_tuesday/index.js","node_modules/date-fns/is_wednesday/index.js","node_modules/date-fns/is_weekend/index.js","node_modules/date-fns/is_within_range/index.js","node_modules/date-fns/is_yesterday/index.js","node_modules/date-fns/last_day_of_week/index.js","node_modules/date-fns/last_day_of_iso_week/index.js","node_modules/date-fns/last_day_of_iso_year/index.js","node_modules/date-fns/last_day_of_month/index.js","node_modules/date-fns/last_day_of_quarter/index.js","node_modules/date-fns/last_day_of_year/index.js","node_modules/date-fns/max/index.js","node_modules/date-fns/min/index.js","node_modules/date-fns/set_date/index.js","node_modules/date-fns/set_day/index.js","node_modules/date-fns/set_day_of_year/index.js","node_modules/date-fns/set_hours/index.js","node_modules/date-fns/set_iso_day/index.js","node_modules/date-fns/set_iso_week/index.js","node_modules/date-fns/set_milliseconds/index.js","node_modules/date-fns/set_minutes/index.js","node_modules/date-fns/set_month/index.js","node_modules/date-fns/set_quarter/index.js","node_modules/date-fns/set_seconds/index.js","node_modules/date-fns/set_year/index.js","node_modules/date-fns/start_of_month/index.js","node_modules/date-fns/start_of_today/index.js","node_modules/date-fns/start_of_tomorrow/index.js","node_modules/date-fns/start_of_yesterday/index.js","node_modules/date-fns/sub_days/index.js","node_modules/date-fns/sub_hours/index.js","node_modules/date-fns/sub_milliseconds/index.js","node_modules/date-fns/sub_minutes/index.js","node_modules/date-fns/sub_months/index.js","node_modules/date-fns/sub_quarters/index.js","node_modules/date-fns/sub_seconds/index.js","node_modules/date-fns/sub_weeks/index.js","node_modules/date-fns/sub_years/index.js","node_modules/date-fns/index.js","node_modules/fbjs/lib/hyphenate.js","node_modules/fbjs/lib/hyphenateStyleName.js","node_modules/stylis/stylis.js","node_modules/stylis-rule-sheet/index.js","node_modules/react-is/cjs/react-is.development.js","node_modules/react-is/index.js","../src/models/StyleTags.js","../src/models/StyleSheetManager.js","../src/models/ThemeProvider.js","../src/models/StyledComponent.js","../src/models/ComponentStyle.js","../src/constructors/keyframes.js","../src/constructors/injectGlobal.js","src/components/sendchicken.jsx","node_modules/@material-ui/icons/node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@material-ui/icons/node_modules/@babel/runtime/helpers/inheritsLoose.js","node_modules/@material-ui/icons/node_modules/recompose/setStatic.js","node_modules/@material-ui/icons/node_modules/recompose/setDisplayName.js","node_modules/@material-ui/icons/node_modules/recompose/getDisplayName.js","node_modules/@material-ui/icons/node_modules/recompose/wrapDisplayName.js","node_modules/@material-ui/icons/node_modules/recompose/shouldUpdate.js","node_modules/@material-ui/icons/node_modules/recompose/shallowEqual.js","node_modules/@material-ui/icons/node_modules/recompose/pure.js","node_modules/@material-ui/icons/utils/createSvgIcon.js","node_modules/@material-ui/icons/Edit.js","node_modules/@material-ui/icons/CalendarToday.js","src/components/changenickname.jsx","src/components/kipboiz.jsx","src/index.js"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","forEach","letter","keys","err","module","exports","target","source","from","to","symbols","s","arguments","length","key","call","printWarning","ReactPropTypesSecret","require","loggedTypeFailures","text","message","console","error","Error","x","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","name","ex","stack","_assign","ReactVersion","hasSymbol","Symbol","for","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_PLACEHOLDER_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","enableSuspense","validateFormat","format","invariant","condition","a","b","c","d","e","f","args","argIndex","replace","framesToPop","lowPriorityWarning","_len","Array","_key","warn","_len2","_key2","apply","concat","lowPriorityWarning$1","warningWithoutStack","_args$map","item","g","h","_message","warningWithoutStack$1","didWarnStateUpdateForUnmountedComponent","warnNoop","publicInstance","callerName","_constructor","constructor","displayName","warningKey","ReactNoopUpdateQueue","isMounted","enqueueForceUpdate","callback","enqueueReplaceState","completeState","enqueueSetState","partialState","emptyObject","freeze","Component","props","context","updater","refs","isReactComponent","setState","forceUpdate","deprecatedAPIs","replaceState","defineDeprecationWarning","methodName","info","defineProperty","get","fnName","ComponentDummy","PureComponent","pureComponentPrototype","isPureReactComponent","createRef","refObject","current","seal","ReactCurrentOwner","currentDispatcher","BEFORE_SLASH_RE","describeComponentFrame","ownerName","sourceInfo","path","fileName","test","match","pathBeforeSlash","folderName","lineNumber","Resolved","refineResolvedThenable","thenable","_reactStatus","_reactResult","getComponentName","type","tag","$$typeof","renderFn","render","functionName","then","resolvedThenable","ReactDebugCurrentFrame","currentlyValidatingElement","setCurrentlyValidatingElement","element","getCurrentStack","getStackAddendum","owner","_owner","_source","impl","ReactSharedInternals","ReactComponentTreeHook","warning","warning$1","RESERVED_PROPS","ref","__self","__source","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","getOwnPropertyDescriptor","isReactWarning","hasValidKey","defineKeyPropWarningGetter","warnAboutAccessingKey","configurable","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","self","_store","enumerable","writable","value","createElement","children","propName","childrenLength","childArray","defaultProps","cloneAndReplaceKey","oldElement","newKey","newElement","_self","cloneElement","isValidElement","object","SEPARATOR","SUBSEPARATOR","escape","escapeRegex","escaperLookup","escapedString","didWarnAboutMaps","userProvidedKeyEscapeRegex","escapeUserProvidedKey","POOL_SIZE","traverseContextPool","getPooledTraverseContext","mapResult","keyPrefix","mapFunction","mapContext","traverseContext","pop","result","func","count","releaseTraverseContext","push","traverseAllChildrenImpl","nameSoFar","invokeCallback","getComponentKey","child","nextName","subtreeCount","nextNamePrefix","isArray","iteratorFn","entries","step","ii","next","done","addendum","childrenString","traverseAllChildren","component","index","toString","forEachSingleChild","bookKeeping","forEachChildren","forEachFunc","forEachContext","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","array","prefix","escapedPrefix","mapChildren","countChildren","toArray","onlyChild","readContext","observedBits","dispatcher","createContext","defaultValue","calculateChangedBits","_calculateChangedBits","_currentValue","_currentValue2","Provider","Consumer","unstable_read","_context","bind","_currentRenderer","_currentRenderer2","lazy","ctor","resolve","reject","forwardRef","propTypes","isValidElementType","propTypesMisspellWarningShown","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","elementProps","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","parentName","validateExplicitKey","validated","currentComponentErrorInfo","childOwner","validateChildKeys","node","validatePropTypes","PropTypes","getDefaultProps","isReactClassApproved","validateFragmentProps","fragment","createElementWithValidation","validType","typeString","createFactoryWithValidation","validatedFactory","cloneElementWithValidation","React","Children","only","Fragment","StrictMode","unstable_AsyncMode","unstable_Profiler","createFactory","version","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","Placeholder","React$2","default","React$3","react","DEFERRED_TIMEOUT","firstCallbackNode","isPerformingWork","isHostCallbackScheduled","hasNativePerformanceNow","performance","now","timeRemaining","remaining","getFrameDeadline","Date","deadlineObject","didTimeout","ensureHostCallbackIsScheduled","timesOutAt","cancelCallback","requestCallback","flushWork","flushFirstCallback","flushedNode","previous","currentTime","unstable_now","unstable_scheduleWork","options","timeout","newNode","unstable_cancelScheduledWork","callbackNode","localDate","localSetTimeout","setTimeout","localClearTimeout","clearTimeout","localRequestAnimationFrame","requestAnimationFrame","localCancelAnimationFrame","cancelAnimationFrame","ANIMATION_FRAME_TIMEOUT","rAFID","rAFTimeoutID","requestAnimationFrameWithTimeout","timestamp","Performance","window","timeoutID","absoluteTimeout","_schedMock","scheduledCallback","isIdleScheduled","timeoutTime","isAnimationFrameScheduled","isPerformingIdleWork","frameDeadline","previousFrameTime","activeFrameTime","messageKey","Math","random","slice","idleTick","event","data","animationTick","addEventListener","rafTime","nextFrameTime","postMessage","enableSchedulerTracing","DEFAULT_THREAD_ID","interactionIDCounter","threadIDCounter","__interactionsRef","__subscriberRef","Set","unstable_clear","prevInteractions","unstable_getCurrent","unstable_getThreadID","unstable_trace","threadID","interaction","__count","id","interactions","add","subscriber","returnValue","onInteractionTraced","onWorkStarted","onWorkStopped","onInteractionScheduledWorkCompleted","unstable_wrap","wrappedInteractions","onWorkScheduled","hasRun","wrapped","cancel","onWorkCanceled","subscribers","unstable_subscribe","size","unstable_unsubscribe","delete","didCatchError","caughtError","schedule","tracing","invokeGuardedCallbackImpl","funcArgs","onError","dispatchEvent","document","createEvent","fakeNode","invokeGuardedCallbackDev","evt","didError","windowEvent","callCallback","removeEventListener","evtType","didSetError","isCrossOriginError","handleWindowError","colno","lineno","defaultPrevented","_suppressLogging","inner","initEvent","invokeGuardedCallbackImpl$1","hasError","hasRethrowError","rethrowError","reporter","invokeGuardedCallback","invokeGuardedCallbackAndCatchFirstError","clearCaughtError","rethrowCaughtError","hasCaughtError","eventPluginOrder","namesToPlugins","recomputePluginOrdering","pluginName","pluginModule","pluginIndex","indexOf","plugins","extractEvents","publishedEvents","eventTypes","eventName","publishEventForPlugin","dispatchConfig","eventNameDispatchConfigs","phasedRegistrationNames","phaseName","phasedRegistrationName","publishRegistrationName","registrationName","registrationNameModules","registrationNameDependencies","dependencies","lowerCasedName","toLowerCase","possibleRegistrationNames","ondblclick","injectEventPluginOrder","injectedEventPluginOrder","injectEventPluginsByName","injectedNamesToPlugins","isOrderingDirty","getFiberCurrentPropsFromNode","getInstanceFromNode","getNodeFromInstance","setComponentTree","getFiberCurrentPropsFromNodeImpl","getInstanceFromNodeImpl","getNodeFromInstanceImpl","validateEventDispatches","dispatchListeners","_dispatchListeners","dispatchInstances","_dispatchInstances","listenersIsArr","listenersLen","instancesIsArr","instancesLen","executeDispatch","simulated","listener","inst","currentTarget","executeDispatchesInOrder","isPropagationStopped","accumulateInto","forEachAccumulated","arr","cb","scope","eventQueue","executeDispatchesAndRelease","isPersistent","release","executeDispatchesAndReleaseSimulated","executeDispatchesAndReleaseTopLevel","isInteractive","shouldPreventMouseEvent","disabled","injection","getListener","stateNode","topLevelType","targetInst","nativeEvent","nativeEventTarget","events","possiblePlugin","extractedEvents","runEventsInBatch","processingEventQueue","runExtractedEventsInBatch","FunctionalComponent","FunctionalComponentLazy","ClassComponent","ClassComponentLazy","IndeterminateComponent","HostRoot","HostPortal","HostComponent","HostText","Mode","ContextConsumer","ContextProvider","ForwardRef","ForwardRefLazy","Profiler","PlaceholderComponent","randomKey","internalInstanceKey","internalEventHandlersKey","precacheFiberNode","hostInst","getClosestInstanceFromNode","parentNode","getInstanceFromNode$1","getNodeFromInstance$1","getFiberCurrentPropsFromNode$1","updateFiberProps","getParent","return","getLowestCommonAncestor","instA","instB","depthA","tempA","depthB","tempB","depth","alternate","traverseTwoPhase","fn","arg","traverseEnterLeave","argFrom","argTo","common","pathFrom","pathTo","_alternate","_i","listenerAtPhase","propagationPhase","accumulateDirectionalDispatches","phase","accumulateTwoPhaseDispatchesSingle","_targetInst","accumulateDispatches","ignoredDirection","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatches","accumulateEnterLeaveDispatches","leave","enter","accumulateDirectDispatches","canUseDOM","unsafeCastStringToDOMTopLevelType","unsafeCastDOMTopLevelTypeToString","makePrefixMap","styleProp","prefixes","vendorPrefixes","animationend","animationiteration","animationstart","transitionend","prefixedEventNames","style","animation","transition","getVendorPrefixedEventName","prefixMap","TOP_ABORT","TOP_ANIMATION_END","TOP_ANIMATION_ITERATION","TOP_ANIMATION_START","TOP_BLUR","TOP_CAN_PLAY","TOP_CAN_PLAY_THROUGH","TOP_CANCEL","TOP_CHANGE","TOP_CLICK","TOP_CLOSE","TOP_COMPOSITION_END","TOP_COMPOSITION_START","TOP_COMPOSITION_UPDATE","TOP_CONTEXT_MENU","TOP_COPY","TOP_CUT","TOP_DOUBLE_CLICK","TOP_AUX_CLICK","TOP_DRAG","TOP_DRAG_END","TOP_DRAG_ENTER","TOP_DRAG_EXIT","TOP_DRAG_LEAVE","TOP_DRAG_OVER","TOP_DRAG_START","TOP_DROP","TOP_DURATION_CHANGE","TOP_EMPTIED","TOP_ENCRYPTED","TOP_ENDED","TOP_ERROR","TOP_FOCUS","TOP_GOT_POINTER_CAPTURE","TOP_INPUT","TOP_INVALID","TOP_KEY_DOWN","TOP_KEY_PRESS","TOP_KEY_UP","TOP_LOAD","TOP_LOAD_START","TOP_LOADED_DATA","TOP_LOADED_METADATA","TOP_LOST_POINTER_CAPTURE","TOP_MOUSE_DOWN","TOP_MOUSE_MOVE","TOP_MOUSE_OUT","TOP_MOUSE_OVER","TOP_MOUSE_UP","TOP_PASTE","TOP_PAUSE","TOP_PLAY","TOP_PLAYING","TOP_POINTER_CANCEL","TOP_POINTER_DOWN","TOP_POINTER_MOVE","TOP_POINTER_OUT","TOP_POINTER_OVER","TOP_POINTER_UP","TOP_PROGRESS","TOP_RATE_CHANGE","TOP_RESET","TOP_SCROLL","TOP_SEEKED","TOP_SEEKING","TOP_SELECTION_CHANGE","TOP_STALLED","TOP_SUBMIT","TOP_SUSPEND","TOP_TEXT_INPUT","TOP_TIME_UPDATE","TOP_TOGGLE","TOP_TOUCH_CANCEL","TOP_TOUCH_END","TOP_TOUCH_MOVE","TOP_TOUCH_START","TOP_TRANSITION_END","TOP_VOLUME_CHANGE","TOP_WAITING","TOP_WHEEL","mediaEventTypes","getRawEventName","root","startText","fallbackText","initialize","getText","reset","getData","start","startValue","startLength","end","endValue","endLength","minEnd","sliceTail","textContent","EVENT_POOL_SIZE","EventInterface","eventPhase","bubbles","cancelable","timeStamp","isTrusted","functionThatReturnsTrue","functionThatReturnsFalse","SyntheticEvent","preventDefault","stopPropagation","isDefaultPrevented","Interface","normalize","cancelBubble","persist","destructor","getPooledWarningPropertyDefinition","extend","Super","E","Class","addEventPoolingTo","getVal","isFunction","set","action","warningCondition","getPooledEvent","nativeInst","EventConstructor","eventPool","instance","releasePooledEvent","getPooled","SyntheticCompositionEvent","SyntheticInputEvent","END_KEYCODES","START_KEYCODE","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CODE","SPACEBAR_CHAR","beforeInput","bubbled","captured","compositionEnd","compositionStart","compositionUpdate","hasSpaceKeypress","isKeypressCommand","ctrlKey","altKey","metaKey","getCompositionEventType","isFallbackCompositionStart","keyCode","isFallbackCompositionEnd","getDataFromCustomEvent","detail","isUsingKoreanIME","locale","isComposing","extractCompositionEvent","eventType","fallbackData","customData","getNativeBeforeInputChars","which","chars","getFallbackBeforeInputChars","char","extractBeforeInputEvent","BeforeInputEventPlugin","composition","restoreImpl","restoreTarget","restoreQueue","restoreStateOfTarget","internalInstance","setRestoreImplementation","enqueueStateRestore","needsStateRestore","restoreStateIfNeeded","queuedTargets","_batchedUpdatesImpl","bookkeeping","_interactiveUpdatesImpl","_flushInteractiveUpdatesImpl","isBatching","batchedUpdates","controlledComponentsHavePendingUpdates","interactiveUpdates","setBatchingImplementation","batchedUpdatesImpl","interactiveUpdatesImpl","flushInteractiveUpdatesImpl","supportedInputTypes","color","date","datetime","email","month","number","password","range","search","tel","time","url","week","isTextInputElement","elem","nodeName","ELEMENT_NODE","TEXT_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","getEventTarget","srcElement","correspondingUseElement","nodeType","isEventSupported","eventNameSuffix","isSupported","setAttribute","isCheckable","getTracker","_valueTracker","detachTracker","getValueFromNode","checked","trackValueOnNode","valueField","descriptor","currentValue","tracker","getValue","setValue","stopTracking","track","updateValueIfChanged","lastValue","nextValue","Pending","Rejected","getResultFromResolvedThenable","describeFiber","fiber","_debugOwner","_debugSource","getStackByFiberInDevAndProd","workInProgress","getCurrentFiberOwnerNameInDevOrNull","getCurrentFiberStackInDev","resetCurrentFiber","setCurrentFiber","setCurrentPhase","lifeCyclePhase","RESERVED","STRING","BOOLEANISH_STRING","BOOLEAN","OVERLOADED_BOOLEAN","NUMERIC","POSITIVE_NUMERIC","ATTRIBUTE_NAME_START_CHAR","ATTRIBUTE_NAME_CHAR","ROOT_ATTRIBUTE_NAME","VALID_ATTRIBUTE_NAME_REGEX","RegExp","illegalAttributeNameCache","validatedAttributeNameCache","isAttributeNameSafe","attributeName","shouldIgnoreAttribute","propertyInfo","isCustomComponentTag","shouldRemoveAttributeWithWarning","acceptsBooleans","shouldRemoveAttribute","isNaN","getPropertyInfo","properties","PropertyInfoRecord","mustUseProperty","attributeNamespace","propertyName","_ref","CAMELIZE","capitalize","token","toUpperCase","tabIndex","getValueForProperty","expected","stringValue","hasAttribute","getAttribute","getValueForAttribute","setValueForProperty","_attributeName","removeAttribute","_type","attributeValue","setAttributeNS","getToStringValue","ReactDebugCurrentFrame$1","ReactControlledValuePropTypes","hasReadOnlyValue","button","checkbox","image","hidden","radio","submit","onChange","readOnly","tagName","enableUserTimingAPI","enableGetDerivedStateFromCatch","debugRenderPhaseSideEffects","debugRenderPhaseSideEffectsForStrictMode","replayFailedUnitOfWorkWithInvokeGuardedCallback","warnAboutDeprecatedLifecycles","warnAboutLegacyContextAPI","enableProfilerTimer","disableInputAttributeSyncing","didWarnValueDefaultValue","didWarnCheckedDefaultChecked","didWarnControlledToUncontrolled","didWarnUncontrolledToControlled","isControlled","usesChecked","getHostProps","hostProps","defaultChecked","_wrapperState","initialChecked","initWrapperState","initialValue","controlled","updateChecked","updateWrapper","_controlled","setDefaultValue","postMountWrapper","isHydrating","isButton","_initialValue","restoreControlledState","updateNamedCousins","rootNode","queryRoot","group","querySelectorAll","JSON","stringify","otherNode","form","otherProps","ownerDocument","activeElement","eventTypes$1","change","createAndAccumulateChangeEvent","activeElementInst","shouldUseChangeEvent","manualDispatchChangeEvent","runEventInBatch","getInstIfValueChanged","targetNode","getTargetInstForChangeEvent","isInputEventSupported","startWatchingForValueChange","attachEvent","handlePropertyChange","stopWatchingForValueChange","detachEvent","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","shouldUseClickEvent","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","handleControlledInputBlur","state","ChangeEventPlugin","_isInputEventSupported","getTargetInstFunc","handleEventFunc","DOMEventPluginOrder","SyntheticUIEvent","view","modifierKeyToProp","Alt","Control","Meta","Shift","modifierStateGetter","keyArg","syntheticEvent","getModifierState","keyProp","getEventModifierState","previousScreenX","previousScreenY","isMovementXSet","isMovementYSet","SyntheticMouseEvent","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","buttons","relatedTarget","fromElement","toElement","movementX","movementY","SyntheticPointerEvent","pointerId","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","eventTypes$2","mouseEnter","mouseLeave","pointerEnter","pointerLeave","EnterLeaveEventPlugin","isOverEvent","isOutEvent","win","doc","defaultView","parentWindow","related","eventInterface","leaveEventType","enterEventType","eventTypePrefix","fromNode","toNode","hasOwnProperty$1","is","y","shallowEqual","objA","objB","keysA","keysB","_reactInternalFiber","has","NoEffect","PerformedWork","Placement","Update","PlacementAndUpdate","Deletion","ContentReset","Callback","DidCapture","Ref","Snapshot","LifecycleEffectMask","HostEffectMask","Incomplete","ShouldCapture","ReactCurrentOwner$1","MOUNTING","MOUNTED","UNMOUNTED","isFiberMountedImpl","effectTag","isFiberMounted","ownerFiber","_warnedAboutRefsInRender","assertIsMounted","findCurrentFiberUsingSlowPath","parentA","parentB","sibling","didFindChild","_child","findCurrentHostFiber","parent","currentParent","findCurrentHostFiberWithNoPortals","addEventBubbleListener","addEventCaptureListener","SyntheticAnimationEvent","animationName","elapsedTime","pseudoElement","SyntheticClipboardEvent","clipboardData","SyntheticFocusEvent","getEventCharCode","charCode","normalizeKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","translateToKey","getEventKey","SyntheticKeyboardEvent","repeat","SyntheticDragEvent","dataTransfer","SyntheticTouchEvent","touches","targetTouches","changedTouches","SyntheticTransitionEvent","SyntheticWheelEvent","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","interactiveEventTypeNames","nonInteractiveEventTypeNames","eventTypes$4","topLevelEventsToDispatchConfig","addEventTypeNameToConfig","topEvent","capitalizedEvent","onEvent","eventTuple","knownHTMLTopLevelTypes","SimpleEventPlugin","isInteractiveTopLevelEventType","CALLBACK_BOOKKEEPING_POOL_SIZE","callbackBookkeepingPool","findRootContainerNode","containerInfo","getTopLevelCallbackBookKeeping","ancestors","releaseTopLevelCallbackBookKeeping","handleTopLevel","ancestor","_enabled","setEnabled","enabled","isEnabled","trapBubbledEvent","dispatch","dispatchInteractiveEvent","trapCapturedEvent","alreadyListeningTo","reactTopListenersCounter","topListenersIDKey","getListeningForDocument","mountAt","listenTo","isListening","dependency","isMediaEvent","isListeningToAllDependencies","getActiveElement","body","getLeafNode","firstChild","getSiblingNode","nextSibling","getNodeForCharacterOffset","offset","nodeStart","nodeEnd","getOffsets","outerNode","selection","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","getModernOffsetsFromPoints","indexWithinAnchor","indexWithinFocus","outer","nodeValue","setOffsets","offsets","min","temp","startMarker","endMarker","createRange","setStart","removeAllRanges","addRange","setEnd","isTextNode","containsNode","innerNode","contains","compareDocumentPosition","isInDocument","documentElement","getActiveElementDeep","HTMLIFrameElement","contentDocument","hasSelectionCapabilities","contentEditable","getSelectionInformation","focusedElem","selectionRange","getSelection$1","restoreSelection","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","setSelection","left","scrollLeft","top","scrollTop","focus","input","selectionStart","selectionEnd","skipSelectionChangeEvent","eventTypes$3","select","activeElement$1","activeElementInst$1","lastSelection","mouseDown","getEventTargetDocument","eventTarget","constructSelectEvent","currentSelection","SelectEventPlugin","didWarnSelectedSetOnOption","didWarnInvalidChild","flattenChildren","content","validateProps","selected","postMountWrapper$1","getHostProps$1","didWarnValueDefaultValue$1","valuePropNames","checkSelectPropTypes","multiple","updateOptions","propValue","setDefaultSelected","selectedValues","selectedValue","defaultSelected","_selectedValue","_i2","getHostProps$2","initWrapperState$1","wasMultiple","postMountWrapper$2","postUpdateWrapper","restoreControlledState$2","didWarnValDefaultVal","getHostProps$3","dangerouslySetInnerHTML","initWrapperState$2","updateWrapper$1","newValue","postMountWrapper$3","restoreControlledState$3","HTML_NAMESPACE$1","MATH_NAMESPACE","SVG_NAMESPACE","Namespaces","html","mathml","svg","getIntrinsicNamespace","getChildNamespace","parentNamespace","createMicrosoftUnsafeLocalFunction","MSApp","execUnsafeLocalFunction","arg0","arg1","arg2","arg3","reusableSVGContainer","setInnerHTML","namespaceURI","innerHTML","svgNode","removeChild","appendChild","setTextContent","lastChild","isUnitlessNumber","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixKey","charAt","substring","prop","dangerousStyleValue","isCustomProperty","isEmpty","trim","uppercasePattern","msPattern","hyphenateStyleName","warnValidStyle","badVendoredStyleNamePattern","msPattern$1","hyphenPattern","badStyleValueWithSemicolonPattern","warnedStyleNames","warnedStyleValues","warnedForNaNValue","warnedForInfinityValue","camelize","string","_","character","warnHyphenatedStyleName","warnBadVendoredStyleName","warnStyleValueWithSemicolon","warnStyleValueIsNaN","warnStyleValueIsInfinity","isFinite","warnValidStyle$1","createDangerousStringForStyles","styles","serialized","delimiter","styleName","styleValue","setValueForStyles","setProperty","omittedCloseTags","area","base","br","col","embed","hr","img","keygen","link","meta","param","wbr","voidElementTags","menuitem","HTML$1","ReactDebugCurrentFrame$2","assertValidProps","suppressContentEditableWarning","isCustomComponent","possibleStandardNames","accept","acceptcharset","accesskey","allowfullscreen","alt","as","async","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","autosave","capture","cellpadding","cellspacing","challenge","charset","cite","class","classid","classname","cols","colspan","contenteditable","contextmenu","controls","controlslist","coords","crossorigin","dangerouslysetinnerhtml","defaultchecked","defaultvalue","defer","dir","download","draggable","enctype","formmethod","formaction","formenctype","formnovalidate","formtarget","frameborder","headers","high","href","hreflang","htmlfor","httpequiv","icon","innerhtml","inputmode","integrity","itemid","itemprop","itemref","itemscope","itemtype","keyparams","keytype","kind","label","lang","list","loop","low","manifest","marginwidth","marginheight","max","maxlength","media","mediagroup","method","minlength","muted","nomodule","nonce","novalidate","open","optimum","pattern","placeholder","playsinline","poster","preload","profile","radiogroup","readonly","referrerpolicy","rel","required","reversed","role","rows","rowspan","sandbox","scoped","scrolling","seamless","shape","sizes","span","spellcheck","src","srcdoc","srclang","srcset","summary","tabindex","title","usemap","wmode","wrap","about","accentheight","accumulate","additive","alignmentbaseline","allowreorder","alphabetic","amplitude","arabicform","ascent","attributename","attributetype","autoreverse","azimuth","basefrequency","baselineshift","baseprofile","bbox","begin","bias","by","calcmode","capheight","clip","clippath","clippathunits","cliprule","colorinterpolation","colorinterpolationfilters","colorprofile","colorrendering","contentscripttype","contentstyletype","cursor","cx","cy","datatype","decelerate","descent","diffuseconstant","direction","display","divisor","dominantbaseline","dur","dx","dy","edgemode","elevation","enablebackground","exponent","externalresourcesrequired","fill","fillopacity","fillrule","filter","filterres","filterunits","floodopacity","floodcolor","focusable","fontfamily","fontsize","fontsizeadjust","fontstretch","fontstyle","fontvariant","fontweight","fx","fy","g1","g2","glyphname","glyphorientationhorizontal","glyphorientationvertical","glyphref","gradienttransform","gradientunits","hanging","horizadvx","horizoriginx","ideographic","imagerendering","in2","in","inlist","intercept","k1","k2","k3","k4","k","kernelmatrix","kernelunitlength","kerning","keypoints","keysplines","keytimes","lengthadjust","letterspacing","lightingcolor","limitingconeangle","local","markerend","markerheight","markermid","markerstart","markerunits","markerwidth","mask","maskcontentunits","maskunits","mathematical","mode","numoctaves","operator","orient","orientation","origin","overflow","overlineposition","overlinethickness","paintorder","panose1","pathlength","patterncontentunits","patterntransform","patternunits","pointerevents","points","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","property","r","radius","refx","refy","renderingintent","repeatcount","repeatdur","requiredextensions","requiredfeatures","resource","restart","results","rotate","rx","ry","scale","security","seed","shaperendering","slope","spacing","specularconstant","specularexponent","speed","spreadmethod","startoffset","stddeviation","stemh","stemv","stitchtiles","stopcolor","stopopacity","strikethroughposition","strikethroughthickness","stroke","strokedasharray","strokedashoffset","strokelinecap","strokelinejoin","strokemiterlimit","strokewidth","strokeopacity","suppresscontenteditablewarning","suppresshydrationwarning","surfacescale","systemlanguage","tablevalues","targetx","targety","textanchor","textdecoration","textlength","textrendering","transform","typeof","u1","u2","underlineposition","underlinethickness","unicode","unicodebidi","unicoderange","unitsperem","unselectable","valphabetic","vectoreffect","vertadvy","vertoriginx","vertoriginy","vhanging","videographic","viewbox","viewtarget","visibility","vmathematical","vocab","widths","wordspacing","writingmode","x1","x2","xchannelselector","xheight","xlinkactuate","xlinkarcrole","xlinkhref","xlinkrole","xlinkshow","xlinktitle","xlinktype","xmlbase","xmllang","xmlns","xmlnsxlink","xmlspace","y1","y2","ychannelselector","z","zoomandpan","ariaProperties","warnedProperties","rARIA","rARIACamel","hasOwnProperty$2","validateProperty","ariaName","correctName","standardName","warnInvalidARIAProps","invalidProps","isValid","unknownPropString","validateProperties","didWarnValueNull","validateProperties$1","validateProperty$1","warnedProperties$1","_hasOwnProperty","EVENT_NAME_REGEX","INVALID_EVENT_NAME_REGEX","rARIA$1","rARIACamel$1","canUseEventSystem","isReserved","warnUnknownProperties","unknownProps","validateProperties$2","didWarnInvalidHydration","didWarnShadyDOM","DANGEROUSLY_SET_INNER_HTML","SUPPRESS_CONTENT_EDITABLE_WARNING","SUPPRESS_HYDRATION_WARNING$1","AUTOFOCUS","CHILDREN","STYLE","HTML","HTML_NAMESPACE","warnedUnknownTags","suppressHydrationWarning","validatePropertiesInDevelopment","warnForTextDifference","warnForPropDifference","warnForExtraAttributes","warnForInvalidEventListener","canDiffStyleForHydrationWarning","normalizeMarkupForTextOrAttribute","normalizeHTML","dialog","webview","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","markup","markupString","serverText","clientText","normalizedClientText","normalizedServerText","serverValue","clientValue","normalizedClientValue","normalizedServerValue","attributeNames","names","testElement","createElementNS","ensureListeningTo","rootContainerElement","isDocumentOrFragment","getOwnerDocumentFromRootContainer","noop","trapClickOnNonInteractiveElement","onclick","setInitialDOMProperties","domElement","nextProps","propKey","nextProp","nextHtml","canSetTextContent","updateDOMProperties","updatePayload","wasCustomComponentTag","div","createTextNode","setInitialProperties","rawProps","shadyRoot","onClick","diffProperties","lastRawProps","nextRawProps","lastProps","styleUpdates","lastStyle","lastProp","lastHtml","updateProperties","getPossibleStandardName","diffHydratedProperties","extraAttributeNames","attributes","serverHTML","expectedHTML","expectedStyle","isMismatchDueToBadCasing","ownNamespace","diffHydratedText","textNode","isDifferent","warnForUnmatchedText","warnForDeletedHydratableElement","warnForDeletedHydratableText","warnForInsertedHydratedElement","warnForInsertedHydratedText","restoreControlledState$1","validateDOMNesting","updatedAncestorInfo","specialTags","inScopeTags","buttonScopeTags","impliedEndTags","emptyAncestorInfo","formTag","aTagInScope","buttonTagInScope","nobrTagInScope","pTagInButtonScope","listItemTagAutoclosing","dlItemTagAutoclosing","oldInfo","ancestorInfo","isTagValidWithParent","parentTag","findInvalidAncestorForTag","didWarn","childTag","childText","parentInfo","invalidParent","invalidAncestor","invalidParentOrAncestor","ancestorTag","warnKey","tagDisplayName","whitespaceInfo","shim","supportsPersistence","cloneInstance","createContainerChildSet","appendChildToContainerChildSet","finalizeContainerChildren","replaceContainerChildren","SUPPRESS_HYDRATION_WARNING","eventsEnabled","selectionInformation","shouldAutoFocusHostComponent","autoFocus","getRootHostContext","rootContainerInstance","namespace","container","validatedTag","_ancestorInfo","getChildHostContext","parentHostContext","parentHostContextDev","_namespace","_ancestorInfo2","getPublicInstance","prepareForCommit","resetAfterCommit","createInstance","hostContext","internalInstanceHandle","hostContextDev","ownAncestorInfo","appendInitialChild","parentInstance","finalizeInitialChildren","prepareUpdate","oldProps","newProps","shouldSetTextContent","__html","shouldDeprioritizeSubtree","createTextInstance","isPrimaryRenderer","scheduleTimeout","cancelTimeout","noTimeout","supportsMutation","commitMount","commitUpdate","resetTextContent","commitTextUpdate","textInstance","oldText","newText","appendChildToContainer","insertBefore","beforeChild","insertInContainerBefore","removeChildFromContainer","supportsHydration","canHydrateInstance","canHydrateTextInstance","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","didNotMatchHydratedContainerTextInstance","parentContainer","didNotMatchHydratedTextInstance","parentProps","didNotHydrateContainerInstance","didNotHydrateInstance","didNotFindHydratableContainerInstance","didNotFindHydratableContainerTextInstance","didNotFindHydratableInstance","didNotFindHydratableTextInstance","reactEmoji","warningEmoji","supportsUserTiming","mark","clearMarks","measure","clearMeasures","currentFiber","currentPhase","currentPhaseFiber","isCommitting","hasScheduledUpdateInCurrentCommit","hasScheduledUpdateInCurrentPhase","commitCountInCurrentWorkLoop","effectCountInCurrentCommit","isWaitingForCallback","labelsInCurrentCommit","formatMarkName","markName","formatLabel","suffix","beginMark","clearMark","endMark","formattedMarkName","formattedLabel","getFiberMarkName","debugID","getFiberLabel","beginFiberMark","_debugID","clearFiberMark","endFiberMark","shouldIgnoreFiber","clearPendingPhaseMeasurement","pauseTimers","_debugIsCurrentlyTiming","resumeTimersRecursively","resumeTimers","recordEffect","recordScheduleUpdate","startRequestCallbackTimer","stopRequestCallbackTimer","didExpire","expirationTime","startWorkTimer","cancelWorkTimer","stopWorkTimer","stopFailedWorkTimer","startPhaseTimer","stopPhaseTimer","startWorkLoopTimer","nextUnitOfWork","stopWorkLoopTimer","interruptedBy","didCompleteRoot","startCommitTimer","clear","stopCommitTimer","startCommitSnapshotEffectsTimer","stopCommitSnapshotEffectsTimer","startCommitHostEffectsTimer","stopCommitHostEffectsTimer","startCommitLifeCyclesTimer","stopCommitLifeCyclesTimer","valueStack","fiberStack","createCursor","checkThatStackIsEmpty","resetStackAfterFatalErrorInDev","warnedAboutMissingGetChildContext","emptyContextObject","contextStackCursor","didPerformWorkStackCursor","previousContext","getUnmaskedContext","didPushOwnContextIfProvider","isContextProvider","cacheContext","unmaskedContext","maskedContext","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","getMaskedContext","contextTypes","hasContextChanged","childContextTypes","popContext","popTopLevelContextObject","pushTopLevelContextObject","didChange","processChildContext","parentContext","getChildContext","childContext","contextKey","pushContextProvider","memoizedMergedChildContext","__reactInternalMemoizedMergedChildContext","invalidateContextProvider","mergedContext","findCurrentUnmaskedContext","_Component","onCommitFiberRoot","onCommitFiberUnmount","hasLoggedError","catchErrors","isDevToolsPresent","__REACT_DEVTOOLS_GLOBAL_HOOK__","injectInternals","internals","hook","isDisabled","supportsFiber","rendererID","inject","onCommitRoot","onCommitUnmount","maxSigned31BitInt","NoWork","Sync","Never","UNIT_SIZE","MAGIC_NUMBER_OFFSET","msToExpirationTime","ms","expirationTimeToMs","ceiling","num","precision","computeExpirationBucket","expirationInMs","bucketSizeMs","LOW_PRIORITY_EXPIRATION","LOW_PRIORITY_BATCH_SIZE","computeAsyncExpiration","HIGH_PRIORITY_EXPIRATION","HIGH_PRIORITY_BATCH_SIZE","computeInteractiveExpiration","NoContext","AsyncMode","ProfileMode","hasBadMapPolyfill","nonExtensibleObject","preventExtensions","testMap","Map","testSet","debugCounter","FiberNode","pendingProps","memoizedProps","updateQueue","memoizedState","firstContextDependency","nextEffect","firstEffect","lastEffect","childExpirationTime","actualDuration","actualStartTime","selfBaseDuration","treeBaseDuration","createFiber","shouldConstruct","resolveLazyComponentTag","createWorkInProgress","createHostRootFiber","isAsync","createFiberFromElement","fiberTag","getTag","createFiberFromFragment","createFiberFromProfiler","elements","onRender","createFiberFromText","createFiberFromHostInstanceForDeletion","createFiberFromPortal","portal","pendingChildren","implementation","assignFiberPropertiesInDEV","createFiberRoot","hydrate","uninitializedFiber","earliestPendingTime","latestPendingTime","earliestSuspendedTime","latestSuspendedTime","latestPingedTime","pendingCommitExpirationTime","finishedWork","timeoutHandle","pendingContext","nextExpirationTimeToWorkOn","firstBatch","nextScheduledRoot","interactionThreadID","memoizedInteractions","pendingInteractionMap","ReactStrictModeWarnings","discardPendingWarnings","flushPendingDeprecationWarnings","flushPendingUnsafeLifecycleWarnings","recordDeprecationWarnings","recordUnsafeLifecycleWarnings","recordLegacyContextWarning","flushLegacyContextWarning","LIFECYCLE_SUGGESTIONS","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","pendingComponentWillMountWarnings","pendingComponentWillReceivePropsWarnings","pendingComponentWillUpdateWarnings","pendingUnsafeLifecycleWarnings","pendingLegacyContextWarning","didWarnAboutDeprecatedLifecycles","didWarnAboutUnsafeLifecycles","didWarnAboutLegacyContext","setToSortedString","sort","lifecycleWarningsMap","strictRoot","lifecyclesWarningMesages","lifecycle","lifecycleWarnings","componentNames","formatted","suggestion","sortedComponentNames","strictRootComponentStack","findStrictRoot","maybeStrictRoot","uniqueNames","sortedNames","_uniqueNames","_sortedNames","_uniqueNames2","_sortedNames2","componentWillMount","__suppressDeprecationWarning","componentWillReceiveProps","componentWillUpdate","warningsForRoot","unsafeLifecycles","fiberArray","ReactFiberInstrumentation","debugTool","ReactFiberInstrumentation_1","markPendingPriorityLevel","findNextExpirationTimeToWorkOn","markCommittedPriorityLevels","earliestRemainingTime","hasLowerPriorityWork","erroredExpirationTime","isPriorityLevelSuspended","markSuspendedPriorityLevel","suspendedTime","clearPing","markPingedPriorityLevel","pingedTime","completedTime","findEarliestOutstandingPriorityLevel","renderExpirationTime","earliestExpirationTime","didExpireAtExpirationTime","completedExpirationTime","UpdateState","ReplaceState","ForceUpdate","CaptureUpdate","hasForceUpdate","didWarnUpdateInsideUpdate","currentlyProcessingQueue","resetCurrentlyProcessingQueue","createUpdateQueue","baseState","queue","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstCapturedEffect","lastCapturedEffect","cloneUpdateQueue","currentQueue","createUpdate","payload","appendUpdateToQueue","update","enqueueUpdate","queue1","queue2","enqueueCapturedUpdate","workInProgressQueue","ensureWorkInProgressQueueIsAClone","getStateFromUpdate","prevState","_payload","_payload2","processUpdateQueue","newBaseState","newFirstUpdate","newExpirationTime","resultState","updateExpirationTime","_callback","newFirstCapturedUpdate","_updateExpirationTime","_callback2","resetHasForceUpdateBeforeProcessing","checkHasForceUpdateAfterProcessing","commitUpdateQueue","finishedQueue","commitUpdateEffects","effect","_callback3","createCapturedValue","valueCursor","rendererSigil","currentlyRenderingFiber","lastContextDependency","lastContextWithAllBitsObserved","resetContextDependences","pushProvider","providerFiber","popProvider","oldValue","changedBits","propagateContextChange","nextFiber","prepareToReadContext","resolvedObservedBits","contextItem","NO_CONTEXT","contextStackCursor$1","contextFiberStackCursor","rootInstanceStackCursor","requiredContext","getRootHostContainer","rootInstance","pushHostContainer","nextRootInstance","nextRootContext","popHostContainer","getHostContext","pushHostContext","nextContext","popHostContext","commitTime","profilerStartTime","getCommitTime","recordCommitTime","startProfilerTimer","stopProfilerTimerIfRunning","stopProfilerTimerIfRunningAndRecordDelta","overrideBaseTime","fakeInternalInstance","emptyRefsObject","didWarnAboutStateAssignmentForComponent","didWarnAboutUninitializedState","didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate","didWarnAboutLegacyLifecyclesAndDerivedState","didWarnAboutUndefinedDerivedState","warnOnUndefinedDerivedState","warnOnInvalidCallback$1","didWarnAboutDirectlyAssigningPropsToState","didWarnOnInvalidCallback","applyDerivedStateFromProps","getDerivedStateFromProps","classComponentUpdater","requestCurrentTime","computeExpirationForFiber","scheduleWork","checkShouldComponentUpdate","oldState","newState","nextLegacyContext","shouldComponentUpdate","shouldUpdate","checkClassInstance","renderPresent","noGetInitialStateOnES6","getInitialState","noGetDefaultPropsOnES6","noInstancePropTypes","noInstanceContextTypes","noComponentShouldUpdate","componentShouldUpdate","noComponentDidUnmount","componentDidUnmount","noComponentDidReceiveProps","componentDidReceiveProps","noComponentWillRecieveProps","componentWillRecieveProps","noUnsafeComponentWillRecieveProps","UNSAFE_componentWillRecieveProps","hasMutatedProps","noInstanceDefaultProps","getSnapshotBeforeUpdate","componentDidUpdate","noInstanceGetDerivedStateFromProps","noInstanceGetDerivedStateFromCatch","getDerivedStateFromCatch","noStaticGetSnapshotBeforeUpdate","_state","adoptClassInstance","_reactInternalInstance","constructClassInstance","isContextConsumer","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","_componentName","newApiName","callComponentWillMount","callComponentWillReceiveProps","mountClassInstance","componentDidMount","resumeMountClassInstance","oldContext","nextLegacyUnmaskedContext","hasNewLifecycles","updateClassInstance","didWarnAboutGenerators","didWarnAboutStringRefInStrictMode","ownerHasFunctionTypeWarning","warnForMissingKey","isArray$1","coerceRef","returnFiber","current$$1","mixedRef","stringRef","_stringRef","throwOnInvalidObjectType","newChild","warnOnFunctionType","ChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","last","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","existingChild","useFiber","clone","placeChild","newFiber","lastPlacedIndex","newIndex","oldIndex","placeSingleChild","updateTextNode","created","existing","updateElement","updatePortal","updateFragment","createChild","_created","_created2","_created3","updateSlot","oldFiber","updateFromMap","newIdx","matchedFiber","_matchedFiber","_matchedFiber2","_matchedFiber3","warnOnInvalidKey","knownKeys","reconcileChildrenArray","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","_newFiber","_newFiber2","reconcileChildrenIterator","newChildrenIterable","toStringTag","_newChildren","_step","_newFiber3","_newFiber4","reconcileSingleTextNode","reconcileSingleElement","_created4","reconcileSinglePortal","reconcileChildFibers","isUnkeyedTopLevelFragment","isObject","_isMockFunction","mountChildFibers","cloneChildFibers","currentChild","hydrationParentFiber","nextHydratableInstance","enterHydrationState","deleteHydratableInstance","insertNonHydratedInstance","_props","_text","tryHydrate","nextInstance","tryToClaimNextHydratableInstance","firstAttemptedInstance","prepareToHydrateHostInstance","prepareToHydrateHostTextInstance","popToNextHostParent","popHydrationState","resetHydrationState","readLazyComponentType","status","resolvedValue","defaultExport","ReactCurrentOwner$3","didWarnAboutBadClass","didWarnAboutGetDerivedStateOnFunctionalComponent","didWarnAboutStatelessRefs","reconcileChildren","nextChildren","updateForwardRef","currentRef","bailoutOnAlreadyFinishedWork","memoizeProps","updateMode","updateProfiler","markRef","updateFunctionalComponent","updateClassComponent","hasContext","finishClassComponent","didCaptureError","memoizeState","pushHostRootContext","updateHostRoot","prevChildren","nextState","updateHostComponent","prevProps","isDirectTextChild","updateHostText","resolveDefaultProps","baseProps","mountIndeterminateComponent","resolvedTag","resolvedProps","debugSource","updatePlaceholderComponent","alreadyCaptured","nextDidTimeout","fallback","updatePortalComponent","updateContextProvider","providerType","providerPropTypes","updateContextConsumer","unstable_observedBits","beginWork","_Component3","_Component4","_unresolvedProps","_thenable2","_Component5","_unresolvedProps2","_Component6","_unresolvedProps3","_thenable3","_Component7","_unresolvedProps4","_child2","_thenable","_Component2","unresolvedProps","markUpdate","markRef$1","appendAllChildren","updateHostContainer","updateHostComponent$1","updateHostText$1","currentHostContext","appendAllChildrenToContainer","containerChildSet","portalOrRoot","childrenUnchanged","newChildSet","currentInstance","recyclableInstance","newInstance","completeWork","fiberRoot","wasHydrated","_rootContainerInstance","_currentHostContext","_wasHydrated","showErrorDialog","capturedError","logCapturedError","logError","componentStack","errorBoundaryName","errorBoundaryFound","willRetry","componentNameMessage","errorBoundaryMessage","combinedMessage","didWarnAboutUndefinedSnapshotBeforeUpdate","boundary","errorInfo","errorBoundary","callComponentWillUnmountWithTimer","componentWillUnmount","safelyCallComponentWillUnmount","unmountError","captureCommitPhaseError","safelyDetachRef","refError","commitBeforeMutationLifeCycles","snapshot","didWarnSet","__reactInternalSnapshotBeforeUpdate","commitLifeCycles","finishedRoot","committedExpirationTime","_updateQueue","_instance","_instance2","timedOutAt","commitAttachRef","instanceToUse","commitDetachRef","commitUnmount","unmountHostComponents","emptyPortalContainer","commitNestedUnmounts","detachFiber","emptyChildSet","commitContainer","_pendingChildren","getHostParentFiber","isHostParent","getHostSibling","siblings","commitPlacement","parentFiber","isContainer","before","currentParentIsValid","currentParentIsContainer","findParent","commitDeletion","commitWork","commitResetTextContent","NoopComponent","createRootErrorUpdate","onUncaughtError","createClassErrorUpdate","componentDidCatch","markLegacyErrorBoundaryAsFailed","throwException","sourceFiber","_workInProgress","earliestTimeoutMs","startTimeMs","timeoutPropMs","delayMs","pingTime","onResolveOrReject","retrySuspendedRoot","absoluteTimeoutMs","earliestExpirationTimeMs","renderDidSuspend","renderDidError","_errorInfo","isAlreadyFailedLegacyErrorBoundary","_update","unwindWork","_effectTag","_effectTag2","_effectTag3","unwindInterruptedWork","interruptedWork","_childContextTypes","Dispatcher","ReactCurrentOwner$2","didWarnAboutStateTransition","didWarnSetStateChildContext","warnAboutUpdateOnUnmounted","warnAboutInvalidUpdates","lastUniqueAsyncExpiration","expirationContext","isWorking","nextRoot","nextRenderExpirationTime","nextLatestAbsoluteTimeoutMs","nextRenderDidError","isCommitting$1","legacyErrorBoundariesThatAlreadyFailed","suspenseDidTimeout","stashedWorkInProgressProperties","replayUnitOfWork","isReplayingFailedUnitOfWork","originalReplayError","rethrowOriginalError","failedUnitOfWork","thrownValue","isYieldy","workLoop","replayError","resetStack","commitAllHostEffects","primaryEffectTag","_current","_current2","commitBeforeMutationLifecycles","commitAllLifeCycles","commitRoot","updateExpirationTimeBeforeCommit","childExpirationTimeBeforeCommit","earliestRemainingTimeBeforeCommit","committedInteractions","scheduledInteractions","scheduledExpirationTime","_didError","_error","_didError2","_error2","onCommitWork","updateExpirationTimeAfterCommit","childExpirationTimeAfterCommit","earliestRemainingTimeAfterCommit","onCommit","computeThreadID","hasUnhandledError","unhandledError","resetChildExpirationTime","renderTime","newChildExpirationTime","shouldBubbleActualDurations","childUpdateExpirationTime","childChildExpirationTime","_childUpdateExpirationTime","_childChildExpirationTime","completeUnitOfWork","siblingFiber","onCompleteWork","_next","performUnitOfWork","onBeginWork","shouldYield","renderRoot","isExpired","didFatal","_didCompleteRoot","onFatal","_didCompleteRoot2","onYield","rootWorkInProgress","suspendedExpirationTime","rootExpirationTime","onSuspend","_suspendedExpirationTime","_rootExpirationTime","_suspendedExpirationTime2","currentTimeMs","msUntilTimeout","_rootExpirationTime2","onComplete","rootFiber","_errorInfo2","_update2","computeUniqueAsyncExpiration","isBatchingInteractiveUpdates","lowestPriorityPendingInteractiveExpirationTime","retryTime","scheduleWorkToRoot","storeInteractionsForExpirationTime","requestWork","updateInteractionCounts","pendingInteractions","nestedUpdateCount","NESTED_UPDATE_LIMIT","syncUpdates","previousExpirationContext","firstScheduledRoot","lastScheduledRoot","callbackExpirationTime","callbackID","isRendering","nextFlushedRoot","nextFlushedExpirationTime","deadlineDidExpire","deadline","isBatchingUpdates","isUnbatchingUpdates","completedBatches","originalStartTimeMs","currentRendererTime","currentSchedulerTime","lastCommittedRootDuringThisBatch","timeHeuristicForUnitOfWork","recomputeCurrentRendererTime","scheduleCallbackWithExpirationTime","currentMs","expirationTimeMs","performAsyncWork","onTimeout","flushRoot","findHighestPriorityRoot","addRootToSchedule","performWorkOnRoot","performSyncWork","remainingExpirationTime","highestPriorityWork","highestPriorityRoot","previousScheduledRoot","dl","performWork","minExpirationTime","finishRendering","batches","batch","_onComplete","completeRoot","_finishedWork","_timeoutHandle","_isYieldy","_expirationTime","_defer","batchedUpdates$1","previousIsBatchingUpdates","unbatchedUpdates","flushSync","interactiveUpdates$1","previousIsBatchingInteractiveUpdates","flushInteractiveUpdates$1","flushControlled","didWarnAboutNestedUpdates","getContextForSubtree","parentComponent","scheduleRootUpdate","updateContainerAtExpirationTime","onMountContainer","onUnmountContainer","onUpdateContainer","findHostInstance","hostFiber","createContainer","updateContainer","getPublicRootInstance","containerFiber","findHostInstanceWithNoPortals","injectIntoDevTools","devToolsConfig","findFiberByHostInstance","findHostInstanceByFiber","createPortal$1","topLevelUpdateWarnings","warnOnInvalidCallback","didWarnAboutUnstableCreatePortal","_reactRootContainer","hostInstance","_internalRoot","isRootRenderedBySomeReact","rootEl","getReactRootElementInContainer","hasNonRootReactChild","ReactBatch","_root","_callbacks","_didComplete","_hasChildren","_children","internalRoot","work","ReactWork","_onCommit","callbacks","commit","_didCommit","ReactRoot","unmount","legacy_renderSubtreeIntoContainer","createBatch","insertAfter","isValidContainer","shouldHydrateDueToLegacyHeuristic","rootElement","warnedAboutHydrateAPI","legacyCreateRootFromDOMContainer","forceHydrate","shouldHydrate","warned","rootSibling","legacyRenderSubtreeIntoContainer","originalCallback","_originalCallback","createPortal","ReactDOM","findDOMNode","componentOrElement","warnedAboutRefsInRender","unstable_renderSubtreeIntoContainer","containerNode","unmountComponentAtNode","renderedByDifferentReact","_rootEl","isContainerReactRoot","unstable_createPortal","unstable_batchedUpdates","unstable_interactiveUpdates","unstable_flushControlled","Events","unstable_createRoot","createRoot","foundDevTools","bundleType","rendererPackageName","navigator","userAgent","protocol","ReactDOM$2","ReactDOM$3","reactDom","checkDCE","black","white","_default","red","A100","A200","A400","A700","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","grey","blueGrey","_interopRequireDefault","_common","_red","_pink","_purple","_deepPurple","_indigo","_blue","_lightBlue","_cyan","_teal","_green","_lightGreen","_lime","_yellow","_amber","_orange","_deepOrange","_brown","_grey","_blueGrey","__DEV__","len","createGenerateClassName","_warning","safePrefix","classNamePrefix","_options$dangerouslyU","dangerouslyUseGlobalCSS","_options$productionPr","productionPrefix","_options$seed","ruleCounter","rule","styleSheet","_prefix","isMergeableObject","isNonNullObject","isSpecial","isReactElement","canUseSymbol","emptyTarget","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","mergeObject","destination","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","deepmergeAll","reduce","prev","deepmerge_1","isObjectObject","o","isPlainObject","prot","createBreakpoints","_extends2","_objectWithoutProperties2","breakpoints","_breakpoints$values","xs","sm","md","lg","xl","_breakpoints$unit","unit","_breakpoints$step","other","up","down","endIndex","upperbound","between","createMixins","_defineProperty2","_extends3","mixins","_toolbar","gutters","paddingLeft","paddingRight","toolbar","minHeight","convertHexToRGB","rgbToHex","decomposeColor","recomposeColor","getContrastRatio","getLuminance","emphasize","fade","darken","lighten","clamp","substr","re","colors","parseInt","intToHex","hex","_decomposeColor","marker","parseFloat","foreground","background","lumA","lumB","decomposedColor","rgb","pow","Number","toFixed","coefficient","createPalette","dark","light","_deepmerge","_colorManipulator","primary","secondary","hint","divider","paper","active","hover","hoverOpacity","disabledBackground","addLightOrDark","intent","shade","tonalOffset","main","palette","_palette$primary","_palette$secondary","_palette$error","_palette$type","_palette$contrastThre","contrastThreshold","_palette$tonalOffset","getContrastText","contrastText","contrast","augmentColor","mainShade","lightShade","darkShade","types","paletteOutput","createTypography","round","typography","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$fontWeightLight","fontWeightLight","_ref$fontWeightRegula","fontWeightRegular","_ref$fontWeightMedium","fontWeightMedium","_ref$htmlFontSize","htmlFontSize","allVariants","coef","pxToRem","display4","letterSpacing","marginLeft","display3","display2","display1","headline","subheading","body2","body1","caption","textTransform","shadowKeyUmbraOpacity","shadowKeyPenumbraOpacity","shadowAmbientShadowOpacity","createShadow","shadows","borderRadius","isNumber","isString","formatMs","duration","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","milliseconds","create","_options$duration","durationOption","_options$easing","easingOption","_options$delay","delay","animatedProp","getAutoHeightDuration","constant","mobileStepper","appBar","drawer","modal","snackbar","tooltip","_isPlainObject","_createBreakpoints","_createMixins","_createPalette","_createTypography","_shadows","_shape","_spacing","_transitions","_zIndex","createMuiTheme","_options$breakpoints","breakpointsInput","_options$mixins","mixinsInput","_options$palette","paletteInput","shadowsInput","_options$typography","typographyInput","muiTheme","overrides","transitions","_typeof","obj","getDynamicStyles","extracted","toCssValue","ignoreImportant","cssValue","_createClass","defineProperties","Constructor","protoProps","staticProps","_classCallCheck","SheetsRegistry","registry","sheet","splice","remove","attached","_warning2","__esModule","SheetsManager","sheets","manage","attach","unmanage","detach","toCss","_toCssValue","_toCssValue2","indentStr","str","indent","selector","_options$indent","fallbacks","_prop","_value","_prop2","_value2","allowEmpty","_extends","_toCss","_toCss2","StyleRule","isProcessed","Renderer","selectorText","renderer","jss","onChangeValue","isDefined","renderable","removeProperty","applyTo","json","toJSON","opts","hasChanged","setSelector","replaceRule","symbolObservablePonyfill","observable","global","Function","_symbolObservable","_symbolObservable2","cloneStyle","_isObservable","_isObservable2","typeOfStyle","newStyle","createRule","_StyleRule","_StyleRule2","_cloneStyle","_cloneStyle2","decl","declCopy","onCreateRule","linkRule","cssRule","rules","cssRules","CSS","env","_createRule","_createRule2","_linkRule","_linkRule2","_escape","_escape2","RuleList","_this","raw","_options","onUpdate","classes","_options2","generateClassName","className","register","unregister","process","onProcessRule","getUnescapedKeysMap","getKey","css","_SheetsRegistry","_SheetsRegistry2","_RuleList","_RuleList2","StyleSheet","deployed","linked","_name","deploy","addRule","insertRule","addRules","added","_name2","getRule","deleteRule","getRules","ns","_StyleSheet","_StyleSheet2","_moduleId","_moduleId2","maxRules","defaultPrefix","jssId","isBrowser","PluginsRegistry","hooks","onProcessStyle","onProcessSheet","nextStyle","processedValue","use","plugin","SimpleRule","KeyframesRule","frames","ConditionalRule","FontFaceRule","ViewportRule","_SimpleRule","_SimpleRule2","_KeyframesRule","_KeyframesRule2","_ConditionalRule","_ConditionalRule2","_FontFaceRule","_FontFaceRule2","_ViewportRule","_ViewportRule2","RuleClass","style$","subscribe","styleRule","_loop","_ret","fnValuesNs","fnStyleNs","fnStyle","_sheets","_sheets2","memoize","getPropertyValue","CSSRuleTypes","STYLE_RULE","KEYFRAMES_RULE","extractKey","cssText","getHead","head","getElementsByTagName","isAttached","_style","findHigherSheet","insertionPoint","findHighestSheet","findCommentNode","childNodes","findPrevNode","nextElementSibling","comment","insertStyle","prevNode","insertionPointElement","_parentNode","getNonce","querySelector","DomRenderer","hasInsertedRules","_index","newCssRule","VirtualRenderer","_isInBrowser","_isInBrowser2","_PluginsRegistry","_PluginsRegistry2","_rules","_rules2","_observables","_observables2","_functions","_functions2","_createGenerateClassName","_createGenerateClassName2","_createRule3","_DomRenderer","_DomRenderer2","_VirtualRenderer","_VirtualRenderer2","defaultPlugins","instanceCounter","Jss","setup","virtual","createStyleSheet","removeStyleSheet","ruleOptions","_getDynamicStyles","_SheetsManager","_Jss","_Jss2","_jssGlobal","_jssNested","_jssCamelCase","_jssDefaultUnit","_jssVendorPrefixer","_jssPropsSort","jssPreset","emptyFunctionThatReturnsNull","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bool","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","createElementTypeChecker","instanceOf","createInstanceTypeChecker","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","createShapeTypeChecker","exact","createStrictShapeTypeChecker","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propFullName","secret","cacheKey","chainedCheckType","expectedType","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","isNode","shapeTypes","allKeys","every","entry","isSymbol","createBroadcast","initialState","listeners","getState","currentId","unsubscribe","CHANNEL","_propTypes","themeListener","initial","subscriptionId","specialProperty","exactProp","unsupportedProps","_interopRequireWildcard","_classCallCheck2","_createClass2","_possibleConstructorReturn2","_getPrototypeOf2","_inherits2","_react","_brcast","_themeListener","_exactProp","MuiThemeProvider","_React$Component","broadcast","outerTheme","mergeOuterLocalTheme","theme","_this$props","sheetsManager","disableStylesGeneration","muiThemeProviderOptions","_this2","unsubscribeId","localTheme","createStyles","sheetsRegistry","managers","sheetOptions","_ns$jss$ns$sheetOptio","_ns","_propTypes2","_propTypes3","newObj","_defineProperty","getFunctionName","fnNameMatchRegex","getDisplayName","_getDisplayName","mergeClasses","baseClasses","newClasses","_options$noBase","noBase","accumulator","_typeof2","getStylesCreator","stylesOrCreator","themingEnabled","stylesWithOverrides","getThemeProps","params","_hoistNonReactStatics","_wrapDisplayName","_contextTypes","_jss","_jssPreset","_mergeClasses","_createMuiTheme","_getStylesCreator","_getThemeProps","indexCounter","noopTheme","defaultTheme","getDefaultTheme","withStyles","_options$withTheme","withTheme","_options$flip","flip","styleSheetOptions","stylesCreator","listenToTheme","WithStyles","stylesCreatorSaved","cacheClasses","lastJSS","oldTheme","getClasses","generate","sheetManager","sheetsManagerTheme","sheetManagerTheme","innerRef","more","Naked","WithTheme","_MuiThemeProvider","_createStyles","_withStyles","_withTheme","findIndex","find","createChainedFunction","pred","predType","funcs","acc","chainedFunction","_classnames","elevations","shadow","boxShadow","backgroundColor","rounded","Paper","classNameProp","square","_Paper","_helpers","backgroundColorDefault","flexDirection","boxSizing","positionFixed","position","right","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","colorPrimary","colorSecondary","AppBar","_classNames","_AppBar","alignItems","justifyContent","userSelect","textAlign","objectFit","Avatar","childrenProp","childrenClassNameProp","childrenClassName","imgProps","srcSet","_Avatar","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","componentDidUpdatePolyfill","maybeSnapshot","EXITING","ENTERED","ENTERING","EXITED","_reactDom","_reactLifecyclesCompat","_PropTypes","desc","_objectWithoutPropertiesLoose","excluded","sourceKeys","_inheritsLoose","subClass","superClass","__proto__","Transition","parentGroup","transitionGroup","appear","isMounting","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","_proto","nextIn","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","timeouts","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExited","onExit","onExiting","setNextCallback","_this4","handler","addEndListener","childProps","pt","timeoutsShape","getTransitionProps","reflow","_props$style","transitionDuration","transitionDelay","_getPrototypeOf3","_Transition","_utils","entering","entered","Fade","handleEnter","transitionProps","webkitTransition","handleExit","willChange","_Fade","bottom","WebkitTapHighlightColor","touchAction","invisible","Backdrop","_Backdrop","RADIUS","verticalAlign","badge","flexWrap","alignContent","textColor","colorError","Badge","badgeContent","ComponentProp","badgeClassName","_Badge","BottomNavigation","showLabels","childIndex","childValue","showLabel","_BottomNavigation","_ownerDocument","ownerWindow","parentView","detectFocusVisible","listenForFocusKeys","_keycode","internal","focusKeyPressed","keyUpEventTimeout","attempt","focusVisibleCheckTime","focusVisibleMaxCheckTimes","focusVisibleTimeout","FOCUS_KEYS","isFocusKey","handleKeyUpEvent","_ChildMapping","_assertThisInitialized","ReferenceError","childFactory","TransitionGroup","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","Ripple","visible","leaving","_classNames2","pulsate","rippleX","rippleY","rippleSize","_this$state","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","DELAY_RIPPLE","_toConsumableArray2","_assertThisInitialized2","_TransitionGroup","_Ripple","DURATION","pointerEvents","animationDuration","TouchRipple","_React$PureComponent","nextKey","ripples","_options$pulsate","_options$center","center","_options$fakeElement","fakeElement","ignoringMouseDown","rect","getBoundingClientRect","sqrt","sizeX","abs","clientWidth","sizeY","clientHeight","startTimerCommit","startCommit","startTimer","stop","createRippleHandler","handleEvent","ignore","disableTouchRipple","_ownerWindow","_focusVisible","_TouchRipple","_createRippleHandler","outline","border","margin","padding","textDecoration","borderStyle","focusVisible","ButtonBase","keyDown","handleMouseDown","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","onRippleRef","onFocusVisibleHandler","onFocusVisible","handleKeyDown","focusRipple","onKeyDown","handleKeyUp","onKeyUp","handleFocus","onFocus","disableRipple","_this$props2","buttonRef","centerRipple","focusVisibleClassName","onBlur","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","TouchRippleProps","buttonProps","lastDisabled","_ButtonBase","unsupportedProp","propFullNameSafe","_unsupportedProp","paddingTop","paddingBottom","minWidth","maxWidth","iconOnly","wrapper","BottomNavigationAction","handleChange","showLabelProp","labelClassName","_BottomNavigationAction","textPrimary","textSecondary","flat","flatPrimary","flatSecondary","outlined","outlinedPrimary","outlinedSecondary","contained","containedPrimary","containedSecondary","raised","raisedPrimary","raisedSecondary","fab","extendedFab","colorInherit","mini","sizeSmall","sizeLarge","fullWidth","Button","disableFocusRipple","variant","_Button","Card","_Card","focusHighlight","CardActionArea","_CardActionArea","cloneElementWithClassName","cloneChildrenWithClassName","isMuiElement","setRef","muiNames","muiName","_reactHelpers","CardActions","disableActionSpacing","_CardActions","CardContent","_CardContent","srOnly","alignLeft","alignCenter","alignRight","alignJustify","noWrap","textOverflow","whiteSpace","gutterBottom","marginBottom","paragraph","colorTextPrimary","colorTextSecondary","Typography","align","componentProp","headlineMapping","_Typography","avatar","marginRight","alignSelf","marginTop","subheader","CardHeader","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","_CardHeader","backgroundSize","backgroundRepeat","backgroundPosition","MEDIA_COMPONENTS","CardMedia","Boolean","isMediaComponent","composedStyle","backgroundImage","_CardMedia","IconButton","_IconButton","SwitchBase","muiFormControl","handleInputChange","checkedProp","checkedIcon","disabledProp","inputProps","inputRef","hasLabelFor","_inheritsLoose2","_setDisplayName","BaseComponent","factory","ShouldUpdate","_shouldUpdate","_shallowEqual","pure","hoc","colorAction","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeLarge","SvgIcon","nativeColor","titleAccess","viewBox","_SvgIcon","_pure","CheckBoxOutlineBlank","CheckBox","IndeterminateCheckBox","_SwitchBase","_CheckBoxOutlineBlank","_CheckBox","_IndeterminateCheckBox","indeterminate","Checkbox","indeterminateIcon","_Checkbox","Cancel","_Cancel","deleteIconColor","clickable","clickableColorPrimary","clickableColorSecondary","deletable","deletableColorPrimary","deletableColorSecondary","avatarColorPrimary","avatarColorSecondary","avatarChildren","iconColorPrimary","iconColorSecondary","deleteIcon","deleteIconColorPrimary","deleteIconColorSecondary","deleteIconOutlinedColorPrimary","deleteIconOutlinedColorSecondary","Chip","handleDeleteIconClick","onDelete","chipRef","blur","avatarProp","deleteIconProp","iconProp","tabIndexProp","_customClasses","customClasses","_Chip","SIZE","getRelativeValue","clampedValue","t","static","circle","circleStatic","circleIndeterminate","CircularProgress","thickness","circleStyle","rootStyle","rootProps","circumference","PI","_CircularProgress","_interopDefault","_possibleConstructorReturn","_getPrototypeOf","_inherits","_objectWithoutProperties","attr","passiveOption","cache","supportsPassiveOption","defaultEventOptions","passive","mergeDefaultEventOptions","getEventListenerArgs","on","off","forEachListener","iteratee","eventProps","withOptions","EventListener","applyListeners","onOrOff","_reactEventListener","ClickAwayListener","mounted","handleClickAway","onClickAway","mouseEvent","touchEvent","listenerProps","_ClickAwayListener","wrapperInner","Collapse","collapsedHeight","handleEntering","wrapperHeight","wrapperRef","_getTransitionProps","duration2","autoTransitionDuration","handleEntered","handleExiting","_getTransitionProps2","timer","_this$props3","muiSupportAuto","_Collapse","_styles","WebkitFontSmoothing","MozOsxFontSmoothing","CssBaseline","_CssBaseline","RootRef","rootRef","_RootRef","getContainer","defaultContainer","getOwnerDocument","Portal","getMountNode","mountNode","setMountNode","disablePortal","onRendered","parentElement","_Portal","isBody","isOverflowing","_isWindow","scrollHeight","getComputedStyle","innerWidth","ariaHidden","hideSiblings","showSiblings","BLACKLIST","isHidable","mount","show","_scrollbarSize","_isOverflowing","_manageAriaHidden","findIndexOf","idx","some","getPaddingRight","setContainerStyle","overflowing","scrollbarSize","fixedNodes","prevPaddings","removeContainerStyle","ModalManager","_options$hideSiblingN","hideSiblingNodes","_options$handleContai","handleContainerOverflow","modals","containers","modalIdx","containerIdx","isTopModal","_ModalManager","getHasTransition","Modal","handleRendered","modalRef","handleOpen","manager","handleDocumentKeyDown","enforceFocus","handleClose","restoreLastFocus","exited","handleBackdropClick","onBackdropClick","disableBackdropClick","onClose","onEscapeKeyDown","disableEscapeKeyDown","checkForFocus","lastFocus","disableEnforceFocus","currentActiveElement","dialogRef","disableAutoFocus","disableRestoreFocus","BackdropComponent","BackdropProps","hideBackdrop","keepMounted","hasTransition","_ref2","_Modal","scrollPaper","scrollBody","overflowY","overflowX","paperScrollPaper","maxHeight","paperScrollBody","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperFullWidth","paperFullScreen","Dialog","fullScreen","PaperProps","scroll","TransitionComponent","TransitionProps","_Dialog","DialogActions","_DialogActions","WebkitOverflowScrolling","DialogContent","_DialogContent","DialogContentText","_DialogContentText","DialogTitle","_DialogTitle","absolute","inset","Divider","_Divider","setTranslateValue","_debounce","GUTTER","getTranslateValue","fakeTransform","computedStyle","offsetX","offsetY","transformValues","webkitTransform","Slide","handleResize","transitionRef","updatePosition","onResize","_Slide","isHorizontal","getAnchor","oppositeDirection","anchor","docked","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","borderRight","paperAnchorDockedTop","borderBottom","paperAnchorDockedRight","borderLeft","paperAnchorDockedBottom","borderTop","Drawer","anchorProp","_this$props$ModalProp","ModalProps","BackdropPropsProp","SlideProps","slidingDrawer","_Drawer","edgeFix","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","expanded","ExpansionPanel","defaultExpanded","CollapsePropsProp","CollapseProps","expandedProp","_ExpansionPanel","ExpansionPanelActions","_ExpansionPanelActions","ExpansionPanelDetails","_ExpansionPanelDetails","focused","expandIcon","ExpansionPanelSummary","IconButtonProps","_ExpansionPanelSummary","ROWS_HEIGHT","textarea","resize","font","Textarea","syncHeightWithShadow","handleRefInput","textareaRef","handleRefSinglelineShadow","singlelineShadowRef","handleRefShadow","shadowRef","newHeight","rowsMax","hasValue","isFilled","isAdornedStart","SSR","startAdornment","formControlState","_Textarea","placeholderHidden","placeholderVisible","formControl","adornedStart","adornedEnd","marginDense","multiline","inputMarginDense","inputMultiline","inputType","inputTypeSearch","inputAdornedStart","inputAdornedEnd","states","InputBase","checkDirty","refProp","handleClick","onFilled","onEmpty","autoComplete","endAdornment","inputComponent","_this$props2$inputPro","inputPropsClassName","inputPropsProp","renderPrefix","fcs","inputClassName","InputComponent","_InputBase","bottomLineColor","underline","borderBottomColor","FilledInput","_FilledInput","marginNormal","FormControl","handleDirty","filled","handleClean","_FormControl","labelPlacementStart","FormControlLabel","control","labelPlacement","controlProps","_FormControlLabel","row","FormGroup","_FormGroup","FormHelperText","_FormHelperText","asterisk","FormLabel","_FormLabel","requirePropFactory","componentNameInError","requireProp","requiredProp","_requirePropFactory","GUTTERS","GRID_SIZES","generateGrid","globalStyles","breakpoint","flexBasis","generateGutter","zeroMinWidth","Grid","justify","StyledGrid","_Grid","listStyle","GridList","cellHeight","childCols","childRows","_GridList","tile","imgFullHeight","imgFullWidth","GridListTile","fit","imgElement","complete","offsetWidth","offsetHeight","_imgElement$classList","_imgElement$classList2","classList","_imgElement$classList3","_imgElement$classList4","ensureImageCover","_GridListTile","titlePositionBottom","titlePositionTop","rootSubtitle","titleWrap","titleWrapActionPosLeft","titleWrapActionPosRight","subtitle","actionIcon","actionIconActionPosLeft","GridListTileBar","actionPosition","titlePosition","actionPos","titleWrapClassName","_GridListTileBar","getScale","Grow","autoTimeout","_Grow","isWidthDown","isWidthUp","_getThemeProps2","inclusive","withWidth","withThemeOption","_options$noSSR","noSSR","initialWidthOption","initialWidth","_options$resizeInterv","resizeInterval","WithWidth","getWidth","currentWidth","_exportNames","_withWidth","HiddenJs","_breakpoint","breakpointUp","breakpointDown","lgDown","lgUp","mdDown","mdUp","smDown","smUp","xlDown","xlUp","xsDown","xsUp","HiddenCss","classNames","onlyBreakpoints","_HiddenJs","_HiddenCss","Hidden","_Hidden","Icon","_Icon","Input","disableUnderline","_Input","positionStart","positionEnd","InputAdornment","_InputAdornment","transformOrigin","shrink","animated","InputLabel","disableAnimation","FormLabelClasses","marginProp","shrinkProp","variantProp","_InputLabel","TRANSITION_DURATION","buffer","query","dashed","dashedColorPrimary","dashedColorSecondary","bar","barColorPrimary","barColorSecondary","bar1Indeterminate","bar1Determinate","bar1Buffer","bar2Indeterminate","animationDelay","bar2Determinate","bar2Buffer","LinearProgress","_classNames3","_classNames4","valueBuffer","dashedClass","bar1ClassName","bar2ClassName","inlineStyles","bar1","bar2","_LinearProgress","dense","List","disablePadding","_List","backgroundClip","secondaryAction","ListItem","ContainerComponent","_this$props$Container","ContainerProps","ContainerClassName","disableGutters","isDense","hasAvatar","hasSecondaryAction","componentProps","_ListItem","ListItemAvatar","_ListItemAvatar","ListItemIcon","_ListItemIcon","ListItemSecondaryAction","_ListItemSecondaryAction","textDense","ListItemText","primaryProp","primaryTypographyProps","secondaryProp","secondaryTypographyProps","_ListItemText","sticky","ListSubheader","disableSticky","_ListSubheader","getOffsetTop","vertical","getOffsetLeft","horizontal","getTransformOriginValue","getScrollParent","getAnchorEl","anchorEl","Popover","handleGetOffsetTop","handleGetOffsetLeft","setPositioningStyles","paperRef","positioning","getPositioningStyle","anchorReference","marginThreshold","contentAnchorOffset","getContentAnchorOffset","elemRect","getTransformOrigin","getAnchorOffset","containerWindow","heightThreshold","innerHeight","widthThreshold","diff","_diff","_diff2","_diff3","anchorOrigin","anchorPosition","anchorElement","anchorRect","anchorVertical","getContentAnchorEl","contentAnchorEl","offsetTop","_this$props4","containerProp","ModalClasses","transitionDurationProp","_Popover","MenuList","currentTabIndex","blurTimer","listRef","currentFocus","resetTabIndex","selectedItemRef","previousElementSibling","handleItemFocus","setTabIndex","items","currentFocusIndex","_MenuList","RTL_ORIGIN","LTR_ORIGIN","menuListRef","menuList","disableAutoFocusItem","handleListKeyDown","MenuListProps","_this$props2$PaperPro","PopoverClasses","_Menu","MenuItem","_MenuItem","positionBottom","positionTop","dots","dot","dotActive","progress","MobileStepper","activeStep","backButton","LinearProgressProps","nextButton","steps","dotClassName","ceil","_MobileStepper","NativeSelectInput","IconComponent","ArrowDropDown","_NativeSelectInput","_ArrowDropDown","textShadow","selectMenu","NativeSelect","_NativeSelect","NoSsr","_NoSsr","borderWidth","borderColor","legend","NotchedOutline","labelWidthProp","labelWidth","notched","_NotchedOutline","notchedOutline","OutlinedInput","_OutlinedInput","longerTimeoutBrowsers","timeoutDuration","microtaskDebounce","called","Promise","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getType","getStyleComputedProperty","getParentNode","host","isIE11","MSInputMethodContext","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","Node","DOCUMENT_POSITION_FOLLOWING","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","modifier","getBordersSize","axis","sideA","sideB","getSize","getWindowSizes","getClientRect","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","el","getBoundaries","popper","reference","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","cur","runModifiers","modifiers","ends","modifiersToRun","isDestroyed","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","upperProp","toCheck","destroy","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","setupEventListeners","updateBound","scrollElement","enableEventListeners","scheduleUpdate","removeEventListeners","isNumeric","setStyles","setAttributes","applyStyle","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","prefixedProperty","invertTop","invertLeft","arrow","isModifierRequired","requestingName","requestedName","requesting","requested","isVertical","sideCapitalized","altSide","opSide","arrowElementSize","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","validPlacements","placements","clockwise","counter","reverse","BEHAVIORS","flipped","placementOpposite","flipOrder","behavior","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","transformProp","popperStyles","priority","escapeWithReference","shift","shiftvariation","shiftOffsets","hide","bound","subtractLength","Popper","debounce","Defaults","jquery","onLoad","Utils","PopperUtils","_popper","flipPlacement","_this$props$popperOpt","popperOptions","popperNode","handlePopperUpdate","placementProps","_Popper","RadioButtonUnchecked","RadioButtonChecked","_RadioButtonUnchecked","_RadioButtonChecked","Radio","_Radio","RadioGroup","radios","focusRadios","selectedRadio","handleRadioChange","_RadioGroup","SelectInput","ignoreNextBlur","isOpenControlled","onOpen","menuMinWidth","autoWidth","displayRef","handleItemClick","itemIndex","handleDisplayRef","handleInputRef","nodeProxy","displayEmpty","_this$props3$MenuProp","MenuProps","openProp","renderValue","SelectDisplayProps","_this$props3$type","displaySingle","displayMultiple","computeDisplay","_SelectInput","Select","native","_Select","emphasis","SnackbarContent","_SnackbarContent","_extends8","gutter","topSpace","bottomSpace","rightSpace","leftSpace","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft","Snackbar","handleMouseEnter","onMouseEnter","handlePause","handleResume","timerAutoHide","autoHideDuration","resumeHideDuration","setAutoHideTimer","autoHideDurationBefore","autoHideDurationAfter","_this$props$anchorOri","ClickAwayListenerProps","ContentProps","disableWindowBlurListener","_Snackbar","alternativeLabel","completed","Step","connector","_Step","CheckCircle","Warning","_CheckCircle","_Warning","StepIcon","textAnchor","_StepIcon","iconContainer","labelContainer","StepLabel","optional","StepIconComponentProp","StepIconComponent","StepIconProps","_StepLabel","touchRipple","StepButton","_StepButton","line","lineHorizontal","borderTopStyle","lineVertical","borderLeftStyle","StepConnector","_StepConnector","StepContent","_StepContent","Stepper","connectorProp","nonLinear","childrenArray","_Stepper","anchorLeft","anchorRight","anchorTop","anchorBottom","SwipeArea","_SwipeArea","UNCERTAINTY_THRESHOLD","nodeThatClaimedTheSwipe","SwipeableDrawer","isSwiping","handleBodyTouchStart","disableDiscovery","disableSwipeToOpen","swipeAreaWidth","currentX","currentY","startX","startY","maybeSwiping","setPosition","getMaxTranslate","changeTransition","velocity","lastTime","lastTranslate","handleBodyTouchMove","handleBodyTouchEnd","horizontalSwipe","translate","getTranslate","removeBodyTouchListeners","translateRatio","minFlingVelocity","hysteresis","handleBackdropRef","backdropRef","handlePaperRef","listenTouchStart","prevVariant","removeTouchStart","_options$mode","_options$changeTransi","rtlTranslateMultiplier","drawerStyle","disableBackdropTransition","backdropStyle","_this$props2$ModalPro","ModalPropsProp","_SwipeableDrawer","iconChecked","switchBase","Switch","_Switch","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","labelWrapped","Tab","checkTextWrap","labelRef","getClientRects","indicator","labelProp","_Tab","borderCollapse","borderSpacing","Table","table","_Table","TableBody","tablelvl2","_TableBody","footer","numeric","paddingDense","paddingCheckbox","paddingNone","TableCell","sortDirection","paddingProp","scopeProp","ariaSort","_TableCell","TableFooter","_TableFooter","TableHead","_TableHead","regular","Toolbar","_Toolbar","KeyboardArrowLeft","KeyboardArrowRight","_KeyboardArrowLeft","_KeyboardArrowRight","_ref3","_ref4","TablePaginationActions","handleBackButtonClick","onChangePage","page","handleNextButtonClick","backIconButtonProps","nextIconButtonProps","rowsPerPage","_TablePaginationActions","spacer","selectRoot","selectIcon","menuItem","actions","TablePagination","newLastPage","ActionsComponent","colSpanProp","colSpan","labelDisplayedRows","labelRowsPerPage","onChangeRowsPerPage","rowsPerPageOptions","SelectProps","rowsPerPageOption","_TablePagination","TableRow","_TableRow","ArrowDownward","_ArrowDownward","iconDirectionDesc","iconDirectionAsc","TableSortLabel","hideSortIcon","_TableSortLabel","easeInOutSin","sin","animate","_options$ease","ease","cancelled","msOverflowStyle","ScrollbarSize","prevHeight","scrollbarHeight","prevWidth","scrollbarWidth","setMeasurements","nodeRef","TabIndicator","TabScrollButton","_normalizeScrollLeft","_animate","_ScrollbarSize","_TabIndicator","_TabScrollButton","flexContainer","centered","scroller","fixed","scrollable","scrollButtons","scrollButtonsAuto","Tabs","valueToIndex","updateIndicatorState","updateScrollButtonState","handleTabsScroll","indicatorStyle","scrollerStyle","showLeftScroll","showRightScroll","getConditionalElements","ScrollButtonComponent","conditionalElements","scrollbarSizeListener","handleScrollbarSizeChange","showScrollButtons","scrollButtonLeft","handleLeftScrollClick","scrollButtonRight","handleRightScrollClick","getTabsMeta","tabsMeta","tabsRef","scrollLeftNormalized","getNormalizedScrollLeft","scrollWidth","tabMeta","tab","moveTabsScroll","delta","multiplier","nextScrollLeft","invert","detectScrollType","scrollSelectedIntoView","_this$getTabsMeta","_nextScrollLeft","_this$tabsRef","updateIndicator","_this$getTabsMeta2","correction","indicatorColor","_this$props4$TabIndic","TabIndicatorProps","flexContainerClassName","scrollerClassName","onScroll","_Tabs","variantComponent","TextField","labelNode","FormHelperTextProps","helperText","InputLabelProps","InputProps","InputMore","helperTextId","InputElement","htmlFor","_TextField","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","Tooltip","ignoreNonTouchEvents","onRootRef","childrenRef","focusTimer","childrenProps","enterDelay","onMouseOver","enterTimer","leaveTimer","handleLeave","leaveDelay","closeTimer","enterTouchDelay","touchTimer","leaveTouchDelay","defaultId","_this$props5","disableFocusListener","disableHoverListener","disableTouchListener","PopperProps","placementInner","TransitionPropsInner","_Tooltip","withMobileDialog","_options$breakpoint","WithMobileDialog","_withMobileDialog","Zoom","_Zoom","setTimeoutFunc","thisArg","_handled","_deferreds","doResolve","handle","deferred","_immediateFn","onFulfilled","onRejected","promise","ret","finale","_unhandledRejectionFn","Handler","reason","prom","res","race","setImmediate","globalNS","createCommonjsModule","_global","__g","_core","core","__e","_core_1","_isObject","it","_anObject","_fails","exec","_descriptors","_domCreate","_ie8DomDefine","_toPrimitive","S","valueOf","dP","O","P","Attributes","_objectDp","_propertyDesc","bitmap","_hide","_has","px","_uid","_redefine","SRC","TO_STRING","$toString","TPL","inspectSource","safe","_aFunction","_ctx","that","PROTOTYPE","$export","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","expProto","own","out","exp","U","W","R","_export","_cof","_iobject","_defined","_toObject","_toInteger","_toLength","_isArray","SHARED","store","_shared","_wks","USE_SYMBOL","$exports","SPECIES","_arraySpeciesConstructor","original","C","_arraySpeciesCreate","_arrayMethods","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","UNSCOPABLES","ArrayProto","_addToUnscopables","$find","KEY","forced","$find$1","KEY$1","forced$1","_toIobject","min$1","_toAbsoluteIndex","_arrayIncludes","IS_INCLUDES","fromIndex","shared","_sharedKey","arrayIndexOf","IE_PROTO","_objectKeysInternal","_enumBugKeys","_objectKeys","f$1","_objectGops","f$2","_objectPie","$assign","_objectAssign","A","K","T","aLen","getSymbols","isEnum","j","MATCH","_isRegexp","isRegExp","_stringContext","searchString","NAME","MATCH$1","_failsIsRegexp","STARTS_WITH","$startsWith","startsWith","_stringRepeat","Infinity","RangeError","_meta","META","setDesc","isExtensible","FREEZE","setMeta","w","fastKey","getWeak","onFreeze","NEED","_meta_1","_meta_2","_meta_3","_meta_4","_meta_5","def","TAG","_setToStringTag","stat","f$3","_wksExt","_library","_wksDefine","$Symbol","_enumKeys","_objectDps","Properties","document$1","_html","IE_PROTO$1","Empty","PROTOTYPE$1","createDict","iframe","lt","gt","iframeDocument","contentWindow","write","close","_objectCreate","hiddenKeys","f$4","_objectGopn","gOPN","toString$1","windowNames","getWindowNames","f$5","_objectGopnExt","gOPD","f$6","_objectGopd","gOPD$1","dP$1","gOPN$1","$JSON","_stringify","PROTOTYPE$2","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","sym","_k","$defineProperty","$defineProperties","l","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","replacer","$replacer","TAG$1","ARG","tryGet","_classof","callee","_stringAt","pos","charCodeAt","_iterators","IteratorPrototype","_iterCreate","IE_PROTO$2","ObjectProto$1","_objectGpo","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","_iterDefine","Base","DEFAULT","IS_SET","FORCED","getMethod","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","methods","$at","iterated","_t","point","_iterStep","es6_array_iterator","Arguments","ITERATOR$1","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","extendStatics","setPrototypeOf","p","__extends","__","__assign","__rest","__decorate","decorators","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","generator","fulfilled","rejected","__generator","sent","trys","verb","v","__exportStar","m","__values","__read","ar","__spread","__await","__asyncGenerator","asyncIterator","q","resume","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__importStar","mod","__importDefault","instances","LogLevel","defaultLogLevel","INFO","defaultLogHandler","logType","logLevel","toISOString","DEBUG","log","VERBOSE","WARN","ERROR","Logger","_logLevel","_logHandler","debug","setLogLevel","level","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","draining","queueIndex","cleanUpNextTick","drainQueue","run","nextTick","Item","browser","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","fb","firebase","initializeApp","database","typeOf","$$typeofType","Element","isAsyncMode","isElement","isForwardRef","isFragment","isProfiler","isPortal","isStrictMode","unsubscribeFromContext","SendChickenStyled","styled","SendChicken","handleChickenClick","today","userID","todayUsers","includes","orderByValue","equalTo","clicked","alert","response","userName","chickenimage","createSvgIcon","_createSvgIcon","ChangeNicknameDialog","saveNickname","nickname","user","EnterKipName","users","reload","CurrentKipBoiz","changeNickname","showNicknameDialog","selectedUser","currentDate","kipboiInfo","kipboiKeys","kipboiArr","allKipboiz","App","getUserInfo","getUID","dates","getElementById","hot"],"mappings":"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EjG;;;;;AAGA,IAAIxC,MAAM,GAAGxnG,OAAO,CAACwnG,MAAR,GAAiB,SAASA,MAAT,CAAgBxxF,OAAhB,EAAyB;AACrD,SAAO,IAAImiG,KAAK,CAAC,SAAD,CAAT,CAAqBniG,OAArB,CAAP;AACD,CAFD;AAIA;;;;;AAGAhW,OAAO,CAAC,SAAD,CAAP,GAAqBwnG,MAAM,EAA3B;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9LA;;;;;;;;AASA;AAEA;;;;;;;AAOA,IAAIn9F,OAAO,GAAG,YAAW,CAAE,CAA3B;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzCA,EAAAA,OAAO,GAAG,UAAS7G,SAAT,EAAoBF,MAApB,EAA4BS,IAA5B,EAAkC;AAC1C,QAAI+3F,GAAG,GAAGv7F,SAAS,CAACC,MAApB;AACAuD,IAAAA,IAAI,GAAG,IAAIM,KAAJ,CAAUy3F,GAAG,GAAG,CAAN,GAAUA,GAAG,GAAG,CAAhB,GAAoB,CAA9B,CAAP;;AACA,SAAK,IAAIr7F,GAAG,GAAG,CAAf,EAAkBA,GAAG,GAAGq7F,GAAxB,EAA6Br7F,GAAG,EAAhC,EAAoC;AAClCsD,MAAAA,IAAI,CAACtD,GAAG,GAAG,CAAP,CAAJ,GAAgBF,SAAS,CAACE,GAAD,CAAzB;AACD;;AACD,QAAI6C,MAAM,KAAK3E,SAAf,EAA0B;AACxB,YAAM,IAAIwC,KAAJ,CACJ,8DACA,kBAFI,CAAN;AAID;;AAED,QAAImC,MAAM,CAAC9C,MAAP,GAAgB,EAAhB,IAAuB,UAAD,CAAa8H,IAAb,CAAkBhF,MAAlB,CAA1B,EAAqD;AACnD,YAAM,IAAInC,KAAJ,CACJ,iEACA,uDADA,GAC0DmC,MAFtD,CAAN;AAID;;AAED,QAAI,CAACE,SAAL,EAAgB;AACd,UAAIQ,QAAQ,GAAG,CAAf;AACA,UAAIhD,OAAO,GAAG,cACZsC,MAAM,CAACW,OAAP,CAAe,KAAf,EAAsB,YAAW;AAC/B,eAAOF,IAAI,CAACC,QAAQ,EAAT,CAAX;AACD,OAFD,CADF;;AAIA,UAAI,OAAO/C,OAAP,KAAmB,WAAvB,EAAoC;AAClCA,QAAAA,OAAO,CAACC,KAAR,CAAcF,OAAd;AACD;;AACD,UAAI;AACF;AACA;AACA,cAAM,IAAIG,KAAJ,CAAUH,OAAV,CAAN;AACD,OAJD,CAIE,OAAMI,CAAN,EAAS,CAAE;AACd;AACF,GAnCD;AAoCD;;AAEDrB,MAAM,CAACC,OAAP,GAAiBqK,OAAjB;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;;AAEA,IAAImwF,sBAAsB,GAAG35F,OAAO,CAAC,8CAAD,CAApC;;AAEAzC,MAAM,CAAC+I,cAAP,CAAsBnH,OAAtB,EAA+B,YAA/B,EAA6C;AAC3C6L,EAAAA,KAAK,EAAE;AADoC,CAA7C;AAGA7L,OAAO,CAACqU,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAI+jG,UAAU,GAAG5d,sBAAsB,CAAC35F,OAAO,CAAC,YAAD,CAAR,CAAvC;;AAEA,IAAIw3G,UAAU,GAAG7d,sBAAsB,CAAC35F,OAAO,CAAC,YAAD,CAAR,CAAvC;;AAEA,IAAIy3G,aAAa,GAAG9d,sBAAsB,CAAC35F,OAAO,CAAC,gBAAD,CAAR,CAA1C;;AAEA,IAAI03G,eAAe,GAAG/d,sBAAsB,CAAC35F,OAAO,CAAC,kBAAD,CAAR,CAA5C;;AAEA,IAAI23G,kBAAkB,GAAGhe,sBAAsB,CAAC35F,OAAO,CAAC,qBAAD,CAAR,CAA/C;;AAEA,IAAI43G,aAAa,GAAGje,sBAAsB,CAAC35F,OAAO,CAAC,gBAAD,CAAR,CAA1C,EAEA;AACA;;;AACA,SAAS63G,SAAT,GAAqB;AACnB,SAAO;AACL96F,IAAAA,OAAO,EAAE,CAAC,CAAC,GAAGw6F,UAAU,CAAC/jG,OAAf,GAAD,EAA4B,CAAC,GAAGgkG,UAAU,CAAChkG,OAAf,GAA5B,EAAuD,CAAC,GAAGikG,aAAa,CAACjkG,OAAlB,GAAvD,EAAqF,CAAC,GAAGkkG,eAAe,CAAClkG,OAApB,GAArF,EAAqH,CAAC,GAAGmkG,kBAAkB,CAACnkG,OAAvB,GAArH,EAAwJ,CAAC,GAAGokG,aAAa,CAACpkG,OAAlB,GAAxJ;AADJ,GAAP;AAGD;;AAED,IAAI2kF,QAAQ,GAAG0f,SAAf;AACA14G,OAAO,CAACqU,OAAR,GAAkB2kF,QAAlB;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;;;;;;AAOA;;AAEA,IAAIl6F,MAAM,GAAG+B,OAAO,CAAC,eAAD,CAApB;;AAEA,IAAID,oBAAoB,GAAGC,OAAO,CAAC,4BAAD,CAAlC;;AACA,IAAIQ,cAAc,GAAGR,OAAO,CAAC,kBAAD,CAA5B;;AAEA,IAAIF,YAAY,GAAG,YAAW,CAAE,CAAhC;;AAEA,IAAI,kBAAyB,YAA7B,EAA2C;AACzCA,EAAAA,YAAY,GAAG,UAASI,IAAT,EAAe;AAC5B,QAAIC,OAAO,GAAG,cAAcD,IAA5B;;AACA,QAAI,OAAOE,OAAP,KAAmB,WAAvB,EAAoC;AAClCA,MAAAA,OAAO,CAACC,KAAR,CAAcF,OAAd;AACD;;AACD,QAAI;AACF;AACA;AACA;AACA,YAAM,IAAIG,KAAJ,CAAUH,OAAV,CAAN;AACD,KALD,CAKE,OAAOI,CAAP,EAAU,CAAE;AACf,GAXD;AAYD;;AAED,SAASu3G,4BAAT,GAAwC;AACtC,SAAO,IAAP;AACD;;AAED54G,MAAM,CAACC,OAAP,GAAiB,UAAS0M,cAAT,EAAyBksG,mBAAzB,EAA8C;AAC7D;AACA,MAAIC,eAAe,GAAG,OAAO32G,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACa,QAA7D;AAC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,CAACtoG,OAAX,CAAmB8kG;AAlCyC,CAAxC,GAmCzB,EAnCJ;AAoCAoS,gBAAgB,CAACp/G,YAAjB,GAAgC;AAC9Bq/G,EAAAA,UAAU,EAAE;AADkB,CAAhC;;AAIA,IAAIxyB,QAAQ,GAAG,CAAC,GAAGypB,WAAW,CAACpuG,OAAhB,EAAyB2kC,MAAzB,EAAiC;AAC9Cp3C,EAAAA,IAAI,EAAE;AADwC,CAAjC,EAEZ2pH,gBAFY,CAAf;;AAIAvrH,OAAO,CAACqU,OAAR,GAAkB2kF,QAAlB;;AC/GA;;AAEA,IAAIwB,sBAAsB,GAAG35F,OAAO,CAAC,8CAAD,CAApC;;AAEAzC,MAAM,CAAC+I,cAAP,CAAsBnH,OAAtB,EAA+B,YAA/B,EAA6C;AAC3C6L,EAAAA,KAAK,EAAE;AADoC,CAA7C;AAGAzN,MAAM,CAAC+I,cAAP,CAAsBnH,OAAtB,EAA+B,SAA/B,EAA0C;AACxC2L,EAAAA,UAAU,EAAE,IAD4B;AAExCvE,EAAAA,GAAG,EAAE,SAASA,GAAT,GAAe;AAClB,WAAOwkH,iBAAiB,CAACv3G,OAAzB;AACD;AAJuC,CAA1C;;AAOA,IAAIu3G,iBAAiB,GAAGpxB,sBAAsB,CAAC35F,OAAO,CAAC,oBAAD,CAAR,CAA9C;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AACA;;ACVA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;;AAEA5sH,OAAO,CAACmrG,UAAR,GAAqB,IAArB;AACAnrG,OAAO,CAACqU,OAAR,GAAkB,KAAK,CAAvB;;AAEA,IAAIsoG,UAAU,GAAGniB,sBAAsB,CAAC35F,OAAO,CAAC,YAAD,CAAR,CAAvC;;AAEA,IAAI28G,MAAM,GAAGhjB,sBAAsB,CAAC35F,OAAO,CAAC,OAAD,CAAR,CAAnC;;AAEA,IAAIulH,sBAAsB,GAAGvlH,OAAO,CAAC,yBAAD,CAApC;;AAEA,IAAIgsH,aAAa,GAAGhsH,OAAO,CAAC,sBAAD,CAA3B;;AAEA,SAAS25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AAtB,EAA+B,SAA/B,EAA0C;AACxC2L,EAAAA,UAAU,EAAE,IAD4B;AAExCvE,EAAAA,GAAG,EAAE,SAASA,GAAT,GAAe;AAClB,WAAO+3H,iBAAiB,CAAC9qH,OAAzB;AACD;AAJuC,CAA1C;;AAOA,IAAI8qH,iBAAiB,GAAG3kC,sBAAsB,CAAC35F,OAAO,CAAC,oBAAD,CAAR,CAA9C;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;;AAEAzC,MAAM,CAAC+I,cAAP,CAAsBnH,OAAtB,EAA+B,YAA/B,EAA6C;AAAE6L,EAAAA,KAAK,EAAE;AAAT,CAA7C;;AAEA,SAASuzH,eAAT,CAA0Bv9H,EAA1B,EAA8B;AAAE,SAAQA,EAAE,IAAK,OAAOA,EAAP,KAAc,QAArB,IAAkC,aA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AACD;AAJuC,CAA1C;;AAOA,IAAIgvH,OAAO,GAAG7oC,sBAAsB,CAAC35F,OAAO,CAAC,UAAD,CAAR,CAApC;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;;AAEA,IAAI25F,sBAAsB,GAAG35F,OAAO,CAAC,8CAAD,CAApC;;AAEAzC,MAAM,CAAC+I,cAAP,CAAsBnH,OAAtB,EAA+B,YAA/B,EAA6C;AAC3C6L,EAAAA,KAAK,EAAE;AADoC,CAA7C;AAGA7L,OAAO,CAACsjI,MAAR,GAAiBA,MAAjB;AACAtjI,OAAO,CAACqU,OAAR,GAAkBkvH,aAAlB;;AAEA,IAAIC,SAAS,GAAGhpC,sBAAsB,CAAC35F,OAAO,CAAC,4BAAD,CAAR,CAAtC;;AAEA,IAAIgrH,cAAc,GAAGrxB,sBAAsB,CAAC35F,OAAO,CAAC,wBAAD,CAAR,CAA3C;;AAEA,IAAIgwH,YAAY,GAAGr2B,sBAAsB,CAAC35F,OAAO,CAAC,sBAAD,CAAR,CAAzC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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACldA;;AAEA;A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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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f;AACAo7C,OAAO,CAACoxE,eAAR,GAA0BxsH,IAA1B;AACAo7C,OAAO,CAACqxE,mBAAR,GAA8BzsH,IAA9B;;AAEAo7C,OAAO,CAACgM,SAAR,GAAoB,UAAU16G,IAAV,EAAgB;AAAE,SAAO,EAAP;AAAW,CAAjD;;AAEA0uG,OAAO,CAACsxE,OAAR,GAAkB,UAAUhgL,IAAV,EAAgB;AAC9B,QAAM,IAAIT,KAAJ,CAAU,kCAAV,CAAN;AACH,CAFD;;AAIAmvG,OAAO,CAACuxE,GAAR,GAAc,YAAY;AAAE,SAAO,GAAP;AAAY,CAAxC;;AACAvxE,OAAO,CAACwxE,KAAR,GAAgB,UAAUhlI,GAAV,EAAe;AAC3B,QAAM,IAAI37C,KAAJ,CAAU,gCAAV,CAAN;AACH,CAFD;;AAGAmvG,OAAO,CAACyxE,KAAR,GAAgB,YAAW;AAAE,SAAO,CAAP;AAAW,CAAxC;;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACx/dA;;;;;;;;;ACAA;;AACA;;;;AACA;AAEA,IAAMC,cAAc,GAAG;AACrBC,EAAAA,MAAM,EAAE,yCADa;AAErBC,EAAAA,UAAU,EAAE,6BAFS;AAGrBC,EAAAA,WAAW,EAAE,oCAHQ;AAIrBC,EAAAA,SAAS,EAAE,aAJU;AAKrBC,EAAAA,aAAa,EAAE,yBALM,CAMrB;;AANqB,CAAvB;;AASA,IAAMC,EAAE,GAAGC,aACRC,aADQ,CACMR,cADN,EAERS,QAFQ,GAGRj4K,GAHQ,EAAX,EAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;eAEe83K;;;ACxCf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;;;;;;;;AASA;;AAIA,IAAI,kBAAyB,YAA7B,EAA2C;AACzC,GAAC,YAAW;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BC8C6B1B,CAAAA,IAAAA,GAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BCrBtDmlE,kBAAAA,SAAAA,eAAAA,GAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR0C,IAAA,q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","file":"src.a2b27638.map","sourceRoot":"..","sourcesContent":["/*\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 * 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 * 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\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 (typeSpecs.hasOwnProperty(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        }\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\nmodule.exports = checkPropTypes;\n","/** @license React v16.5.2\n * react.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\nvar _assign = require('object-assign');\nvar checkPropTypes = require('prop-types/checkPropTypes');\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.5.2';\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_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_PLACEHOLDER_TYPE = hasSymbol ? Symbol.for('react.placeholder') : 0xead1;\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n  return null;\n}\n\n// Exports ReactDOM.createRoot\n\n\n// Experimental error-boundary API that can recover from errors within a single\n// render phase\n\n// Suspense\nvar enableSuspense = false;\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\n\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\n\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\n\n\n// Warn about legacy context API\n\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\n\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function () {};\n\n{\n  validateFormat = function (format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error = void 0;\n    if (format === undefined) {\n      error = new Error('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      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\n// Relying on the `invariant()` implementation lets us\n// preserve the format and params in the www builds.\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\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 warningWithoutStack = function () {};\n\n{\n  warningWithoutStack = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n    if (args.length > 8) {\n      // Check before the condition to catch violations early.\n      throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n    }\n    if (condition) {\n      return;\n    }\n    if (typeof console !== 'undefined') {\n      var _args$map = args.map(function (item) {\n        return '' + item;\n      }),\n          a = _args$map[0],\n          b = _args$map[1],\n          c = _args$map[2],\n          d = _args$map[3],\n          e = _args$map[4],\n          f = _args$map[5],\n          g = _args$map[6],\n          h = _args$map[7];\n\n      var message = 'Warning: ' + format;\n\n      // We intentionally don't use spread (or .apply) because it breaks IE9:\n      // https://github.com/facebook/react/issues/13610\n      switch (args.length) {\n        case 0:\n          console.error(message);\n          break;\n        case 1:\n          console.error(message, a);\n          break;\n        case 2:\n          console.error(message, a, b);\n          break;\n        case 3:\n          console.error(message, a, b, c);\n          break;\n        case 4:\n          console.error(message, a, b, c, d);\n          break;\n        case 5:\n          console.error(message, a, b, c, d, e);\n          break;\n        case 6:\n          console.error(message, a, b, c, d, e, f);\n          break;\n        case 7:\n          console.error(message, a, b, c, d, e, f, g);\n          break;\n        case 8:\n          console.error(message, a, b, c, d, e, f, g, h);\n          break;\n        default:\n          throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n      }\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      var argIndex = 0;\n      var _message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      throw new Error(_message);\n    } catch (x) {}\n  };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n    var warningKey = componentName + '.' + callerName;\n    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n      return;\n    }\n    warningWithoutStack$1(false, \"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n    didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance, callback, callerName) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nvar emptyObject = {};\n{\n  Object.freeze(emptyObject);\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  // If a component has string refs, we will assign a different object later.\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nComponent.prototype.setState = function (partialState, callback) {\n  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : void 0;\n  this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n{\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    Object.defineProperty(Component.prototype, methodName, {\n      get: function () {\n        lowPriorityWarning$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n        return undefined;\n      }\n    });\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\n\n/**\n * Convenience component with default shallow equality check for sCU.\n */\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  // If a component has string refs, we will assign a different object later.\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n  var refObject = {\n    current: null\n  };\n  {\n    Object.seal(refObject);\n  }\n  return refObject;\n}\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null,\n  currentDispatcher: null\n};\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\n\nvar describeComponentFrame = function (name, source, ownerName) {\n  var sourceInfo = '';\n  if (source) {\n    var path = source.fileName;\n    var fileName = path.replace(BEFORE_SLASH_RE, '');\n    {\n      // In DEV, include code for a common special case:\n      // prefer \"folder/index.js\" instead of just \"index.js\".\n      if (/^index\\./.test(fileName)) {\n        var match = path.match(BEFORE_SLASH_RE);\n        if (match) {\n          var pathBeforeSlash = match[1];\n          if (pathBeforeSlash) {\n            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n            fileName = folderName + '/' + fileName;\n          }\n        }\n      }\n    }\n    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n  } else if (ownerName) {\n    sourceInfo = ' (created by ' + ownerName + ')';\n  }\n  return '\\n    in ' + (name || 'Unknown') + sourceInfo;\n};\n\nvar Resolved = 1;\n\n\n\n\nfunction refineResolvedThenable(thenable) {\n  return thenable._reactStatus === Resolved ? thenable._reactResult : null;\n}\n\nfunction getComponentName(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n  {\n    if (typeof type.tag === 'number') {\n      warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n  if (typeof type === 'string') {\n    return type;\n  }\n  switch (type) {\n    case REACT_ASYNC_MODE_TYPE:\n      return 'AsyncMode';\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n    case REACT_PLACEHOLDER_TYPE:\n      return 'Placeholder';\n  }\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return 'Context.Consumer';\n      case REACT_PROVIDER_TYPE:\n        return 'Context.Provider';\n      case REACT_FORWARD_REF_TYPE:\n        var renderFn = type.render;\n        var functionName = renderFn.displayName || renderFn.name || '';\n        return type.displayName || (functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef');\n    }\n    if (typeof type.then === 'function') {\n      var thenable = type;\n      var resolvedThenable = refineResolvedThenable(thenable);\n      if (resolvedThenable) {\n        return getComponentName(resolvedThenable);\n      }\n    }\n  }\n  return null;\n}\n\nvar ReactDebugCurrentFrame = {};\n\nvar currentlyValidatingElement = null;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    currentlyValidatingElement = element;\n  }\n}\n\n{\n  // Stack implementation injected by the current renderer.\n  ReactDebugCurrentFrame.getCurrentStack = null;\n\n  ReactDebugCurrentFrame.getStackAddendum = function () {\n    var stack = '';\n\n    // Add an extra top frame while an element is being validated\n    if (currentlyValidatingElement) {\n      var name = getComponentName(currentlyValidatingElement.type);\n      var owner = currentlyValidatingElement._owner;\n      stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));\n    }\n\n    // Delegate to the injected renderer-specific implementation\n    var impl = ReactDebugCurrentFrame.getCurrentStack;\n    if (impl) {\n      stack += impl() || '';\n    }\n\n    return stack;\n  };\n}\n\nvar ReactSharedInternals = {\n  ReactCurrentOwner: ReactCurrentOwner,\n  // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n  assign: _assign\n};\n\n{\n  _assign(ReactSharedInternals, {\n    // These should not be included in production.\n    ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n    // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n    // TODO: remove in React 17.0.\n    ReactComponentTreeHook: {}\n  });\n}\n\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 warning = warningWithoutStack$1;\n\n{\n  warning = function (condition, format) {\n    if (condition) {\n      return;\n    }\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n    // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));\n  };\n}\n\nvar warning$1 = warning;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\nvar specialPropKeyWarningShown = void 0;\nvar specialPropRefWarningShown = void 0;\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    if (!specialPropKeyWarningShown) {\n      specialPropKeyWarningShown = true;\n      warningWithoutStack$1(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n    }\n  };\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    if (!specialPropRefWarningShown) {\n      specialPropRefWarningShown = true;\n      warningWithoutStack$1(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n    }\n  };\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    });\n    // self and source are DEV only properties.\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    });\n    // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\nfunction createElement(type, config, children) {\n  var propName = void 0;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      ref = config.ref;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    {\n      if (Object.freeze) {\n        Object.freeze(childArray);\n      }\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n  {\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n  }\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://reactjs.org/docs/react-api.html#createfactory\n */\n\n\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n}\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\nfunction cloneElement(element, config, children) {\n  !!(element === null || element === undefined) ? invariant(false, 'React.cloneElement(...): The argument must be a React element, but you passed %s.', element) : void 0;\n\n  var propName = void 0;\n\n  // Original props are copied\n  var props = _assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    // Remaining properties override existing props\n    var defaultProps = void 0;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = ('' + key).replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n\n  return '$' + escapedString;\n}\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n  if (traverseContextPool.length) {\n    var traverseContext = traverseContextPool.pop();\n    traverseContext.result = mapResult;\n    traverseContext.keyPrefix = keyPrefix;\n    traverseContext.func = mapFunction;\n    traverseContext.context = mapContext;\n    traverseContext.count = 0;\n    return traverseContext;\n  } else {\n    return {\n      result: mapResult,\n      keyPrefix: keyPrefix,\n      func: mapFunction,\n      context: mapContext,\n      count: 0\n    };\n  }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n  traverseContext.result = null;\n  traverseContext.keyPrefix = null;\n  traverseContext.func = null;\n  traverseContext.context = null;\n  traverseContext.count = 0;\n  if (traverseContextPool.length < POOL_SIZE) {\n    traverseContextPool.push(traverseContext);\n  }\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  var invokeCallback = false;\n\n  if (children === null) {\n    invokeCallback = true;\n  } else {\n    switch (type) {\n      case 'string':\n      case 'number':\n        invokeCallback = true;\n        break;\n      case 'object':\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = true;\n        }\n    }\n  }\n\n  if (invokeCallback) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child = void 0;\n  var nextName = void 0;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (typeof iteratorFn === 'function') {\n      {\n        // Warn about using Maps as children\n        if (iteratorFn === children.entries) {\n          !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;\n          didWarnAboutMaps = true;\n        }\n      }\n\n      var iterator = iteratorFn.call(children);\n      var step = void 0;\n      var ii = 0;\n      while (!(step = iterator.next()).done) {\n        child = step.value;\n        nextName = nextNamePrefix + getComponentKey(child, ii++);\n        subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n      }\n      var childrenString = '' + children;\n      invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum);\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (typeof component === 'object' && component !== null && component.key != null) {\n    // Explicit key\n    return escape(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func,\n      context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result,\n      keyPrefix = bookKeeping.keyPrefix,\n      func = bookKeeping.func,\n      context = bookKeeping.context;\n\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {\n      return c;\n    });\n  } else if (mappedChild != null) {\n    if (isValidElement(mappedChild)) {\n      mappedChild = cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children) {\n  return traverseAllChildren(children, function () {\n    return null;\n  }, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, function (child) {\n    return child;\n  });\n  return result;\n}\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  !isValidElement(children) ? invariant(false, 'React.Children.only expected to receive a single React element child.') : void 0;\n  return children;\n}\n\nfunction readContext(context, observedBits) {\n  var dispatcher = ReactCurrentOwner.currentDispatcher;\n  !(dispatcher !== null) ? invariant(false, 'Context.unstable_read(): Context can only be read while React is rendering, e.g. inside the render method or getDerivedStateFromProps.') : void 0;\n  return dispatcher.readContext(context, observedBits);\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n  if (calculateChangedBits === undefined) {\n    calculateChangedBits = null;\n  } else {\n    {\n      !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warningWithoutStack$1(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0;\n    }\n  }\n\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    _calculateChangedBits: calculateChangedBits,\n    // As a workaround to support multiple concurrent renderers, we categorize\n    // some renderers as primary and others as secondary. We only expect\n    // there to be two concurrent renderers at most: React Native (primary) and\n    // Fabric (secondary); React DOM (primary) and React ART (secondary).\n    // Secondary renderers store their context values on separate fields.\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    // These are circular\n    Provider: null,\n    Consumer: null,\n    unstable_read: null\n  };\n\n  context.Provider = {\n    $$typeof: REACT_PROVIDER_TYPE,\n    _context: context\n  };\n  context.Consumer = context;\n  context.unstable_read = readContext.bind(null, context);\n\n  {\n    context._currentRenderer = null;\n    context._currentRenderer2 = null;\n  }\n\n  return context;\n}\n\nfunction lazy(ctor) {\n  var thenable = null;\n  return {\n    then: function (resolve, reject) {\n      if (thenable === null) {\n        // Lazily create thenable by wrapping in an extra thenable.\n        thenable = ctor();\n        ctor = null;\n      }\n      return thenable.then(resolve, reject);\n    },\n\n    // React uses these fields to store the result.\n    _reactStatus: -1,\n    _reactResult: null\n  };\n}\n\nfunction forwardRef(render) {\n  {\n    if (typeof render !== 'function') {\n      warningWithoutStack$1(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n    } else {\n      !(\n      // Do not warn for 0 arguments because it could be due to usage of the 'arguments' object\n      render.length === 0 || render.length === 2) ? warningWithoutStack$1(false, 'forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.') : void 0;\n    }\n\n    if (render != null) {\n      !(render.defaultProps == null && render.propTypes == null) ? warningWithoutStack$1(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0;\n    }\n  }\n\n  return {\n    $$typeof: REACT_FORWARD_REF_TYPE,\n    render: render\n  };\n}\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_ASYNC_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_PLACEHOLDER_TYPE || typeof type === 'object' && type !== null && (typeof type.then === 'function' || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\nvar propTypesMisspellWarningShown = void 0;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = getComponentName(ReactCurrentOwner.current.type);\n    if (name) {\n      return '\\n\\nCheck the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nfunction getSourceInfoErrorAddendum(elementProps) {\n  if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {\n    var source = elementProps.__source;\n    var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n    var lineNumber = source.lineNumber;\n    return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      info = '\\n\\nCheck the top-level render call using <' + parentName + '>.';\n    }\n  }\n  return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  var childOwner = '';\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = ' It was passed a child from ' + getComponentName(element._owner.type) + '.';\n  }\n\n  setCurrentlyValidatingElement(element);\n  {\n    warning$1(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);\n  }\n  setCurrentlyValidatingElement(null);\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    if (typeof iteratorFn === 'function') {\n      // Entry iterators used to provide implicit keys,\n      // but now we print a separate warning for them later.\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step = void 0;\n        while (!(step = iterator.next()).done) {\n          if (isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var type = element.type;\n  var name = void 0,\n      propTypes = void 0;\n  if (typeof type === 'function') {\n    // Class or functional component\n    name = type.displayName || type.name;\n    propTypes = type.propTypes;\n  } else if (typeof type === 'object' && type !== null && type.$$typeof === REACT_FORWARD_REF_TYPE) {\n    // ForwardRef\n    var functionName = type.render.displayName || type.render.name || '';\n    name = type.displayName || (functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef');\n    propTypes = type.propTypes;\n  } else {\n    return;\n  }\n  if (propTypes) {\n    setCurrentlyValidatingElement(element);\n    checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);\n    setCurrentlyValidatingElement(null);\n  } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n    propTypesMisspellWarningShown = true;\n    warningWithoutStack$1(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');\n  }\n  if (typeof type.getDefaultProps === 'function') {\n    !type.getDefaultProps.isReactClassApproved ? warningWithoutStack$1(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n  }\n}\n\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\nfunction validateFragmentProps(fragment) {\n  setCurrentlyValidatingElement(fragment);\n\n  var keys = Object.keys(fragment.props);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (key !== 'children' && key !== 'key') {\n      warning$1(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n      break;\n    }\n  }\n\n  if (fragment.ref !== null) {\n    warning$1(false, 'Invalid attribute `ref` supplied to `React.Fragment`.');\n  }\n\n  setCurrentlyValidatingElement(null);\n}\n\nfunction createElementWithValidation(type, props, children) {\n  var validType = isValidElementType(type);\n\n  // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n  if (!validType) {\n    var info = '';\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendum(props);\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString = void 0;\n    if (type === null) {\n      typeString = 'null';\n    } else if (Array.isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = '<' + (getComponentName(type.type) || 'Unknown') + ' />';\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    warning$1(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n  }\n\n  var element = createElement.apply(this, arguments);\n\n  // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n  if (element == null) {\n    return element;\n  }\n\n  // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n  if (validType) {\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\n\nfunction createFactoryWithValidation(type) {\n  var validatedFactory = createElementWithValidation.bind(null, type);\n  validatedFactory.type = type;\n  // Legacy hook: remove it\n  {\n    Object.defineProperty(validatedFactory, 'type', {\n      enumerable: false,\n      get: function () {\n        lowPriorityWarning$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n        Object.defineProperty(this, 'type', {\n          value: type\n        });\n        return type;\n      }\n    });\n  }\n\n  return validatedFactory;\n}\n\nfunction cloneElementWithValidation(element, props, children) {\n  var newElement = cloneElement.apply(this, arguments);\n  for (var i = 2; i < arguments.length; i++) {\n    validateChildKeys(arguments[i], newElement.type);\n  }\n  validatePropTypes(newElement);\n  return newElement;\n}\n\nvar React = {\n  Children: {\n    map: mapChildren,\n    forEach: forEachChildren,\n    count: countChildren,\n    toArray: toArray,\n    only: onlyChild\n  },\n\n  createRef: createRef,\n  Component: Component,\n  PureComponent: PureComponent,\n\n  createContext: createContext,\n  forwardRef: forwardRef,\n\n  Fragment: REACT_FRAGMENT_TYPE,\n  StrictMode: REACT_STRICT_MODE_TYPE,\n  unstable_AsyncMode: REACT_ASYNC_MODE_TYPE,\n  unstable_Profiler: REACT_PROFILER_TYPE,\n\n  createElement: createElementWithValidation,\n  cloneElement: cloneElementWithValidation,\n  createFactory: createFactoryWithValidation,\n  isValidElement: isValidElement,\n\n  version: ReactVersion,\n\n  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals\n};\n\nif (enableSuspense) {\n  React.Placeholder = REACT_PLACEHOLDER_TYPE;\n  React.lazy = lazy;\n}\n\n\n\nvar React$2 = Object.freeze({\n\tdefault: React\n});\n\nvar React$3 = ( React$2 && React ) || React$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar react = React$3.default || React$3;\n\nmodule.exports = react;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v16.5.2\n * schedule.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/* eslint-disable no-var */\n\n// TODO: Currently there's only a single priority level, Deferred. Will add\n// additional priorities.\nvar DEFERRED_TIMEOUT = 5000;\n\n// Callbacks are stored as a circular, doubly linked list.\nvar firstCallbackNode = null;\n\nvar isPerformingWork = false;\n\nvar isHostCallbackScheduled = false;\n\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nvar timeRemaining;\nif (hasNativePerformanceNow) {\n  timeRemaining = function () {\n    // We assume that if we have a performance timer that the rAF callback\n    // gets a performance timer value. Not sure if this is always true.\n    var remaining = getFrameDeadline() - performance.now();\n    return remaining > 0 ? remaining : 0;\n  };\n} else {\n  timeRemaining = function () {\n    // Fallback to Date.now()\n    var remaining = getFrameDeadline() - Date.now();\n    return remaining > 0 ? remaining : 0;\n  };\n}\n\nvar deadlineObject = {\n  timeRemaining: timeRemaining,\n  didTimeout: false\n};\n\nfunction ensureHostCallbackIsScheduled() {\n  if (isPerformingWork) {\n    // Don't schedule work yet; wait until the next time we yield.\n    return;\n  }\n  // Schedule the host callback using the earliest timeout in the list.\n  var timesOutAt = firstCallbackNode.timesOutAt;\n  if (!isHostCallbackScheduled) {\n    isHostCallbackScheduled = true;\n  } else {\n    // Cancel the existing host callback.\n    cancelCallback();\n  }\n  requestCallback(flushWork, timesOutAt);\n}\n\nfunction flushFirstCallback(node) {\n  var flushedNode = firstCallbackNode;\n\n  // Remove the node from the list before calling the callback. That way the\n  // list is in a consistent state even if the callback throws.\n  var next = firstCallbackNode.next;\n  if (firstCallbackNode === next) {\n    // This is the last callback in the list.\n    firstCallbackNode = null;\n    next = null;\n  } else {\n    var previous = firstCallbackNode.previous;\n    firstCallbackNode = previous.next = next;\n    next.previous = previous;\n  }\n\n  flushedNode.next = flushedNode.previous = null;\n\n  // Now it's safe to call the callback.\n  var callback = flushedNode.callback;\n  callback(deadlineObject);\n}\n\nfunction flushWork(didTimeout) {\n  isPerformingWork = true;\n  deadlineObject.didTimeout = didTimeout;\n  try {\n    if (didTimeout) {\n      // Flush all the timed out callbacks without yielding.\n      while (firstCallbackNode !== null) {\n        // Read the current time. Flush all the callbacks that expire at or\n        // earlier than that time. Then read the current time again and repeat.\n        // This optimizes for as few performance.now calls as possible.\n        var currentTime = exports.unstable_now();\n        if (firstCallbackNode.timesOutAt <= currentTime) {\n          do {\n            flushFirstCallback();\n          } while (firstCallbackNode !== null && firstCallbackNode.timesOutAt <= currentTime);\n          continue;\n        }\n        break;\n      }\n    } else {\n      // Keep flushing callbacks until we run out of time in the frame.\n      if (firstCallbackNode !== null) {\n        do {\n          flushFirstCallback();\n        } while (firstCallbackNode !== null && getFrameDeadline() - exports.unstable_now() > 0);\n      }\n    }\n  } finally {\n    isPerformingWork = false;\n    if (firstCallbackNode !== null) {\n      // There's still work remaining. Request another callback.\n      ensureHostCallbackIsScheduled(firstCallbackNode);\n    } else {\n      isHostCallbackScheduled = false;\n    }\n  }\n}\n\nfunction unstable_scheduleWork(callback, options) {\n  var currentTime = exports.unstable_now();\n\n  var timesOutAt;\n  if (options !== undefined && options !== null && options.timeout !== null && options.timeout !== undefined) {\n    // Check for an explicit timeout\n    timesOutAt = currentTime + options.timeout;\n  } else {\n    // Compute an absolute timeout using the default constant.\n    timesOutAt = currentTime + DEFERRED_TIMEOUT;\n  }\n\n  var newNode = {\n    callback: callback,\n    timesOutAt: timesOutAt,\n    next: null,\n    previous: null\n  };\n\n  // Insert the new callback into the list, sorted by its timeout.\n  if (firstCallbackNode === null) {\n    // This is the first callback in the list.\n    firstCallbackNode = newNode.next = newNode.previous = newNode;\n    ensureHostCallbackIsScheduled(firstCallbackNode);\n  } else {\n    var next = null;\n    var node = firstCallbackNode;\n    do {\n      if (node.timesOutAt > timesOutAt) {\n        // The new callback times out before this one.\n        next = node;\n        break;\n      }\n      node = node.next;\n    } while (node !== firstCallbackNode);\n\n    if (next === null) {\n      // No callback with a later timeout was found, which means the new\n      // callback has the latest timeout in the list.\n      next = firstCallbackNode;\n    } else if (next === firstCallbackNode) {\n      // The new callback has the earliest timeout in the entire list.\n      firstCallbackNode = newNode;\n      ensureHostCallbackIsScheduled(firstCallbackNode);\n    }\n\n    var previous = next.previous;\n    previous.next = next.previous = newNode;\n    newNode.next = next;\n    newNode.previous = previous;\n  }\n\n  return newNode;\n}\n\nfunction unstable_cancelScheduledWork(callbackNode) {\n  var next = callbackNode.next;\n  if (next === null) {\n    // Already cancelled.\n    return;\n  }\n\n  if (next === callbackNode) {\n    // This is the only scheduled callback. Clear the list.\n    firstCallbackNode = null;\n  } else {\n    // Remove the callback from its position in the list.\n    if (callbackNode === firstCallbackNode) {\n      firstCallbackNode = next;\n    }\n    var previous = callbackNode.previous;\n    previous.next = next;\n    next.previous = previous;\n  }\n\n  callbackNode.next = callbackNode.previous = null;\n}\n\n// The remaining code is essentially a polyfill for requestIdleCallback. It\n// works by scheduling a requestAnimationFrame, storing the time for the start\n// of the frame, then scheduling a postMessage which gets scheduled after paint.\n// Within the postMessage handler do as much work as possible until time + frame\n// rate. By separating the idle call into a separate event tick we ensure that\n// layout, paint and other browser work is counted against the available time.\n// The frame rate is dynamically adjusted.\n\n// We capture a local reference to any global, in case it gets polyfilled after\n// this module is initially evaluated. We want to be using a\n// consistent implementation.\nvar localDate = Date;\n\n// This initialization code may run even on server environments if a component\n// just imports ReactDOM (e.g. for findDOMNode). Some environments might not\n// have setTimeout or clearTimeout. However, we always expect them to be defined\n// on the client. https://github.com/facebook/react/pull/13088\nvar localSetTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar localClearTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\n\n// We don't expect either of these to necessarily be defined, but we will error\n// later if they are missing on the client.\nvar localRequestAnimationFrame = typeof requestAnimationFrame === 'function' ? requestAnimationFrame : undefined;\nvar localCancelAnimationFrame = typeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : undefined;\n\n// requestAnimationFrame does not run when the tab is in the background. If\n// we're backgrounded we prefer for that work to happen so that the page\n// continues to load in the background. So we also schedule a 'setTimeout' as\n// a fallback.\n// TODO: Need a better heuristic for backgrounded work.\nvar ANIMATION_FRAME_TIMEOUT = 100;\nvar rAFID;\nvar rAFTimeoutID;\nvar requestAnimationFrameWithTimeout = function (callback) {\n  // schedule rAF and also a setTimeout\n  rAFID = localRequestAnimationFrame(function (timestamp) {\n    // cancel the setTimeout\n    localClearTimeout(rAFTimeoutID);\n    callback(timestamp);\n  });\n  rAFTimeoutID = localSetTimeout(function () {\n    // cancel the requestAnimationFrame\n    localCancelAnimationFrame(rAFID);\n    callback(exports.unstable_now());\n  }, ANIMATION_FRAME_TIMEOUT);\n};\n\nif (hasNativePerformanceNow) {\n  var Performance = performance;\n  exports.unstable_now = function () {\n    return Performance.now();\n  };\n} else {\n  exports.unstable_now = function () {\n    return localDate.now();\n  };\n}\n\nvar requestCallback;\nvar cancelCallback;\nvar getFrameDeadline;\n\nif (typeof window === 'undefined') {\n  // If this accidentally gets imported in a non-browser environment, fallback\n  // to a naive implementation.\n  var timeoutID = -1;\n  requestCallback = function (callback, absoluteTimeout) {\n    timeoutID = setTimeout(callback, 0, true);\n  };\n  cancelCallback = function () {\n    clearTimeout(timeoutID);\n  };\n  getFrameDeadline = function () {\n    return 0;\n  };\n} else if (window._schedMock) {\n  // Dynamic injection, only for testing purposes.\n  var impl = window._schedMock;\n  requestCallback = impl[0];\n  cancelCallback = impl[1];\n  getFrameDeadline = impl[2];\n} else {\n  if (typeof console !== 'undefined') {\n    if (typeof localRequestAnimationFrame !== 'function') {\n      console.error(\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n    if (typeof localCancelAnimationFrame !== 'function') {\n      console.error(\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n  }\n\n  var scheduledCallback = null;\n  var isIdleScheduled = false;\n  var timeoutTime = -1;\n\n  var isAnimationFrameScheduled = false;\n\n  var isPerformingIdleWork = false;\n\n  var frameDeadline = 0;\n  // We start out assuming that we run at 30fps but then the heuristic tracking\n  // will adjust this value to a faster fps if we get more frequent animation\n  // frames.\n  var previousFrameTime = 33;\n  var activeFrameTime = 33;\n\n  getFrameDeadline = function () {\n    return frameDeadline;\n  };\n\n  // We use the postMessage trick to defer idle work until after the repaint.\n  var messageKey = '__reactIdleCallback$' + Math.random().toString(36).slice(2);\n  var idleTick = function (event) {\n    if (event.source !== window || event.data !== messageKey) {\n      return;\n    }\n\n    isIdleScheduled = false;\n\n    var currentTime = exports.unstable_now();\n\n    var didTimeout = false;\n    if (frameDeadline - currentTime <= 0) {\n      // There's no time left in this idle period. Check if the callback has\n      // a timeout and whether it's been exceeded.\n      if (timeoutTime !== -1 && timeoutTime <= currentTime) {\n        // Exceeded the timeout. Invoke the callback even though there's no\n        // time left.\n        didTimeout = true;\n      } else {\n        // No timeout.\n        if (!isAnimationFrameScheduled) {\n          // Schedule another animation callback so we retry later.\n          isAnimationFrameScheduled = true;\n          requestAnimationFrameWithTimeout(animationTick);\n        }\n        // Exit without invoking the callback.\n        return;\n      }\n    }\n\n    timeoutTime = -1;\n    var callback = scheduledCallback;\n    scheduledCallback = null;\n    if (callback !== null) {\n      isPerformingIdleWork = true;\n      try {\n        callback(didTimeout);\n      } finally {\n        isPerformingIdleWork = false;\n      }\n    }\n  };\n  // Assumes that we have addEventListener in this environment. Might need\n  // something better for old IE.\n  window.addEventListener('message', idleTick, false);\n\n  var animationTick = function (rafTime) {\n    isAnimationFrameScheduled = false;\n    var nextFrameTime = rafTime - frameDeadline + activeFrameTime;\n    if (nextFrameTime < activeFrameTime && previousFrameTime < activeFrameTime) {\n      if (nextFrameTime < 8) {\n        // Defensive coding. We don't support higher frame rates than 120hz.\n        // If we get lower than that, it is probably a bug.\n        nextFrameTime = 8;\n      }\n      // If one frame goes long, then the next one can be short to catch up.\n      // If two frames are short in a row, then that's an indication that we\n      // actually have a higher frame rate than what we're currently optimizing.\n      // We adjust our heuristic dynamically accordingly. For example, if we're\n      // running on 120hz display or 90hz VR display.\n      // Take the max of the two in case one of them was an anomaly due to\n      // missed frame deadlines.\n      activeFrameTime = nextFrameTime < previousFrameTime ? previousFrameTime : nextFrameTime;\n    } else {\n      previousFrameTime = nextFrameTime;\n    }\n    frameDeadline = rafTime + activeFrameTime;\n    if (!isIdleScheduled) {\n      isIdleScheduled = true;\n      window.postMessage(messageKey, '*');\n    }\n  };\n\n  requestCallback = function (callback, absoluteTimeout) {\n    scheduledCallback = callback;\n    timeoutTime = absoluteTimeout;\n    if (isPerformingIdleWork) {\n      // If we're already performing idle work, an error must have been thrown.\n      // Don't wait for the next frame. Continue working ASAP, in a new event.\n      window.postMessage(messageKey, '*');\n    } else if (!isAnimationFrameScheduled) {\n      // If rAF didn't already schedule one, we need to schedule a frame.\n      // TODO: If this rAF doesn't materialize because the browser throttles, we\n      // might want to still have setTimeout trigger rIC as a backup to ensure\n      // that we keep performing work.\n      isAnimationFrameScheduled = true;\n      requestAnimationFrameWithTimeout(animationTick);\n    }\n  };\n\n  cancelCallback = function () {\n    scheduledCallback = null;\n    isIdleScheduled = false;\n    timeoutTime = -1;\n  };\n}\n\nexports.unstable_scheduleWork = unstable_scheduleWork;\nexports.unstable_cancelScheduledWork = unstable_cancelScheduledWork;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/schedule.production.min.js');\n} else {\n  module.exports = require('./cjs/schedule.development.js');\n}\n","/** @license React v16.5.2\n * schedule-tracing.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// Exports ReactDOM.createRoot\n\n\n// Experimental error-boundary API that can recover from errors within a single\n// render phase\n\n// Suspense\n\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\n\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\n\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\n\n\n// Warn about legacy context API\n\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\nvar enableSchedulerTracing = true;\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\nvar DEFAULT_THREAD_ID = 0;\n\n// Counters used to generate unique IDs.\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0;\n\n// Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\nexports.__interactionsRef = null;\n\n// Listener(s) to notify when interactions begin and end.\nexports.__subscriberRef = null;\n\nif (enableSchedulerTracing) {\n  exports.__interactionsRef = {\n    current: new Set()\n  };\n  exports.__subscriberRef = {\n    current: null\n  };\n}\n\nfunction unstable_clear(callback) {\n  if (!enableSchedulerTracing) {\n    return callback();\n  }\n\n  var prevInteractions = exports.__interactionsRef.current;\n  exports.__interactionsRef.current = new Set();\n\n  try {\n    return callback();\n  } finally {\n    exports.__interactionsRef.current = prevInteractions;\n  }\n}\n\nfunction unstable_getCurrent() {\n  if (!enableSchedulerTracing) {\n    return null;\n  } else {\n    return exports.__interactionsRef.current;\n  }\n}\n\nfunction unstable_getThreadID() {\n  return ++threadIDCounter;\n}\n\nfunction unstable_trace(name, timestamp, callback) {\n  var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n  if (!enableSchedulerTracing) {\n    return callback();\n  }\n\n  var interaction = {\n    __count: 1,\n    id: interactionIDCounter++,\n    name: name,\n    timestamp: timestamp\n  };\n\n  var prevInteractions = exports.__interactionsRef.current;\n\n  // Traced interactions should stack/accumulate.\n  // To do that, clone the current interactions.\n  // The previous set will be restored upon completion.\n  var interactions = new Set(prevInteractions);\n  interactions.add(interaction);\n  exports.__interactionsRef.current = interactions;\n\n  var subscriber = exports.__subscriberRef.current;\n  var returnValue = void 0;\n\n  try {\n    if (subscriber !== null) {\n      subscriber.onInteractionTraced(interaction);\n    }\n  } finally {\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkStarted(interactions, threadID);\n      }\n    } finally {\n      try {\n        returnValue = callback();\n      } finally {\n        exports.__interactionsRef.current = prevInteractions;\n\n        try {\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(interactions, threadID);\n          }\n        } finally {\n          interaction.__count--;\n\n          // If no async work was scheduled for this interaction,\n          // Notify subscribers that it's completed.\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        }\n      }\n    }\n  }\n\n  return returnValue;\n}\n\nfunction unstable_wrap(callback) {\n  var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n  if (!enableSchedulerTracing) {\n    return callback;\n  }\n\n  var wrappedInteractions = exports.__interactionsRef.current;\n\n  var subscriber = exports.__subscriberRef.current;\n  if (subscriber !== null) {\n    subscriber.onWorkScheduled(wrappedInteractions, threadID);\n  }\n\n  // Update the pending async work count for the current interactions.\n  // Update after calling subscribers in case of error.\n  wrappedInteractions.forEach(function (interaction) {\n    interaction.__count++;\n  });\n\n  var hasRun = false;\n\n  function wrapped() {\n    var prevInteractions = exports.__interactionsRef.current;\n    exports.__interactionsRef.current = wrappedInteractions;\n\n    subscriber = exports.__subscriberRef.current;\n\n    try {\n      var returnValue = void 0;\n\n      try {\n        if (subscriber !== null) {\n          subscriber.onWorkStarted(wrappedInteractions, threadID);\n        }\n      } finally {\n        try {\n          returnValue = callback.apply(undefined, arguments);\n        } finally {\n          exports.__interactionsRef.current = prevInteractions;\n\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(wrappedInteractions, threadID);\n          }\n        }\n      }\n\n      return returnValue;\n    } finally {\n      if (!hasRun) {\n        // We only expect a wrapped function to be executed once,\n        // But in the event that it's executed more than once–\n        // Only decrement the outstanding interaction counts once.\n        hasRun = true;\n\n        // Update pending async counts for all wrapped interactions.\n        // If this was the last scheduled async work for any of them,\n        // Mark them as completed.\n        wrappedInteractions.forEach(function (interaction) {\n          interaction.__count--;\n\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        });\n      }\n    }\n  }\n\n  wrapped.cancel = function cancel() {\n    subscriber = exports.__subscriberRef.current;\n\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkCanceled(wrappedInteractions, threadID);\n      }\n    } finally {\n      // Update pending async counts for all wrapped interactions.\n      // If this was the last scheduled async work for any of them,\n      // Mark them as completed.\n      wrappedInteractions.forEach(function (interaction) {\n        interaction.__count--;\n\n        if (subscriber && interaction.__count === 0) {\n          subscriber.onInteractionScheduledWorkCompleted(interaction);\n        }\n      });\n    }\n  };\n\n  return wrapped;\n}\n\nvar subscribers = null;\nif (enableSchedulerTracing) {\n  subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n  if (enableSchedulerTracing) {\n    subscribers.add(subscriber);\n\n    if (subscribers.size === 1) {\n      exports.__subscriberRef.current = {\n        onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n        onInteractionTraced: onInteractionTraced,\n        onWorkCanceled: onWorkCanceled,\n        onWorkScheduled: onWorkScheduled,\n        onWorkStarted: onWorkStarted,\n        onWorkStopped: onWorkStopped\n      };\n    }\n  }\n}\n\nfunction unstable_unsubscribe(subscriber) {\n  if (enableSchedulerTracing) {\n    subscribers.delete(subscriber);\n\n    if (subscribers.size === 0) {\n      exports.__subscriberRef.current = null;\n    }\n  }\n}\n\nfunction onInteractionTraced(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionTraced(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionScheduledWorkCompleted(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkScheduled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStarted(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStopped(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkCanceled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nexports.unstable_clear = unstable_clear;\nexports.unstable_getCurrent = unstable_getCurrent;\nexports.unstable_getThreadID = unstable_getThreadID;\nexports.unstable_trace = unstable_trace;\nexports.unstable_wrap = unstable_wrap;\nexports.unstable_subscribe = unstable_subscribe;\nexports.unstable_unsubscribe = unstable_unsubscribe;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/schedule-tracing.production.min.js');\n} else {\n  module.exports = require('./cjs/schedule-tracing.development.js');\n}\n","/** @license React v16.5.2\n * react-dom.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\nvar React = require('react');\nvar _assign = require('object-assign');\nvar checkPropTypes = require('prop-types/checkPropTypes');\nvar schedule = require('schedule');\nvar tracing = require('schedule/tracing');\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function () {};\n\n{\n  validateFormat = function (format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error = void 0;\n    if (format === undefined) {\n      error = new Error('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      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\n// Relying on the `invariant()` implementation lets us\n// preserve the format and params in the www builds.\n\n!React ? invariant(false, 'ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.') : void 0;\n\nvar invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {\n  var funcArgs = Array.prototype.slice.call(arguments, 3);\n  try {\n    func.apply(context, funcArgs);\n  } catch (error) {\n    this.onError(error);\n  }\n};\n\n{\n  // In DEV mode, we swap out invokeGuardedCallback for a special version\n  // that plays more nicely with the browser's DevTools. The idea is to preserve\n  // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n  // functions in invokeGuardedCallback, and the production version of\n  // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n  // like caught exceptions, and the DevTools won't pause unless the developer\n  // takes the extra step of enabling pause on caught exceptions. This is\n  // untintuitive, though, because even though React has caught the error, from\n  // the developer's perspective, the error is uncaught.\n  //\n  // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n  // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n  // DOM node, and call the user-provided callback from inside an event handler\n  // for that fake event. If the callback throws, the error is \"captured\" using\n  // a global event handler. But because the error happens in a different\n  // event loop context, it does not interrupt the normal program flow.\n  // Effectively, this gives us try-catch behavior without actually using\n  // try-catch. Neat!\n\n  // Check that the browser supports the APIs we need to implement our special\n  // DEV version of invokeGuardedCallback\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n\n    var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {\n      // If document doesn't exist we know for sure we will crash in this method\n      // when we call document.createEvent(). However this can cause confusing\n      // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n      // So we preemptively throw with a better message instead.\n      !(typeof document !== 'undefined') ? invariant(false, 'The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.') : void 0;\n      var evt = document.createEvent('Event');\n\n      // Keeps track of whether the user-provided callback threw an error. We\n      // set this to true at the beginning, then set it to false right after\n      // calling the function. If the function errors, `didError` will never be\n      // set to false. This strategy works even if the browser is flaky and\n      // fails to call our global error handler, because it doesn't rely on\n      // the error event at all.\n      var didError = true;\n\n      // Keeps track of the value of window.event so that we can reset it\n      // during the callback to let user code access window.event in the\n      // browsers that support it.\n      var windowEvent = window.event;\n\n      // Create an event handler for our fake event. We will synchronously\n      // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n      // call the user-provided callback.\n      var funcArgs = Array.prototype.slice.call(arguments, 3);\n      function callCallback() {\n        // We immediately remove the callback from event listeners so that\n        // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n        // nested call would trigger the fake event handlers of any call higher\n        // in the stack.\n        fakeNode.removeEventListener(evtType, callCallback, false);\n\n        // We check for window.hasOwnProperty('event') to prevent the\n        // window.event assignment in both IE <= 10 as they throw an error\n        // \"Member not found\" in strict mode, and in Firefox which does not\n        // support window.event.\n        if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n          window.event = windowEvent;\n        }\n\n        func.apply(context, funcArgs);\n        didError = false;\n      }\n\n      // Create a global error event handler. We use this to capture the value\n      // that was thrown. It's possible that this error handler will fire more\n      // than once; for example, if non-React code also calls `dispatchEvent`\n      // and a handler for that event throws. We should be resilient to most of\n      // those cases. Even if our error event handler fires more than once, the\n      // last error event is always used. If the callback actually does error,\n      // we know that the last error event is the correct one, because it's not\n      // possible for anything else to have happened in between our callback\n      // erroring and the code that follows the `dispatchEvent` call below. If\n      // the callback doesn't error, but the error event was fired, we know to\n      // ignore it because `didError` will be false, as described above.\n      var error = void 0;\n      // Use this to track whether the error event is ever called.\n      var didSetError = false;\n      var isCrossOriginError = false;\n\n      function handleWindowError(event) {\n        error = event.error;\n        didSetError = true;\n        if (error === null && event.colno === 0 && event.lineno === 0) {\n          isCrossOriginError = true;\n        }\n        if (event.defaultPrevented) {\n          // Some other error handler has prevented default.\n          // Browsers silence the error report if this happens.\n          // We'll remember this to later decide whether to log it or not.\n          if (error != null && typeof error === 'object') {\n            try {\n              error._suppressLogging = true;\n            } catch (inner) {\n              // Ignore.\n            }\n          }\n        }\n      }\n\n      // Create a fake event type.\n      var evtType = 'react-' + (name ? name : 'invokeguardedcallback');\n\n      // Attach our event handlers\n      window.addEventListener('error', handleWindowError);\n      fakeNode.addEventListener(evtType, callCallback, false);\n\n      // Synchronously dispatch our fake event. If the user-provided function\n      // errors, it will trigger our global error handler.\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n\n      if (didError) {\n        if (!didSetError) {\n          // The callback errored, but the error event never fired.\n          error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n        } else if (isCrossOriginError) {\n          error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');\n        }\n        this.onError(error);\n      }\n\n      // Remove our event listeners\n      window.removeEventListener('error', handleWindowError);\n    };\n\n    invokeGuardedCallbackImpl = invokeGuardedCallbackDev;\n  }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\n// Used by Fiber to simulate a try-catch.\nvar hasError = false;\nvar caughtError = null;\n\n// Used by event system to capture/rethrow the first error.\nvar hasRethrowError = false;\nvar rethrowError = null;\n\nvar reporter = {\n  onError: function (error) {\n    hasError = true;\n    caughtError = error;\n  }\n};\n\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n  hasError = false;\n  caughtError = null;\n  invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n  invokeGuardedCallback.apply(this, arguments);\n  if (hasError) {\n    var error = clearCaughtError();\n    if (!hasRethrowError) {\n      hasRethrowError = true;\n      rethrowError = error;\n    }\n  }\n}\n\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\nfunction rethrowCaughtError() {\n  if (hasRethrowError) {\n    var error = rethrowError;\n    hasRethrowError = false;\n    rethrowError = null;\n    throw error;\n  }\n}\n\nfunction hasCaughtError() {\n  return hasError;\n}\n\nfunction clearCaughtError() {\n  if (hasError) {\n    var error = caughtError;\n    hasError = false;\n    caughtError = null;\n    return error;\n  } else {\n    invariant(false, 'clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.');\n  }\n}\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!eventPluginOrder) {\n    // Wait until an `eventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var pluginModule = namesToPlugins[pluginName];\n    var pluginIndex = eventPluginOrder.indexOf(pluginName);\n    !(pluginIndex > -1) ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : void 0;\n    if (plugins[pluginIndex]) {\n      continue;\n    }\n    !pluginModule.extractEvents ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : void 0;\n    plugins[pluginIndex] = pluginModule;\n    var publishedEvents = pluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : void 0;\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n  !!eventNameDispatchConfigs.hasOwnProperty(eventName) ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : void 0;\n  eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n  !!registrationNameModules[registrationName] ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : void 0;\n  registrationNameModules[registrationName] = pluginModule;\n  registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n  {\n    var lowerCasedName = registrationName.toLowerCase();\n    possibleRegistrationNames[lowerCasedName] = registrationName;\n\n    if (registrationName === 'onDoubleClick') {\n      possibleRegistrationNames.ondblclick = registrationName;\n    }\n  }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\n\n/**\n * Ordered list of injected plugins.\n */\nvar plugins = [];\n\n/**\n * Mapping from event name to dispatch config\n */\nvar eventNameDispatchConfigs = {};\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\nvar registrationNameDependencies = {};\n\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\nvar possibleRegistrationNames = {};\n// Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\nfunction injectEventPluginOrder(injectedEventPluginOrder) {\n  !!eventPluginOrder ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : void 0;\n  // Clone the ordering so it cannot be dynamically mutated.\n  eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n  recomputePluginOrdering();\n}\n\n/**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\nfunction injectEventPluginsByName(injectedNamesToPlugins) {\n  var isOrderingDirty = false;\n  for (var pluginName in injectedNamesToPlugins) {\n    if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n      continue;\n    }\n    var pluginModule = injectedNamesToPlugins[pluginName];\n    if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n      !!namesToPlugins[pluginName] ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : void 0;\n      namesToPlugins[pluginName] = pluginModule;\n      isOrderingDirty = true;\n    }\n  }\n  if (isOrderingDirty) {\n    recomputePluginOrdering();\n  }\n}\n\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 warningWithoutStack = function () {};\n\n{\n  warningWithoutStack = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n    if (args.length > 8) {\n      // Check before the condition to catch violations early.\n      throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n    }\n    if (condition) {\n      return;\n    }\n    if (typeof console !== 'undefined') {\n      var _args$map = args.map(function (item) {\n        return '' + item;\n      }),\n          a = _args$map[0],\n          b = _args$map[1],\n          c = _args$map[2],\n          d = _args$map[3],\n          e = _args$map[4],\n          f = _args$map[5],\n          g = _args$map[6],\n          h = _args$map[7];\n\n      var message = 'Warning: ' + format;\n\n      // We intentionally don't use spread (or .apply) because it breaks IE9:\n      // https://github.com/facebook/react/issues/13610\n      switch (args.length) {\n        case 0:\n          console.error(message);\n          break;\n        case 1:\n          console.error(message, a);\n          break;\n        case 2:\n          console.error(message, a, b);\n          break;\n        case 3:\n          console.error(message, a, b, c);\n          break;\n        case 4:\n          console.error(message, a, b, c, d);\n          break;\n        case 5:\n          console.error(message, a, b, c, d, e);\n          break;\n        case 6:\n          console.error(message, a, b, c, d, e, f);\n          break;\n        case 7:\n          console.error(message, a, b, c, d, e, f, g);\n          break;\n        case 8:\n          console.error(message, a, b, c, d, e, f, g, h);\n          break;\n        default:\n          throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n      }\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      var argIndex = 0;\n      var _message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      throw new Error(_message);\n    } catch (x) {}\n  };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\n\nvar getFiberCurrentPropsFromNode = null;\nvar getInstanceFromNode = null;\nvar getNodeFromInstance = null;\n\nfunction setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {\n  getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;\n  getInstanceFromNode = getInstanceFromNodeImpl;\n  getNodeFromInstance = getNodeFromInstanceImpl;\n  {\n    !(getNodeFromInstance && getInstanceFromNode) ? warningWithoutStack$1(false, 'EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n  }\n}\n\nvar validateEventDispatches = void 0;\n{\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchInstances = event._dispatchInstances;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    var instancesIsArr = Array.isArray(dispatchInstances);\n    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n    !(instancesIsArr === listenersIsArr && instancesLen === listenersLen) ? warningWithoutStack$1(false, 'EventPluginUtils: Invalid `event`.') : void 0;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = getNodeFromInstance(inst);\n  invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchInstances = event._dispatchInstances;\n  {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and Instances are two parallel arrays that are always in sync.\n      executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n  }\n  event._dispatchListeners = null;\n  event._dispatchInstances = null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\n\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\n\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  !(next != null) ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : void 0;\n\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  if (Array.isArray(current)) {\n    if (Array.isArray(next)) {\n      current.push.apply(current, next);\n      return current;\n    }\n    current.push(next);\n    return current;\n  }\n\n  if (Array.isArray(next)) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n * @param {function} cb Callback invoked with each element or a collection.\n * @param {?} [scope] Scope used as `this` in a callback.\n */\nfunction forEachAccumulated(arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n}\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n  if (event) {\n    executeDispatchesInOrder(event, simulated);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n  return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e, false);\n};\n\nfunction isInteractive(tag) {\n  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n  switch (name) {\n    case 'onClick':\n    case 'onClickCapture':\n    case 'onDoubleClick':\n    case 'onDoubleClickCapture':\n    case 'onMouseDown':\n    case 'onMouseDownCapture':\n    case 'onMouseMove':\n    case 'onMouseMoveCapture':\n    case 'onMouseUp':\n    case 'onMouseUpCapture':\n      return !!(props.disabled && isInteractive(type));\n    default:\n      return false;\n  }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\n\n/**\n * Methods for injecting dependencies.\n */\nvar injection = {\n  /**\n   * @param {array} InjectedEventPluginOrder\n   * @public\n   */\n  injectEventPluginOrder: injectEventPluginOrder,\n\n  /**\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   */\n  injectEventPluginsByName: injectEventPluginsByName\n};\n\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\nfunction getListener(inst, registrationName) {\n  var listener = void 0;\n\n  // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n  // live here; needs to be moved to a better place soon\n  var stateNode = inst.stateNode;\n  if (!stateNode) {\n    // Work in progress (ex: onload events in incremental mode).\n    return null;\n  }\n  var props = getFiberCurrentPropsFromNode(stateNode);\n  if (!props) {\n    // Work in progress.\n    return null;\n  }\n  listener = props[registrationName];\n  if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n    return null;\n  }\n  !(!listener || typeof listener === 'function') ? invariant(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener) : void 0;\n  return listener;\n}\n\n/**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\nfunction extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var events = null;\n  for (var i = 0; i < plugins.length; i++) {\n    // Not every plugin in the ordering may be loaded at runtime.\n    var possiblePlugin = plugins[i];\n    if (possiblePlugin) {\n      var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n      if (extractedEvents) {\n        events = accumulateInto(events, extractedEvents);\n      }\n    }\n  }\n  return events;\n}\n\nfunction runEventsInBatch(events, simulated) {\n  if (events !== null) {\n    eventQueue = accumulateInto(eventQueue, events);\n  }\n\n  // Set `eventQueue` to null before processing it so that we can tell if more\n  // events get enqueued while processing.\n  var processingEventQueue = eventQueue;\n  eventQueue = null;\n\n  if (!processingEventQueue) {\n    return;\n  }\n\n  if (simulated) {\n    forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n  } else {\n    forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n  }\n  !!eventQueue ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : void 0;\n  // This would be a good time to rethrow if any of the event handlers threw.\n  rethrowCaughtError();\n}\n\nfunction runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var events = extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n  runEventsInBatch(events, false);\n}\n\nvar FunctionalComponent = 0;\nvar FunctionalComponentLazy = 1;\nvar ClassComponent = 2;\nvar ClassComponentLazy = 3;\nvar IndeterminateComponent = 4; // Before we know whether it is functional or class\nvar HostRoot = 5; // Root of a host tree. Could be nested inside another node.\nvar HostPortal = 6; // A subtree. Could be an entry point to a different renderer.\nvar HostComponent = 7;\nvar HostText = 8;\nvar Fragment = 9;\nvar Mode = 10;\nvar ContextConsumer = 11;\nvar ContextProvider = 12;\nvar ForwardRef = 13;\nvar ForwardRefLazy = 14;\nvar Profiler = 15;\nvar PlaceholderComponent = 16;\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactInternalInstance$' + randomKey;\nvar internalEventHandlersKey = '__reactEventHandlers$' + randomKey;\n\nfunction precacheFiberNode(hostInst, node) {\n  node[internalInstanceKey] = hostInst;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n  if (node[internalInstanceKey]) {\n    return node[internalInstanceKey];\n  }\n\n  while (!node[internalInstanceKey]) {\n    if (node.parentNode) {\n      node = node.parentNode;\n    } else {\n      // Top of the tree. This node must not be part of a React tree (or is\n      // unmounted, potentially).\n      return null;\n    }\n  }\n\n  var inst = node[internalInstanceKey];\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber, this will always be the deepest root.\n    return inst;\n  }\n\n  return null;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode$1(node) {\n  var inst = node[internalInstanceKey];\n  if (inst) {\n    if (inst.tag === HostComponent || inst.tag === HostText) {\n      return inst;\n    } else {\n      return null;\n    }\n  }\n  return null;\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance$1(inst) {\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber this, is just the state node right now. We assume it will be\n    // a host component or host text.\n    return inst.stateNode;\n  }\n\n  // Without this first invariant, passing a non-DOM-component triggers the next\n  // invariant for a missing parent, which is super confusing.\n  invariant(false, 'getNodeFromInstance: Invalid argument.');\n}\n\nfunction getFiberCurrentPropsFromNode$1(node) {\n  return node[internalEventHandlersKey] || null;\n}\n\nfunction updateFiberProps(node, props) {\n  node[internalEventHandlersKey] = props;\n}\n\nfunction getParent(inst) {\n  do {\n    inst = inst.return;\n    // TODO: If this is a HostRoot we might want to bail out.\n    // That is depending on if we want nested subtrees (layers) to bubble\n    // events to their parent. We could also go through parentNode on the\n    // host node but that wouldn't work for React Native and doesn't let us\n    // do the portal feature.\n  } while (inst && inst.tag !== HostComponent);\n  if (inst) {\n    return inst;\n  }\n  return null;\n}\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n  var depthA = 0;\n  for (var tempA = instA; tempA; tempA = getParent(tempA)) {\n    depthA++;\n  }\n  var depthB = 0;\n  for (var tempB = instB; tempB; tempB = getParent(tempB)) {\n    depthB++;\n  }\n\n  // If A is deeper, crawl up.\n  while (depthA - depthB > 0) {\n    instA = getParent(instA);\n    depthA--;\n  }\n\n  // If B is deeper, crawl up.\n  while (depthB - depthA > 0) {\n    instB = getParent(instB);\n    depthB--;\n  }\n\n  // Walk in lockstep until we find a match.\n  var depth = depthA;\n  while (depth--) {\n    if (instA === instB || instA === instB.alternate) {\n      return instA;\n    }\n    instA = getParent(instA);\n    instB = getParent(instB);\n  }\n  return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\n\n\n/**\n * Return the parent instance of the passed-in instance.\n */\n\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n  var path = [];\n  while (inst) {\n    path.push(inst);\n    inst = getParent(inst);\n  }\n  var i = void 0;\n  for (i = path.length; i-- > 0;) {\n    fn(path[i], 'captured', arg);\n  }\n  for (i = 0; i < path.length; i++) {\n    fn(path[i], 'bubbled', arg);\n  }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n  var common = from && to ? getLowestCommonAncestor(from, to) : null;\n  var pathFrom = [];\n  while (true) {\n    if (!from) {\n      break;\n    }\n    if (from === common) {\n      break;\n    }\n    var alternate = from.alternate;\n    if (alternate !== null && alternate === common) {\n      break;\n    }\n    pathFrom.push(from);\n    from = getParent(from);\n  }\n  var pathTo = [];\n  while (true) {\n    if (!to) {\n      break;\n    }\n    if (to === common) {\n      break;\n    }\n    var _alternate = to.alternate;\n    if (_alternate !== null && _alternate === common) {\n      break;\n    }\n    pathTo.push(to);\n    to = getParent(to);\n  }\n  for (var i = 0; i < pathFrom.length; i++) {\n    fn(pathFrom[i], 'bubbled', argFrom);\n  }\n  for (var _i = pathTo.length; _i-- > 0;) {\n    fn(pathTo[_i], 'captured', argTo);\n  }\n}\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(inst, registrationName);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing even a\n * single one.\n */\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n  {\n    !inst ? warningWithoutStack$1(false, 'Dispatching inst must not be null') : void 0;\n  }\n  var listener = listenerAtPhase(inst, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n  if (inst && event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(inst, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event._targetInst, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\n\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n  traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Do not uses the below two methods directly!\n// Instead use constants exported from DOMTopLevelEventTypes in ReactDOM.\n// (It is the only module that is allowed to access these methods.)\n\nfunction unsafeCastStringToDOMTopLevelType(topLevelType) {\n  return topLevelType;\n}\n\nfunction unsafeCastDOMTopLevelTypeToString(topLevelType) {\n  return topLevelType;\n}\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n  prefixes['Moz' + styleProp] = 'moz' + eventName;\n\n  return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n  animationend: makePrefixMap('Animation', 'AnimationEnd'),\n  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n  animationstart: makePrefixMap('Animation', 'AnimationStart'),\n  transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (canUseDOM) {\n  style = document.createElement('div').style;\n\n  // On some platforms, in particular some releases of Android 4.x,\n  // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n  // style object but the events that fire will still be prefixed, so we need\n  // to check if the un-prefixed events are usable, and if not remove them from the map.\n  if (!('AnimationEvent' in window)) {\n    delete vendorPrefixes.animationend.animation;\n    delete vendorPrefixes.animationiteration.animation;\n    delete vendorPrefixes.animationstart.animation;\n  }\n\n  // Same as above\n  if (!('TransitionEvent' in window)) {\n    delete vendorPrefixes.transitionend.transition;\n  }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  } else if (!vendorPrefixes[eventName]) {\n    return eventName;\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  for (var styleProp in prefixMap) {\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n      return prefixedEventNames[eventName] = prefixMap[styleProp];\n    }\n  }\n\n  return eventName;\n}\n\n/**\n * To identify top level events in ReactDOM, we use constants defined by this\n * module. This is the only module that uses the unsafe* methods to express\n * that the constants actually correspond to the browser event names. This lets\n * us save some bundle size by avoiding a top level type -> event name map.\n * The rest of ReactDOM code should import top level types from this file.\n */\nvar TOP_ABORT = unsafeCastStringToDOMTopLevelType('abort');\nvar TOP_ANIMATION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationend'));\nvar TOP_ANIMATION_ITERATION = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationiteration'));\nvar TOP_ANIMATION_START = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationstart'));\nvar TOP_BLUR = unsafeCastStringToDOMTopLevelType('blur');\nvar TOP_CAN_PLAY = unsafeCastStringToDOMTopLevelType('canplay');\nvar TOP_CAN_PLAY_THROUGH = unsafeCastStringToDOMTopLevelType('canplaythrough');\nvar TOP_CANCEL = unsafeCastStringToDOMTopLevelType('cancel');\nvar TOP_CHANGE = unsafeCastStringToDOMTopLevelType('change');\nvar TOP_CLICK = unsafeCastStringToDOMTopLevelType('click');\nvar TOP_CLOSE = unsafeCastStringToDOMTopLevelType('close');\nvar TOP_COMPOSITION_END = unsafeCastStringToDOMTopLevelType('compositionend');\nvar TOP_COMPOSITION_START = unsafeCastStringToDOMTopLevelType('compositionstart');\nvar TOP_COMPOSITION_UPDATE = unsafeCastStringToDOMTopLevelType('compositionupdate');\nvar TOP_CONTEXT_MENU = unsafeCastStringToDOMTopLevelType('contextmenu');\nvar TOP_COPY = unsafeCastStringToDOMTopLevelType('copy');\nvar TOP_CUT = unsafeCastStringToDOMTopLevelType('cut');\nvar TOP_DOUBLE_CLICK = unsafeCastStringToDOMTopLevelType('dblclick');\nvar TOP_AUX_CLICK = unsafeCastStringToDOMTopLevelType('auxclick');\nvar TOP_DRAG = unsafeCastStringToDOMTopLevelType('drag');\nvar TOP_DRAG_END = unsafeCastStringToDOMTopLevelType('dragend');\nvar TOP_DRAG_ENTER = unsafeCastStringToDOMTopLevelType('dragenter');\nvar TOP_DRAG_EXIT = unsafeCastStringToDOMTopLevelType('dragexit');\nvar TOP_DRAG_LEAVE = unsafeCastStringToDOMTopLevelType('dragleave');\nvar TOP_DRAG_OVER = unsafeCastStringToDOMTopLevelType('dragover');\nvar TOP_DRAG_START = unsafeCastStringToDOMTopLevelType('dragstart');\nvar TOP_DROP = unsafeCastStringToDOMTopLevelType('drop');\nvar TOP_DURATION_CHANGE = unsafeCastStringToDOMTopLevelType('durationchange');\nvar TOP_EMPTIED = unsafeCastStringToDOMTopLevelType('emptied');\nvar TOP_ENCRYPTED = unsafeCastStringToDOMTopLevelType('encrypted');\nvar TOP_ENDED = unsafeCastStringToDOMTopLevelType('ended');\nvar TOP_ERROR = unsafeCastStringToDOMTopLevelType('error');\nvar TOP_FOCUS = unsafeCastStringToDOMTopLevelType('focus');\nvar TOP_GOT_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('gotpointercapture');\nvar TOP_INPUT = unsafeCastStringToDOMTopLevelType('input');\nvar TOP_INVALID = unsafeCastStringToDOMTopLevelType('invalid');\nvar TOP_KEY_DOWN = unsafeCastStringToDOMTopLevelType('keydown');\nvar TOP_KEY_PRESS = unsafeCastStringToDOMTopLevelType('keypress');\nvar TOP_KEY_UP = unsafeCastStringToDOMTopLevelType('keyup');\nvar TOP_LOAD = unsafeCastStringToDOMTopLevelType('load');\nvar TOP_LOAD_START = unsafeCastStringToDOMTopLevelType('loadstart');\nvar TOP_LOADED_DATA = unsafeCastStringToDOMTopLevelType('loadeddata');\nvar TOP_LOADED_METADATA = unsafeCastStringToDOMTopLevelType('loadedmetadata');\nvar TOP_LOST_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('lostpointercapture');\nvar TOP_MOUSE_DOWN = unsafeCastStringToDOMTopLevelType('mousedown');\nvar TOP_MOUSE_MOVE = unsafeCastStringToDOMTopLevelType('mousemove');\nvar TOP_MOUSE_OUT = unsafeCastStringToDOMTopLevelType('mouseout');\nvar TOP_MOUSE_OVER = unsafeCastStringToDOMTopLevelType('mouseover');\nvar TOP_MOUSE_UP = unsafeCastStringToDOMTopLevelType('mouseup');\nvar TOP_PASTE = unsafeCastStringToDOMTopLevelType('paste');\nvar TOP_PAUSE = unsafeCastStringToDOMTopLevelType('pause');\nvar TOP_PLAY = unsafeCastStringToDOMTopLevelType('play');\nvar TOP_PLAYING = unsafeCastStringToDOMTopLevelType('playing');\nvar TOP_POINTER_CANCEL = unsafeCastStringToDOMTopLevelType('pointercancel');\nvar TOP_POINTER_DOWN = unsafeCastStringToDOMTopLevelType('pointerdown');\n\n\nvar TOP_POINTER_MOVE = unsafeCastStringToDOMTopLevelType('pointermove');\nvar TOP_POINTER_OUT = unsafeCastStringToDOMTopLevelType('pointerout');\nvar TOP_POINTER_OVER = unsafeCastStringToDOMTopLevelType('pointerover');\nvar TOP_POINTER_UP = unsafeCastStringToDOMTopLevelType('pointerup');\nvar TOP_PROGRESS = unsafeCastStringToDOMTopLevelType('progress');\nvar TOP_RATE_CHANGE = unsafeCastStringToDOMTopLevelType('ratechange');\nvar TOP_RESET = unsafeCastStringToDOMTopLevelType('reset');\nvar TOP_SCROLL = unsafeCastStringToDOMTopLevelType('scroll');\nvar TOP_SEEKED = unsafeCastStringToDOMTopLevelType('seeked');\nvar TOP_SEEKING = unsafeCastStringToDOMTopLevelType('seeking');\nvar TOP_SELECTION_CHANGE = unsafeCastStringToDOMTopLevelType('selectionchange');\nvar TOP_STALLED = unsafeCastStringToDOMTopLevelType('stalled');\nvar TOP_SUBMIT = unsafeCastStringToDOMTopLevelType('submit');\nvar TOP_SUSPEND = unsafeCastStringToDOMTopLevelType('suspend');\nvar TOP_TEXT_INPUT = unsafeCastStringToDOMTopLevelType('textInput');\nvar TOP_TIME_UPDATE = unsafeCastStringToDOMTopLevelType('timeupdate');\nvar TOP_TOGGLE = unsafeCastStringToDOMTopLevelType('toggle');\nvar TOP_TOUCH_CANCEL = unsafeCastStringToDOMTopLevelType('touchcancel');\nvar TOP_TOUCH_END = unsafeCastStringToDOMTopLevelType('touchend');\nvar TOP_TOUCH_MOVE = unsafeCastStringToDOMTopLevelType('touchmove');\nvar TOP_TOUCH_START = unsafeCastStringToDOMTopLevelType('touchstart');\nvar TOP_TRANSITION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('transitionend'));\nvar TOP_VOLUME_CHANGE = unsafeCastStringToDOMTopLevelType('volumechange');\nvar TOP_WAITING = unsafeCastStringToDOMTopLevelType('waiting');\nvar TOP_WHEEL = unsafeCastStringToDOMTopLevelType('wheel');\n\n// List of events that need to be individually attached to media elements.\n// Note that events in this list will *not* be listened to at the top level\n// unless they're explicitly whitelisted in `ReactBrowserEventEmitter.listenTo`.\nvar mediaEventTypes = [TOP_ABORT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_VOLUME_CHANGE, TOP_WAITING];\n\nfunction getRawEventName(topLevelType) {\n  return unsafeCastDOMTopLevelTypeToString(topLevelType);\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\n\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\n\nfunction initialize(nativeEventTarget) {\n  root = nativeEventTarget;\n  startText = getText();\n  return true;\n}\n\nfunction reset() {\n  root = null;\n  startText = null;\n  fallbackText = null;\n}\n\nfunction getData() {\n  if (fallbackText) {\n    return fallbackText;\n  }\n\n  var start = void 0;\n  var startValue = startText;\n  var startLength = startValue.length;\n  var end = void 0;\n  var endValue = getText();\n  var endLength = endValue.length;\n\n  for (start = 0; start < startLength; start++) {\n    if (startValue[start] !== endValue[start]) {\n      break;\n    }\n  }\n\n  var minEnd = startLength - start;\n  for (end = 1; end <= minEnd; end++) {\n    if (startValue[startLength - end] !== endValue[endLength - end]) {\n      break;\n    }\n  }\n\n  var sliceTail = end > 1 ? 1 - end : undefined;\n  fallbackText = endValue.slice(start, sliceTail);\n  return fallbackText;\n}\n\nfunction getText() {\n  if ('value' in root) {\n    return root.value;\n  }\n  return root.textContent;\n}\n\n/* eslint valid-typeof: 0 */\n\nvar EVENT_POOL_SIZE = 10;\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: function () {\n    return null;\n  },\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\nfunction functionThatReturnsTrue() {\n  return true;\n}\n\nfunction functionThatReturnsFalse() {\n  return false;\n}\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n  {\n    // these have a getter/setter for warnings\n    delete this.nativeEvent;\n    delete this.preventDefault;\n    delete this.stopPropagation;\n    delete this.isDefaultPrevented;\n    delete this.isPropagationStopped;\n  }\n\n  this.dispatchConfig = dispatchConfig;\n  this._targetInst = targetInst;\n  this.nativeEvent = nativeEvent;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    {\n      delete this[propName]; // this has a getter/setter for warnings\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = functionThatReturnsFalse;\n  }\n  this.isPropagationStopped = functionThatReturnsFalse;\n  return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else if (typeof event.returnValue !== 'unknown') {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else if (typeof event.cancelBubble !== 'unknown') {\n      // The ChangeEventPlugin registers a \"propertychange\" event for\n      // IE. This event does not support bubbling or cancelling, and\n      // any references to cancelBubble throw \"Member not found\".  A\n      // typeof check of \"unknown\" circumvents this issue (and is also\n      // IE specific).\n      event.cancelBubble = true;\n    }\n\n    this.isPropagationStopped = functionThatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = functionThatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: functionThatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      {\n        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n      }\n    }\n    this.dispatchConfig = null;\n    this._targetInst = null;\n    this.nativeEvent = null;\n    this.isDefaultPrevented = functionThatReturnsFalse;\n    this.isPropagationStopped = functionThatReturnsFalse;\n    this._dispatchListeners = null;\n    this._dispatchInstances = null;\n    {\n      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n      Object.defineProperty(this, 'isDefaultPrevented', getPooledWarningPropertyDefinition('isDefaultPrevented', functionThatReturnsFalse));\n      Object.defineProperty(this, 'isPropagationStopped', getPooledWarningPropertyDefinition('isPropagationStopped', functionThatReturnsFalse));\n      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', function () {}));\n      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', function () {}));\n    }\n  }\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n */\nSyntheticEvent.extend = function (Interface) {\n  var Super = this;\n\n  var E = function () {};\n  E.prototype = Super.prototype;\n  var prototype = new E();\n\n  function Class() {\n    return Super.apply(this, arguments);\n  }\n  _assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = _assign({}, Super.Interface, Interface);\n  Class.extend = Super.extend;\n  addEventPoolingTo(Class);\n\n  return Class;\n};\n\naddEventPoolingTo(SyntheticEvent);\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {String} propName\n * @param {?object} getVal\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n  var isFunction = typeof getVal === 'function';\n  return {\n    configurable: true,\n    set: set,\n    get: get\n  };\n\n  function set(val) {\n    var action = isFunction ? 'setting the method' : 'setting the property';\n    warn(action, 'This is effectively a no-op');\n    return val;\n  }\n\n  function get() {\n    var action = isFunction ? 'accessing the method' : 'accessing the property';\n    var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n    warn(action, result);\n    return getVal;\n  }\n\n  function warn(action, result) {\n    var warningCondition = false;\n    !warningCondition ? warningWithoutStack$1(false, \"This synthetic event is reused for performance reasons. If you're seeing this, \" + \"you're %s `%s` on a released/nullified synthetic event. %s. \" + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n  }\n}\n\nfunction getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {\n  var EventConstructor = this;\n  if (EventConstructor.eventPool.length) {\n    var instance = EventConstructor.eventPool.pop();\n    EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n    return instance;\n  }\n  return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\n\nfunction releasePooledEvent(event) {\n  var EventConstructor = this;\n  !(event instanceof EventConstructor) ? invariant(false, 'Trying to release an event instance into a pool of a different type.') : void 0;\n  event.destructor();\n  if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {\n    EventConstructor.eventPool.push(event);\n  }\n}\n\nfunction addEventPoolingTo(EventConstructor) {\n  EventConstructor.eventPool = [];\n  EventConstructor.getPooled = getPooledEvent;\n  EventConstructor.release = releasePooledEvent;\n}\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar SyntheticCompositionEvent = SyntheticEvent.extend({\n  data: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar SyntheticInputEvent = SyntheticEvent.extend({\n  data: null\n});\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode;\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: 'onBeforeInput',\n      captured: 'onBeforeInputCapture'\n    },\n    dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionEnd',\n      captured: 'onCompositionEndCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionStart',\n      captured: 'onCompositionStartCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionUpdate',\n      captured: 'onCompositionUpdateCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_UPDATE, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_START:\n      return eventTypes.compositionStart;\n    case TOP_COMPOSITION_END:\n      return eventTypes.compositionEnd;\n    case TOP_COMPOSITION_UPDATE:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_KEY_UP:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case TOP_KEY_DOWN:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case TOP_KEY_PRESS:\n    case TOP_MOUSE_DOWN:\n    case TOP_BLUR:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isUsingKoreanIME(nativeEvent) {\n  return nativeEvent.locale === 'ko';\n}\n\n// Track the current IME composition status, if any.\nvar isComposing = false;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var eventType = void 0;\n  var fallbackData = void 0;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!isComposing) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!isComposing && eventType === eventTypes.compositionStart) {\n      isComposing = initialize(nativeEventTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (isComposing) {\n        fallbackData = getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {TopLevelType} topLevelType Number from `TopLevelType`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_END:\n      return getDataFromCustomEvent(nativeEvent);\n    case TOP_KEY_PRESS:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case TOP_TEXT_INPUT:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to ignore it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {number} topLevelType Number from `TopLevelEventTypes`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  // If composition event is available, we extract a string only at\n  // compositionevent, otherwise extract it at fallback events.\n  if (isComposing) {\n    if (topLevelType === TOP_COMPOSITION_END || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = getData();\n      reset();\n      isComposing = false;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case TOP_PASTE:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case TOP_KEY_PRESS:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (!isKeypressCommand(nativeEvent)) {\n        // IE fires the `keypress` event when a user types an emoji via\n        // Touch keyboard of Windows.  In such a case, the `char` property\n        // holds an emoji character like `\\uD83D\\uDE0A`.  Because its length\n        // is 2, the property `which` does not represent an emoji correctly.\n        // In such a case, we directly return the `char` property instead of\n        // using `which`.\n        if (nativeEvent.char && nativeEvent.char.length > 1) {\n          return nativeEvent.char;\n        } else if (nativeEvent.which) {\n          return String.fromCharCode(nativeEvent.which);\n        }\n      }\n      return null;\n    case TOP_COMPOSITION_END:\n      return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var chars = void 0;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var composition = extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n\n    var beforeInput = extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n\n    if (composition === null) {\n      return beforeInput;\n    }\n\n    if (beforeInput === null) {\n      return composition;\n    }\n\n    return [composition, beforeInput];\n  }\n};\n\n// Use to restore controlled state after a change event has fired.\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n  // We perform this translation at the end of the event loop so that we\n  // always receive the correct fiber here\n  var internalInstance = getInstanceFromNode(target);\n  if (!internalInstance) {\n    // Unmounted\n    return;\n  }\n  !(typeof restoreImpl === 'function') ? invariant(false, 'setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  var props = getFiberCurrentPropsFromNode(internalInstance.stateNode);\n  restoreImpl(internalInstance.stateNode, internalInstance.type, props);\n}\n\nfunction setRestoreImplementation(impl) {\n  restoreImpl = impl;\n}\n\nfunction enqueueStateRestore(target) {\n  if (restoreTarget) {\n    if (restoreQueue) {\n      restoreQueue.push(target);\n    } else {\n      restoreQueue = [target];\n    }\n  } else {\n    restoreTarget = target;\n  }\n}\n\nfunction needsStateRestore() {\n  return restoreTarget !== null || restoreQueue !== null;\n}\n\nfunction restoreStateIfNeeded() {\n  if (!restoreTarget) {\n    return;\n  }\n  var target = restoreTarget;\n  var queuedTargets = restoreQueue;\n  restoreTarget = null;\n  restoreQueue = null;\n\n  restoreStateOfTarget(target);\n  if (queuedTargets) {\n    for (var i = 0; i < queuedTargets.length; i++) {\n      restoreStateOfTarget(queuedTargets[i]);\n    }\n  }\n}\n\n// Used as a way to call batchedUpdates when we don't have a reference to\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n\n// Defaults\nvar _batchedUpdatesImpl = function (fn, bookkeeping) {\n  return fn(bookkeeping);\n};\nvar _interactiveUpdatesImpl = function (fn, a, b) {\n  return fn(a, b);\n};\nvar _flushInteractiveUpdatesImpl = function () {};\n\nvar isBatching = false;\nfunction batchedUpdates(fn, bookkeeping) {\n  if (isBatching) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(bookkeeping);\n  }\n  isBatching = true;\n  try {\n    return _batchedUpdatesImpl(fn, bookkeeping);\n  } finally {\n    // Here we wait until all updates have propagated, which is important\n    // when using controlled components within layers:\n    // https://github.com/facebook/react/issues/1698\n    // Then we restore state of any controlled component.\n    isBatching = false;\n    var controlledComponentsHavePendingUpdates = needsStateRestore();\n    if (controlledComponentsHavePendingUpdates) {\n      // If a controlled event was fired, we may need to restore the state of\n      // the DOM node back to the controlled value. This is necessary when React\n      // bails out of the update without touching the DOM.\n      _flushInteractiveUpdatesImpl();\n      restoreStateIfNeeded();\n    }\n  }\n}\n\nfunction interactiveUpdates(fn, a, b) {\n  return _interactiveUpdatesImpl(fn, a, b);\n}\n\n\n\nfunction setBatchingImplementation(batchedUpdatesImpl, interactiveUpdatesImpl, flushInteractiveUpdatesImpl) {\n  _batchedUpdatesImpl = batchedUpdatesImpl;\n  _interactiveUpdatesImpl = interactiveUpdatesImpl;\n  _flushInteractiveUpdatesImpl = flushInteractiveUpdatesImpl;\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  color: true,\n  date: true,\n  datetime: true,\n  'datetime-local': true,\n  email: true,\n  month: true,\n  number: true,\n  password: true,\n  range: true,\n  search: true,\n  tel: true,\n  text: true,\n  time: true,\n  url: true,\n  week: true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n  if (nodeName === 'input') {\n    return !!supportedInputTypes[elem.type];\n  }\n\n  if (nodeName === 'textarea') {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * HTML nodeType values that represent the type of the node\n */\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n  // Fallback to nativeEvent.srcElement for IE9\n  // https://github.com/facebook/react/issues/12506\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n  // Normalize SVG <use> element events #4963\n  if (target.correspondingUseElement) {\n    target = target.correspondingUseElement;\n  }\n\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix) {\n  if (!canUseDOM) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  return isSupported;\n}\n\nfunction isCheckable(elem) {\n  var type = elem.type;\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n  return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n  node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n  var value = '';\n  if (!node) {\n    return value;\n  }\n\n  if (isCheckable(node)) {\n    value = node.checked ? 'true' : 'false';\n  } else {\n    value = node.value;\n  }\n\n  return value;\n}\n\nfunction trackValueOnNode(node) {\n  var valueField = isCheckable(node) ? 'checked' : 'value';\n  var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n  var currentValue = '' + node[valueField];\n\n  // if someone has already defined a value or Safari, then bail\n  // and don't track value will cause over reporting of changes,\n  // but it's better then a hard failure\n  // (needed for certain tests that spyOn input values and Safari)\n  if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n    return;\n  }\n  var get = descriptor.get,\n      set = descriptor.set;\n\n  Object.defineProperty(node, valueField, {\n    configurable: true,\n    get: function () {\n      return get.call(this);\n    },\n    set: function (value) {\n      currentValue = '' + value;\n      set.call(this, value);\n    }\n  });\n  // We could've passed this the first time\n  // but it triggers a bug in IE11 and Edge 14/15.\n  // Calling defineProperty() again should be equivalent.\n  // https://github.com/facebook/react/issues/11768\n  Object.defineProperty(node, valueField, {\n    enumerable: descriptor.enumerable\n  });\n\n  var tracker = {\n    getValue: function () {\n      return currentValue;\n    },\n    setValue: function (value) {\n      currentValue = '' + value;\n    },\n    stopTracking: function () {\n      detachTracker(node);\n      delete node[valueField];\n    }\n  };\n  return tracker;\n}\n\nfunction track(node) {\n  if (getTracker(node)) {\n    return;\n  }\n\n  // TODO: Once it's just Fiber we can move this to node._wrapperState\n  node._valueTracker = trackValueOnNode(node);\n}\n\nfunction updateValueIfChanged(node) {\n  if (!node) {\n    return false;\n  }\n\n  var tracker = getTracker(node);\n  // if there is no tracker at this point it's unlikely\n  // that trying again will succeed\n  if (!tracker) {\n    return true;\n  }\n\n  var lastValue = tracker.getValue();\n  var nextValue = getValueFromNode(node);\n  if (nextValue !== lastValue) {\n    tracker.setValue(nextValue);\n    return true;\n  }\n  return false;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\n\nvar describeComponentFrame = function (name, source, ownerName) {\n  var sourceInfo = '';\n  if (source) {\n    var path = source.fileName;\n    var fileName = path.replace(BEFORE_SLASH_RE, '');\n    {\n      // In DEV, include code for a common special case:\n      // prefer \"folder/index.js\" instead of just \"index.js\".\n      if (/^index\\./.test(fileName)) {\n        var match = path.match(BEFORE_SLASH_RE);\n        if (match) {\n          var pathBeforeSlash = match[1];\n          if (pathBeforeSlash) {\n            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n            fileName = folderName + '/' + fileName;\n          }\n        }\n      }\n    }\n    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n  } else if (ownerName) {\n    sourceInfo = ' (created by ' + ownerName + ')';\n  }\n  return '\\n    in ' + (name || 'Unknown') + sourceInfo;\n};\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_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_PLACEHOLDER_TYPE = hasSymbol ? Symbol.for('react.placeholder') : 0xead1;\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n  return null;\n}\n\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction getResultFromResolvedThenable(thenable) {\n  return thenable._reactResult;\n}\n\nfunction refineResolvedThenable(thenable) {\n  return thenable._reactStatus === Resolved ? thenable._reactResult : null;\n}\n\nfunction getComponentName(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n  {\n    if (typeof type.tag === 'number') {\n      warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n  if (typeof type === 'string') {\n    return type;\n  }\n  switch (type) {\n    case REACT_ASYNC_MODE_TYPE:\n      return 'AsyncMode';\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n    case REACT_PLACEHOLDER_TYPE:\n      return 'Placeholder';\n  }\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return 'Context.Consumer';\n      case REACT_PROVIDER_TYPE:\n        return 'Context.Provider';\n      case REACT_FORWARD_REF_TYPE:\n        var renderFn = type.render;\n        var functionName = renderFn.displayName || renderFn.name || '';\n        return type.displayName || (functionName !== '' ? 'ForwardRef(' + functionName + ')' : 'ForwardRef');\n    }\n    if (typeof type.then === 'function') {\n      var thenable = type;\n      var resolvedThenable = refineResolvedThenable(thenable);\n      if (resolvedThenable) {\n        return getComponentName(resolvedThenable);\n      }\n    }\n  }\n  return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction describeFiber(fiber) {\n  switch (fiber.tag) {\n    case IndeterminateComponent:\n    case FunctionalComponent:\n    case FunctionalComponentLazy:\n    case ClassComponent:\n    case ClassComponentLazy:\n    case HostComponent:\n    case Mode:\n      var owner = fiber._debugOwner;\n      var source = fiber._debugSource;\n      var name = getComponentName(fiber.type);\n      var ownerName = null;\n      if (owner) {\n        ownerName = getComponentName(owner.type);\n      }\n      return describeComponentFrame(name, source, ownerName);\n    default:\n      return '';\n  }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n  var info = '';\n  var node = workInProgress;\n  do {\n    info += describeFiber(node);\n    node = node.return;\n  } while (node);\n  return info;\n}\n\nvar current = null;\nvar phase = null;\n\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n  {\n    if (current === null) {\n      return null;\n    }\n    var owner = current._debugOwner;\n    if (owner !== null && typeof owner !== 'undefined') {\n      return getComponentName(owner.type);\n    }\n  }\n  return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n  {\n    if (current === null) {\n      return '';\n    }\n    // Safe because if current fiber exists, we are reconciling,\n    // and it is guaranteed to be the work-in-progress version.\n    return getStackByFiberInDevAndProd(current);\n  }\n  return '';\n}\n\nfunction resetCurrentFiber() {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = null;\n    current = null;\n    phase = null;\n  }\n}\n\nfunction setCurrentFiber(fiber) {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n    current = fiber;\n    phase = null;\n  }\n}\n\nfunction setCurrentPhase(lifeCyclePhase) {\n  {\n    phase = lifeCyclePhase;\n  }\n}\n\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 warning = warningWithoutStack$1;\n\n{\n  warning = function (condition, format) {\n    if (condition) {\n      return;\n    }\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n    // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));\n  };\n}\n\nvar warning$1 = warning;\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\nvar STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n    return true;\n  }\n  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  {\n    warning$1(false, 'Invalid attribute name: `%s`', attributeName);\n  }\n  return false;\n}\n\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null) {\n    return propertyInfo.type === RESERVED;\n  }\n  if (isCustomComponentTag) {\n    return false;\n  }\n  if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n    return true;\n  }\n  return false;\n}\n\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n    return false;\n  }\n  switch (typeof value) {\n    case 'function':\n    // $FlowIssue symbol is perfectly valid here\n    case 'symbol':\n      // eslint-disable-line\n      return true;\n    case 'boolean':\n      {\n        if (isCustomComponentTag) {\n          return false;\n        }\n        if (propertyInfo !== null) {\n          return !propertyInfo.acceptsBooleans;\n        } else {\n          var prefix = name.toLowerCase().slice(0, 5);\n          return prefix !== 'data-' && prefix !== 'aria-';\n        }\n      }\n    default:\n      return false;\n  }\n}\n\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n  if (value === null || typeof value === 'undefined') {\n    return true;\n  }\n  if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n    return true;\n  }\n  if (isCustomComponentTag) {\n    return false;\n  }\n  if (propertyInfo !== null) {\n    switch (propertyInfo.type) {\n      case BOOLEAN:\n        return !value;\n      case OVERLOADED_BOOLEAN:\n        return value === false;\n      case NUMERIC:\n        return isNaN(value);\n      case POSITIVE_NUMERIC:\n        return isNaN(value) || value < 1;\n    }\n  }\n  return false;\n}\n\nfunction getPropertyInfo(name) {\n  return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\n['children', 'dangerouslySetInnerHTML',\n// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n  var name = _ref[0],\n      attributeName = _ref[1];\n\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML boolean attributes.\n['allowFullScreen', 'async',\n// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',\n// Microdata\n'itemScope'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',\n// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture', 'download'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be positive numbers.\n['cols', 'rows', 'size', 'span'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\nvar capitalize = function (token) {\n  return token[1].toUpperCase();\n};\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scrapping the MDN documentation.\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, null);\n} // attributeNamespace\n);\n\n// String SVG attributes with the xlink namespace.\n['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/1999/xlink');\n});\n\n// String SVG attributes with the xml namespace.\n['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/XML/1998/namespace');\n});\n\n// Special case: this attribute exists both in HTML and SVG.\n// Its \"tabindex\" attribute name is case-sensitive in SVG so we can't just use\n// its React `tabIndex` name, like we do for attributes that exist only in HTML.\nproperties.tabIndex = new PropertyInfoRecord('tabIndex', STRING, false, // mustUseProperty\n'tabindex', // attributeName\nnull);\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n  {\n    if (propertyInfo.mustUseProperty) {\n      var propertyName = propertyInfo.propertyName;\n\n      return node[propertyName];\n    } else {\n      var attributeName = propertyInfo.attributeName;\n\n      var stringValue = null;\n\n      if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n        if (node.hasAttribute(attributeName)) {\n          var value = node.getAttribute(attributeName);\n          if (value === '') {\n            return true;\n          }\n          if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n            return value;\n          }\n          if (value === '' + expected) {\n            return expected;\n          }\n          return value;\n        }\n      } else if (node.hasAttribute(attributeName)) {\n        if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n          // We had an attribute but shouldn't have had one, so read it\n          // for the error message.\n          return node.getAttribute(attributeName);\n        }\n        if (propertyInfo.type === BOOLEAN) {\n          // If this was a boolean, it doesn't matter what the value is\n          // the fact that we have it is the same as the expected.\n          return expected;\n        }\n        // Even if this property uses a namespace we use getAttribute\n        // because we assume its namespaced name is the same as our config.\n        // To use getAttributeNS we need the local name which we don't have\n        // in our config atm.\n        stringValue = node.getAttribute(attributeName);\n      }\n\n      if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n        return stringValue === null ? expected : stringValue;\n      } else if (stringValue === '' + expected) {\n        return expected;\n      } else {\n        return stringValue;\n      }\n    }\n  }\n}\n\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\nfunction getValueForAttribute(node, name, expected) {\n  {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (!node.hasAttribute(name)) {\n      return expected === undefined ? undefined : null;\n    }\n    var value = node.getAttribute(name);\n    if (value === '' + expected) {\n      return expected;\n    }\n    return value;\n  }\n}\n\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n  var propertyInfo = getPropertyInfo(name);\n  if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n    return;\n  }\n  if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n    value = null;\n  }\n  // If the prop isn't in the special list, treat it as a simple attribute.\n  if (isCustomComponentTag || propertyInfo === null) {\n    if (isAttributeNameSafe(name)) {\n      var _attributeName = name;\n      if (value === null) {\n        node.removeAttribute(_attributeName);\n      } else {\n        node.setAttribute(_attributeName, '' + value);\n      }\n    }\n    return;\n  }\n  var mustUseProperty = propertyInfo.mustUseProperty;\n\n  if (mustUseProperty) {\n    var propertyName = propertyInfo.propertyName;\n\n    if (value === null) {\n      var type = propertyInfo.type;\n\n      node[propertyName] = type === BOOLEAN ? false : '';\n    } else {\n      // Contrary to `setAttribute`, object properties are properly\n      // `toString`ed by IE8/9.\n      node[propertyName] = value;\n    }\n    return;\n  }\n  // The rest are treated as attributes with special cases.\n  var attributeName = propertyInfo.attributeName,\n      attributeNamespace = propertyInfo.attributeNamespace;\n\n  if (value === null) {\n    node.removeAttribute(attributeName);\n  } else {\n    var _type = propertyInfo.type;\n\n    var attributeValue = void 0;\n    if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n      attributeValue = '';\n    } else {\n      // `setAttribute` with objects becomes only `[object]` in IE8/9,\n      // ('' + value) makes it output the correct toString()-value.\n      attributeValue = '' + value;\n    }\n    if (attributeNamespace) {\n      node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n    } else {\n      node.setAttribute(attributeName, attributeValue);\n    }\n  }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n  return '' + value;\n}\n\nfunction getToStringValue(value) {\n  switch (typeof value) {\n    case 'boolean':\n    case 'number':\n    case 'object':\n    case 'string':\n    case 'undefined':\n      return value;\n    default:\n      // function, symbol are assigned as empty strings\n      return '';\n  }\n}\n\nvar ReactDebugCurrentFrame$1 = null;\n\nvar ReactControlledValuePropTypes = {\n  checkPropTypes: null\n};\n\n{\n  ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\n  var hasReadOnlyValue = {\n    button: true,\n    checkbox: true,\n    image: true,\n    hidden: true,\n    radio: true,\n    reset: true,\n    submit: true\n  };\n\n  var propTypes = {\n    value: function (props, propName, componentName) {\n      if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n        return null;\n      }\n      return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    },\n    checked: function (props, propName, componentName) {\n      if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n        return null;\n      }\n      return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    }\n  };\n\n  /**\n   * Provide a linked `value` attribute for controlled forms. You should not use\n   * this outside of the ReactDOM controlled form components.\n   */\n  ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n    checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$1.getStackAddendum);\n  };\n}\n\n// Exports ReactDOM.createRoot\nvar enableUserTimingAPI = true;\n\n// Experimental error-boundary API that can recover from errors within a single\n// render phase\nvar enableGetDerivedStateFromCatch = false;\n// Suspense\nvar enableSuspense = false;\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\nvar debugRenderPhaseSideEffects = false;\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\nvar debugRenderPhaseSideEffectsForStrictMode = true;\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\nvar replayFailedUnitOfWorkWithInvokeGuardedCallback = true;\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\nvar warnAboutDeprecatedLifecycles = false;\n\n// Warn about legacy context API\nvar warnAboutLegacyContextAPI = false;\n\n// Gather advanced timing metrics for Profiler subtrees.\nvar enableProfilerTimer = true;\n\n// Trace which interactions trigger each commit.\nvar enableSchedulerTracing = true;\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\nvar disableInputAttributeSyncing = false;\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\nfunction getHostProps(element, props) {\n  var node = element;\n  var checked = props.checked;\n\n  var hostProps = _assign({}, props, {\n    defaultChecked: undefined,\n    defaultValue: undefined,\n    value: undefined,\n    checked: checked != null ? checked : node._wrapperState.initialChecked\n  });\n\n  return hostProps;\n}\n\nfunction initWrapperState(element, props) {\n  {\n    ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n    if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n      warning$1(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n      didWarnCheckedDefaultChecked = true;\n    }\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n      warning$1(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n      didWarnValueDefaultValue = true;\n    }\n  }\n\n  var node = element;\n  var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n\n  node._wrapperState = {\n    initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n    initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n    controlled: isControlled(props)\n  };\n}\n\nfunction updateChecked(element, props) {\n  var node = element;\n  var checked = props.checked;\n  if (checked != null) {\n    setValueForProperty(node, 'checked', checked, false);\n  }\n}\n\nfunction updateWrapper(element, props) {\n  var node = element;\n  {\n    var _controlled = isControlled(props);\n\n    if (!node._wrapperState.controlled && _controlled && !didWarnUncontrolledToControlled) {\n      warning$1(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n      didWarnUncontrolledToControlled = true;\n    }\n    if (node._wrapperState.controlled && !_controlled && !didWarnControlledToUncontrolled) {\n      warning$1(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n      didWarnControlledToUncontrolled = true;\n    }\n  }\n\n  updateChecked(element, props);\n\n  var value = getToStringValue(props.value);\n  var type = props.type;\n\n  if (value != null) {\n    if (type === 'number') {\n      if (value === 0 && node.value === '' ||\n      // We explicitly want to coerce to number here if possible.\n      // eslint-disable-next-line\n      node.value != value) {\n        node.value = toString(value);\n      }\n    } else if (node.value !== toString(value)) {\n      node.value = toString(value);\n    }\n  } else if (type === 'submit' || type === 'reset') {\n    // Submit/reset inputs need the attribute removed completely to avoid\n    // blank-text buttons.\n    node.removeAttribute('value');\n    return;\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the value attribute, React only assigns a new value\n    // whenever the defaultValue React prop has changed. When not present,\n    // React does nothing\n    if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  } else {\n    // When syncing the value attribute, the value comes from a cascade of\n    // properties:\n    //  1. The value React property\n    //  2. The defaultValue React property\n    //  3. Otherwise there should be no change\n    if (props.hasOwnProperty('value')) {\n      setDefaultValue(node, props.type, value);\n    } else if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the checked attribute, the attribute is directly\n    // controllable from the defaultValue React property. It needs to be\n    // updated as new props come in.\n    if (props.defaultChecked == null) {\n      node.removeAttribute('checked');\n    } else {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  } else {\n    // When syncing the checked attribute, it only changes when it needs\n    // to be removed, such as transitioning from a checkbox into a text input\n    if (props.checked == null && props.defaultChecked != null) {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  }\n}\n\nfunction postMountWrapper(element, props, isHydrating) {\n  var node = element;\n\n  // Do not assign value if it is already set. This prevents user text input\n  // from being lost during SSR hydration.\n  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n    var type = props.type;\n    var isButton = type === 'submit' || type === 'reset';\n\n    // Avoid setting value attribute on submit/reset inputs as it overrides the\n    // default value provided by the browser. See: #12872\n    if (isButton && (props.value === undefined || props.value === null)) {\n      return;\n    }\n\n    var _initialValue = toString(node._wrapperState.initialValue);\n\n    // Do not assign value if it is already set. This prevents user text input\n    // from being lost during SSR hydration.\n    if (!isHydrating) {\n      if (disableInputAttributeSyncing) {\n        var value = getToStringValue(props.value);\n\n        // When not syncing the value attribute, the value property points\n        // directly to the React prop. Only assign it if it exists.\n        if (value != null) {\n          // Always assign on buttons so that it is possible to assign an\n          // empty string to clear button text.\n          //\n          // Otherwise, do not re-assign the value property if is empty. This\n          // potentially avoids a DOM write and prevents Firefox (~60.0.1) from\n          // prematurely marking required inputs as invalid. Equality is compared\n          // to the current value in case the browser provided value is not an\n          // empty string.\n          if (isButton || value !== node.value) {\n            node.value = toString(value);\n          }\n        }\n      } else {\n        // When syncing the value attribute, the value property should use\n        // the the wrapperState._initialValue property. This uses:\n        //\n        //   1. The value React property when present\n        //   2. The defaultValue React property when present\n        //   3. An empty string\n        if (_initialValue !== node.value) {\n          node.value = _initialValue;\n        }\n      }\n    }\n\n    if (disableInputAttributeSyncing) {\n      // When not syncing the value attribute, assign the value attribute\n      // directly from the defaultValue React property (when present)\n      var defaultValue = getToStringValue(props.defaultValue);\n      if (defaultValue != null) {\n        node.defaultValue = toString(defaultValue);\n      }\n    } else {\n      // Otherwise, the value attribute is synchronized to the property,\n      // so we assign defaultValue to the same thing as the value property\n      // assignment step above.\n      node.defaultValue = _initialValue;\n    }\n  }\n\n  // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n  // this is needed to work around a chrome bug where setting defaultChecked\n  // will sometimes influence the value of checked (even after detachment).\n  // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n  // We need to temporarily unset name to avoid disrupting radio button groups.\n  var name = node.name;\n  if (name !== '') {\n    node.name = '';\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the checked attribute, the checked property\n    // never gets assigned. It must be manually set. We don't want\n    // to do this when hydrating so that existing user input isn't\n    // modified\n    if (!isHydrating) {\n      updateChecked(element, props);\n    }\n\n    // Only assign the checked attribute if it is defined. This saves\n    // a DOM write when controlling the checked attribute isn't needed\n    // (text inputs, submit/reset)\n    if (props.hasOwnProperty('defaultChecked')) {\n      node.defaultChecked = !node.defaultChecked;\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  } else {\n    // When syncing the checked attribute, both the the checked property and\n    // attribute are assigned at the same time using defaultChecked. This uses:\n    //\n    //   1. The checked React property when present\n    //   2. The defaultChecked React property when present\n    //   3. Otherwise, false\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !!node._wrapperState.initialChecked;\n  }\n\n  if (name !== '') {\n    node.name = name;\n  }\n}\n\nfunction restoreControlledState(element, props) {\n  var node = element;\n  updateWrapper(node, props);\n  updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form. It might not even be in the\n    // document. Let's just use the local `querySelectorAll` to ensure we don't\n    // miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n      var otherProps = getFiberCurrentPropsFromNode$1(otherNode);\n      !otherProps ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : void 0;\n\n      // We need update the tracked value on the named cousin since the value\n      // was changed but the input saw no event or value set\n      updateValueIfChanged(otherNode);\n\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      updateWrapper(otherNode, otherProps);\n    }\n  }\n}\n\n// In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\nfunction setDefaultValue(node, type, value) {\n  if (\n  // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n  type !== 'number' || node.ownerDocument.activeElement !== node) {\n    if (value == null) {\n      node.defaultValue = toString(node._wrapperState.initialValue);\n    } else if (node.defaultValue !== toString(value)) {\n      node.defaultValue = toString(value);\n    }\n  }\n}\n\nvar eventTypes$1 = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: 'onChange',\n      captured: 'onChangeCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CHANGE, TOP_CLICK, TOP_FOCUS, TOP_INPUT, TOP_KEY_DOWN, TOP_KEY_UP, TOP_SELECTION_CHANGE]\n  }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n  var event = SyntheticEvent.getPooled(eventTypes$1.change, inst, nativeEvent, target);\n  event.type = 'change';\n  // Flag this event loop as needing state restore.\n  enqueueStateRestore(target);\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  runEventsInBatch(event, false);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n  var targetNode = getNodeFromInstance$1(targetInst);\n  if (updateValueIfChanged(targetNode)) {\n    return targetInst;\n  }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CHANGE) {\n    return targetInst;\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events.\n  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n  activeElement = null;\n  activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  if (getInstIfValueChanged(activeElementInst)) {\n    manualDispatchChangeEvent(nativeEvent);\n  }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n  if (topLevelType === TOP_FOCUS) {\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(target, targetInst);\n  } else if (topLevelType === TOP_BLUR) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst) {\n  if (topLevelType === TOP_SELECTION_CHANGE || topLevelType === TOP_KEY_UP || topLevelType === TOP_KEY_DOWN) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    return getInstIfValueChanged(activeElementInst);\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CLICK) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction handleControlledInputBlur(node) {\n  var state = node._wrapperState;\n\n  if (!state || !state.controlled || node.type !== 'number') {\n    return;\n  }\n\n  if (!disableInputAttributeSyncing) {\n    // If controlled, assign the value attribute to the current value on blur\n    setDefaultValue(node, 'number', node.value);\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n  eventTypes: eventTypes$1,\n\n  _isInputEventSupported: isInputEventSupported,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n    var getTargetInstFunc = void 0,\n        handleEventFunc = void 0;\n    if (shouldUseChangeEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForChangeEvent;\n    } else if (isTextInputElement(targetNode)) {\n      if (isInputEventSupported) {\n        getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n      } else {\n        getTargetInstFunc = getTargetInstForInputEventPolyfill;\n        handleEventFunc = handleEventsForInputEventPolyfill;\n      }\n    } else if (shouldUseClickEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForClickEvent;\n    }\n\n    if (getTargetInstFunc) {\n      var inst = getTargetInstFunc(topLevelType, targetInst);\n      if (inst) {\n        var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, targetNode, targetInst);\n    }\n\n    // When blurring, set the value attribute for number inputs\n    if (topLevelType === TOP_BLUR) {\n      handleControlledInputBlur(targetNode);\n    }\n  }\n};\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nvar SyntheticUIEvent = SyntheticEvent.extend({\n  view: null,\n  detail: null\n});\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n  Alt: 'altKey',\n  Control: 'ctrlKey',\n  Meta: 'metaKey',\n  Shift: 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nvar previousScreenX = 0;\nvar previousScreenY = 0;\n// Use flags to signal movementX/Y has already been set\nvar isMovementXSet = false;\nvar isMovementYSet = false;\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticMouseEvent = SyntheticUIEvent.extend({\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  pageX: null,\n  pageY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: null,\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  movementX: function (event) {\n    if ('movementX' in event) {\n      return event.movementX;\n    }\n\n    var screenX = previousScreenX;\n    previousScreenX = event.screenX;\n\n    if (!isMovementXSet) {\n      isMovementXSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenX - screenX : 0;\n  },\n  movementY: function (event) {\n    if ('movementY' in event) {\n      return event.movementY;\n    }\n\n    var screenY = previousScreenY;\n    previousScreenY = event.screenY;\n\n    if (!isMovementYSet) {\n      isMovementYSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenY - screenY : 0;\n  }\n});\n\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\nvar SyntheticPointerEvent = SyntheticMouseEvent.extend({\n  pointerId: null,\n  width: null,\n  height: null,\n  pressure: null,\n  tangentialPressure: null,\n  tiltX: null,\n  tiltY: null,\n  twist: null,\n  pointerType: null,\n  isPrimary: null\n});\n\nvar eventTypes$2 = {\n  mouseEnter: {\n    registrationName: 'onMouseEnter',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  mouseLeave: {\n    registrationName: 'onMouseLeave',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  pointerEnter: {\n    registrationName: 'onPointerEnter',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  },\n  pointerLeave: {\n    registrationName: 'onPointerLeave',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  }\n};\n\nvar EnterLeaveEventPlugin = {\n  eventTypes: eventTypes$2,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   */\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var isOverEvent = topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;\n    var isOutEvent = topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_POINTER_OUT;\n\n    if (isOverEvent && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n\n    if (!isOutEvent && !isOverEvent) {\n      // Must not be a mouse or pointer in or out - ignoring.\n      return null;\n    }\n\n    var win = void 0;\n    if (nativeEventTarget.window === nativeEventTarget) {\n      // `nativeEventTarget` is probably a window object.\n      win = nativeEventTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = nativeEventTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from = void 0;\n    var to = void 0;\n    if (isOutEvent) {\n      from = targetInst;\n      var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n      to = related ? getClosestInstanceFromNode(related) : null;\n    } else {\n      // Moving to a node from outside the window.\n      from = null;\n      to = targetInst;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var eventInterface = void 0,\n        leaveEventType = void 0,\n        enterEventType = void 0,\n        eventTypePrefix = void 0;\n\n    if (topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_MOUSE_OVER) {\n      eventInterface = SyntheticMouseEvent;\n      leaveEventType = eventTypes$2.mouseLeave;\n      enterEventType = eventTypes$2.mouseEnter;\n      eventTypePrefix = 'mouse';\n    } else if (topLevelType === TOP_POINTER_OUT || topLevelType === TOP_POINTER_OVER) {\n      eventInterface = SyntheticPointerEvent;\n      leaveEventType = eventTypes$2.pointerLeave;\n      enterEventType = eventTypes$2.pointerEnter;\n      eventTypePrefix = 'pointer';\n    }\n\n    var fromNode = from == null ? win : getNodeFromInstance$1(from);\n    var toNode = to == null ? win : getNodeFromInstance$1(to);\n\n    var leave = eventInterface.getPooled(leaveEventType, from, nativeEvent, nativeEventTarget);\n    leave.type = eventTypePrefix + 'leave';\n    leave.target = fromNode;\n    leave.relatedTarget = toNode;\n\n    var enter = eventInterface.getPooled(enterEventType, to, nativeEvent, nativeEventTarget);\n    enter.type = eventTypePrefix + 'enter';\n    enter.target = toNode;\n    enter.relatedTarget = fromNode;\n\n    accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n    return [leave, enter];\n  }\n};\n\n/*eslint-disable no-self-compare */\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\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 */\nfunction 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    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(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  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty$1.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\n\n/**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n\n\nfunction get(key) {\n  return key._reactInternalFiber;\n}\n\nfunction has(key) {\n  return key._reactInternalFiber !== undefined;\n}\n\nfunction set(key, value) {\n  key._reactInternalFiber = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoEffect = /*              */0;\nvar PerformedWork = /*         */1;\n\n// You can change the rest (and add more).\nvar Placement = /*             */2;\nvar Update = /*                */4;\nvar PlacementAndUpdate = /*    */6;\nvar Deletion = /*              */8;\nvar ContentReset = /*          */16;\nvar Callback = /*              */32;\nvar DidCapture = /*            */64;\nvar Ref = /*                   */128;\nvar Snapshot = /*              */256;\n\n// Update & Callback & Ref & Snapshot\nvar LifecycleEffectMask = /*   */420;\n\n// Union of all host effects\nvar HostEffectMask = /*        */511;\n\nvar Incomplete = /*            */512;\nvar ShouldCapture = /*         */1024;\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n\nvar MOUNTING = 1;\nvar MOUNTED = 2;\nvar UNMOUNTED = 3;\n\nfunction isFiberMountedImpl(fiber) {\n  var node = fiber;\n  if (!fiber.alternate) {\n    // If there is no alternate, this might be a new tree that isn't inserted\n    // yet. If it is, then it will have a pending insertion effect on it.\n    if ((node.effectTag & Placement) !== NoEffect) {\n      return MOUNTING;\n    }\n    while (node.return) {\n      node = node.return;\n      if ((node.effectTag & Placement) !== NoEffect) {\n        return MOUNTING;\n      }\n    }\n  } else {\n    while (node.return) {\n      node = node.return;\n    }\n  }\n  if (node.tag === HostRoot) {\n    // TODO: Check if this was a nested HostRoot when used with\n    // renderContainerIntoSubtree.\n    return MOUNTED;\n  }\n  // If we didn't hit the root, that means that we're in an disconnected tree\n  // that has been unmounted.\n  return UNMOUNTED;\n}\n\nfunction isFiberMounted(fiber) {\n  return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction isMounted(component) {\n  {\n    var owner = ReactCurrentOwner$1.current;\n    if (owner !== null && (owner.tag === ClassComponent || owner.tag === ClassComponentLazy)) {\n      var ownerFiber = owner;\n      var instance = ownerFiber.stateNode;\n      !instance._warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component') : void 0;\n      instance._warnedAboutRefsInRender = true;\n    }\n  }\n\n  var fiber = get(component);\n  if (!fiber) {\n    return false;\n  }\n  return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction assertIsMounted(fiber) {\n  !(isFiberMountedImpl(fiber) === MOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n  var alternate = fiber.alternate;\n  if (!alternate) {\n    // If there is no alternate, then we only need to check if it is mounted.\n    var state = isFiberMountedImpl(fiber);\n    !(state !== UNMOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n    if (state === MOUNTING) {\n      return null;\n    }\n    return fiber;\n  }\n  // If we have two possible branches, we'll walk backwards up to the root\n  // to see what path the root points to. On the way we may hit one of the\n  // special cases and we'll deal with them.\n  var a = fiber;\n  var b = alternate;\n  while (true) {\n    var parentA = a.return;\n    var parentB = parentA ? parentA.alternate : null;\n    if (!parentA || !parentB) {\n      // We're at the root.\n      break;\n    }\n\n    // If both copies of the parent fiber point to the same child, we can\n    // assume that the child is current. This happens when we bailout on low\n    // priority: the bailed out fiber's child reuses the current child.\n    if (parentA.child === parentB.child) {\n      var child = parentA.child;\n      while (child) {\n        if (child === a) {\n          // We've determined that A is the current branch.\n          assertIsMounted(parentA);\n          return fiber;\n        }\n        if (child === b) {\n          // We've determined that B is the current branch.\n          assertIsMounted(parentA);\n          return alternate;\n        }\n        child = child.sibling;\n      }\n      // We should never have an alternate for any mounting node. So the only\n      // way this could possibly happen is if this was unmounted, if at all.\n      invariant(false, 'Unable to find node on an unmounted component.');\n    }\n\n    if (a.return !== b.return) {\n      // The return pointer of A and the return pointer of B point to different\n      // fibers. We assume that return pointers never criss-cross, so A must\n      // belong to the child set of A.return, and B must belong to the child\n      // set of B.return.\n      a = parentA;\n      b = parentB;\n    } else {\n      // The return pointers point to the same fiber. We'll have to use the\n      // default, slow path: scan the child sets of each parent alternate to see\n      // which child belongs to which set.\n      //\n      // Search parent A's child set\n      var didFindChild = false;\n      var _child = parentA.child;\n      while (_child) {\n        if (_child === a) {\n          didFindChild = true;\n          a = parentA;\n          b = parentB;\n          break;\n        }\n        if (_child === b) {\n          didFindChild = true;\n          b = parentA;\n          a = parentB;\n          break;\n        }\n        _child = _child.sibling;\n      }\n      if (!didFindChild) {\n        // Search parent B's child set\n        _child = parentB.child;\n        while (_child) {\n          if (_child === a) {\n            didFindChild = true;\n            a = parentB;\n            b = parentA;\n            break;\n          }\n          if (_child === b) {\n            didFindChild = true;\n            b = parentB;\n            a = parentA;\n            break;\n          }\n          _child = _child.sibling;\n        }\n        !didFindChild ? invariant(false, 'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.') : void 0;\n      }\n    }\n\n    !(a.alternate === b) ? invariant(false, 'Return fibers should always be each others\\' alternates. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  }\n  // If the root is not a host container, we're in a disconnected tree. I.e.\n  // unmounted.\n  !(a.tag === HostRoot) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;\n  if (a.stateNode.current === a) {\n    // We've determined that A is the current branch.\n    return fiber;\n  }\n  // Otherwise B has to be current branch.\n  return alternate;\n}\n\nfunction findCurrentHostFiber(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  if (!currentParent) {\n    return null;\n  }\n\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  var node = currentParent;\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      return node;\n    } else if (node.child) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === currentParent) {\n      return null;\n    }\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n  return null;\n}\n\nfunction findCurrentHostFiberWithNoPortals(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  if (!currentParent) {\n    return null;\n  }\n\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  var node = currentParent;\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      return node;\n    } else if (node.child && node.tag !== HostPortal) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === currentParent) {\n      return null;\n    }\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n  return null;\n}\n\nfunction addEventBubbleListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, false);\n}\n\nfunction addEventCaptureListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, true);\n}\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar SyntheticAnimationEvent = SyntheticEvent.extend({\n  animationName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar SyntheticClipboardEvent = SyntheticEvent.extend({\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n});\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticFocusEvent = SyntheticUIEvent.extend({\n  relatedTarget: null\n});\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode = void 0;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n  // report Enter as charCode 10 when ctrl is pressed.\n  if (charCode === 10) {\n    charCode = 13;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  Esc: 'Escape',\n  Spacebar: ' ',\n  Left: 'ArrowLeft',\n  Up: 'ArrowUp',\n  Right: 'ArrowRight',\n  Down: 'ArrowDown',\n  Del: 'Delete',\n  Win: 'OS',\n  Menu: 'ContextMenu',\n  Apps: 'ContextMenu',\n  Scroll: 'ScrollLock',\n  MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  '8': 'Backspace',\n  '9': 'Tab',\n  '12': 'Clear',\n  '13': 'Enter',\n  '16': 'Shift',\n  '17': 'Control',\n  '18': 'Alt',\n  '19': 'Pause',\n  '20': 'CapsLock',\n  '27': 'Escape',\n  '32': ' ',\n  '33': 'PageUp',\n  '34': 'PageDown',\n  '35': 'End',\n  '36': 'Home',\n  '37': 'ArrowLeft',\n  '38': 'ArrowUp',\n  '39': 'ArrowRight',\n  '40': 'ArrowDown',\n  '45': 'Insert',\n  '46': 'Delete',\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  '224': 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticKeyboardEvent = SyntheticUIEvent.extend({\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n});\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticDragEvent = SyntheticMouseEvent.extend({\n  dataTransfer: null\n});\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar SyntheticTouchEvent = SyntheticUIEvent.extend({\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar SyntheticTransitionEvent = SyntheticEvent.extend({\n  propertyName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticWheelEvent = SyntheticMouseEvent.extend({\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n});\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n *   'abort': {\n *     phasedRegistrationNames: {\n *       bubbled: 'onAbort',\n *       captured: 'onAbortCapture',\n *     },\n *     dependencies: [TOP_ABORT],\n *   },\n *   ...\n * };\n * topLevelEventsToDispatchConfig = new Map([\n *   [TOP_ABORT, { sameConfig }],\n * ]);\n */\n\nvar interactiveEventTypeNames = [[TOP_BLUR, 'blur'], [TOP_CANCEL, 'cancel'], [TOP_CLICK, 'click'], [TOP_CLOSE, 'close'], [TOP_CONTEXT_MENU, 'contextMenu'], [TOP_COPY, 'copy'], [TOP_CUT, 'cut'], [TOP_AUX_CLICK, 'auxClick'], [TOP_DOUBLE_CLICK, 'doubleClick'], [TOP_DRAG_END, 'dragEnd'], [TOP_DRAG_START, 'dragStart'], [TOP_DROP, 'drop'], [TOP_FOCUS, 'focus'], [TOP_INPUT, 'input'], [TOP_INVALID, 'invalid'], [TOP_KEY_DOWN, 'keyDown'], [TOP_KEY_PRESS, 'keyPress'], [TOP_KEY_UP, 'keyUp'], [TOP_MOUSE_DOWN, 'mouseDown'], [TOP_MOUSE_UP, 'mouseUp'], [TOP_PASTE, 'paste'], [TOP_PAUSE, 'pause'], [TOP_PLAY, 'play'], [TOP_POINTER_CANCEL, 'pointerCancel'], [TOP_POINTER_DOWN, 'pointerDown'], [TOP_POINTER_UP, 'pointerUp'], [TOP_RATE_CHANGE, 'rateChange'], [TOP_RESET, 'reset'], [TOP_SEEKED, 'seeked'], [TOP_SUBMIT, 'submit'], [TOP_TOUCH_CANCEL, 'touchCancel'], [TOP_TOUCH_END, 'touchEnd'], [TOP_TOUCH_START, 'touchStart'], [TOP_VOLUME_CHANGE, 'volumeChange']];\nvar nonInteractiveEventTypeNames = [[TOP_ABORT, 'abort'], [TOP_ANIMATION_END, 'animationEnd'], [TOP_ANIMATION_ITERATION, 'animationIteration'], [TOP_ANIMATION_START, 'animationStart'], [TOP_CAN_PLAY, 'canPlay'], [TOP_CAN_PLAY_THROUGH, 'canPlayThrough'], [TOP_DRAG, 'drag'], [TOP_DRAG_ENTER, 'dragEnter'], [TOP_DRAG_EXIT, 'dragExit'], [TOP_DRAG_LEAVE, 'dragLeave'], [TOP_DRAG_OVER, 'dragOver'], [TOP_DURATION_CHANGE, 'durationChange'], [TOP_EMPTIED, 'emptied'], [TOP_ENCRYPTED, 'encrypted'], [TOP_ENDED, 'ended'], [TOP_ERROR, 'error'], [TOP_GOT_POINTER_CAPTURE, 'gotPointerCapture'], [TOP_LOAD, 'load'], [TOP_LOADED_DATA, 'loadedData'], [TOP_LOADED_METADATA, 'loadedMetadata'], [TOP_LOAD_START, 'loadStart'], [TOP_LOST_POINTER_CAPTURE, 'lostPointerCapture'], [TOP_MOUSE_MOVE, 'mouseMove'], [TOP_MOUSE_OUT, 'mouseOut'], [TOP_MOUSE_OVER, 'mouseOver'], [TOP_PLAYING, 'playing'], [TOP_POINTER_MOVE, 'pointerMove'], [TOP_POINTER_OUT, 'pointerOut'], [TOP_POINTER_OVER, 'pointerOver'], [TOP_PROGRESS, 'progress'], [TOP_SCROLL, 'scroll'], [TOP_SEEKING, 'seeking'], [TOP_STALLED, 'stalled'], [TOP_SUSPEND, 'suspend'], [TOP_TIME_UPDATE, 'timeUpdate'], [TOP_TOGGLE, 'toggle'], [TOP_TOUCH_MOVE, 'touchMove'], [TOP_TRANSITION_END, 'transitionEnd'], [TOP_WAITING, 'waiting'], [TOP_WHEEL, 'wheel']];\n\nvar eventTypes$4 = {};\nvar topLevelEventsToDispatchConfig = {};\n\nfunction addEventTypeNameToConfig(_ref, isInteractive) {\n  var topEvent = _ref[0],\n      event = _ref[1];\n\n  var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n  var onEvent = 'on' + capitalizedEvent;\n\n  var type = {\n    phasedRegistrationNames: {\n      bubbled: onEvent,\n      captured: onEvent + 'Capture'\n    },\n    dependencies: [topEvent],\n    isInteractive: isInteractive\n  };\n  eventTypes$4[event] = type;\n  topLevelEventsToDispatchConfig[topEvent] = type;\n}\n\ninteractiveEventTypeNames.forEach(function (eventTuple) {\n  addEventTypeNameToConfig(eventTuple, true);\n});\nnonInteractiveEventTypeNames.forEach(function (eventTuple) {\n  addEventTypeNameToConfig(eventTuple, false);\n});\n\n// Only used in DEV for exhaustiveness validation.\nvar knownHTMLTopLevelTypes = [TOP_ABORT, TOP_CANCEL, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_CLOSE, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_INPUT, TOP_INVALID, TOP_LOAD, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_RESET, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUBMIT, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_TOGGLE, TOP_VOLUME_CHANGE, TOP_WAITING];\n\nvar SimpleEventPlugin = {\n  eventTypes: eventTypes$4,\n\n  isInteractiveTopLevelEventType: function (topLevelType) {\n    var config = topLevelEventsToDispatchConfig[topLevelType];\n    return config !== undefined && config.isInteractive === true;\n  },\n\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor = void 0;\n    switch (topLevelType) {\n      case TOP_KEY_PRESS:\n        // Firefox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case TOP_BLUR:\n      case TOP_FOCUS:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case TOP_CLICK:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case TOP_AUX_CLICK:\n      case TOP_DOUBLE_CLICK:\n      case TOP_MOUSE_DOWN:\n      case TOP_MOUSE_MOVE:\n      case TOP_MOUSE_UP:\n      // TODO: Disabled elements should not respond to mouse events\n      /* falls through */\n      case TOP_MOUSE_OUT:\n      case TOP_MOUSE_OVER:\n      case TOP_CONTEXT_MENU:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case TOP_DRAG:\n      case TOP_DRAG_END:\n      case TOP_DRAG_ENTER:\n      case TOP_DRAG_EXIT:\n      case TOP_DRAG_LEAVE:\n      case TOP_DRAG_OVER:\n      case TOP_DRAG_START:\n      case TOP_DROP:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case TOP_TOUCH_CANCEL:\n      case TOP_TOUCH_END:\n      case TOP_TOUCH_MOVE:\n      case TOP_TOUCH_START:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case TOP_ANIMATION_END:\n      case TOP_ANIMATION_ITERATION:\n      case TOP_ANIMATION_START:\n        EventConstructor = SyntheticAnimationEvent;\n        break;\n      case TOP_TRANSITION_END:\n        EventConstructor = SyntheticTransitionEvent;\n        break;\n      case TOP_SCROLL:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case TOP_WHEEL:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case TOP_COPY:\n      case TOP_CUT:\n      case TOP_PASTE:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n      case TOP_GOT_POINTER_CAPTURE:\n      case TOP_LOST_POINTER_CAPTURE:\n      case TOP_POINTER_CANCEL:\n      case TOP_POINTER_DOWN:\n      case TOP_POINTER_MOVE:\n      case TOP_POINTER_OUT:\n      case TOP_POINTER_OVER:\n      case TOP_POINTER_UP:\n        EventConstructor = SyntheticPointerEvent;\n        break;\n      default:\n        {\n          if (knownHTMLTopLevelTypes.indexOf(topLevelType) === -1) {\n            warningWithoutStack$1(false, 'SimpleEventPlugin: Unhandled event type, `%s`. This warning ' + 'is likely caused by a bug in React. Please file an issue.', topLevelType);\n          }\n        }\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n    }\n    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n    accumulateTwoPhaseDispatches(event);\n    return event;\n  }\n};\n\nvar isInteractiveTopLevelEventType = SimpleEventPlugin.isInteractiveTopLevelEventType;\n\n\nvar CALLBACK_BOOKKEEPING_POOL_SIZE = 10;\nvar callbackBookkeepingPool = [];\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findRootContainerNode(inst) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  while (inst.return) {\n    inst = inst.return;\n  }\n  if (inst.tag !== HostRoot) {\n    // This can happen if we're in a detached tree.\n    return null;\n  }\n  return inst.stateNode.containerInfo;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {\n  if (callbackBookkeepingPool.length) {\n    var instance = callbackBookkeepingPool.pop();\n    instance.topLevelType = topLevelType;\n    instance.nativeEvent = nativeEvent;\n    instance.targetInst = targetInst;\n    return instance;\n  }\n  return {\n    topLevelType: topLevelType,\n    nativeEvent: nativeEvent,\n    targetInst: targetInst,\n    ancestors: []\n  };\n}\n\nfunction releaseTopLevelCallbackBookKeeping(instance) {\n  instance.topLevelType = null;\n  instance.nativeEvent = null;\n  instance.targetInst = null;\n  instance.ancestors.length = 0;\n  if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {\n    callbackBookkeepingPool.push(instance);\n  }\n}\n\nfunction handleTopLevel(bookKeeping) {\n  var targetInst = bookKeeping.targetInst;\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = targetInst;\n  do {\n    if (!ancestor) {\n      bookKeeping.ancestors.push(ancestor);\n      break;\n    }\n    var root = findRootContainerNode(ancestor);\n    if (!root) {\n      break;\n    }\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = getClosestInstanceFromNode(root);\n  } while (ancestor);\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    targetInst = bookKeeping.ancestors[i];\n    runExtractedEventsInBatch(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\n// TODO: can we stop exporting these?\nvar _enabled = true;\n\nfunction setEnabled(enabled) {\n  _enabled = !!enabled;\n}\n\nfunction isEnabled() {\n  return _enabled;\n}\n\n/**\n * Traps top-level events by using event bubbling.\n *\n * @param {number} topLevelType Number from `TopLevelEventTypes`.\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n *                  remove the listener.\n * @internal\n */\nfunction trapBubbledEvent(topLevelType, element) {\n  if (!element) {\n    return null;\n  }\n  var dispatch = isInteractiveTopLevelEventType(topLevelType) ? dispatchInteractiveEvent : dispatchEvent;\n\n  addEventBubbleListener(element, getRawEventName(topLevelType),\n  // Check if interactive and wrap in interactiveUpdates\n  dispatch.bind(null, topLevelType));\n}\n\n/**\n * Traps a top-level event by using event capturing.\n *\n * @param {number} topLevelType Number from `TopLevelEventTypes`.\n * @param {object} element Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n *                  remove the listener.\n * @internal\n */\nfunction trapCapturedEvent(topLevelType, element) {\n  if (!element) {\n    return null;\n  }\n  var dispatch = isInteractiveTopLevelEventType(topLevelType) ? dispatchInteractiveEvent : dispatchEvent;\n\n  addEventCaptureListener(element, getRawEventName(topLevelType),\n  // Check if interactive and wrap in interactiveUpdates\n  dispatch.bind(null, topLevelType));\n}\n\nfunction dispatchInteractiveEvent(topLevelType, nativeEvent) {\n  interactiveUpdates(dispatchEvent, topLevelType, nativeEvent);\n}\n\nfunction dispatchEvent(topLevelType, nativeEvent) {\n  if (!_enabled) {\n    return;\n  }\n\n  var nativeEventTarget = getEventTarget(nativeEvent);\n  var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n  if (targetInst !== null && typeof targetInst.tag === 'number' && !isFiberMounted(targetInst)) {\n    // If we get an event (ex: img onload) before committing that\n    // component's mount, ignore it for now (that is, treat it as if it was an\n    // event on a non-React tree). We might also consider queueing events and\n    // dispatching them after the mount.\n    targetInst = null;\n  }\n\n  var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst);\n\n  try {\n    // Event queue being processed in the same cycle allows\n    // `preventDefault`.\n    batchedUpdates(handleTopLevel, bookKeeping);\n  } finally {\n    releaseTopLevelCallbackBookKeeping(bookKeeping);\n  }\n}\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactDOMEventListener, which is injected and can therefore support\n *    pluggable event sources. This is the only work that occurs in the main\n *    thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar reactTopListenersCounter = 0;\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + ('' + Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n  // directly.\n  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n    mountAt[topListenersIDKey] = reactTopListenersCounter++;\n    alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n  }\n  return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} mountAt Container where to mount the listener\n */\nfunction listenTo(registrationName, mountAt) {\n  var isListening = getListeningForDocument(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n    if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n      switch (dependency) {\n        case TOP_SCROLL:\n          trapCapturedEvent(TOP_SCROLL, mountAt);\n          break;\n        case TOP_FOCUS:\n        case TOP_BLUR:\n          trapCapturedEvent(TOP_FOCUS, mountAt);\n          trapCapturedEvent(TOP_BLUR, mountAt);\n          // We set the flag for a single dependency later in this function,\n          // but this ensures we mark both as attached rather than just one.\n          isListening[TOP_BLUR] = true;\n          isListening[TOP_FOCUS] = true;\n          break;\n        case TOP_CANCEL:\n        case TOP_CLOSE:\n          if (isEventSupported(getRawEventName(dependency))) {\n            trapCapturedEvent(dependency, mountAt);\n          }\n          break;\n        case TOP_INVALID:\n        case TOP_SUBMIT:\n        case TOP_RESET:\n          // We listen to them on the target DOM elements.\n          // Some of them bubble so we don't want them to fire twice.\n          break;\n        default:\n          // By default, listen on the top level to all non-media events.\n          // Media events don't bubble so adding the listener wouldn't do anything.\n          var isMediaEvent = mediaEventTypes.indexOf(dependency) !== -1;\n          if (!isMediaEvent) {\n            trapBubbledEvent(dependency, mountAt);\n          }\n          break;\n      }\n      isListening[dependency] = true;\n    }\n  }\n}\n\nfunction isListeningToAllDependencies(registrationName, mountAt) {\n  var isListening = getListeningForDocument(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n    if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getActiveElement(doc) {\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === TEXT_NODE) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\nfunction getOffsets(outerNode) {\n  var ownerDocument = outerNode.ownerDocument;\n\n  var win = ownerDocument && ownerDocument.defaultView || window;\n  var selection = win.getSelection && win.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode,\n      anchorOffset = selection.anchorOffset,\n      focusNode = selection.focusNode,\n      focusOffset = selection.focusOffset;\n\n  // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n  // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n  // expose properties, triggering a \"Permission denied error\" if any of its\n  // properties are accessed. The only seemingly possible way to avoid erroring\n  // is to access a property that typically works for non-anonymous divs and\n  // catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n  try {\n    /* eslint-disable no-unused-expressions */\n    anchorNode.nodeType;\n    focusNode.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n  var length = 0;\n  var start = -1;\n  var end = -1;\n  var indexWithinAnchor = 0;\n  var indexWithinFocus = 0;\n  var node = outerNode;\n  var parentNode = null;\n\n  outer: while (true) {\n    var next = null;\n\n    while (true) {\n      if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n        start = length + anchorOffset;\n      }\n      if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n        end = length + focusOffset;\n      }\n\n      if (node.nodeType === TEXT_NODE) {\n        length += node.nodeValue.length;\n      }\n\n      if ((next = node.firstChild) === null) {\n        break;\n      }\n      // Moving from `node` to its first child `next`.\n      parentNode = node;\n      node = next;\n    }\n\n    while (true) {\n      if (node === outerNode) {\n        // If `outerNode` has children, this is always the second time visiting\n        // it. If it has no children, this is still the first loop, and the only\n        // valid selection is anchorNode and focusNode both equal to this node\n        // and both offsets 0, in which case we will have handled above.\n        break outer;\n      }\n      if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n        start = length;\n      }\n      if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n        end = length;\n      }\n      if ((next = node.nextSibling) !== null) {\n        break;\n      }\n      node = parentNode;\n      parentNode = node.parentNode;\n    }\n\n    // Moving from `node` to its next sibling `next`.\n    node = next;\n  }\n\n  if (start === -1 || end === -1) {\n    // This should never happen. (Would happen if the anchor/focus nodes aren't\n    // actually inside the passed-in node.)\n    return null;\n  }\n\n  return {\n    start: start,\n    end: end\n  };\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setOffsets(node, offsets) {\n  var doc = node.ownerDocument || document;\n  var win = doc && doc.defaultView || window;\n  var selection = win.getSelection();\n  var length = node.textContent.length;\n  var start = Math.min(offsets.start, length);\n  var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n      return;\n    }\n    var range = doc.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nfunction isTextNode(node) {\n  return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nfunction isInDocument(node) {\n  return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction getActiveElementDeep() {\n  var win = window;\n  var element = getActiveElement();\n  while (element instanceof win.HTMLIFrameElement) {\n    // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n    // to throw, e.g. if it has a cross-origin src attribute\n    try {\n      win = element.contentDocument.defaultView;\n    } catch (e) {\n      return element;\n    }\n    element = getActiveElement(win.document);\n  }\n  return element;\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\nfunction hasSelectionCapabilities(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\n\nfunction getSelectionInformation() {\n  var focusedElem = getActiveElementDeep();\n  return {\n    focusedElem: focusedElem,\n    selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection$1(focusedElem) : null\n  };\n}\n\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\nfunction restoreSelection(priorSelectionInformation) {\n  var curFocusedElem = getActiveElementDeep();\n  var priorFocusedElem = priorSelectionInformation.focusedElem;\n  var priorSelectionRange = priorSelectionInformation.selectionRange;\n  if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n    if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n      setSelection(priorFocusedElem, priorSelectionRange);\n    }\n\n    // Focusing a node can change the scroll position, which is undesirable\n    var ancestors = [];\n    var ancestor = priorFocusedElem;\n    while (ancestor = ancestor.parentNode) {\n      if (ancestor.nodeType === ELEMENT_NODE) {\n        ancestors.push({\n          element: ancestor,\n          left: ancestor.scrollLeft,\n          top: ancestor.scrollTop\n        });\n      }\n    }\n\n    if (typeof priorFocusedElem.focus === 'function') {\n      priorFocusedElem.focus();\n    }\n\n    for (var i = 0; i < ancestors.length; i++) {\n      var info = ancestors[i];\n      info.element.scrollLeft = info.left;\n      info.element.scrollTop = info.top;\n    }\n  }\n}\n\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\nfunction getSelection$1(input) {\n  var selection = void 0;\n\n  if ('selectionStart' in input) {\n    // Modern browser with input or textarea.\n    selection = {\n      start: input.selectionStart,\n      end: input.selectionEnd\n    };\n  } else {\n    // Content editable or old IE textarea.\n    selection = getOffsets(input);\n  }\n\n  return selection || { start: 0, end: 0 };\n}\n\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input     Set selection bounds of this input or textarea\n * -@offsets   Object of same form that is returned from get*\n */\nfunction setSelection(input, offsets) {\n  var start = offsets.start,\n      end = offsets.end;\n\n  if (end === undefined) {\n    end = start;\n  }\n\n  if ('selectionStart' in input) {\n    input.selectionStart = start;\n    input.selectionEnd = Math.min(end, input.value.length);\n  } else {\n    setOffsets(input, offsets);\n  }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes$3 = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: 'onSelect',\n      captured: 'onSelectCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CONTEXT_MENU, TOP_DRAG_END, TOP_FOCUS, TOP_KEY_DOWN, TOP_KEY_UP, TOP_MOUSE_DOWN, TOP_MOUSE_UP, TOP_SELECTION_CHANGE]\n  }\n};\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else {\n    var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n    var selection = win.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  }\n}\n\n/**\n * Get document associated with the event target.\n *\n * @param {object} nativeEventTarget\n * @return {Document}\n */\nfunction getEventTargetDocument(eventTarget) {\n  return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  var doc = getEventTargetDocument(nativeEventTarget);\n\n  if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement$1);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes$3.select, activeElementInst$1, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement$1;\n\n    accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n  eventTypes: eventTypes$3,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var doc = getEventTargetDocument(nativeEventTarget);\n    // Track whether all listeners exists for this plugin. If none exist, we do\n    // not extract events. See #3639.\n    if (!doc || !isListeningToAllDependencies('onSelect', doc)) {\n      return null;\n    }\n\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case TOP_FOCUS:\n        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n          activeElement$1 = targetNode;\n          activeElementInst$1 = targetInst;\n          lastSelection = null;\n        }\n        break;\n      case TOP_BLUR:\n        activeElement$1 = null;\n        activeElementInst$1 = null;\n        lastSelection = null;\n        break;\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case TOP_MOUSE_DOWN:\n        mouseDown = true;\n        break;\n      case TOP_CONTEXT_MENU:\n      case TOP_MOUSE_UP:\n      case TOP_DRAG_END:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case TOP_SELECTION_CHANGE:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  }\n};\n\n/**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\ninjection.injectEventPluginOrder(DOMEventPluginOrder);\nsetComponentTree(getFiberCurrentPropsFromNode$1, getInstanceFromNode$1, getNodeFromInstance$1);\n\n/**\n * Some important event plugins included by default (without having to require\n * them).\n */\ninjection.injectEventPluginsByName({\n  SimpleEventPlugin: SimpleEventPlugin,\n  EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n  ChangeEventPlugin: ChangeEventPlugin,\n  SelectEventPlugin: SelectEventPlugin,\n  BeforeInputEventPlugin: BeforeInputEventPlugin\n});\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n  var content = '';\n\n  // Flatten children. We'll warn if they are invalid\n  // during validateProps() which runs for hydration too.\n  // Note that this would throw on non-element objects.\n  // Elements are stringified (which is normally irrelevant\n  // but matters for <fbt>).\n  React.Children.forEach(children, function (child) {\n    if (child == null) {\n      return;\n    }\n    content += child;\n    // Note: we don't warn about invalid children here.\n    // Instead, this is done separately below so that\n    // it happens during the hydration codepath too.\n  });\n\n  return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\nfunction validateProps(element, props) {\n  {\n    // This mirrors the codepath above, but runs for hydration too.\n    // Warn about invalid children here so that client and hydration are consistent.\n    // TODO: this seems like it could cause a DEV-only throw for hydration\n    // if children contains a non-element object. We should try to avoid that.\n    if (typeof props.children === 'object' && props.children !== null) {\n      React.Children.forEach(props.children, function (child) {\n        if (child == null) {\n          return;\n        }\n        if (typeof child === 'string' || typeof child === 'number') {\n          return;\n        }\n        if (typeof child.type !== 'string') {\n          return;\n        }\n        if (!didWarnInvalidChild) {\n          didWarnInvalidChild = true;\n          warning$1(false, 'Only strings and numbers are supported as <option> children.');\n        }\n      });\n    }\n\n    // TODO: Remove support for `selected` in <option>.\n    if (props.selected != null && !didWarnSelectedSetOnOption) {\n      warning$1(false, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n      didWarnSelectedSetOnOption = true;\n    }\n  }\n}\n\nfunction postMountWrapper$1(element, props) {\n  // value=\"\" should make a value attribute (#6219)\n  if (props.value != null) {\n    element.setAttribute('value', toString(getToStringValue(props.value)));\n  }\n}\n\nfunction getHostProps$1(element, props) {\n  var hostProps = _assign({ children: undefined }, props);\n  var content = flattenChildren(props.children);\n\n  if (content) {\n    hostProps.children = content;\n  }\n\n  return hostProps;\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnValueDefaultValue$1 = void 0;\n\n{\n  didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n  if (ownerName) {\n    return '\\n\\nCheck the render method of `' + ownerName + '`.';\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n */\nfunction checkSelectPropTypes(props) {\n  ReactControlledValuePropTypes.checkPropTypes('select', props);\n\n  for (var i = 0; i < valuePropNames.length; i++) {\n    var propName = valuePropNames[i];\n    if (props[propName] == null) {\n      continue;\n    }\n    var isArray = Array.isArray(props[propName]);\n    if (props.multiple && !isArray) {\n      warning$1(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n    } else if (!props.multiple && isArray) {\n      warning$1(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n    }\n  }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n  var options = node.options;\n\n  if (multiple) {\n    var selectedValues = propValue;\n    var selectedValue = {};\n    for (var i = 0; i < selectedValues.length; i++) {\n      // Prefix to avoid chaos with special keys.\n      selectedValue['$' + selectedValues[i]] = true;\n    }\n    for (var _i = 0; _i < options.length; _i++) {\n      var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n      if (options[_i].selected !== selected) {\n        options[_i].selected = selected;\n      }\n      if (selected && setDefaultSelected) {\n        options[_i].defaultSelected = true;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    var _selectedValue = toString(getToStringValue(propValue));\n    var defaultSelected = null;\n    for (var _i2 = 0; _i2 < options.length; _i2++) {\n      if (options[_i2].value === _selectedValue) {\n        options[_i2].selected = true;\n        if (setDefaultSelected) {\n          options[_i2].defaultSelected = true;\n        }\n        return;\n      }\n      if (defaultSelected === null && !options[_i2].disabled) {\n        defaultSelected = options[_i2];\n      }\n    }\n    if (defaultSelected !== null) {\n      defaultSelected.selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\nfunction getHostProps$2(element, props) {\n  return _assign({}, props, {\n    value: undefined\n  });\n}\n\nfunction initWrapperState$1(element, props) {\n  var node = element;\n  {\n    checkSelectPropTypes(props);\n  }\n\n  node._wrapperState = {\n    wasMultiple: !!props.multiple\n  };\n\n  {\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n      warning$1(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n      didWarnValueDefaultValue$1 = true;\n    }\n  }\n}\n\nfunction postMountWrapper$2(element, props) {\n  var node = element;\n  node.multiple = !!props.multiple;\n  var value = props.value;\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (props.defaultValue != null) {\n    updateOptions(node, !!props.multiple, props.defaultValue, true);\n  }\n}\n\nfunction postUpdateWrapper(element, props) {\n  var node = element;\n  var wasMultiple = node._wrapperState.wasMultiple;\n  node._wrapperState.wasMultiple = !!props.multiple;\n\n  var value = props.value;\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (wasMultiple !== !!props.multiple) {\n    // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n    if (props.defaultValue != null) {\n      updateOptions(node, !!props.multiple, props.defaultValue, true);\n    } else {\n      // Revert the select back to its default unselected state.\n      updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n    }\n  }\n}\n\nfunction restoreControlledState$2(element, props) {\n  var node = element;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\n\nfunction getHostProps$3(element, props) {\n  var node = element;\n  !(props.dangerouslySetInnerHTML == null) ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : void 0;\n\n  // Always set children to the same thing. In IE9, the selection range will\n  // get reset if `textContent` is mutated.  We could add a check in setTextContent\n  // to only set the value if/when the value differs from the node value (which would\n  // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n  // solution. The value can be a boolean or object so that's why it's forced\n  // to be a string.\n  var hostProps = _assign({}, props, {\n    value: undefined,\n    defaultValue: undefined,\n    children: toString(node._wrapperState.initialValue)\n  });\n\n  return hostProps;\n}\n\nfunction initWrapperState$2(element, props) {\n  var node = element;\n  {\n    ReactControlledValuePropTypes.checkPropTypes('textarea', props);\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n      warning$1(false, '%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnValDefaultVal = true;\n    }\n  }\n\n  var initialValue = props.value;\n\n  // Only bother fetching default value if we're going to use it\n  if (initialValue == null) {\n    var defaultValue = props.defaultValue;\n    // TODO (yungsters): Remove support for children content in <textarea>.\n    var children = props.children;\n    if (children != null) {\n      {\n        warning$1(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n      }\n      !(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;\n      if (Array.isArray(children)) {\n        !(children.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;\n        children = children[0];\n      }\n\n      defaultValue = children;\n    }\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n    initialValue = defaultValue;\n  }\n\n  node._wrapperState = {\n    initialValue: getToStringValue(initialValue)\n  };\n}\n\nfunction updateWrapper$1(element, props) {\n  var node = element;\n  var value = getToStringValue(props.value);\n  var defaultValue = getToStringValue(props.defaultValue);\n  if (value != null) {\n    // Cast `value` to a string to ensure the value is set correctly. While\n    // browsers typically do this as necessary, jsdom doesn't.\n    var newValue = toString(value);\n    // To avoid side effects (such as losing text selection), only set value if changed\n    if (newValue !== node.value) {\n      node.value = newValue;\n    }\n    if (props.defaultValue == null && node.defaultValue !== newValue) {\n      node.defaultValue = newValue;\n    }\n  }\n  if (defaultValue != null) {\n    node.defaultValue = toString(defaultValue);\n  }\n}\n\nfunction postMountWrapper$3(element, props) {\n  var node = element;\n  // This is in postMount because we need access to the DOM node, which is not\n  // available until after the component has mounted.\n  var textContent = node.textContent;\n\n  // Only set node.value if textContent is equal to the expected\n  // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n  // will populate textContent as well.\n  // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n  if (textContent === node._wrapperState.initialValue) {\n    node.value = textContent;\n  }\n}\n\nfunction restoreControlledState$3(element, props) {\n  // DOM component is still mounted; update\n  updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE$1 = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nvar Namespaces = {\n  html: HTML_NAMESPACE$1,\n  mathml: MATH_NAMESPACE,\n  svg: SVG_NAMESPACE\n};\n\n// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type) {\n  switch (type) {\n    case 'svg':\n      return SVG_NAMESPACE;\n    case 'math':\n      return MATH_NAMESPACE;\n    default:\n      return HTML_NAMESPACE$1;\n  }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE$1) {\n    // No (or default) parent namespace: potential entry point.\n    return getIntrinsicNamespace(type);\n  }\n  if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n    // We're leaving SVG.\n    return HTML_NAMESPACE$1;\n  }\n  // By default, pass namespace below.\n  return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n    return function (arg0, arg1, arg2, arg3) {\n      MSApp.execUnsafeLocalFunction(function () {\n        return func(arg0, arg1, arg2, arg3);\n      });\n    };\n  } else {\n    return func;\n  }\n};\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer = void 0;\n\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n  // IE does not have innerHTML for SVG nodes, so instead we inject the\n  // new markup in a temp node and then move the child nodes across into\n  // the target node\n\n  if (node.namespaceURI === Namespaces.svg && !('innerHTML' in node)) {\n    reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n    reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n    var svgNode = reusableSVGContainer.firstChild;\n    while (node.firstChild) {\n      node.removeChild(node.firstChild);\n    }\n    while (svgNode.firstChild) {\n      node.appendChild(svgNode.firstChild);\n    }\n  } else {\n    node.innerHTML = html;\n  }\n});\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n\n    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n  node.textContent = text;\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  columns: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridArea: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: 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  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n  }\n\n  return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nfunction hyphenateStyleName(name) {\n  return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n  var msPattern$1 = /^-ms-/;\n  var hyphenPattern = /-(.)/g;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n  var warnedForNaNValue = false;\n  var warnedForInfinityValue = false;\n\n  var camelize = function (string) {\n    return string.replace(hyphenPattern, function (_, character) {\n      return character.toUpperCase();\n    });\n  };\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    warning$1(false, 'Unsupported style property %s. Did you mean %s?', name,\n    // As Andi Smith suggests\n    // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n    // is converted to lowercase `ms`.\n    camelize(name.replace(msPattern$1, 'ms-')));\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    warning$1(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    warning$1(false, \"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n  };\n\n  var warnStyleValueIsNaN = function (name, value) {\n    if (warnedForNaNValue) {\n      return;\n    }\n\n    warnedForNaNValue = true;\n    warning$1(false, '`NaN` is an invalid value for the `%s` css style property.', name);\n  };\n\n  var warnStyleValueIsInfinity = function (name, value) {\n    if (warnedForInfinityValue) {\n      return;\n    }\n\n    warnedForInfinityValue = true;\n    warning$1(false, '`Infinity` is an invalid value for the `%s` css style property.', name);\n  };\n\n  warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n\n    if (typeof value === 'number') {\n      if (isNaN(value)) {\n        warnStyleValueIsNaN(name, value);\n      } else if (!isFinite(value)) {\n        warnStyleValueIsInfinity(name, value);\n      }\n    }\n  };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\nfunction createDangerousStringForStyles(styles) {\n  {\n    var serialized = '';\n    var delimiter = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (styleValue != null) {\n        var isCustomProperty = styleName.indexOf('--') === 0;\n        serialized += delimiter + hyphenateStyleName(styleName) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n        delimiter = ';';\n      }\n    }\n    return serialized || null;\n  }\n}\n\n/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles) {\n  var style = node.style;\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n    var isCustomProperty = styleName.indexOf('--') === 0;\n    {\n      if (!isCustomProperty) {\n        warnValidStyle$1(styleName, styles[styleName]);\n      }\n    }\n    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n    if (styleName === 'float') {\n      styleName = 'cssFloat';\n    }\n    if (isCustomProperty) {\n      style.setProperty(styleName, styleValue);\n    } else {\n      style[styleName] = styleValue;\n    }\n  }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n  area: true,\n  base: true,\n  br: true,\n  col: true,\n  embed: true,\n  hr: true,\n  img: true,\n  input: true,\n  keygen: true,\n  link: true,\n  meta: true,\n  param: true,\n  source: true,\n  track: true,\n  wbr: true\n  // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n  menuitem: true\n}, omittedCloseTags);\n\n// TODO: We can remove this if we add invariantWithStack()\n// or add stack by default to invariants where possible.\nvar HTML$1 = '__html';\n\nvar ReactDebugCurrentFrame$2 = null;\n{\n  ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nfunction assertValidProps(tag, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (voidElementTags[tag]) {\n    !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, ReactDebugCurrentFrame$2.getStackAddendum()) : void 0;\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML$1 in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;\n  }\n  {\n    !(props.suppressContentEditableWarning || !props.contentEditable || props.children == null) ? warning$1(false, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n  }\n  !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', ReactDebugCurrentFrame$2.getStackAddendum()) : void 0;\n}\n\nfunction isCustomComponent(tagName, props) {\n  if (tagName.indexOf('-') === -1) {\n    return typeof props.is === 'string';\n  }\n  switch (tagName) {\n    // These are reserved SVG and MathML elements.\n    // We don't mind this whitelist too much because we expect it to never grow.\n    // The alternative is to track the namespace in a few places which is convoluted.\n    // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n    case 'annotation-xml':\n    case 'color-profile':\n    case 'font-face':\n    case 'font-face-src':\n    case 'font-face-uri':\n    case 'font-face-format':\n    case 'font-face-name':\n    case 'missing-glyph':\n      return false;\n    default:\n      return true;\n  }\n}\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n  // HTML\n  accept: 'accept',\n  acceptcharset: 'acceptCharset',\n  'accept-charset': 'acceptCharset',\n  accesskey: 'accessKey',\n  action: 'action',\n  allowfullscreen: 'allowFullScreen',\n  alt: 'alt',\n  as: 'as',\n  async: 'async',\n  autocapitalize: 'autoCapitalize',\n  autocomplete: 'autoComplete',\n  autocorrect: 'autoCorrect',\n  autofocus: 'autoFocus',\n  autoplay: 'autoPlay',\n  autosave: 'autoSave',\n  capture: 'capture',\n  cellpadding: 'cellPadding',\n  cellspacing: 'cellSpacing',\n  challenge: 'challenge',\n  charset: 'charSet',\n  checked: 'checked',\n  children: 'children',\n  cite: 'cite',\n  class: 'className',\n  classid: 'classID',\n  classname: 'className',\n  cols: 'cols',\n  colspan: 'colSpan',\n  content: 'content',\n  contenteditable: 'contentEditable',\n  contextmenu: 'contextMenu',\n  controls: 'controls',\n  controlslist: 'controlsList',\n  coords: 'coords',\n  crossorigin: 'crossOrigin',\n  dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n  data: 'data',\n  datetime: 'dateTime',\n  default: 'default',\n  defaultchecked: 'defaultChecked',\n  defaultvalue: 'defaultValue',\n  defer: 'defer',\n  dir: 'dir',\n  disabled: 'disabled',\n  download: 'download',\n  draggable: 'draggable',\n  enctype: 'encType',\n  for: 'htmlFor',\n  form: 'form',\n  formmethod: 'formMethod',\n  formaction: 'formAction',\n  formenctype: 'formEncType',\n  formnovalidate: 'formNoValidate',\n  formtarget: 'formTarget',\n  frameborder: 'frameBorder',\n  headers: 'headers',\n  height: 'height',\n  hidden: 'hidden',\n  high: 'high',\n  href: 'href',\n  hreflang: 'hrefLang',\n  htmlfor: 'htmlFor',\n  httpequiv: 'httpEquiv',\n  'http-equiv': 'httpEquiv',\n  icon: 'icon',\n  id: 'id',\n  innerhtml: 'innerHTML',\n  inputmode: 'inputMode',\n  integrity: 'integrity',\n  is: 'is',\n  itemid: 'itemID',\n  itemprop: 'itemProp',\n  itemref: 'itemRef',\n  itemscope: 'itemScope',\n  itemtype: 'itemType',\n  keyparams: 'keyParams',\n  keytype: 'keyType',\n  kind: 'kind',\n  label: 'label',\n  lang: 'lang',\n  list: 'list',\n  loop: 'loop',\n  low: 'low',\n  manifest: 'manifest',\n  marginwidth: 'marginWidth',\n  marginheight: 'marginHeight',\n  max: 'max',\n  maxlength: 'maxLength',\n  media: 'media',\n  mediagroup: 'mediaGroup',\n  method: 'method',\n  min: 'min',\n  minlength: 'minLength',\n  multiple: 'multiple',\n  muted: 'muted',\n  name: 'name',\n  nomodule: 'noModule',\n  nonce: 'nonce',\n  novalidate: 'noValidate',\n  open: 'open',\n  optimum: 'optimum',\n  pattern: 'pattern',\n  placeholder: 'placeholder',\n  playsinline: 'playsInline',\n  poster: 'poster',\n  preload: 'preload',\n  profile: 'profile',\n  radiogroup: 'radioGroup',\n  readonly: 'readOnly',\n  referrerpolicy: 'referrerPolicy',\n  rel: 'rel',\n  required: 'required',\n  reversed: 'reversed',\n  role: 'role',\n  rows: 'rows',\n  rowspan: 'rowSpan',\n  sandbox: 'sandbox',\n  scope: 'scope',\n  scoped: 'scoped',\n  scrolling: 'scrolling',\n  seamless: 'seamless',\n  selected: 'selected',\n  shape: 'shape',\n  size: 'size',\n  sizes: 'sizes',\n  span: 'span',\n  spellcheck: 'spellCheck',\n  src: 'src',\n  srcdoc: 'srcDoc',\n  srclang: 'srcLang',\n  srcset: 'srcSet',\n  start: 'start',\n  step: 'step',\n  style: 'style',\n  summary: 'summary',\n  tabindex: 'tabIndex',\n  target: 'target',\n  title: 'title',\n  type: 'type',\n  usemap: 'useMap',\n  value: 'value',\n  width: 'width',\n  wmode: 'wmode',\n  wrap: 'wrap',\n\n  // SVG\n  about: 'about',\n  accentheight: 'accentHeight',\n  'accent-height': 'accentHeight',\n  accumulate: 'accumulate',\n  additive: 'additive',\n  alignmentbaseline: 'alignmentBaseline',\n  'alignment-baseline': 'alignmentBaseline',\n  allowreorder: 'allowReorder',\n  alphabetic: 'alphabetic',\n  amplitude: 'amplitude',\n  arabicform: 'arabicForm',\n  'arabic-form': 'arabicForm',\n  ascent: 'ascent',\n  attributename: 'attributeName',\n  attributetype: 'attributeType',\n  autoreverse: 'autoReverse',\n  azimuth: 'azimuth',\n  basefrequency: 'baseFrequency',\n  baselineshift: 'baselineShift',\n  'baseline-shift': 'baselineShift',\n  baseprofile: 'baseProfile',\n  bbox: 'bbox',\n  begin: 'begin',\n  bias: 'bias',\n  by: 'by',\n  calcmode: 'calcMode',\n  capheight: 'capHeight',\n  'cap-height': 'capHeight',\n  clip: 'clip',\n  clippath: 'clipPath',\n  'clip-path': 'clipPath',\n  clippathunits: 'clipPathUnits',\n  cliprule: 'clipRule',\n  'clip-rule': 'clipRule',\n  color: 'color',\n  colorinterpolation: 'colorInterpolation',\n  'color-interpolation': 'colorInterpolation',\n  colorinterpolationfilters: 'colorInterpolationFilters',\n  'color-interpolation-filters': 'colorInterpolationFilters',\n  colorprofile: 'colorProfile',\n  'color-profile': 'colorProfile',\n  colorrendering: 'colorRendering',\n  'color-rendering': 'colorRendering',\n  contentscripttype: 'contentScriptType',\n  contentstyletype: 'contentStyleType',\n  cursor: 'cursor',\n  cx: 'cx',\n  cy: 'cy',\n  d: 'd',\n  datatype: 'datatype',\n  decelerate: 'decelerate',\n  descent: 'descent',\n  diffuseconstant: 'diffuseConstant',\n  direction: 'direction',\n  display: 'display',\n  divisor: 'divisor',\n  dominantbaseline: 'dominantBaseline',\n  'dominant-baseline': 'dominantBaseline',\n  dur: 'dur',\n  dx: 'dx',\n  dy: 'dy',\n  edgemode: 'edgeMode',\n  elevation: 'elevation',\n  enablebackground: 'enableBackground',\n  'enable-background': 'enableBackground',\n  end: 'end',\n  exponent: 'exponent',\n  externalresourcesrequired: 'externalResourcesRequired',\n  fill: 'fill',\n  fillopacity: 'fillOpacity',\n  'fill-opacity': 'fillOpacity',\n  fillrule: 'fillRule',\n  'fill-rule': 'fillRule',\n  filter: 'filter',\n  filterres: 'filterRes',\n  filterunits: 'filterUnits',\n  floodopacity: 'floodOpacity',\n  'flood-opacity': 'floodOpacity',\n  floodcolor: 'floodColor',\n  'flood-color': 'floodColor',\n  focusable: 'focusable',\n  fontfamily: 'fontFamily',\n  'font-family': 'fontFamily',\n  fontsize: 'fontSize',\n  'font-size': 'fontSize',\n  fontsizeadjust: 'fontSizeAdjust',\n  'font-size-adjust': 'fontSizeAdjust',\n  fontstretch: 'fontStretch',\n  'font-stretch': 'fontStretch',\n  fontstyle: 'fontStyle',\n  'font-style': 'fontStyle',\n  fontvariant: 'fontVariant',\n  'font-variant': 'fontVariant',\n  fontweight: 'fontWeight',\n  'font-weight': 'fontWeight',\n  format: 'format',\n  from: 'from',\n  fx: 'fx',\n  fy: 'fy',\n  g1: 'g1',\n  g2: 'g2',\n  glyphname: 'glyphName',\n  'glyph-name': 'glyphName',\n  glyphorientationhorizontal: 'glyphOrientationHorizontal',\n  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n  glyphorientationvertical: 'glyphOrientationVertical',\n  'glyph-orientation-vertical': 'glyphOrientationVertical',\n  glyphref: 'glyphRef',\n  gradienttransform: 'gradientTransform',\n  gradientunits: 'gradientUnits',\n  hanging: 'hanging',\n  horizadvx: 'horizAdvX',\n  'horiz-adv-x': 'horizAdvX',\n  horizoriginx: 'horizOriginX',\n  'horiz-origin-x': 'horizOriginX',\n  ideographic: 'ideographic',\n  imagerendering: 'imageRendering',\n  'image-rendering': 'imageRendering',\n  in2: 'in2',\n  in: 'in',\n  inlist: 'inlist',\n  intercept: 'intercept',\n  k1: 'k1',\n  k2: 'k2',\n  k3: 'k3',\n  k4: 'k4',\n  k: 'k',\n  kernelmatrix: 'kernelMatrix',\n  kernelunitlength: 'kernelUnitLength',\n  kerning: 'kerning',\n  keypoints: 'keyPoints',\n  keysplines: 'keySplines',\n  keytimes: 'keyTimes',\n  lengthadjust: 'lengthAdjust',\n  letterspacing: 'letterSpacing',\n  'letter-spacing': 'letterSpacing',\n  lightingcolor: 'lightingColor',\n  'lighting-color': 'lightingColor',\n  limitingconeangle: 'limitingConeAngle',\n  local: 'local',\n  markerend: 'markerEnd',\n  'marker-end': 'markerEnd',\n  markerheight: 'markerHeight',\n  markermid: 'markerMid',\n  'marker-mid': 'markerMid',\n  markerstart: 'markerStart',\n  'marker-start': 'markerStart',\n  markerunits: 'markerUnits',\n  markerwidth: 'markerWidth',\n  mask: 'mask',\n  maskcontentunits: 'maskContentUnits',\n  maskunits: 'maskUnits',\n  mathematical: 'mathematical',\n  mode: 'mode',\n  numoctaves: 'numOctaves',\n  offset: 'offset',\n  opacity: 'opacity',\n  operator: 'operator',\n  order: 'order',\n  orient: 'orient',\n  orientation: 'orientation',\n  origin: 'origin',\n  overflow: 'overflow',\n  overlineposition: 'overlinePosition',\n  'overline-position': 'overlinePosition',\n  overlinethickness: 'overlineThickness',\n  'overline-thickness': 'overlineThickness',\n  paintorder: 'paintOrder',\n  'paint-order': 'paintOrder',\n  panose1: 'panose1',\n  'panose-1': 'panose1',\n  pathlength: 'pathLength',\n  patterncontentunits: 'patternContentUnits',\n  patterntransform: 'patternTransform',\n  patternunits: 'patternUnits',\n  pointerevents: 'pointerEvents',\n  'pointer-events': 'pointerEvents',\n  points: 'points',\n  pointsatx: 'pointsAtX',\n  pointsaty: 'pointsAtY',\n  pointsatz: 'pointsAtZ',\n  prefix: 'prefix',\n  preservealpha: 'preserveAlpha',\n  preserveaspectratio: 'preserveAspectRatio',\n  primitiveunits: 'primitiveUnits',\n  property: 'property',\n  r: 'r',\n  radius: 'radius',\n  refx: 'refX',\n  refy: 'refY',\n  renderingintent: 'renderingIntent',\n  'rendering-intent': 'renderingIntent',\n  repeatcount: 'repeatCount',\n  repeatdur: 'repeatDur',\n  requiredextensions: 'requiredExtensions',\n  requiredfeatures: 'requiredFeatures',\n  resource: 'resource',\n  restart: 'restart',\n  result: 'result',\n  results: 'results',\n  rotate: 'rotate',\n  rx: 'rx',\n  ry: 'ry',\n  scale: 'scale',\n  security: 'security',\n  seed: 'seed',\n  shaperendering: 'shapeRendering',\n  'shape-rendering': 'shapeRendering',\n  slope: 'slope',\n  spacing: 'spacing',\n  specularconstant: 'specularConstant',\n  specularexponent: 'specularExponent',\n  speed: 'speed',\n  spreadmethod: 'spreadMethod',\n  startoffset: 'startOffset',\n  stddeviation: 'stdDeviation',\n  stemh: 'stemh',\n  stemv: 'stemv',\n  stitchtiles: 'stitchTiles',\n  stopcolor: 'stopColor',\n  'stop-color': 'stopColor',\n  stopopacity: 'stopOpacity',\n  'stop-opacity': 'stopOpacity',\n  strikethroughposition: 'strikethroughPosition',\n  'strikethrough-position': 'strikethroughPosition',\n  strikethroughthickness: 'strikethroughThickness',\n  'strikethrough-thickness': 'strikethroughThickness',\n  string: 'string',\n  stroke: 'stroke',\n  strokedasharray: 'strokeDasharray',\n  'stroke-dasharray': 'strokeDasharray',\n  strokedashoffset: 'strokeDashoffset',\n  'stroke-dashoffset': 'strokeDashoffset',\n  strokelinecap: 'strokeLinecap',\n  'stroke-linecap': 'strokeLinecap',\n  strokelinejoin: 'strokeLinejoin',\n  'stroke-linejoin': 'strokeLinejoin',\n  strokemiterlimit: 'strokeMiterlimit',\n  'stroke-miterlimit': 'strokeMiterlimit',\n  strokewidth: 'strokeWidth',\n  'stroke-width': 'strokeWidth',\n  strokeopacity: 'strokeOpacity',\n  'stroke-opacity': 'strokeOpacity',\n  suppresscontenteditablewarning: 'suppressContentEditableWarning',\n  suppresshydrationwarning: 'suppressHydrationWarning',\n  surfacescale: 'surfaceScale',\n  systemlanguage: 'systemLanguage',\n  tablevalues: 'tableValues',\n  targetx: 'targetX',\n  targety: 'targetY',\n  textanchor: 'textAnchor',\n  'text-anchor': 'textAnchor',\n  textdecoration: 'textDecoration',\n  'text-decoration': 'textDecoration',\n  textlength: 'textLength',\n  textrendering: 'textRendering',\n  'text-rendering': 'textRendering',\n  to: 'to',\n  transform: 'transform',\n  typeof: 'typeof',\n  u1: 'u1',\n  u2: 'u2',\n  underlineposition: 'underlinePosition',\n  'underline-position': 'underlinePosition',\n  underlinethickness: 'underlineThickness',\n  'underline-thickness': 'underlineThickness',\n  unicode: 'unicode',\n  unicodebidi: 'unicodeBidi',\n  'unicode-bidi': 'unicodeBidi',\n  unicoderange: 'unicodeRange',\n  'unicode-range': 'unicodeRange',\n  unitsperem: 'unitsPerEm',\n  'units-per-em': 'unitsPerEm',\n  unselectable: 'unselectable',\n  valphabetic: 'vAlphabetic',\n  'v-alphabetic': 'vAlphabetic',\n  values: 'values',\n  vectoreffect: 'vectorEffect',\n  'vector-effect': 'vectorEffect',\n  version: 'version',\n  vertadvy: 'vertAdvY',\n  'vert-adv-y': 'vertAdvY',\n  vertoriginx: 'vertOriginX',\n  'vert-origin-x': 'vertOriginX',\n  vertoriginy: 'vertOriginY',\n  'vert-origin-y': 'vertOriginY',\n  vhanging: 'vHanging',\n  'v-hanging': 'vHanging',\n  videographic: 'vIdeographic',\n  'v-ideographic': 'vIdeographic',\n  viewbox: 'viewBox',\n  viewtarget: 'viewTarget',\n  visibility: 'visibility',\n  vmathematical: 'vMathematical',\n  'v-mathematical': 'vMathematical',\n  vocab: 'vocab',\n  widths: 'widths',\n  wordspacing: 'wordSpacing',\n  'word-spacing': 'wordSpacing',\n  writingmode: 'writingMode',\n  'writing-mode': 'writingMode',\n  x1: 'x1',\n  x2: 'x2',\n  x: 'x',\n  xchannelselector: 'xChannelSelector',\n  xheight: 'xHeight',\n  'x-height': 'xHeight',\n  xlinkactuate: 'xlinkActuate',\n  'xlink:actuate': 'xlinkActuate',\n  xlinkarcrole: 'xlinkArcrole',\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkhref: 'xlinkHref',\n  'xlink:href': 'xlinkHref',\n  xlinkrole: 'xlinkRole',\n  'xlink:role': 'xlinkRole',\n  xlinkshow: 'xlinkShow',\n  'xlink:show': 'xlinkShow',\n  xlinktitle: 'xlinkTitle',\n  'xlink:title': 'xlinkTitle',\n  xlinktype: 'xlinkType',\n  'xlink:type': 'xlinkType',\n  xmlbase: 'xmlBase',\n  'xml:base': 'xmlBase',\n  xmllang: 'xmlLang',\n  'xml:lang': 'xmlLang',\n  xmlns: 'xmlns',\n  'xml:space': 'xmlSpace',\n  xmlnsxlink: 'xmlnsXlink',\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlspace: 'xmlSpace',\n  y1: 'y1',\n  y2: 'y2',\n  y: 'y',\n  ychannelselector: 'yChannelSelector',\n  z: 'z',\n  zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n  'aria-current': 0, // state\n  'aria-details': 0,\n  'aria-disabled': 0, // state\n  'aria-hidden': 0, // state\n  'aria-invalid': 0, // state\n  'aria-keyshortcuts': 0,\n  'aria-label': 0,\n  'aria-roledescription': 0,\n  // Widget Attributes\n  'aria-autocomplete': 0,\n  'aria-checked': 0,\n  'aria-expanded': 0,\n  'aria-haspopup': 0,\n  'aria-level': 0,\n  'aria-modal': 0,\n  'aria-multiline': 0,\n  'aria-multiselectable': 0,\n  'aria-orientation': 0,\n  'aria-placeholder': 0,\n  'aria-pressed': 0,\n  'aria-readonly': 0,\n  'aria-required': 0,\n  'aria-selected': 0,\n  'aria-sort': 0,\n  'aria-valuemax': 0,\n  'aria-valuemin': 0,\n  'aria-valuenow': 0,\n  'aria-valuetext': 0,\n  // Live Region Attributes\n  'aria-atomic': 0,\n  'aria-busy': 0,\n  'aria-live': 0,\n  'aria-relevant': 0,\n  // Drag-and-Drop Attributes\n  'aria-dropeffect': 0,\n  'aria-grabbed': 0,\n  // Relationship Attributes\n  'aria-activedescendant': 0,\n  'aria-colcount': 0,\n  'aria-colindex': 0,\n  'aria-colspan': 0,\n  'aria-controls': 0,\n  'aria-describedby': 0,\n  'aria-errormessage': 0,\n  'aria-flowto': 0,\n  'aria-labelledby': 0,\n  'aria-owns': 0,\n  'aria-posinset': 0,\n  'aria-rowcount': 0,\n  'aria-rowindex': 0,\n  'aria-rowspan': 0,\n  'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n  if (hasOwnProperty$2.call(warnedProperties, name) && warnedProperties[name]) {\n    return true;\n  }\n\n  if (rARIACamel.test(name)) {\n    var ariaName = 'aria-' + name.slice(4).toLowerCase();\n    var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;\n\n    // If this is an aria-* attribute, but is not listed in the known DOM\n    // DOM properties, then it is an invalid aria-* attribute.\n    if (correctName == null) {\n      warning$1(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n      warnedProperties[name] = true;\n      return true;\n    }\n    // aria-* attributes should be lowercase; suggest the lowercase version.\n    if (name !== correctName) {\n      warning$1(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n      warnedProperties[name] = true;\n      return true;\n    }\n  }\n\n  if (rARIA.test(name)) {\n    var lowerCasedName = name.toLowerCase();\n    var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;\n\n    // If this is an aria-* attribute, but is not listed in the known DOM\n    // DOM properties, then it is an invalid aria-* attribute.\n    if (standardName == null) {\n      warnedProperties[name] = true;\n      return false;\n    }\n    // aria-* attributes should be lowercase; suggest the lowercase version.\n    if (name !== standardName) {\n      warning$1(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n      warnedProperties[name] = true;\n      return true;\n    }\n  }\n\n  return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n  var invalidProps = [];\n\n  for (var key in props) {\n    var isValid = validateProperty(type, key);\n    if (!isValid) {\n      invalidProps.push(key);\n    }\n  }\n\n  var unknownPropString = invalidProps.map(function (prop) {\n    return '`' + prop + '`';\n  }).join(', ');\n\n  if (invalidProps.length === 1) {\n    warning$1(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n  } else if (invalidProps.length > 1) {\n    warning$1(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n  }\n}\n\nfunction validateProperties(type, props) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n  warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\n\nfunction validateProperties$1(type, props) {\n  if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n    return;\n  }\n\n  if (props != null && props.value === null && !didWarnValueNull) {\n    didWarnValueNull = true;\n    if (type === 'select' && props.multiple) {\n      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n    } else {\n      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n    }\n  }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n  var warnedProperties$1 = {};\n  var _hasOwnProperty = Object.prototype.hasOwnProperty;\n  var EVENT_NAME_REGEX = /^on./;\n  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n  validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n    if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n      return true;\n    }\n\n    var lowerCasedName = name.toLowerCase();\n    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n      warning$1(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // We can't rely on the event system being injected on the server.\n    if (canUseEventSystem) {\n      if (registrationNameModules.hasOwnProperty(name)) {\n        return true;\n      }\n      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n      if (registrationName != null) {\n        warning$1(false, 'Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n      if (EVENT_NAME_REGEX.test(name)) {\n        warning$1(false, 'Unknown event handler property `%s`. It will be ignored.', name);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (EVENT_NAME_REGEX.test(name)) {\n      // If no event plugins have been injected, we are in a server environment.\n      // So we can't tell if the event name is correct for sure, but we can filter\n      // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n      if (INVALID_EVENT_NAME_REGEX.test(name)) {\n        warning$1(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n      }\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // Let the ARIA attribute hook validate ARIA attributes\n    if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n      return true;\n    }\n\n    if (lowerCasedName === 'innerhtml') {\n      warning$1(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'aria') {\n      warning$1(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n      warning$1(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'number' && isNaN(value)) {\n      warning$1(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    var propertyInfo = getPropertyInfo(name);\n    var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED;\n\n    // Known attributes should match the casing specified in the property config.\n    if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      var standardName = possibleStandardNames[lowerCasedName];\n      if (standardName !== name) {\n        warning$1(false, 'Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (!isReserved && name !== lowerCasedName) {\n      // Unknown attributes should have lowercase casing since that's how they\n      // will be cased anyway with server rendering.\n      warning$1(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      if (value) {\n        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n      } else {\n        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n      }\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // Now that we've validated casing, do not validate\n    // data types for reserved props\n    if (isReserved) {\n      return true;\n    }\n\n    // Warn when a known attribute is a bad type\n    if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      warnedProperties$1[name] = true;\n      return false;\n    }\n\n    // Warn when passing the strings 'false' or 'true' into a boolean prop\n    if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n      warning$1(false, 'Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    return true;\n  };\n}\n\nvar warnUnknownProperties = function (type, props, canUseEventSystem) {\n  var unknownProps = [];\n  for (var key in props) {\n    var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);\n    if (!isValid) {\n      unknownProps.push(key);\n    }\n  }\n\n  var unknownPropString = unknownProps.map(function (prop) {\n    return '`' + prop + '`';\n  }).join(', ');\n  if (unknownProps.length === 1) {\n    warning$1(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n  } else if (unknownProps.length > 1) {\n    warning$1(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n  }\n};\n\nfunction validateProperties$2(type, props, canUseEventSystem) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n  warnUnknownProperties(type, props, canUseEventSystem);\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnInvalidHydration = false;\nvar didWarnShadyDOM = false;\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML = '__html';\n\nvar HTML_NAMESPACE = Namespaces.html;\n\n\nvar warnedUnknownTags = void 0;\nvar suppressHydrationWarning = void 0;\n\nvar validatePropertiesInDevelopment = void 0;\nvar warnForTextDifference = void 0;\nvar warnForPropDifference = void 0;\nvar warnForExtraAttributes = void 0;\nvar warnForInvalidEventListener = void 0;\nvar canDiffStyleForHydrationWarning = void 0;\n\nvar normalizeMarkupForTextOrAttribute = void 0;\nvar normalizeHTML = void 0;\n\n{\n  warnedUnknownTags = {\n    // Chrome is the only major browser not shipping <time>. But as of July\n    // 2017 it intends to ship it due to widespread usage. We intentionally\n    // *don't* warn for <time> even if it's unrecognized by Chrome because\n    // it soon will be, and many apps have been using it anyway.\n    time: true,\n    // There are working polyfills for <dialog>. Let people use it.\n    dialog: true,\n    // Electron ships a custom <webview> tag to display external web content in\n    // an isolated frame and process.\n    // This tag is not present in non Electron environments such as JSDom which\n    // is often used for testing purposes.\n    // @see https://electronjs.org/docs/api/webview-tag\n    webview: true\n  };\n\n  validatePropertiesInDevelopment = function (type, props) {\n    validateProperties(type, props);\n    validateProperties$1(type, props);\n    validateProperties$2(type, props, /* canUseEventSystem */true);\n  };\n\n  // IE 11 parses & normalizes the style attribute as opposed to other\n  // browsers. It adds spaces and sorts the properties in some\n  // non-alphabetical order. Handling that would require sorting CSS\n  // properties in the client & server versions or applying\n  // `expectedStyle` to a temporary DOM node to read its `style` attribute\n  // normalized. Since it only affects IE, we're skipping style warnings\n  // in that browser completely in favor of doing all that work.\n  // See https://github.com/facebook/react/issues/11807\n  canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode;\n\n  // HTML parsing normalizes CR and CRLF to LF.\n  // It also can turn \\u0000 into \\uFFFD inside attributes.\n  // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n  // If we have a mismatch, it might be caused by that.\n  // We will still patch up in this case but not fire the warning.\n  var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n  var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n  normalizeMarkupForTextOrAttribute = function (markup) {\n    var markupString = typeof markup === 'string' ? markup : '' + markup;\n    return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n  };\n\n  warnForTextDifference = function (serverText, clientText) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n    var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n    if (normalizedServerText === normalizedClientText) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n  };\n\n  warnForPropDifference = function (propName, serverValue, clientValue) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n    var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n    if (normalizedServerValue === normalizedClientValue) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n  };\n\n  warnForExtraAttributes = function (attributeNames) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    var names = [];\n    attributeNames.forEach(function (name) {\n      names.push(name);\n    });\n    warningWithoutStack$1(false, 'Extra attributes from the server: %s', names);\n  };\n\n  warnForInvalidEventListener = function (registrationName, listener) {\n    if (listener === false) {\n      warning$1(false, 'Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n    } else {\n      warning$1(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n    }\n  };\n\n  // Parse the HTML and read it back to normalize the HTML string so that it\n  // can be used for comparison.\n  normalizeHTML = function (parent, html) {\n    // We could have created a separate document here to avoid\n    // re-initializing custom elements if they exist. But this breaks\n    // how <noscript> is being handled. So we use the same document.\n    // See the discussion in https://github.com/facebook/react/pull/11157.\n    var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n    testElement.innerHTML = html;\n    return testElement.innerHTML;\n  };\n}\n\nfunction ensureListeningTo(rootContainerElement, registrationName) {\n  var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE;\n  var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;\n  listenTo(registrationName, doc);\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n  return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n  // Mobile Safari does not fire properly bubble click events on\n  // non-interactive elements, which means delegated click listeners do not\n  // fire. The workaround for this bug involves attaching an empty click\n  // listener on the target node.\n  // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n  // Just set it using the onclick property so that we don't have to manage any\n  // bookkeeping for it. Not sure if we need to clear it when the listener is\n  // removed.\n  // TODO: Only do this for the relevant Safaris maybe?\n  node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n  for (var propKey in nextProps) {\n    if (!nextProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n    var nextProp = nextProps[propKey];\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n      // Relies on `updateStylesByID` not mutating `styleUpdates`.\n      setValueForStyles(domElement, nextProp);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML] : undefined;\n      if (nextHtml != null) {\n        setInnerHTML(domElement, nextHtml);\n      }\n    } else if (propKey === CHILDREN) {\n      if (typeof nextProp === 'string') {\n        // Avoid setting initial textContent when the text is empty. In IE11 setting\n        // textContent on a <textarea> will cause the placeholder to not\n        // show within the <textarea> until it has been focused and blurred again.\n        // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n        var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n        if (canSetTextContent) {\n          setTextContent(domElement, nextProp);\n        }\n      } else if (typeof nextProp === 'number') {\n        setTextContent(domElement, '' + nextProp);\n      }\n    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (propKey === AUTOFOCUS) {\n      // We polyfill it separately on the client during commit.\n      // We could have excluded it in the property list instead of\n      // adding a special case here, but then it wouldn't be emitted\n      // on server rendering (but we *do* want to emit it in SSR).\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if (nextProp != null) {\n      setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n    }\n  }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n  // TODO: Handle wasCustomComponentTag\n  for (var i = 0; i < updatePayload.length; i += 2) {\n    var propKey = updatePayload[i];\n    var propValue = updatePayload[i + 1];\n    if (propKey === STYLE) {\n      setValueForStyles(domElement, propValue);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      setInnerHTML(domElement, propValue);\n    } else if (propKey === CHILDREN) {\n      setTextContent(domElement, propValue);\n    } else {\n      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n    }\n  }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n  var isCustomComponentTag = void 0;\n\n  // We create tags in the namespace of their parent container, except HTML\n  // tags get no namespace.\n  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n  var domElement = void 0;\n  var namespaceURI = parentNamespace;\n  if (namespaceURI === HTML_NAMESPACE) {\n    namespaceURI = getIntrinsicNamespace(type);\n  }\n  if (namespaceURI === HTML_NAMESPACE) {\n    {\n      isCustomComponentTag = isCustomComponent(type, props);\n      // Should this check be gated by parent namespace? Not sure we want to\n      // allow <SVG> or <mATH>.\n      !(isCustomComponentTag || type === type.toLowerCase()) ? warning$1(false, '<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type) : void 0;\n    }\n\n    if (type === 'script') {\n      // Create the script via .innerHTML so its \"parser-inserted\" flag is\n      // set to true and it does not execute\n      var div = ownerDocument.createElement('div');\n      div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n      // This is guaranteed to yield a script element.\n      var firstChild = div.firstChild;\n      domElement = div.removeChild(firstChild);\n    } else if (typeof props.is === 'string') {\n      // $FlowIssue `createElement` should be updated for Web Components\n      domElement = ownerDocument.createElement(type, { is: props.is });\n    } else {\n      // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n      // See discussion in https://github.com/facebook/react/pull/6896\n      // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n      domElement = ownerDocument.createElement(type);\n      // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple`\n      // attribute on `select`s needs to be added before `option`s are inserted. This prevents\n      // a bug where the `select` does not scroll to the correct option because singular\n      // `select` elements automatically pick the first item.\n      // See https://github.com/facebook/react/issues/13222\n      if (type === 'select' && props.multiple) {\n        var node = domElement;\n        node.multiple = true;\n      }\n    }\n  } else {\n    domElement = ownerDocument.createElementNS(namespaceURI, type);\n  }\n\n  {\n    if (namespaceURI === HTML_NAMESPACE) {\n      if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n        warnedUnknownTags[type] = true;\n        warning$1(false, 'The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n      }\n    }\n  }\n\n  return domElement;\n}\n\nfunction createTextNode(text, rootContainerElement) {\n  return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\n\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n  var isCustomComponentTag = isCustomComponent(tag, rawProps);\n  {\n    validatePropertiesInDevelopment(tag, rawProps);\n    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnShadyDOM = true;\n    }\n  }\n\n  // TODO: Make sure that we check isMounted before firing any of these events.\n  var props = void 0;\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n      props = rawProps;\n      break;\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      props = rawProps;\n      break;\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      props = rawProps;\n      break;\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      props = rawProps;\n      break;\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      props = getHostProps(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'option':\n      validateProps(domElement, rawProps);\n      props = getHostProps$1(domElement, rawProps);\n      break;\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      props = getHostProps$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      props = getHostProps$3(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    default:\n      props = rawProps;\n  }\n\n  assertValidProps(tag, props);\n\n  setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, false);\n      break;\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement, rawProps);\n      break;\n    case 'option':\n      postMountWrapper$1(domElement, rawProps);\n      break;\n    case 'select':\n      postMountWrapper$2(domElement, rawProps);\n      break;\n    default:\n      if (typeof props.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n}\n\n// Calculate the diff between the two objects.\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n  {\n    validatePropertiesInDevelopment(tag, nextRawProps);\n  }\n\n  var updatePayload = null;\n\n  var lastProps = void 0;\n  var nextProps = void 0;\n  switch (tag) {\n    case 'input':\n      lastProps = getHostProps(domElement, lastRawProps);\n      nextProps = getHostProps(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'option':\n      lastProps = getHostProps$1(domElement, lastRawProps);\n      nextProps = getHostProps$1(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'select':\n      lastProps = getHostProps$2(domElement, lastRawProps);\n      nextProps = getHostProps$2(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'textarea':\n      lastProps = getHostProps$3(domElement, lastRawProps);\n      nextProps = getHostProps$3(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    default:\n      lastProps = lastRawProps;\n      nextProps = nextRawProps;\n      if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n\n  assertValidProps(tag, nextProps);\n\n  var propKey = void 0;\n  var styleName = void 0;\n  var styleUpdates = null;\n  for (propKey in lastProps) {\n    if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n      continue;\n    }\n    if (propKey === STYLE) {\n      var lastStyle = lastProps[propKey];\n      for (styleName in lastStyle) {\n        if (lastStyle.hasOwnProperty(styleName)) {\n          if (!styleUpdates) {\n            styleUpdates = {};\n          }\n          styleUpdates[styleName] = '';\n        }\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {\n      // Noop. This is handled by the clear text mechanism.\n    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (propKey === AUTOFOCUS) {\n      // Noop. It doesn't work on updates anyway.\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      // This is a special case. If any listener updates we need to ensure\n      // that the \"current\" fiber pointer gets updated so we need a commit\n      // to update this element.\n      if (!updatePayload) {\n        updatePayload = [];\n      }\n    } else {\n      // For all other deleted properties we add it to the queue. We use\n      // the whitelist in the commit phase instead.\n      (updatePayload = updatePayload || []).push(propKey, null);\n    }\n  }\n  for (propKey in nextProps) {\n    var nextProp = nextProps[propKey];\n    var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n    if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n      continue;\n    }\n    if (propKey === STYLE) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n      if (lastProp) {\n        // Unset styles on `lastProp` but not on `nextProp`.\n        for (styleName in lastProp) {\n          if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n            styleUpdates[styleName] = '';\n          }\n        }\n        // Update styles that changed since `lastProp`.\n        for (styleName in nextProp) {\n          if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n            styleUpdates[styleName] = nextProp[styleName];\n          }\n        }\n      } else {\n        // Relies on `updateStylesByID` not mutating `styleUpdates`.\n        if (!styleUpdates) {\n          if (!updatePayload) {\n            updatePayload = [];\n          }\n          updatePayload.push(propKey, styleUpdates);\n        }\n        styleUpdates = nextProp;\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML] : undefined;\n      var lastHtml = lastProp ? lastProp[HTML] : undefined;\n      if (nextHtml != null) {\n        if (lastHtml !== nextHtml) {\n          (updatePayload = updatePayload || []).push(propKey, '' + nextHtml);\n        }\n      } else {\n        // TODO: It might be too late to clear this if we have children\n        // inserted already.\n      }\n    } else if (propKey === CHILDREN) {\n      if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {\n        (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n      }\n    } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        // We eagerly listen to this even though we haven't committed yet.\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n      if (!updatePayload && lastProp !== nextProp) {\n        // This is a special case. If any listener updates we need to ensure\n        // that the \"current\" props pointer gets updated so we need a commit\n        // to update this element.\n        updatePayload = [];\n      }\n    } else {\n      // For any other property we always add it to the queue and then we\n      // filter it out using the whitelist during the commit.\n      (updatePayload = updatePayload || []).push(propKey, nextProp);\n    }\n  }\n  if (styleUpdates) {\n    (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n  }\n  return updatePayload;\n}\n\n// Apply the diff.\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n  // Update checked *before* name.\n  // In the middle of an update, it is possible to have multiple checked.\n  // When a checked radio tries to change name, browser makes another radio's checked false.\n  if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n    updateChecked(domElement, nextRawProps);\n  }\n\n  var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n  var isCustomComponentTag = isCustomComponent(tag, nextRawProps);\n  // Apply the diff.\n  updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag);\n\n  // TODO: Ensure that an update gets scheduled if any of the special props\n  // changed.\n  switch (tag) {\n    case 'input':\n      // Update the wrapper around inputs *after* updating props. This has to\n      // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n      // raise warnings and prevent the new value from being assigned.\n      updateWrapper(domElement, nextRawProps);\n      break;\n    case 'textarea':\n      updateWrapper$1(domElement, nextRawProps);\n      break;\n    case 'select':\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      postUpdateWrapper(domElement, nextRawProps);\n      break;\n  }\n}\n\nfunction getPossibleStandardName(propName) {\n  {\n    var lowerCasedName = propName.toLowerCase();\n    if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      return null;\n    }\n    return possibleStandardNames[lowerCasedName] || null;\n  }\n  return null;\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n  var isCustomComponentTag = void 0;\n  var extraAttributeNames = void 0;\n\n  {\n    suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING$1] === true;\n    isCustomComponentTag = isCustomComponent(tag, rawProps);\n    validatePropertiesInDevelopment(tag, rawProps);\n    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnShadyDOM = true;\n    }\n  }\n\n  // TODO: Make sure that we check isMounted before firing any of these events.\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n      break;\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      break;\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      break;\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      break;\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'option':\n      validateProps(domElement, rawProps);\n      break;\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n  }\n\n  assertValidProps(tag, rawProps);\n\n  {\n    extraAttributeNames = new Set();\n    var attributes = domElement.attributes;\n    for (var _i = 0; _i < attributes.length; _i++) {\n      var name = attributes[_i].name.toLowerCase();\n      switch (name) {\n        // Built-in SSR attribute is whitelisted\n        case 'data-reactroot':\n          break;\n        // Controlled attributes are not validated\n        // TODO: Only ignore them on controlled tags.\n        case 'value':\n          break;\n        case 'checked':\n          break;\n        case 'selected':\n          break;\n        default:\n          // Intentionally use the original name.\n          // See discussion in https://github.com/facebook/react/pull/10676.\n          extraAttributeNames.add(attributes[_i].name);\n      }\n    }\n  }\n\n  var updatePayload = null;\n  for (var propKey in rawProps) {\n    if (!rawProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n    var nextProp = rawProps[propKey];\n    if (propKey === CHILDREN) {\n      // For text content children we compare against textContent. This\n      // might match additional HTML that is hidden when we read it using\n      // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n      // satisfies our requirement. Our requirement is not to produce perfect\n      // HTML and attributes. Ideally we should preserve structure but it's\n      // ok not to if the visible content is still enough to indicate what\n      // even listeners these nodes might be wired up to.\n      // TODO: Warn if there is more than a single textNode as a child.\n      // TODO: Should we use domElement.firstChild.nodeValue to compare?\n      if (typeof nextProp === 'string') {\n        if (domElement.textContent !== nextProp) {\n          if (true && !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n          updatePayload = [CHILDREN, nextProp];\n        }\n      } else if (typeof nextProp === 'number') {\n        if (domElement.textContent !== '' + nextProp) {\n          if (true && !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n          updatePayload = [CHILDREN, '' + nextProp];\n        }\n      }\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if (true &&\n    // Convince Flow we've calculated it (it's DEV-only in this method.)\n    typeof isCustomComponentTag === 'boolean') {\n      // Validate that the properties correspond to their expected values.\n      var serverValue = void 0;\n      var propertyInfo = getPropertyInfo(propKey);\n      if (suppressHydrationWarning) {\n        // Don't bother comparing. We're ignoring all these warnings.\n      } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1 ||\n      // Controlled attributes are not validated\n      // TODO: Only ignore them on controlled tags.\n      propKey === 'value' || propKey === 'checked' || propKey === 'selected') {\n        // Noop\n      } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n        var serverHTML = domElement.innerHTML;\n        var nextHtml = nextProp ? nextProp[HTML] : undefined;\n        var expectedHTML = normalizeHTML(domElement, nextHtml != null ? nextHtml : '');\n        if (expectedHTML !== serverHTML) {\n          warnForPropDifference(propKey, serverHTML, expectedHTML);\n        }\n      } else if (propKey === STYLE) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey);\n\n        if (canDiffStyleForHydrationWarning) {\n          var expectedStyle = createDangerousStringForStyles(nextProp);\n          serverValue = domElement.getAttribute('style');\n          if (expectedStyle !== serverValue) {\n            warnForPropDifference(propKey, serverValue, expectedStyle);\n          }\n        }\n      } else if (isCustomComponentTag) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey.toLowerCase());\n        serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n        if (nextProp !== serverValue) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n        var isMismatchDueToBadCasing = false;\n        if (propertyInfo !== null) {\n          // $FlowFixMe - Should be inferred as not undefined.\n          extraAttributeNames.delete(propertyInfo.attributeName);\n          serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n        } else {\n          var ownNamespace = parentNamespace;\n          if (ownNamespace === HTML_NAMESPACE) {\n            ownNamespace = getIntrinsicNamespace(tag);\n          }\n          if (ownNamespace === HTML_NAMESPACE) {\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey.toLowerCase());\n          } else {\n            var standardName = getPossibleStandardName(propKey);\n            if (standardName !== null && standardName !== propKey) {\n              // If an SVG prop is supplied with bad casing, it will\n              // be successfully parsed from HTML, but will produce a mismatch\n              // (and would be incorrectly rendered on the client).\n              // However, we already warn about bad casing elsewhere.\n              // So we'll skip the misleading extra mismatch warning in this case.\n              isMismatchDueToBadCasing = true;\n              // $FlowFixMe - Should be inferred as not undefined.\n              extraAttributeNames.delete(standardName);\n            }\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey);\n          }\n          serverValue = getValueForAttribute(domElement, propKey, nextProp);\n        }\n\n        if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      }\n    }\n  }\n\n  {\n    // $FlowFixMe - Should be inferred as not undefined.\n    if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n      // $FlowFixMe - Should be inferred as not undefined.\n      warnForExtraAttributes(extraAttributeNames);\n    }\n  }\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, true);\n      break;\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement, rawProps);\n      break;\n    case 'select':\n    case 'option':\n      // For input and textarea we current always set the value property at\n      // post mount to force it to diverge from attributes. However, for\n      // option and select we don't quite do the same thing and select\n      // is not resilient to the DOM state changing so we don't do that here.\n      // TODO: Consider not doing this for input and textarea.\n      break;\n    default:\n      if (typeof rawProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n\n  return updatePayload;\n}\n\nfunction diffHydratedText(textNode, text) {\n  var isDifferent = textNode.nodeValue !== text;\n  return isDifferent;\n}\n\nfunction warnForUnmatchedText(textNode, text) {\n  {\n    warnForTextDifference(textNode.nodeValue, text);\n  }\n}\n\nfunction warnForDeletedHydratableElement(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForDeletedHydratableText(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForInsertedHydratedText(parentNode, text) {\n  {\n    if (text === '') {\n      // We expect to insert empty text nodes since they're not represented in\n      // the HTML.\n      // TODO: Remove this special case if we can just avoid inserting empty\n      // text nodes.\n      return;\n    }\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction restoreControlledState$1(domElement, tag, props) {\n  switch (tag) {\n    case 'input':\n      restoreControlledState(domElement, props);\n      return;\n    case 'textarea':\n      restoreControlledState$3(domElement, props);\n      return;\n    case 'select':\n      restoreControlledState$2(domElement, props);\n      return;\n  }\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar validateDOMNesting = function () {};\nvar updatedAncestorInfo = function () {};\n\n{\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    current: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  updatedAncestorInfo = function (oldInfo, tag) {\n    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.current = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body';\n      case '#document':\n        return tag === 'html';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'body':\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frame':\n      case 'head':\n      case 'html':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n      case 'pre':\n      case 'listing':\n      case 'table':\n      case 'hr':\n      case 'xmp':\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childText, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    if (childText != null) {\n      !(childTag == null) ? warningWithoutStack$1(false, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n      childTag = '#text';\n    }\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var invalidParentOrAncestor = invalidParent || invalidAncestor;\n    if (!invalidParentOrAncestor) {\n      return;\n    }\n\n    var ancestorTag = invalidParentOrAncestor.tag;\n    var addendum = getCurrentFiberStackInDev();\n\n    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;\n    if (didWarn[warnKey]) {\n      return;\n    }\n    didWarn[warnKey] = true;\n\n    var tagDisplayName = childTag;\n    var whitespaceInfo = '';\n    if (childTag === '#text') {\n      if (/\\S/.test(childText)) {\n        tagDisplayName = 'Text nodes';\n      } else {\n        tagDisplayName = 'Whitespace text nodes';\n        whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n      }\n    } else {\n      tagDisplayName = '<' + childTag + '>';\n    }\n\n    if (invalidParent) {\n      var info = '';\n      if (ancestorTag === 'table' && childTag === 'tr') {\n        info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n      }\n      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info, addendum);\n    } else {\n      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.%s', tagDisplayName, ancestorTag, addendum);\n    }\n  };\n}\n\n// Renderers that don't support persistence\n// can re-export everything from this module.\n\nfunction shim() {\n  invariant(false, 'The current renderer does not support persistence. This error is likely caused by a bug in React. Please file an issue.');\n}\n\n// Persistence (when unsupported)\nvar supportsPersistence = false;\nvar cloneInstance = shim;\nvar createContainerChildSet = shim;\nvar appendChildToContainerChildSet = shim;\nvar finalizeContainerChildren = shim;\nvar replaceContainerChildren = shim;\n\nvar SUPPRESS_HYDRATION_WARNING = void 0;\n{\n  SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\n}\n\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n  switch (type) {\n    case 'button':\n    case 'input':\n    case 'select':\n    case 'textarea':\n      return !!props.autoFocus;\n  }\n  return false;\n}\n\nfunction getRootHostContext(rootContainerInstance) {\n  var type = void 0;\n  var namespace = void 0;\n  var nodeType = rootContainerInstance.nodeType;\n  switch (nodeType) {\n    case DOCUMENT_NODE:\n    case DOCUMENT_FRAGMENT_NODE:\n      {\n        type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n        var root = rootContainerInstance.documentElement;\n        namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n        break;\n      }\n    default:\n      {\n        var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n        var ownNamespace = container.namespaceURI || null;\n        type = container.tagName;\n        namespace = getChildNamespace(ownNamespace, type);\n        break;\n      }\n  }\n  {\n    var validatedTag = type.toLowerCase();\n    var _ancestorInfo = updatedAncestorInfo(null, validatedTag);\n    return { namespace: namespace, ancestorInfo: _ancestorInfo };\n  }\n  return namespace;\n}\n\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n  {\n    var parentHostContextDev = parentHostContext;\n    var _namespace = getChildNamespace(parentHostContextDev.namespace, type);\n    var _ancestorInfo2 = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n    return { namespace: _namespace, ancestorInfo: _ancestorInfo2 };\n  }\n  var parentNamespace = parentHostContext;\n  return getChildNamespace(parentNamespace, type);\n}\n\nfunction getPublicInstance(instance) {\n  return instance;\n}\n\nfunction prepareForCommit(containerInfo) {\n  eventsEnabled = isEnabled();\n  selectionInformation = getSelectionInformation();\n  setEnabled(false);\n}\n\nfunction resetAfterCommit(containerInfo) {\n  restoreSelection(selectionInformation);\n  selectionInformation = null;\n  setEnabled(eventsEnabled);\n  eventsEnabled = null;\n}\n\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  var parentNamespace = void 0;\n  {\n    // TODO: take namespace into account when validating.\n    var hostContextDev = hostContext;\n    validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n    if (typeof props.children === 'string' || typeof props.children === 'number') {\n      var string = '' + props.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n    parentNamespace = hostContextDev.namespace;\n  }\n  var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n  precacheFiberNode(internalInstanceHandle, domElement);\n  updateFiberProps(domElement, props);\n  return domElement;\n}\n\nfunction appendInitialChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\n\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n  setInitialProperties(domElement, type, props, rootContainerInstance);\n  return shouldAutoFocusHostComponent(type, props);\n}\n\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n  {\n    var hostContextDev = hostContext;\n    if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n      var string = '' + newProps.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n  }\n  return diffProperties(domElement, type, oldProps, newProps, rootContainerInstance);\n}\n\nfunction shouldSetTextContent(type, props) {\n  return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\n\nfunction shouldDeprioritizeSubtree(type, props) {\n  return !!props.hidden;\n}\n\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n  {\n    var hostContextDev = hostContext;\n    validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n  }\n  var textNode = createTextNode(text, rootContainerInstance);\n  precacheFiberNode(internalInstanceHandle, textNode);\n  return textNode;\n}\n\nvar isPrimaryRenderer = true;\nvar scheduleTimeout = setTimeout;\nvar cancelTimeout = clearTimeout;\nvar noTimeout = -1;\n\n// -------------------\n//     Mutation\n// -------------------\n\nvar supportsMutation = true;\n\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n  // Despite the naming that might imply otherwise, this method only\n  // fires if there is an `Update` effect scheduled during mounting.\n  // This happens if `finalizeInitialChildren` returns `true` (which it\n  // does to implement the `autoFocus` attribute on the client). But\n  // there are also other cases when this might happen (such as patching\n  // up text content during hydration mismatch). So we'll check this again.\n  if (shouldAutoFocusHostComponent(type, newProps)) {\n    domElement.focus();\n  }\n}\n\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n  // Update the props handle so that we know which props are the ones with\n  // with current event handlers.\n  updateFiberProps(domElement, newProps);\n  // Apply the diff to the DOM node.\n  updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\n\nfunction resetTextContent(domElement) {\n  setTextContent(domElement, '');\n}\n\nfunction commitTextUpdate(textInstance, oldText, newText) {\n  textInstance.nodeValue = newText;\n}\n\nfunction appendChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\n\nfunction appendChildToContainer(container, child) {\n  var parentNode = void 0;\n  if (container.nodeType === COMMENT_NODE) {\n    parentNode = container.parentNode;\n    parentNode.insertBefore(child, container);\n  } else {\n    parentNode = container;\n    parentNode.appendChild(child);\n  }\n  // This container might be used for a portal.\n  // If something inside a portal is clicked, that click should bubble\n  // through the React tree. However, on Mobile Safari the click would\n  // never bubble through the *DOM* tree unless an ancestor with onclick\n  // event exists. So we wouldn't see it and dispatch it.\n  // This is why we ensure that containers have inline onclick defined.\n  // https://github.com/facebook/react/issues/11918\n  if (parentNode.onclick === null) {\n    // TODO: This cast may not be sound for SVG, MathML or custom elements.\n    trapClickOnNonInteractiveElement(parentNode);\n  }\n}\n\nfunction insertBefore(parentInstance, child, beforeChild) {\n  parentInstance.insertBefore(child, beforeChild);\n}\n\nfunction insertInContainerBefore(container, child, beforeChild) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.insertBefore(child, beforeChild);\n  } else {\n    container.insertBefore(child, beforeChild);\n  }\n}\n\nfunction removeChild(parentInstance, child) {\n  parentInstance.removeChild(child);\n}\n\nfunction removeChildFromContainer(container, child) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.removeChild(child);\n  } else {\n    container.removeChild(child);\n  }\n}\n\n// -------------------\n//     Hydration\n// -------------------\n\nvar supportsHydration = true;\n\nfunction canHydrateInstance(instance, type, props) {\n  if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n    return null;\n  }\n  // This has now been refined to an element node.\n  return instance;\n}\n\nfunction canHydrateTextInstance(instance, text) {\n  if (text === '' || instance.nodeType !== TEXT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  }\n  // This has now been refined to a text node.\n  return instance;\n}\n\nfunction getNextHydratableSibling(instance) {\n  var node = instance.nextSibling;\n  // Skip non-hydratable nodes.\n  while (node && node.nodeType !== ELEMENT_NODE && node.nodeType !== TEXT_NODE) {\n    node = node.nextSibling;\n  }\n  return node;\n}\n\nfunction getFirstHydratableChild(parentInstance) {\n  var next = parentInstance.firstChild;\n  // Skip non-hydratable nodes.\n  while (next && next.nodeType !== ELEMENT_NODE && next.nodeType !== TEXT_NODE) {\n    next = next.nextSibling;\n  }\n  return next;\n}\n\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, instance);\n  // TODO: Possibly defer this until the commit phase where all the events\n  // get attached.\n  updateFiberProps(instance, props);\n  var parentNamespace = void 0;\n  {\n    var hostContextDev = hostContext;\n    parentNamespace = hostContextDev.namespace;\n  }\n  return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance);\n}\n\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, textInstance);\n  return diffHydratedText(textInstance, text);\n}\n\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n  {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\n\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\n\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n  {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentContainer, instance);\n    } else {\n      warnForDeletedHydratableText(parentContainer, instance);\n    }\n  }\n}\n\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentInstance, instance);\n    } else {\n      warnForDeletedHydratableText(parentInstance, instance);\n    }\n  }\n}\n\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n  {\n    warnForInsertedHydratedElement(parentContainer, type, props);\n  }\n}\n\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n  {\n    warnForInsertedHydratedText(parentContainer, text);\n  }\n}\n\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForInsertedHydratedElement(parentInstance, type, props);\n  }\n}\n\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForInsertedHydratedText(parentInstance, text);\n  }\n}\n\n// Prefix measurements so that it's possible to filter them.\n// Longer prefixes are hard to read in DevTools.\nvar reactEmoji = '\\u269B';\nvar warningEmoji = '\\u26D4';\nvar supportsUserTiming = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';\n\n// Keep track of current fiber so that we know the path to unwind on pause.\n// TODO: this looks the same as nextUnitOfWork in scheduler. Can we unify them?\nvar currentFiber = null;\n// If we're in the middle of user code, which fiber and method is it?\n// Reusing `currentFiber` would be confusing for this because user code fiber\n// can change during commit phase too, but we don't need to unwind it (since\n// lifecycles in the commit phase don't resemble a tree).\nvar currentPhase = null;\nvar currentPhaseFiber = null;\n// Did lifecycle hook schedule an update? This is often a performance problem,\n// so we will keep track of it, and include it in the report.\n// Track commits caused by cascading updates.\nvar isCommitting = false;\nvar hasScheduledUpdateInCurrentCommit = false;\nvar hasScheduledUpdateInCurrentPhase = false;\nvar commitCountInCurrentWorkLoop = 0;\nvar effectCountInCurrentCommit = 0;\nvar isWaitingForCallback = false;\n// During commits, we only show a measurement once per method name\n// to avoid stretch the commit phase with measurement overhead.\nvar labelsInCurrentCommit = new Set();\n\nvar formatMarkName = function (markName) {\n  return reactEmoji + ' ' + markName;\n};\n\nvar formatLabel = function (label, warning) {\n  var prefix = warning ? warningEmoji + ' ' : reactEmoji + ' ';\n  var suffix = warning ? ' Warning: ' + warning : '';\n  return '' + prefix + label + suffix;\n};\n\nvar beginMark = function (markName) {\n  performance.mark(formatMarkName(markName));\n};\n\nvar clearMark = function (markName) {\n  performance.clearMarks(formatMarkName(markName));\n};\n\nvar endMark = function (label, markName, warning) {\n  var formattedMarkName = formatMarkName(markName);\n  var formattedLabel = formatLabel(label, warning);\n  try {\n    performance.measure(formattedLabel, formattedMarkName);\n  } catch (err) {}\n  // If previous mark was missing for some reason, this will throw.\n  // This could only happen if React crashed in an unexpected place earlier.\n  // Don't pile on with more errors.\n\n  // Clear marks immediately to avoid growing buffer.\n  performance.clearMarks(formattedMarkName);\n  performance.clearMeasures(formattedLabel);\n};\n\nvar getFiberMarkName = function (label, debugID) {\n  return label + ' (#' + debugID + ')';\n};\n\nvar getFiberLabel = function (componentName, isMounted, phase) {\n  if (phase === null) {\n    // These are composite component total time measurements.\n    return componentName + ' [' + (isMounted ? 'update' : 'mount') + ']';\n  } else {\n    // Composite component methods.\n    return componentName + '.' + phase;\n  }\n};\n\nvar beginFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n\n  if (isCommitting && labelsInCurrentCommit.has(label)) {\n    // During the commit phase, we don't show duplicate labels because\n    // there is a fixed overhead for every measurement, and we don't\n    // want to stretch the commit phase beyond necessary.\n    return false;\n  }\n  labelsInCurrentCommit.add(label);\n\n  var markName = getFiberMarkName(label, debugID);\n  beginMark(markName);\n  return true;\n};\n\nvar clearFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  clearMark(markName);\n};\n\nvar endFiberMark = function (fiber, phase, warning) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  endMark(label, markName, warning);\n};\n\nvar shouldIgnoreFiber = function (fiber) {\n  // Host components should be skipped in the timeline.\n  // We could check typeof fiber.type, but does this work with RN?\n  switch (fiber.tag) {\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n    case Fragment:\n    case ContextProvider:\n    case ContextConsumer:\n    case Mode:\n      return true;\n    default:\n      return false;\n  }\n};\n\nvar clearPendingPhaseMeasurement = function () {\n  if (currentPhase !== null && currentPhaseFiber !== null) {\n    clearFiberMark(currentPhaseFiber, currentPhase);\n  }\n  currentPhaseFiber = null;\n  currentPhase = null;\n  hasScheduledUpdateInCurrentPhase = false;\n};\n\nvar pauseTimers = function () {\n  // Stops all currently active measurements so that they can be resumed\n  // if we continue in a later deferred loop from the same unit of work.\n  var fiber = currentFiber;\n  while (fiber) {\n    if (fiber._debugIsCurrentlyTiming) {\n      endFiberMark(fiber, null, null);\n    }\n    fiber = fiber.return;\n  }\n};\n\nvar resumeTimersRecursively = function (fiber) {\n  if (fiber.return !== null) {\n    resumeTimersRecursively(fiber.return);\n  }\n  if (fiber._debugIsCurrentlyTiming) {\n    beginFiberMark(fiber, null);\n  }\n};\n\nvar resumeTimers = function () {\n  // Resumes all measurements that were active during the last deferred loop.\n  if (currentFiber !== null) {\n    resumeTimersRecursively(currentFiber);\n  }\n};\n\nfunction recordEffect() {\n  if (enableUserTimingAPI) {\n    effectCountInCurrentCommit++;\n  }\n}\n\nfunction recordScheduleUpdate() {\n  if (enableUserTimingAPI) {\n    if (isCommitting) {\n      hasScheduledUpdateInCurrentCommit = true;\n    }\n    if (currentPhase !== null && currentPhase !== 'componentWillMount' && currentPhase !== 'componentWillReceiveProps') {\n      hasScheduledUpdateInCurrentPhase = true;\n    }\n  }\n}\n\nfunction startRequestCallbackTimer() {\n  if (enableUserTimingAPI) {\n    if (supportsUserTiming && !isWaitingForCallback) {\n      isWaitingForCallback = true;\n      beginMark('(Waiting for async callback...)');\n    }\n  }\n}\n\nfunction stopRequestCallbackTimer(didExpire, expirationTime) {\n  if (enableUserTimingAPI) {\n    if (supportsUserTiming) {\n      isWaitingForCallback = false;\n      var warning = didExpire ? 'React was blocked by main thread' : null;\n      endMark('(Waiting for async callback... will force flush in ' + expirationTime + ' ms)', '(Waiting for async callback...)', warning);\n    }\n  }\n}\n\nfunction startWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, this is the fiber to unwind from.\n    currentFiber = fiber;\n    if (!beginFiberMark(fiber, null)) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = true;\n  }\n}\n\nfunction cancelWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // Remember we shouldn't complete measurement for this fiber.\n    // Otherwise flamechart will be deep even for small updates.\n    fiber._debugIsCurrentlyTiming = false;\n    clearFiberMark(fiber, null);\n  }\n}\n\nfunction stopWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, its parent is the fiber to unwind from.\n    currentFiber = fiber.return;\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = false;\n    endFiberMark(fiber, null, null);\n  }\n}\n\nfunction stopFailedWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, its parent is the fiber to unwind from.\n    currentFiber = fiber.return;\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = false;\n    var warning = 'An error was thrown inside this error boundary';\n    endFiberMark(fiber, null, warning);\n  }\n}\n\nfunction startPhaseTimer(fiber, phase) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    clearPendingPhaseMeasurement();\n    if (!beginFiberMark(fiber, phase)) {\n      return;\n    }\n    currentPhaseFiber = fiber;\n    currentPhase = phase;\n  }\n}\n\nfunction stopPhaseTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    if (currentPhase !== null && currentPhaseFiber !== null) {\n      var warning = hasScheduledUpdateInCurrentPhase ? 'Scheduled a cascading update' : null;\n      endFiberMark(currentPhaseFiber, currentPhase, warning);\n    }\n    currentPhase = null;\n    currentPhaseFiber = null;\n  }\n}\n\nfunction startWorkLoopTimer(nextUnitOfWork) {\n  if (enableUserTimingAPI) {\n    currentFiber = nextUnitOfWork;\n    if (!supportsUserTiming) {\n      return;\n    }\n    commitCountInCurrentWorkLoop = 0;\n    // This is top level call.\n    // Any other measurements are performed within.\n    beginMark('(React Tree Reconciliation)');\n    // Resume any measurements that were in progress during the last loop.\n    resumeTimers();\n  }\n}\n\nfunction stopWorkLoopTimer(interruptedBy, didCompleteRoot) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var warning = null;\n    if (interruptedBy !== null) {\n      if (interruptedBy.tag === HostRoot) {\n        warning = 'A top-level update interrupted the previous render';\n      } else {\n        var componentName = getComponentName(interruptedBy.type) || 'Unknown';\n        warning = 'An update to ' + componentName + ' interrupted the previous render';\n      }\n    } else if (commitCountInCurrentWorkLoop > 1) {\n      warning = 'There were cascading updates';\n    }\n    commitCountInCurrentWorkLoop = 0;\n    var label = didCompleteRoot ? '(React Tree Reconciliation: Completed Root)' : '(React Tree Reconciliation: Yielded)';\n    // Pause any measurements until the next loop.\n    pauseTimers();\n    endMark(label, '(React Tree Reconciliation)', warning);\n  }\n}\n\nfunction startCommitTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    isCommitting = true;\n    hasScheduledUpdateInCurrentCommit = false;\n    labelsInCurrentCommit.clear();\n    beginMark('(Committing Changes)');\n  }\n}\n\nfunction stopCommitTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var warning = null;\n    if (hasScheduledUpdateInCurrentCommit) {\n      warning = 'Lifecycle hook scheduled a cascading update';\n    } else if (commitCountInCurrentWorkLoop > 0) {\n      warning = 'Caused by a cascading update in earlier commit';\n    }\n    hasScheduledUpdateInCurrentCommit = false;\n    commitCountInCurrentWorkLoop++;\n    isCommitting = false;\n    labelsInCurrentCommit.clear();\n\n    endMark('(Committing Changes)', '(Committing Changes)', warning);\n  }\n}\n\nfunction startCommitSnapshotEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Snapshot Effects)');\n  }\n}\n\nfunction stopCommitSnapshotEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Committing Snapshot Effects: ' + count + ' Total)', '(Committing Snapshot Effects)', null);\n  }\n}\n\nfunction startCommitHostEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Host Effects)');\n  }\n}\n\nfunction stopCommitHostEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Committing Host Effects: ' + count + ' Total)', '(Committing Host Effects)', null);\n  }\n}\n\nfunction startCommitLifeCyclesTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Calling Lifecycle Methods)');\n  }\n}\n\nfunction stopCommitLifeCyclesTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Calling Lifecycle Methods: ' + count + ' Total)', '(Calling Lifecycle Methods)', null);\n  }\n}\n\nvar valueStack = [];\n\nvar fiberStack = void 0;\n\n{\n  fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n  return {\n    current: defaultValue\n  };\n}\n\nfunction pop(cursor, fiber) {\n  if (index < 0) {\n    {\n      warningWithoutStack$1(false, 'Unexpected pop.');\n    }\n    return;\n  }\n\n  {\n    if (fiber !== fiberStack[index]) {\n      warningWithoutStack$1(false, 'Unexpected Fiber popped.');\n    }\n  }\n\n  cursor.current = valueStack[index];\n\n  valueStack[index] = null;\n\n  {\n    fiberStack[index] = null;\n  }\n\n  index--;\n}\n\nfunction push(cursor, value, fiber) {\n  index++;\n\n  valueStack[index] = cursor.current;\n\n  {\n    fiberStack[index] = fiber;\n  }\n\n  cursor.current = value;\n}\n\nfunction checkThatStackIsEmpty() {\n  {\n    if (index !== -1) {\n      warningWithoutStack$1(false, 'Expected an empty stack. Something was not reset properly.');\n    }\n  }\n}\n\nfunction resetStackAfterFatalErrorInDev() {\n  {\n    index = -1;\n    valueStack.length = 0;\n    fiberStack.length = 0;\n  }\n}\n\nvar warnedAboutMissingGetChildContext = void 0;\n\n{\n  warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n{\n  Object.freeze(emptyContextObject);\n}\n\n// A cursor to the current merged context object on the stack.\nvar contextStackCursor = createCursor(emptyContextObject);\n// A cursor to a boolean indicating whether the context has changed.\nvar didPerformWorkStackCursor = createCursor(false);\n// Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n  if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n    // If the fiber is a context provider itself, when we read its context\n    // we may have already pushed its own child context on the stack. A context\n    // provider should not \"see\" its own child context. Therefore we read the\n    // previous (parent) context instead for a context provider.\n    return previousContext;\n  }\n  return contextStackCursor.current;\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n  var instance = workInProgress.stateNode;\n  instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n  instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n  var type = workInProgress.type;\n  var contextTypes = type.contextTypes;\n  if (!contextTypes) {\n    return emptyContextObject;\n  }\n\n  // Avoid recreating masked context unless unmasked context has changed.\n  // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n  // This may trigger infinite loops if componentWillReceiveProps calls setState.\n  var instance = workInProgress.stateNode;\n  if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n    return instance.__reactInternalMemoizedMaskedChildContext;\n  }\n\n  var context = {};\n  for (var key in contextTypes) {\n    context[key] = unmaskedContext[key];\n  }\n\n  {\n    var name = getComponentName(type) || 'Unknown';\n    checkPropTypes(contextTypes, context, 'context', name, getCurrentFiberStackInDev);\n  }\n\n  // Cache unmasked context so we can avoid recreating masked context unless necessary.\n  // Context is created before the class component is instantiated so check for instance.\n  if (instance) {\n    cacheContext(workInProgress, unmaskedContext, context);\n  }\n\n  return context;\n}\n\nfunction hasContextChanged() {\n  return didPerformWorkStackCursor.current;\n}\n\nfunction isContextProvider(type) {\n  var childContextTypes = type.childContextTypes;\n  return childContextTypes !== null && childContextTypes !== undefined;\n}\n\nfunction popContext(fiber) {\n  pop(didPerformWorkStackCursor, fiber);\n  pop(contextStackCursor, fiber);\n}\n\nfunction popTopLevelContextObject(fiber) {\n  pop(didPerformWorkStackCursor, fiber);\n  pop(contextStackCursor, fiber);\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n  !(contextStackCursor.current === emptyContextObject) ? invariant(false, 'Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  push(contextStackCursor, context, fiber);\n  push(didPerformWorkStackCursor, didChange, fiber);\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n  var instance = fiber.stateNode;\n  var childContextTypes = type.childContextTypes;\n\n  // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n  // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n  if (typeof instance.getChildContext !== 'function') {\n    {\n      var componentName = getComponentName(type) || 'Unknown';\n\n      if (!warnedAboutMissingGetChildContext[componentName]) {\n        warnedAboutMissingGetChildContext[componentName] = true;\n        warningWithoutStack$1(false, '%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n      }\n    }\n    return parentContext;\n  }\n\n  var childContext = void 0;\n  {\n    setCurrentPhase('getChildContext');\n  }\n  startPhaseTimer(fiber, 'getChildContext');\n  childContext = instance.getChildContext();\n  stopPhaseTimer();\n  {\n    setCurrentPhase(null);\n  }\n  for (var contextKey in childContext) {\n    !(contextKey in childContextTypes) ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', getComponentName(type) || 'Unknown', contextKey) : void 0;\n  }\n  {\n    var name = getComponentName(type) || 'Unknown';\n    checkPropTypes(childContextTypes, childContext, 'child context', name,\n    // In practice, there is one case in which we won't get a stack. It's when\n    // somebody calls unstable_renderSubtreeIntoContainer() and we process\n    // context from the parent component instance. The stack will be missing\n    // because it's outside of the reconciliation, and so the pointer has not\n    // been set. This is rare and doesn't matter. We'll also remove that API.\n    getCurrentFiberStackInDev);\n  }\n\n  return _assign({}, parentContext, childContext);\n}\n\nfunction pushContextProvider(workInProgress) {\n  var instance = workInProgress.stateNode;\n  // We push the context as early as possible to ensure stack integrity.\n  // If the instance does not exist yet, we will push null at first,\n  // and replace it on the stack later when invalidating the context.\n  var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject;\n\n  // Remember the parent context so we can merge with it later.\n  // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n  previousContext = contextStackCursor.current;\n  push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n  push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n\n  return true;\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n  var instance = workInProgress.stateNode;\n  !instance ? invariant(false, 'Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  if (didChange) {\n    // Merge parent and own context.\n    // Skip this if we're not updating due to sCU.\n    // This avoids unnecessarily recomputing memoized values.\n    var mergedContext = processChildContext(workInProgress, type, previousContext);\n    instance.__reactInternalMemoizedMergedChildContext = mergedContext;\n\n    // Replace the old (or empty) context with the new one.\n    // It is important to unwind the context in the reverse order.\n    pop(didPerformWorkStackCursor, workInProgress);\n    pop(contextStackCursor, workInProgress);\n    // Now push the new context and mark that it has changed.\n    push(contextStackCursor, mergedContext, workInProgress);\n    push(didPerformWorkStackCursor, didChange, workInProgress);\n  } else {\n    pop(didPerformWorkStackCursor, workInProgress);\n    push(didPerformWorkStackCursor, didChange, workInProgress);\n  }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n  // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n  // makes sense elsewhere\n  !(isFiberMounted(fiber) && (fiber.tag === ClassComponent || fiber.tag === ClassComponentLazy)) ? invariant(false, 'Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  var node = fiber;\n  do {\n    switch (node.tag) {\n      case HostRoot:\n        return node.stateNode.context;\n      case ClassComponent:\n        {\n          var Component = node.type;\n          if (isContextProvider(Component)) {\n            return node.stateNode.__reactInternalMemoizedMergedChildContext;\n          }\n          break;\n        }\n      case ClassComponentLazy:\n        {\n          var _Component = getResultFromResolvedThenable(node.type);\n          if (isContextProvider(_Component)) {\n            return node.stateNode.__reactInternalMemoizedMergedChildContext;\n          }\n          break;\n        }\n    }\n    node = node.return;\n  } while (node !== null);\n  invariant(false, 'Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.');\n}\n\nvar onCommitFiberRoot = null;\nvar onCommitFiberUnmount = null;\nvar hasLoggedError = false;\n\nfunction catchErrors(fn) {\n  return function (arg) {\n    try {\n      return fn(arg);\n    } catch (err) {\n      if (true && !hasLoggedError) {\n        hasLoggedError = true;\n        warningWithoutStack$1(false, 'React DevTools encountered an error: %s', err);\n      }\n    }\n  };\n}\n\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\n\nfunction injectInternals(internals) {\n  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n    // No DevTools\n    return false;\n  }\n  var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n  if (hook.isDisabled) {\n    // This isn't a real property on the hook, but it can be set to opt out\n    // of DevTools integration and associated warnings and logs.\n    // https://github.com/facebook/react/issues/3877\n    return true;\n  }\n  if (!hook.supportsFiber) {\n    {\n      warningWithoutStack$1(false, 'The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://fb.me/react-devtools');\n    }\n    // DevTools exists, even though it doesn't support Fiber.\n    return true;\n  }\n  try {\n    var rendererID = hook.inject(internals);\n    // We have successfully injected, so now it is safe to set up hooks.\n    onCommitFiberRoot = catchErrors(function (root) {\n      return hook.onCommitFiberRoot(rendererID, root);\n    });\n    onCommitFiberUnmount = catchErrors(function (fiber) {\n      return hook.onCommitFiberUnmount(rendererID, fiber);\n    });\n  } catch (err) {\n    // Catch all errors because it is unsafe to throw during initialization.\n    {\n      warningWithoutStack$1(false, 'React DevTools encountered an error: %s.', err);\n    }\n  }\n  // DevTools exists\n  return true;\n}\n\nfunction onCommitRoot(root) {\n  if (typeof onCommitFiberRoot === 'function') {\n    onCommitFiberRoot(root);\n  }\n}\n\nfunction onCommitUnmount(fiber) {\n  if (typeof onCommitFiberUnmount === 'function') {\n    onCommitFiberUnmount(fiber);\n  }\n}\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar maxSigned31BitInt = 1073741823;\n\nvar NoWork = 0;\nvar Sync = 1;\nvar Never = maxSigned31BitInt;\n\nvar UNIT_SIZE = 10;\nvar MAGIC_NUMBER_OFFSET = 2;\n\n// 1 unit of expiration time represents 10ms.\nfunction msToExpirationTime(ms) {\n  // Always add an offset so that we don't clash with the magic number for NoWork.\n  return (ms / UNIT_SIZE | 0) + MAGIC_NUMBER_OFFSET;\n}\n\nfunction expirationTimeToMs(expirationTime) {\n  return (expirationTime - MAGIC_NUMBER_OFFSET) * UNIT_SIZE;\n}\n\nfunction ceiling(num, precision) {\n  return ((num / precision | 0) + 1) * precision;\n}\n\nfunction computeExpirationBucket(currentTime, expirationInMs, bucketSizeMs) {\n  return MAGIC_NUMBER_OFFSET + ceiling(currentTime - MAGIC_NUMBER_OFFSET + expirationInMs / UNIT_SIZE, bucketSizeMs / UNIT_SIZE);\n}\n\nvar LOW_PRIORITY_EXPIRATION = 5000;\nvar LOW_PRIORITY_BATCH_SIZE = 250;\n\nfunction computeAsyncExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, LOW_PRIORITY_EXPIRATION, LOW_PRIORITY_BATCH_SIZE);\n}\n\n// We intentionally set a higher expiration time for interactive updates in\n// dev than in production.\n//\n// If the main thread is being blocked so long that you hit the expiration,\n// it's a problem that could be solved with better scheduling.\n//\n// People will be more likely to notice this and fix it with the long\n// expiration time in development.\n//\n// In production we opt for better UX at the risk of masking scheduling\n// problems, by expiring fast.\nvar HIGH_PRIORITY_EXPIRATION = 500;\nvar HIGH_PRIORITY_BATCH_SIZE = 100;\n\nfunction computeInteractiveExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, HIGH_PRIORITY_EXPIRATION, HIGH_PRIORITY_BATCH_SIZE);\n}\n\nvar NoContext = 0;\nvar AsyncMode = 1;\nvar StrictMode = 2;\nvar ProfileMode = 4;\n\nvar hasBadMapPolyfill = void 0;\n\n{\n  hasBadMapPolyfill = false;\n  try {\n    var nonExtensibleObject = Object.preventExtensions({});\n    var testMap = new Map([[nonExtensibleObject, null]]);\n    var testSet = new Set([nonExtensibleObject]);\n    // This is necessary for Rollup to not consider these unused.\n    // https://github.com/rollup/rollup/issues/1771\n    // TODO: we can remove these if Rollup fixes the bug.\n    testMap.set(0, 0);\n    testSet.add(0);\n  } catch (e) {\n    // TODO: Consider warning about bad polyfills\n    hasBadMapPolyfill = true;\n  }\n}\n\n// A Fiber is work on a Component that needs to be done or was done. There can\n// be more than one per component.\n\n\nvar debugCounter = void 0;\n\n{\n  debugCounter = 1;\n}\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n  // Instance\n  this.tag = tag;\n  this.key = key;\n  this.type = null;\n  this.stateNode = null;\n\n  // Fiber\n  this.return = null;\n  this.child = null;\n  this.sibling = null;\n  this.index = 0;\n\n  this.ref = null;\n\n  this.pendingProps = pendingProps;\n  this.memoizedProps = null;\n  this.updateQueue = null;\n  this.memoizedState = null;\n  this.firstContextDependency = null;\n\n  this.mode = mode;\n\n  // Effects\n  this.effectTag = NoEffect;\n  this.nextEffect = null;\n\n  this.firstEffect = null;\n  this.lastEffect = null;\n\n  this.expirationTime = NoWork;\n  this.childExpirationTime = NoWork;\n\n  this.alternate = null;\n\n  if (enableProfilerTimer) {\n    this.actualDuration = 0;\n    this.actualStartTime = -1;\n    this.selfBaseDuration = 0;\n    this.treeBaseDuration = 0;\n  }\n\n  {\n    this._debugID = debugCounter++;\n    this._debugSource = null;\n    this._debugOwner = null;\n    this._debugIsCurrentlyTiming = false;\n    if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n      Object.preventExtensions(this);\n    }\n  }\n}\n\n// This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n//    more difficult to predict when they get optimized and they are almost\n//    never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n//    always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n//    to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n//    is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n//    compatible.\nvar createFiber = function (tag, pendingProps, key, mode) {\n  // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n  return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction resolveLazyComponentTag(fiber, Component) {\n  if (typeof Component === 'function') {\n    return shouldConstruct(Component) ? ClassComponentLazy : FunctionalComponentLazy;\n  } else if (Component !== undefined && Component !== null && Component.$$typeof) {\n    return ForwardRefLazy;\n  }\n  return IndeterminateComponent;\n}\n\n// This is used to create an alternate fiber to do work on.\nfunction createWorkInProgress(current, pendingProps, expirationTime) {\n  var workInProgress = current.alternate;\n  if (workInProgress === null) {\n    // We use a double buffering pooling technique because we know that we'll\n    // only ever need at most two versions of a tree. We pool the \"other\" unused\n    // node that we're free to reuse. This is lazily created to avoid allocating\n    // extra objects for things that are never updated. It also allow us to\n    // reclaim the extra memory if needed.\n    workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n    workInProgress.type = current.type;\n    workInProgress.stateNode = current.stateNode;\n\n    {\n      // DEV-only fields\n      workInProgress._debugID = current._debugID;\n      workInProgress._debugSource = current._debugSource;\n      workInProgress._debugOwner = current._debugOwner;\n    }\n\n    workInProgress.alternate = current;\n    current.alternate = workInProgress;\n  } else {\n    workInProgress.pendingProps = pendingProps;\n\n    // We already have an alternate.\n    // Reset the effect tag.\n    workInProgress.effectTag = NoEffect;\n\n    // The effect list is no longer valid.\n    workInProgress.nextEffect = null;\n    workInProgress.firstEffect = null;\n    workInProgress.lastEffect = null;\n\n    if (enableProfilerTimer) {\n      // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n      // This prevents time from endlessly accumulating in new commits.\n      // This has the downside of resetting values for different priority renders,\n      // But works for yielding (the common case) and should support resuming.\n      workInProgress.actualDuration = 0;\n      workInProgress.actualStartTime = -1;\n    }\n  }\n\n  // Don't touching the subtree's expiration time, which has not changed.\n  workInProgress.childExpirationTime = current.childExpirationTime;\n  if (pendingProps !== current.pendingProps) {\n    // This fiber has new props.\n    workInProgress.expirationTime = expirationTime;\n  } else {\n    // This fiber's props have not changed.\n    workInProgress.expirationTime = current.expirationTime;\n  }\n\n  workInProgress.child = current.child;\n  workInProgress.memoizedProps = current.memoizedProps;\n  workInProgress.memoizedState = current.memoizedState;\n  workInProgress.updateQueue = current.updateQueue;\n  workInProgress.firstContextDependency = current.firstContextDependency;\n\n  // These will be overridden during the parent's reconciliation\n  workInProgress.sibling = current.sibling;\n  workInProgress.index = current.index;\n  workInProgress.ref = current.ref;\n\n  if (enableProfilerTimer) {\n    workInProgress.selfBaseDuration = current.selfBaseDuration;\n    workInProgress.treeBaseDuration = current.treeBaseDuration;\n  }\n\n  return workInProgress;\n}\n\nfunction createHostRootFiber(isAsync) {\n  var mode = isAsync ? AsyncMode | StrictMode : NoContext;\n\n  if (enableProfilerTimer && isDevToolsPresent) {\n    // Always collect profile timings when DevTools are present.\n    // This enables DevTools to start capturing timing at any point–\n    // Without some nodes in the tree having empty base times.\n    mode |= ProfileMode;\n  }\n\n  return createFiber(HostRoot, null, null, mode);\n}\n\nfunction createFiberFromElement(element, mode, expirationTime) {\n  var owner = null;\n  {\n    owner = element._owner;\n  }\n\n  var fiber = void 0;\n  var type = element.type;\n  var key = element.key;\n  var pendingProps = element.props;\n\n  var fiberTag = void 0;\n  if (typeof type === 'function') {\n    fiberTag = shouldConstruct(type) ? ClassComponent : IndeterminateComponent;\n  } else if (typeof type === 'string') {\n    fiberTag = HostComponent;\n  } else {\n    getTag: switch (type) {\n      case REACT_FRAGMENT_TYPE:\n        return createFiberFromFragment(pendingProps.children, mode, expirationTime, key);\n      case REACT_ASYNC_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= AsyncMode | StrictMode;\n        break;\n      case REACT_STRICT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= StrictMode;\n        break;\n      case REACT_PROFILER_TYPE:\n        return createFiberFromProfiler(pendingProps, mode, expirationTime, key);\n      case REACT_PLACEHOLDER_TYPE:\n        fiberTag = PlaceholderComponent;\n        break;\n      default:\n        {\n          if (typeof type === 'object' && type !== null) {\n            switch (type.$$typeof) {\n              case REACT_PROVIDER_TYPE:\n                fiberTag = ContextProvider;\n                break getTag;\n              case REACT_CONTEXT_TYPE:\n                // This is a consumer\n                fiberTag = ContextConsumer;\n                break getTag;\n              case REACT_FORWARD_REF_TYPE:\n                fiberTag = ForwardRef;\n                break getTag;\n              default:\n                {\n                  if (typeof type.then === 'function') {\n                    fiberTag = IndeterminateComponent;\n                    break getTag;\n                  }\n                }\n            }\n          }\n          var info = '';\n          {\n            if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n              info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n            }\n            var ownerName = owner ? getComponentName(owner.type) : null;\n            if (ownerName) {\n              info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n            }\n          }\n          invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info);\n        }\n    }\n  }\n\n  fiber = createFiber(fiberTag, pendingProps, key, mode);\n  fiber.type = type;\n  fiber.expirationTime = expirationTime;\n\n  {\n    fiber._debugSource = element._source;\n    fiber._debugOwner = element._owner;\n  }\n\n  return fiber;\n}\n\nfunction createFiberFromFragment(elements, mode, expirationTime, key) {\n  var fiber = createFiber(Fragment, elements, key, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, expirationTime, key) {\n  {\n    if (typeof pendingProps.id !== 'string' || typeof pendingProps.onRender !== 'function') {\n      warningWithoutStack$1(false, 'Profiler must specify an \"id\" string and \"onRender\" function as props');\n    }\n  }\n\n  var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode);\n  fiber.type = REACT_PROFILER_TYPE;\n  fiber.expirationTime = expirationTime;\n\n  return fiber;\n}\n\nfunction createFiberFromText(content, mode, expirationTime) {\n  var fiber = createFiber(HostText, content, null, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromHostInstanceForDeletion() {\n  var fiber = createFiber(HostComponent, null, null, NoContext);\n  fiber.type = 'DELETED';\n  return fiber;\n}\n\nfunction createFiberFromPortal(portal, mode, expirationTime) {\n  var pendingProps = portal.children !== null ? portal.children : [];\n  var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n  fiber.expirationTime = expirationTime;\n  fiber.stateNode = {\n    containerInfo: portal.containerInfo,\n    pendingChildren: null, // Used by persistent updates\n    implementation: portal.implementation\n  };\n  return fiber;\n}\n\n// Used for stashing WIP properties to replay failed work in DEV.\nfunction assignFiberPropertiesInDEV(target, source) {\n  if (target === null) {\n    // This Fiber's initial properties will always be overwritten.\n    // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n    target = createFiber(IndeterminateComponent, null, null, NoContext);\n  }\n\n  // This is intentionally written as a list of all properties.\n  // We tried to use Object.assign() instead but this is called in\n  // the hottest path, and Object.assign() was too slow:\n  // https://github.com/facebook/react/issues/12502\n  // This code is DEV-only so size is not a concern.\n\n  target.tag = source.tag;\n  target.key = source.key;\n  target.type = source.type;\n  target.stateNode = source.stateNode;\n  target.return = source.return;\n  target.child = source.child;\n  target.sibling = source.sibling;\n  target.index = source.index;\n  target.ref = source.ref;\n  target.pendingProps = source.pendingProps;\n  target.memoizedProps = source.memoizedProps;\n  target.updateQueue = source.updateQueue;\n  target.memoizedState = source.memoizedState;\n  target.firstContextDependency = source.firstContextDependency;\n  target.mode = source.mode;\n  target.effectTag = source.effectTag;\n  target.nextEffect = source.nextEffect;\n  target.firstEffect = source.firstEffect;\n  target.lastEffect = source.lastEffect;\n  target.expirationTime = source.expirationTime;\n  target.childExpirationTime = source.childExpirationTime;\n  target.alternate = source.alternate;\n  if (enableProfilerTimer) {\n    target.actualDuration = source.actualDuration;\n    target.actualStartTime = source.actualStartTime;\n    target.selfBaseDuration = source.selfBaseDuration;\n    target.treeBaseDuration = source.treeBaseDuration;\n  }\n  target._debugID = source._debugID;\n  target._debugSource = source._debugSource;\n  target._debugOwner = source._debugOwner;\n  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;\n  return target;\n}\n\n/* eslint-disable no-use-before-define */\n// TODO: This should be lifted into the renderer.\n\n\n// The following attributes are only used by interaction tracing builds.\n// They enable interactions to be associated with their async work,\n// And expose interaction metadata to the React DevTools Profiler plugin.\n// Note that these attributes are only defined when the enableSchedulerTracing flag is enabled.\n\n\n// Exported FiberRoot type includes all properties,\n// To avoid requiring potentially error-prone :any casts throughout the project.\n// Profiling properties are only safe to access in profiling builds (when enableSchedulerTracing is true).\n// The types are defined separately within this file to ensure they stay in sync.\n// (We don't have to use an inline :any cast when enableSchedulerTracing is disabled.)\n\n/* eslint-enable no-use-before-define */\n\nfunction createFiberRoot(containerInfo, isAsync, hydrate) {\n  // Cyclic construction. This cheats the type system right now because\n  // stateNode is any.\n  var uninitializedFiber = createHostRootFiber(isAsync);\n\n  var root = void 0;\n  if (enableSchedulerTracing) {\n    root = {\n      current: uninitializedFiber,\n      containerInfo: containerInfo,\n      pendingChildren: null,\n\n      earliestPendingTime: NoWork,\n      latestPendingTime: NoWork,\n      earliestSuspendedTime: NoWork,\n      latestSuspendedTime: NoWork,\n      latestPingedTime: NoWork,\n\n      didError: false,\n\n      pendingCommitExpirationTime: NoWork,\n      finishedWork: null,\n      timeoutHandle: noTimeout,\n      context: null,\n      pendingContext: null,\n      hydrate: hydrate,\n      nextExpirationTimeToWorkOn: NoWork,\n      expirationTime: NoWork,\n      firstBatch: null,\n      nextScheduledRoot: null,\n\n      interactionThreadID: tracing.unstable_getThreadID(),\n      memoizedInteractions: new Set(),\n      pendingInteractionMap: new Map()\n    };\n  } else {\n    root = {\n      current: uninitializedFiber,\n      containerInfo: containerInfo,\n      pendingChildren: null,\n\n      earliestPendingTime: NoWork,\n      latestPendingTime: NoWork,\n      earliestSuspendedTime: NoWork,\n      latestSuspendedTime: NoWork,\n      latestPingedTime: NoWork,\n\n      didError: false,\n\n      pendingCommitExpirationTime: NoWork,\n      finishedWork: null,\n      timeoutHandle: noTimeout,\n      context: null,\n      pendingContext: null,\n      hydrate: hydrate,\n      nextExpirationTimeToWorkOn: NoWork,\n      expirationTime: NoWork,\n      firstBatch: null,\n      nextScheduledRoot: null\n    };\n  }\n\n  uninitializedFiber.stateNode = root;\n\n  // The reason for the way the Flow types are structured in this file,\n  // Is to avoid needing :any casts everywhere interaction tracing fields are used.\n  // Unfortunately that requires an :any cast for non-interaction tracing capable builds.\n  // $FlowFixMe Remove this :any cast and replace it with something better.\n  return root;\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\nvar ReactStrictModeWarnings = {\n  discardPendingWarnings: function () {},\n  flushPendingDeprecationWarnings: function () {},\n  flushPendingUnsafeLifecycleWarnings: function () {},\n  recordDeprecationWarnings: function (fiber, instance) {},\n  recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n  recordLegacyContextWarning: function (fiber, instance) {},\n  flushLegacyContextWarning: function () {}\n};\n\n{\n  var LIFECYCLE_SUGGESTIONS = {\n    UNSAFE_componentWillMount: 'componentDidMount',\n    UNSAFE_componentWillReceiveProps: 'static getDerivedStateFromProps',\n    UNSAFE_componentWillUpdate: 'componentDidUpdate'\n  };\n\n  var pendingComponentWillMountWarnings = [];\n  var pendingComponentWillReceivePropsWarnings = [];\n  var pendingComponentWillUpdateWarnings = [];\n  var pendingUnsafeLifecycleWarnings = new Map();\n  var pendingLegacyContextWarning = new Map();\n\n  // Tracks components we have already warned about.\n  var didWarnAboutDeprecatedLifecycles = new Set();\n  var didWarnAboutUnsafeLifecycles = new Set();\n  var didWarnAboutLegacyContext = new Set();\n\n  var setToSortedString = function (set) {\n    var array = [];\n    set.forEach(function (value) {\n      array.push(value);\n    });\n    return array.sort().join(', ');\n  };\n\n  ReactStrictModeWarnings.discardPendingWarnings = function () {\n    pendingComponentWillMountWarnings = [];\n    pendingComponentWillReceivePropsWarnings = [];\n    pendingComponentWillUpdateWarnings = [];\n    pendingUnsafeLifecycleWarnings = new Map();\n    pendingLegacyContextWarning = new Map();\n  };\n\n  ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n    pendingUnsafeLifecycleWarnings.forEach(function (lifecycleWarningsMap, strictRoot) {\n      var lifecyclesWarningMesages = [];\n\n      Object.keys(lifecycleWarningsMap).forEach(function (lifecycle) {\n        var lifecycleWarnings = lifecycleWarningsMap[lifecycle];\n        if (lifecycleWarnings.length > 0) {\n          var componentNames = new Set();\n          lifecycleWarnings.forEach(function (fiber) {\n            componentNames.add(getComponentName(fiber.type) || 'Component');\n            didWarnAboutUnsafeLifecycles.add(fiber.type);\n          });\n\n          var formatted = lifecycle.replace('UNSAFE_', '');\n          var suggestion = LIFECYCLE_SUGGESTIONS[lifecycle];\n          var sortedComponentNames = setToSortedString(componentNames);\n\n          lifecyclesWarningMesages.push(formatted + ': Please update the following components to use ' + (suggestion + ' instead: ' + sortedComponentNames));\n        }\n      });\n\n      if (lifecyclesWarningMesages.length > 0) {\n        var strictRootComponentStack = getStackByFiberInDevAndProd(strictRoot);\n\n        warningWithoutStack$1(false, 'Unsafe lifecycle methods were found within a strict-mode tree:%s' + '\\n\\n%s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-strict-mode-warnings', strictRootComponentStack, lifecyclesWarningMesages.join('\\n\\n'));\n      }\n    });\n\n    pendingUnsafeLifecycleWarnings = new Map();\n  };\n\n  var findStrictRoot = function (fiber) {\n    var maybeStrictRoot = null;\n\n    var node = fiber;\n    while (node !== null) {\n      if (node.mode & StrictMode) {\n        maybeStrictRoot = node;\n      }\n      node = node.return;\n    }\n\n    return maybeStrictRoot;\n  };\n\n  ReactStrictModeWarnings.flushPendingDeprecationWarnings = function () {\n    if (pendingComponentWillMountWarnings.length > 0) {\n      var uniqueNames = new Set();\n      pendingComponentWillMountWarnings.forEach(function (fiber) {\n        uniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutDeprecatedLifecycles.add(fiber.type);\n      });\n\n      var sortedNames = setToSortedString(uniqueNames);\n\n      lowPriorityWarning$1(false, 'componentWillMount is deprecated and will be removed in the next major version. ' + 'Use componentDidMount instead. As a temporary workaround, ' + 'you can rename to UNSAFE_componentWillMount.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-async-component-lifecycle-hooks', sortedNames);\n\n      pendingComponentWillMountWarnings = [];\n    }\n\n    if (pendingComponentWillReceivePropsWarnings.length > 0) {\n      var _uniqueNames = new Set();\n      pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        _uniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutDeprecatedLifecycles.add(fiber.type);\n      });\n\n      var _sortedNames = setToSortedString(_uniqueNames);\n\n      lowPriorityWarning$1(false, 'componentWillReceiveProps is deprecated and will be removed in the next major version. ' + 'Use static getDerivedStateFromProps instead.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-async-component-lifecycle-hooks', _sortedNames);\n\n      pendingComponentWillReceivePropsWarnings = [];\n    }\n\n    if (pendingComponentWillUpdateWarnings.length > 0) {\n      var _uniqueNames2 = new Set();\n      pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n        _uniqueNames2.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutDeprecatedLifecycles.add(fiber.type);\n      });\n\n      var _sortedNames2 = setToSortedString(_uniqueNames2);\n\n      lowPriorityWarning$1(false, 'componentWillUpdate is deprecated and will be removed in the next major version. ' + 'Use componentDidUpdate instead. As a temporary workaround, ' + 'you can rename to UNSAFE_componentWillUpdate.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-async-component-lifecycle-hooks', _sortedNames2);\n\n      pendingComponentWillUpdateWarnings = [];\n    }\n  };\n\n  ReactStrictModeWarnings.recordDeprecationWarnings = function (fiber, instance) {\n    // Dedup strategy: Warn once per component.\n    if (didWarnAboutDeprecatedLifecycles.has(fiber.type)) {\n      return;\n    }\n\n    // Don't warn about react-lifecycles-compat polyfilled components.\n    if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n      pendingComponentWillMountWarnings.push(fiber);\n    }\n    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n      pendingComponentWillReceivePropsWarnings.push(fiber);\n    }\n    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n      pendingComponentWillUpdateWarnings.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n    var strictRoot = findStrictRoot(fiber);\n    if (strictRoot === null) {\n      warningWithoutStack$1(false, 'Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n      return;\n    }\n\n    // Dedup strategy: Warn once per component.\n    // This is difficult to track any other way since component names\n    // are often vague and are likely to collide between 3rd party libraries.\n    // An expand property is probably okay to use here since it's DEV-only,\n    // and will only be set in the event of serious warnings.\n    if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n      return;\n    }\n\n    var warningsForRoot = void 0;\n    if (!pendingUnsafeLifecycleWarnings.has(strictRoot)) {\n      warningsForRoot = {\n        UNSAFE_componentWillMount: [],\n        UNSAFE_componentWillReceiveProps: [],\n        UNSAFE_componentWillUpdate: []\n      };\n\n      pendingUnsafeLifecycleWarnings.set(strictRoot, warningsForRoot);\n    } else {\n      warningsForRoot = pendingUnsafeLifecycleWarnings.get(strictRoot);\n    }\n\n    var unsafeLifecycles = [];\n    if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillMount === 'function') {\n      unsafeLifecycles.push('UNSAFE_componentWillMount');\n    }\n    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n      unsafeLifecycles.push('UNSAFE_componentWillReceiveProps');\n    }\n    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true || typeof instance.UNSAFE_componentWillUpdate === 'function') {\n      unsafeLifecycles.push('UNSAFE_componentWillUpdate');\n    }\n\n    if (unsafeLifecycles.length > 0) {\n      unsafeLifecycles.forEach(function (lifecycle) {\n        warningsForRoot[lifecycle].push(fiber);\n      });\n    }\n  };\n\n  ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n    var strictRoot = findStrictRoot(fiber);\n    if (strictRoot === null) {\n      warningWithoutStack$1(false, 'Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n      return;\n    }\n\n    // Dedup strategy: Warn once per component.\n    if (didWarnAboutLegacyContext.has(fiber.type)) {\n      return;\n    }\n\n    var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n    if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n      if (warningsForRoot === undefined) {\n        warningsForRoot = [];\n        pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n      }\n      warningsForRoot.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n    pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n      var uniqueNames = new Set();\n      fiberArray.forEach(function (fiber) {\n        uniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutLegacyContext.add(fiber.type);\n      });\n\n      var sortedNames = setToSortedString(uniqueNames);\n      var strictRootComponentStack = getStackByFiberInDevAndProd(strictRoot);\n\n      warningWithoutStack$1(false, 'Legacy context API has been detected within a strict-mode tree: %s' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-strict-mode-warnings', strictRootComponentStack, sortedNames);\n    });\n  };\n}\n\n// This lets us hook into Fiber to debug what it's doing.\n// See https://github.com/facebook/react/pull/8033.\n// This is not part of the public API, not even for React DevTools.\n// You may only inject a debugTool if you work on React Fiber itself.\nvar ReactFiberInstrumentation = {\n  debugTool: null\n};\n\nvar ReactFiberInstrumentation_1 = ReactFiberInstrumentation;\n\n// TODO: Offscreen updates should never suspend. However, a promise that\n// suspended inside an offscreen subtree should be able to ping at the priority\n// of the outer render.\n\nfunction markPendingPriorityLevel(root, expirationTime) {\n  // If there's a gap between completing a failed root and retrying it,\n  // additional updates may be scheduled. Clear `didError`, in case the update\n  // is sufficient to fix the error.\n  root.didError = false;\n\n  // Update the latest and earliest pending times\n  var earliestPendingTime = root.earliestPendingTime;\n  if (earliestPendingTime === NoWork) {\n    // No other pending updates.\n    root.earliestPendingTime = root.latestPendingTime = expirationTime;\n  } else {\n    if (earliestPendingTime > expirationTime) {\n      // This is the earliest pending update.\n      root.earliestPendingTime = expirationTime;\n    } else {\n      var latestPendingTime = root.latestPendingTime;\n      if (latestPendingTime < expirationTime) {\n        // This is the latest pending update\n        root.latestPendingTime = expirationTime;\n      }\n    }\n  }\n  findNextExpirationTimeToWorkOn(expirationTime, root);\n}\n\nfunction markCommittedPriorityLevels(root, earliestRemainingTime) {\n  root.didError = false;\n\n  if (earliestRemainingTime === NoWork) {\n    // Fast path. There's no remaining work. Clear everything.\n    root.earliestPendingTime = NoWork;\n    root.latestPendingTime = NoWork;\n    root.earliestSuspendedTime = NoWork;\n    root.latestSuspendedTime = NoWork;\n    root.latestPingedTime = NoWork;\n    findNextExpirationTimeToWorkOn(NoWork, root);\n    return;\n  }\n\n  // Let's see if the previous latest known pending level was just flushed.\n  var latestPendingTime = root.latestPendingTime;\n  if (latestPendingTime !== NoWork) {\n    if (latestPendingTime < earliestRemainingTime) {\n      // We've flushed all the known pending levels.\n      root.earliestPendingTime = root.latestPendingTime = NoWork;\n    } else {\n      var earliestPendingTime = root.earliestPendingTime;\n      if (earliestPendingTime < earliestRemainingTime) {\n        // We've flushed the earliest known pending level. Set this to the\n        // latest pending time.\n        root.earliestPendingTime = root.latestPendingTime;\n      }\n    }\n  }\n\n  // Now let's handle the earliest remaining level in the whole tree. We need to\n  // decide whether to treat it as a pending level or as suspended. Check\n  // it falls within the range of known suspended levels.\n\n  var earliestSuspendedTime = root.earliestSuspendedTime;\n  if (earliestSuspendedTime === NoWork) {\n    // There's no suspended work. Treat the earliest remaining level as a\n    // pending level.\n    markPendingPriorityLevel(root, earliestRemainingTime);\n    findNextExpirationTimeToWorkOn(NoWork, root);\n    return;\n  }\n\n  var latestSuspendedTime = root.latestSuspendedTime;\n  if (earliestRemainingTime > latestSuspendedTime) {\n    // The earliest remaining level is later than all the suspended work. That\n    // means we've flushed all the suspended work.\n    root.earliestSuspendedTime = NoWork;\n    root.latestSuspendedTime = NoWork;\n    root.latestPingedTime = NoWork;\n\n    // There's no suspended work. Treat the earliest remaining level as a\n    // pending level.\n    markPendingPriorityLevel(root, earliestRemainingTime);\n    findNextExpirationTimeToWorkOn(NoWork, root);\n    return;\n  }\n\n  if (earliestRemainingTime < earliestSuspendedTime) {\n    // The earliest remaining time is earlier than all the suspended work.\n    // Treat it as a pending update.\n    markPendingPriorityLevel(root, earliestRemainingTime);\n    findNextExpirationTimeToWorkOn(NoWork, root);\n    return;\n  }\n\n  // The earliest remaining time falls within the range of known suspended\n  // levels. We should treat this as suspended work.\n  findNextExpirationTimeToWorkOn(NoWork, root);\n}\n\nfunction hasLowerPriorityWork(root, erroredExpirationTime) {\n  var latestPendingTime = root.latestPendingTime;\n  var latestSuspendedTime = root.latestSuspendedTime;\n  var latestPingedTime = root.latestPingedTime;\n  return latestPendingTime !== NoWork && latestPendingTime > erroredExpirationTime || latestSuspendedTime !== NoWork && latestSuspendedTime > erroredExpirationTime || latestPingedTime !== NoWork && latestPingedTime > erroredExpirationTime;\n}\n\nfunction isPriorityLevelSuspended(root, expirationTime) {\n  var earliestSuspendedTime = root.earliestSuspendedTime;\n  var latestSuspendedTime = root.latestSuspendedTime;\n  return earliestSuspendedTime !== NoWork && expirationTime >= earliestSuspendedTime && expirationTime <= latestSuspendedTime;\n}\n\nfunction markSuspendedPriorityLevel(root, suspendedTime) {\n  root.didError = false;\n  clearPing(root, suspendedTime);\n\n  // First, check the known pending levels and update them if needed.\n  var earliestPendingTime = root.earliestPendingTime;\n  var latestPendingTime = root.latestPendingTime;\n  if (earliestPendingTime === suspendedTime) {\n    if (latestPendingTime === suspendedTime) {\n      // Both known pending levels were suspended. Clear them.\n      root.earliestPendingTime = root.latestPendingTime = NoWork;\n    } else {\n      // The earliest pending level was suspended. Clear by setting it to the\n      // latest pending level.\n      root.earliestPendingTime = latestPendingTime;\n    }\n  } else if (latestPendingTime === suspendedTime) {\n    // The latest pending level was suspended. Clear by setting it to the\n    // latest pending level.\n    root.latestPendingTime = earliestPendingTime;\n  }\n\n  // Finally, update the known suspended levels.\n  var earliestSuspendedTime = root.earliestSuspendedTime;\n  var latestSuspendedTime = root.latestSuspendedTime;\n  if (earliestSuspendedTime === NoWork) {\n    // No other suspended levels.\n    root.earliestSuspendedTime = root.latestSuspendedTime = suspendedTime;\n  } else {\n    if (earliestSuspendedTime > suspendedTime) {\n      // This is the earliest suspended level.\n      root.earliestSuspendedTime = suspendedTime;\n    } else if (latestSuspendedTime < suspendedTime) {\n      // This is the latest suspended level\n      root.latestSuspendedTime = suspendedTime;\n    }\n  }\n\n  findNextExpirationTimeToWorkOn(suspendedTime, root);\n}\n\nfunction markPingedPriorityLevel(root, pingedTime) {\n  root.didError = false;\n\n  // TODO: When we add back resuming, we need to ensure the progressed work\n  // is thrown out and not reused during the restarted render. One way to\n  // invalidate the progressed work is to restart at expirationTime + 1.\n  var latestPingedTime = root.latestPingedTime;\n  if (latestPingedTime === NoWork || latestPingedTime < pingedTime) {\n    root.latestPingedTime = pingedTime;\n  }\n  findNextExpirationTimeToWorkOn(pingedTime, root);\n}\n\nfunction clearPing(root, completedTime) {\n  // TODO: Track whether the root was pinged during the render phase. If so,\n  // we need to make sure we don't lose track of it.\n  var latestPingedTime = root.latestPingedTime;\n  if (latestPingedTime !== NoWork && latestPingedTime <= completedTime) {\n    root.latestPingedTime = NoWork;\n  }\n}\n\nfunction findEarliestOutstandingPriorityLevel(root, renderExpirationTime) {\n  var earliestExpirationTime = renderExpirationTime;\n\n  var earliestPendingTime = root.earliestPendingTime;\n  var earliestSuspendedTime = root.earliestSuspendedTime;\n  if (earliestExpirationTime === NoWork || earliestPendingTime !== NoWork && earliestPendingTime < earliestExpirationTime) {\n    earliestExpirationTime = earliestPendingTime;\n  }\n  if (earliestExpirationTime === NoWork || earliestSuspendedTime !== NoWork && earliestSuspendedTime < earliestExpirationTime) {\n    earliestExpirationTime = earliestSuspendedTime;\n  }\n  return earliestExpirationTime;\n}\n\nfunction didExpireAtExpirationTime(root, currentTime) {\n  var expirationTime = root.expirationTime;\n  if (expirationTime !== NoWork && currentTime >= expirationTime) {\n    // The root has expired. Flush all work up to the current time.\n    root.nextExpirationTimeToWorkOn = currentTime;\n  }\n}\n\nfunction findNextExpirationTimeToWorkOn(completedExpirationTime, root) {\n  var earliestSuspendedTime = root.earliestSuspendedTime;\n  var latestSuspendedTime = root.latestSuspendedTime;\n  var earliestPendingTime = root.earliestPendingTime;\n  var latestPingedTime = root.latestPingedTime;\n\n  // Work on the earliest pending time. Failing that, work on the latest\n  // pinged time.\n  var nextExpirationTimeToWorkOn = earliestPendingTime !== NoWork ? earliestPendingTime : latestPingedTime;\n\n  // If there is no pending or pinged work, check if there's suspended work\n  // that's lower priority than what we just completed.\n  if (nextExpirationTimeToWorkOn === NoWork && (completedExpirationTime === NoWork || latestSuspendedTime > completedExpirationTime)) {\n    // The lowest priority suspended work is the work most likely to be\n    // committed next. Let's start rendering it again, so that if it times out,\n    // it's ready to commit.\n    nextExpirationTimeToWorkOn = latestSuspendedTime;\n  }\n\n  var expirationTime = nextExpirationTimeToWorkOn;\n  if (expirationTime !== NoWork && earliestSuspendedTime !== NoWork && earliestSuspendedTime < expirationTime) {\n    // Expire using the earliest known expiration time.\n    expirationTime = earliestSuspendedTime;\n  }\n\n  root.nextExpirationTimeToWorkOn = nextExpirationTimeToWorkOn;\n  root.expirationTime = expirationTime;\n}\n\n// UpdateQueue is a linked list of prioritized updates.\n//\n// Like fibers, update queues come in pairs: a current queue, which represents\n// the visible state of the screen, and a work-in-progress queue, which is\n// can be mutated and processed asynchronously before it is committed — a form\n// of double buffering. If a work-in-progress render is discarded before\n// finishing, we create a new work-in-progress by cloning the current queue.\n//\n// Both queues share a persistent, singly-linked list structure. To schedule an\n// update, we append it to the end of both queues. Each queue maintains a\n// pointer to first update in the persistent list that hasn't been processed.\n// The work-in-progress pointer always has a position equal to or greater than\n// the current queue, since we always work on that one. The current queue's\n// pointer is only updated during the commit phase, when we swap in the\n// work-in-progress.\n//\n// For example:\n//\n//   Current pointer:           A - B - C - D - E - F\n//   Work-in-progress pointer:              D - E - F\n//                                          ^\n//                                          The work-in-progress queue has\n//                                          processed more updates than current.\n//\n// The reason we append to both queues is because otherwise we might drop\n// updates without ever processing them. For example, if we only add updates to\n// the work-in-progress queue, some updates could be lost whenever a work-in\n// -progress render restarts by cloning from current. Similarly, if we only add\n// updates to the current queue, the updates will be lost whenever an already\n// in-progress queue commits and swaps with the current queue. However, by\n// adding to both queues, we guarantee that the update will be part of the next\n// work-in-progress. (And because the work-in-progress queue becomes the\n// current queue once it commits, there's no danger of applying the same\n// update twice.)\n//\n// Prioritization\n// --------------\n//\n// Updates are not sorted by priority, but by insertion; new updates are always\n// appended to the end of the list.\n//\n// The priority is still important, though. When processing the update queue\n// during the render phase, only the updates with sufficient priority are\n// included in the result. If we skip an update because it has insufficient\n// priority, it remains in the queue to be processed later, during a lower\n// priority render. Crucially, all updates subsequent to a skipped update also\n// remain in the queue *regardless of their priority*. That means high priority\n// updates are sometimes processed twice, at two separate priorities. We also\n// keep track of a base state, that represents the state before the first\n// update in the queue is applied.\n//\n// For example:\n//\n//   Given a base state of '', and the following queue of updates\n//\n//     A1 - B2 - C1 - D2\n//\n//   where the number indicates the priority, and the update is applied to the\n//   previous state by appending a letter, React will process these updates as\n//   two separate renders, one per distinct priority level:\n//\n//   First render, at priority 1:\n//     Base state: ''\n//     Updates: [A1, C1]\n//     Result state: 'AC'\n//\n//   Second render, at priority 2:\n//     Base state: 'A'            <-  The base state does not include C1,\n//                                    because B2 was skipped.\n//     Updates: [B2, C1, D2]      <-  C1 was rebased on top of B2\n//     Result state: 'ABCD'\n//\n// Because we process updates in insertion order, and rebase high priority\n// updates when preceding updates are skipped, the final result is deterministic\n// regardless of priority. Intermediate state may vary according to system\n// resources, but the final state is always the same.\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3;\n\n// Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\nvar hasForceUpdate = false;\n\nvar didWarnUpdateInsideUpdate = void 0;\nvar currentlyProcessingQueue = void 0;\nvar resetCurrentlyProcessingQueue = void 0;\n{\n  didWarnUpdateInsideUpdate = false;\n  currentlyProcessingQueue = null;\n  resetCurrentlyProcessingQueue = function () {\n    currentlyProcessingQueue = null;\n  };\n}\n\nfunction createUpdateQueue(baseState) {\n  var queue = {\n    baseState: baseState,\n    firstUpdate: null,\n    lastUpdate: null,\n    firstCapturedUpdate: null,\n    lastCapturedUpdate: null,\n    firstEffect: null,\n    lastEffect: null,\n    firstCapturedEffect: null,\n    lastCapturedEffect: null\n  };\n  return queue;\n}\n\nfunction cloneUpdateQueue(currentQueue) {\n  var queue = {\n    baseState: currentQueue.baseState,\n    firstUpdate: currentQueue.firstUpdate,\n    lastUpdate: currentQueue.lastUpdate,\n\n    // TODO: With resuming, if we bail out and resuse the child tree, we should\n    // keep these effects.\n    firstCapturedUpdate: null,\n    lastCapturedUpdate: null,\n\n    firstEffect: null,\n    lastEffect: null,\n\n    firstCapturedEffect: null,\n    lastCapturedEffect: null\n  };\n  return queue;\n}\n\nfunction createUpdate(expirationTime) {\n  return {\n    expirationTime: expirationTime,\n\n    tag: UpdateState,\n    payload: null,\n    callback: null,\n\n    next: null,\n    nextEffect: null\n  };\n}\n\nfunction appendUpdateToQueue(queue, update) {\n  // Append the update to the end of the list.\n  if (queue.lastUpdate === null) {\n    // Queue is empty\n    queue.firstUpdate = queue.lastUpdate = update;\n  } else {\n    queue.lastUpdate.next = update;\n    queue.lastUpdate = update;\n  }\n}\n\nfunction enqueueUpdate(fiber, update) {\n  // Update queues are created lazily.\n  var alternate = fiber.alternate;\n  var queue1 = void 0;\n  var queue2 = void 0;\n  if (alternate === null) {\n    // There's only one fiber.\n    queue1 = fiber.updateQueue;\n    queue2 = null;\n    if (queue1 === null) {\n      queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);\n    }\n  } else {\n    // There are two owners.\n    queue1 = fiber.updateQueue;\n    queue2 = alternate.updateQueue;\n    if (queue1 === null) {\n      if (queue2 === null) {\n        // Neither fiber has an update queue. Create new ones.\n        queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);\n        queue2 = alternate.updateQueue = createUpdateQueue(alternate.memoizedState);\n      } else {\n        // Only one fiber has an update queue. Clone to create a new one.\n        queue1 = fiber.updateQueue = cloneUpdateQueue(queue2);\n      }\n    } else {\n      if (queue2 === null) {\n        // Only one fiber has an update queue. Clone to create a new one.\n        queue2 = alternate.updateQueue = cloneUpdateQueue(queue1);\n      } else {\n        // Both owners have an update queue.\n      }\n    }\n  }\n  if (queue2 === null || queue1 === queue2) {\n    // There's only a single queue.\n    appendUpdateToQueue(queue1, update);\n  } else {\n    // There are two queues. We need to append the update to both queues,\n    // while accounting for the persistent structure of the list — we don't\n    // want the same update to be added multiple times.\n    if (queue1.lastUpdate === null || queue2.lastUpdate === null) {\n      // One of the queues is not empty. We must add the update to both queues.\n      appendUpdateToQueue(queue1, update);\n      appendUpdateToQueue(queue2, update);\n    } else {\n      // Both queues are non-empty. The last update is the same in both lists,\n      // because of structural sharing. So, only append to one of the lists.\n      appendUpdateToQueue(queue1, update);\n      // But we still need to update the `lastUpdate` pointer of queue2.\n      queue2.lastUpdate = update;\n    }\n  }\n\n  {\n    if ((fiber.tag === ClassComponent || fiber.tag === ClassComponentLazy) && (currentlyProcessingQueue === queue1 || queue2 !== null && currentlyProcessingQueue === queue2) && !didWarnUpdateInsideUpdate) {\n      warningWithoutStack$1(false, 'An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n      didWarnUpdateInsideUpdate = true;\n    }\n  }\n}\n\nfunction enqueueCapturedUpdate(workInProgress, update) {\n  // Captured updates go into a separate list, and only on the work-in-\n  // progress queue.\n  var workInProgressQueue = workInProgress.updateQueue;\n  if (workInProgressQueue === null) {\n    workInProgressQueue = workInProgress.updateQueue = createUpdateQueue(workInProgress.memoizedState);\n  } else {\n    // TODO: I put this here rather than createWorkInProgress so that we don't\n    // clone the queue unnecessarily. There's probably a better way to\n    // structure this.\n    workInProgressQueue = ensureWorkInProgressQueueIsAClone(workInProgress, workInProgressQueue);\n  }\n\n  // Append the update to the end of the list.\n  if (workInProgressQueue.lastCapturedUpdate === null) {\n    // This is the first render phase update\n    workInProgressQueue.firstCapturedUpdate = workInProgressQueue.lastCapturedUpdate = update;\n  } else {\n    workInProgressQueue.lastCapturedUpdate.next = update;\n    workInProgressQueue.lastCapturedUpdate = update;\n  }\n}\n\nfunction ensureWorkInProgressQueueIsAClone(workInProgress, queue) {\n  var current = workInProgress.alternate;\n  if (current !== null) {\n    // If the work-in-progress queue is equal to the current queue,\n    // we need to clone it first.\n    if (queue === current.updateQueue) {\n      queue = workInProgress.updateQueue = cloneUpdateQueue(queue);\n    }\n  }\n  return queue;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n  switch (update.tag) {\n    case ReplaceState:\n      {\n        var _payload = update.payload;\n        if (typeof _payload === 'function') {\n          // Updater function\n          {\n            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n              _payload.call(instance, prevState, nextProps);\n            }\n          }\n          return _payload.call(instance, prevState, nextProps);\n        }\n        // State object\n        return _payload;\n      }\n    case CaptureUpdate:\n      {\n        workInProgress.effectTag = workInProgress.effectTag & ~ShouldCapture | DidCapture;\n      }\n    // Intentional fallthrough\n    case UpdateState:\n      {\n        var _payload2 = update.payload;\n        var partialState = void 0;\n        if (typeof _payload2 === 'function') {\n          // Updater function\n          {\n            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n              _payload2.call(instance, prevState, nextProps);\n            }\n          }\n          partialState = _payload2.call(instance, prevState, nextProps);\n        } else {\n          // Partial state object\n          partialState = _payload2;\n        }\n        if (partialState === null || partialState === undefined) {\n          // Null and undefined are treated as no-ops.\n          return prevState;\n        }\n        // Merge the partial state and the previous state.\n        return _assign({}, prevState, partialState);\n      }\n    case ForceUpdate:\n      {\n        hasForceUpdate = true;\n        return prevState;\n      }\n  }\n  return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, queue, props, instance, renderExpirationTime) {\n  hasForceUpdate = false;\n\n  queue = ensureWorkInProgressQueueIsAClone(workInProgress, queue);\n\n  {\n    currentlyProcessingQueue = queue;\n  }\n\n  // These values may change as we process the queue.\n  var newBaseState = queue.baseState;\n  var newFirstUpdate = null;\n  var newExpirationTime = NoWork;\n\n  // Iterate through the list of updates to compute the result.\n  var update = queue.firstUpdate;\n  var resultState = newBaseState;\n  while (update !== null) {\n    var updateExpirationTime = update.expirationTime;\n    if (updateExpirationTime > renderExpirationTime) {\n      // This update does not have sufficient priority. Skip it.\n      if (newFirstUpdate === null) {\n        // This is the first skipped update. It will be the first update in\n        // the new list.\n        newFirstUpdate = update;\n        // Since this is the first update that was skipped, the current result\n        // is the new base state.\n        newBaseState = resultState;\n      }\n      // Since this update will remain in the list, update the remaining\n      // expiration time.\n      if (newExpirationTime === NoWork || newExpirationTime > updateExpirationTime) {\n        newExpirationTime = updateExpirationTime;\n      }\n    } else {\n      // This update does have sufficient priority. Process it and compute\n      // a new result.\n      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);\n      var _callback = update.callback;\n      if (_callback !== null) {\n        workInProgress.effectTag |= Callback;\n        // Set this to null, in case it was mutated during an aborted render.\n        update.nextEffect = null;\n        if (queue.lastEffect === null) {\n          queue.firstEffect = queue.lastEffect = update;\n        } else {\n          queue.lastEffect.nextEffect = update;\n          queue.lastEffect = update;\n        }\n      }\n    }\n    // Continue to the next update.\n    update = update.next;\n  }\n\n  // Separately, iterate though the list of captured updates.\n  var newFirstCapturedUpdate = null;\n  update = queue.firstCapturedUpdate;\n  while (update !== null) {\n    var _updateExpirationTime = update.expirationTime;\n    if (_updateExpirationTime > renderExpirationTime) {\n      // This update does not have sufficient priority. Skip it.\n      if (newFirstCapturedUpdate === null) {\n        // This is the first skipped captured update. It will be the first\n        // update in the new list.\n        newFirstCapturedUpdate = update;\n        // If this is the first update that was skipped, the current result is\n        // the new base state.\n        if (newFirstUpdate === null) {\n          newBaseState = resultState;\n        }\n      }\n      // Since this update will remain in the list, update the remaining\n      // expiration time.\n      if (newExpirationTime === NoWork || newExpirationTime > _updateExpirationTime) {\n        newExpirationTime = _updateExpirationTime;\n      }\n    } else {\n      // This update does have sufficient priority. Process it and compute\n      // a new result.\n      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);\n      var _callback2 = update.callback;\n      if (_callback2 !== null) {\n        workInProgress.effectTag |= Callback;\n        // Set this to null, in case it was mutated during an aborted render.\n        update.nextEffect = null;\n        if (queue.lastCapturedEffect === null) {\n          queue.firstCapturedEffect = queue.lastCapturedEffect = update;\n        } else {\n          queue.lastCapturedEffect.nextEffect = update;\n          queue.lastCapturedEffect = update;\n        }\n      }\n    }\n    update = update.next;\n  }\n\n  if (newFirstUpdate === null) {\n    queue.lastUpdate = null;\n  }\n  if (newFirstCapturedUpdate === null) {\n    queue.lastCapturedUpdate = null;\n  } else {\n    workInProgress.effectTag |= Callback;\n  }\n  if (newFirstUpdate === null && newFirstCapturedUpdate === null) {\n    // We processed every update, without skipping. That means the new base\n    // state is the same as the result state.\n    newBaseState = resultState;\n  }\n\n  queue.baseState = newBaseState;\n  queue.firstUpdate = newFirstUpdate;\n  queue.firstCapturedUpdate = newFirstCapturedUpdate;\n\n  // Set the remaining expiration time to be whatever is remaining in the queue.\n  // This should be fine because the only two other things that contribute to\n  // expiration time are props and context. We're already in the middle of the\n  // begin phase by the time we start processing the queue, so we've already\n  // dealt with the props. Context in components that specify\n  // shouldComponentUpdate is tricky; but we'll have to account for\n  // that regardless.\n  workInProgress.expirationTime = newExpirationTime;\n  workInProgress.memoizedState = resultState;\n\n  {\n    currentlyProcessingQueue = null;\n  }\n}\n\nfunction callCallback(callback, context) {\n  !(typeof callback === 'function') ? invariant(false, 'Invalid argument passed as callback. Expected a function. Instead received: %s', callback) : void 0;\n  callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n  hasForceUpdate = false;\n}\n\nfunction checkHasForceUpdateAfterProcessing() {\n  return hasForceUpdate;\n}\n\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance, renderExpirationTime) {\n  // If the finished render included captured updates, and there are still\n  // lower priority updates left over, we need to keep the captured updates\n  // in the queue so that they are rebased and not dropped once we process the\n  // queue again at the lower priority.\n  if (finishedQueue.firstCapturedUpdate !== null) {\n    // Join the captured update list to the end of the normal list.\n    if (finishedQueue.lastUpdate !== null) {\n      finishedQueue.lastUpdate.next = finishedQueue.firstCapturedUpdate;\n      finishedQueue.lastUpdate = finishedQueue.lastCapturedUpdate;\n    }\n    // Clear the list of captured updates.\n    finishedQueue.firstCapturedUpdate = finishedQueue.lastCapturedUpdate = null;\n  }\n\n  // Commit the effects\n  commitUpdateEffects(finishedQueue.firstEffect, instance);\n  finishedQueue.firstEffect = finishedQueue.lastEffect = null;\n\n  commitUpdateEffects(finishedQueue.firstCapturedEffect, instance);\n  finishedQueue.firstCapturedEffect = finishedQueue.lastCapturedEffect = null;\n}\n\nfunction commitUpdateEffects(effect, instance) {\n  while (effect !== null) {\n    var _callback3 = effect.callback;\n    if (_callback3 !== null) {\n      effect.callback = null;\n      callCallback(_callback3, instance);\n    }\n    effect = effect.nextEffect;\n  }\n}\n\nfunction createCapturedValue(value, source) {\n  // If the value is an error, call this function immediately after it is thrown\n  // so the stack is accurate.\n  return {\n    value: value,\n    source: source,\n    stack: getStackByFiberInDevAndProd(source)\n  };\n}\n\nvar valueCursor = createCursor(null);\n\nvar rendererSigil = void 0;\n{\n  // Use this to detect multiple renderers using the same context\n  rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\n\nfunction resetContextDependences() {\n  // This is called right before React yields execution, to ensure `readContext`\n  // cannot be called outside the render phase.\n  currentlyRenderingFiber = null;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n}\n\nfunction pushProvider(providerFiber, nextValue) {\n  var context = providerFiber.type._context;\n\n  if (isPrimaryRenderer) {\n    push(valueCursor, context._currentValue, providerFiber);\n\n    context._currentValue = nextValue;\n    {\n      !(context._currentRenderer === undefined || context._currentRenderer === null || context._currentRenderer === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;\n      context._currentRenderer = rendererSigil;\n    }\n  } else {\n    push(valueCursor, context._currentValue2, providerFiber);\n\n    context._currentValue2 = nextValue;\n    {\n      !(context._currentRenderer2 === undefined || context._currentRenderer2 === null || context._currentRenderer2 === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;\n      context._currentRenderer2 = rendererSigil;\n    }\n  }\n}\n\nfunction popProvider(providerFiber) {\n  var currentValue = valueCursor.current;\n\n  pop(valueCursor, providerFiber);\n\n  var context = providerFiber.type._context;\n  if (isPrimaryRenderer) {\n    context._currentValue = currentValue;\n  } else {\n    context._currentValue2 = currentValue;\n  }\n}\n\nfunction calculateChangedBits(context, newValue, oldValue) {\n  // Use Object.is to compare the new context value to the old value. Inlined\n  // Object.is polyfill.\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n  if (oldValue === newValue && (oldValue !== 0 || 1 / oldValue === 1 / newValue) || oldValue !== oldValue && newValue !== newValue // eslint-disable-line no-self-compare\n  ) {\n      // No change\n      return 0;\n    } else {\n    var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : maxSigned31BitInt;\n\n    {\n      !((changedBits & maxSigned31BitInt) === changedBits) ? warning$1(false, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits) : void 0;\n    }\n    return changedBits | 0;\n  }\n}\n\nfunction propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) {\n  var fiber = workInProgress.child;\n  if (fiber !== null) {\n    // Set the return pointer of the child to the work-in-progress fiber.\n    fiber.return = workInProgress;\n  }\n  while (fiber !== null) {\n    var nextFiber = void 0;\n\n    // Visit this fiber.\n    var dependency = fiber.firstContextDependency;\n    if (dependency !== null) {\n      do {\n        // Check if the context matches.\n        if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n          // Match! Schedule an update on this fiber.\n\n          if (fiber.tag === ClassComponent || fiber.tag === ClassComponentLazy) {\n            // Schedule a force update on the work-in-progress.\n            var update = createUpdate(renderExpirationTime);\n            update.tag = ForceUpdate;\n            // TODO: Because we don't have a work-in-progress, this will add the\n            // update to the current fiber, too, which means it will persist even if\n            // this render is thrown away. Since it's a race condition, not sure it's\n            // worth fixing.\n            enqueueUpdate(fiber, update);\n          }\n\n          if (fiber.expirationTime === NoWork || fiber.expirationTime > renderExpirationTime) {\n            fiber.expirationTime = renderExpirationTime;\n          }\n          var alternate = fiber.alternate;\n          if (alternate !== null && (alternate.expirationTime === NoWork || alternate.expirationTime > renderExpirationTime)) {\n            alternate.expirationTime = renderExpirationTime;\n          }\n          // Update the child expiration time of all the ancestors, including\n          // the alternates.\n          var node = fiber.return;\n          while (node !== null) {\n            alternate = node.alternate;\n            if (node.childExpirationTime === NoWork || node.childExpirationTime > renderExpirationTime) {\n              node.childExpirationTime = renderExpirationTime;\n              if (alternate !== null && (alternate.childExpirationTime === NoWork || alternate.childExpirationTime > renderExpirationTime)) {\n                alternate.childExpirationTime = renderExpirationTime;\n              }\n            } else if (alternate !== null && (alternate.childExpirationTime === NoWork || alternate.childExpirationTime > renderExpirationTime)) {\n              alternate.childExpirationTime = renderExpirationTime;\n            } else {\n              // Neither alternate was updated, which means the rest of the\n              // ancestor path already has sufficient priority.\n              break;\n            }\n            node = node.return;\n          }\n        }\n        nextFiber = fiber.child;\n        dependency = dependency.next;\n      } while (dependency !== null);\n    } else if (fiber.tag === ContextProvider) {\n      // Don't scan deeper if this is a matching provider\n      nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n    } else {\n      // Traverse down.\n      nextFiber = fiber.child;\n    }\n\n    if (nextFiber !== null) {\n      // Set the return pointer of the child to the work-in-progress fiber.\n      nextFiber.return = fiber;\n    } else {\n      // No child. Traverse to next sibling.\n      nextFiber = fiber;\n      while (nextFiber !== null) {\n        if (nextFiber === workInProgress) {\n          // We're back to the root of this subtree. Exit.\n          nextFiber = null;\n          break;\n        }\n        var sibling = nextFiber.sibling;\n        if (sibling !== null) {\n          // Set the return pointer of the sibling to the work-in-progress fiber.\n          sibling.return = nextFiber.return;\n          nextFiber = sibling;\n          break;\n        }\n        // No more siblings. Traverse up.\n        nextFiber = nextFiber.return;\n      }\n    }\n    fiber = nextFiber;\n  }\n}\n\nfunction prepareToReadContext(workInProgress, renderExpirationTime) {\n  currentlyRenderingFiber = workInProgress;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n\n  // Reset the work-in-progress list\n  workInProgress.firstContextDependency = null;\n}\n\nfunction readContext(context, observedBits) {\n  if (lastContextWithAllBitsObserved === context) {\n    // Nothing to do. We already observe everything in this context.\n  } else if (observedBits === false || observedBits === 0) {\n    // Do not observe any updates.\n  } else {\n    var resolvedObservedBits = void 0; // Avoid deopting on observable arguments or heterogeneous types.\n    if (typeof observedBits !== 'number' || observedBits === maxSigned31BitInt) {\n      // Observe all updates.\n      lastContextWithAllBitsObserved = context;\n      resolvedObservedBits = maxSigned31BitInt;\n    } else {\n      resolvedObservedBits = observedBits;\n    }\n\n    var contextItem = {\n      context: context,\n      observedBits: resolvedObservedBits,\n      next: null\n    };\n\n    if (lastContextDependency === null) {\n      !(currentlyRenderingFiber !== null) ? invariant(false, 'Context.unstable_read(): Context can only be read while React is rendering, e.g. inside the render method or getDerivedStateFromProps.') : void 0;\n      // This is the first dependency in the list\n      currentlyRenderingFiber.firstContextDependency = lastContextDependency = contextItem;\n    } else {\n      // Append a new context item.\n      lastContextDependency = lastContextDependency.next = contextItem;\n    }\n  }\n  return isPrimaryRenderer ? context._currentValue : context._currentValue2;\n}\n\nvar NO_CONTEXT = {};\n\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n  !(c !== NO_CONTEXT) ? invariant(false, 'Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  return c;\n}\n\nfunction getRootHostContainer() {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n  // Push current root instance onto the stack;\n  // This allows us to reset root when portals are popped.\n  push(rootInstanceStackCursor, nextRootInstance, fiber);\n  // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n  push(contextFiberStackCursor, fiber, fiber);\n\n  // Finally, we need to push the host context to the stack.\n  // However, we can't just call getRootHostContext() and push it because\n  // we'd have a different number of entries on the stack depending on\n  // whether getRootHostContext() throws somewhere in renderer code or not.\n  // So we push an empty value first. This lets us safely unwind on errors.\n  push(contextStackCursor$1, NO_CONTEXT, fiber);\n  var nextRootContext = getRootHostContext(nextRootInstance);\n  // Now that we know this function doesn't throw, replace it.\n  pop(contextStackCursor$1, fiber);\n  push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n  pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n  var context = requiredContext(contextStackCursor$1.current);\n  return context;\n}\n\nfunction pushHostContext(fiber) {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  var context = requiredContext(contextStackCursor$1.current);\n  var nextContext = getChildHostContext(context, fiber.type, rootInstance);\n\n  // Don't push this Fiber's context unless it's unique.\n  if (context === nextContext) {\n    return;\n  }\n\n  // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n  push(contextFiberStackCursor, fiber, fiber);\n  push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n  // Do not pop unless this Fiber provided the current context.\n  // pushHostContext() only pushes Fibers that provide unique contexts.\n  if (contextFiberStackCursor.current !== fiber) {\n    return;\n  }\n\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n}\n\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n  return commitTime;\n}\n\nfunction recordCommitTime() {\n  if (!enableProfilerTimer) {\n    return;\n  }\n  commitTime = schedule.unstable_now();\n}\n\nfunction startProfilerTimer(fiber) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n\n  profilerStartTime = schedule.unstable_now();\n\n  if (fiber.actualStartTime < 0) {\n    fiber.actualStartTime = schedule.unstable_now();\n  }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n  profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n\n  if (profilerStartTime >= 0) {\n    var elapsedTime = schedule.unstable_now() - profilerStartTime;\n    fiber.actualDuration += elapsedTime;\n    if (overrideBaseTime) {\n      fiber.selfBaseDuration = elapsedTime;\n    }\n    profilerStartTime = -1;\n  }\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray;\n\n// React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\nvar emptyRefsObject = new React.Component().refs;\n\nvar didWarnAboutStateAssignmentForComponent = void 0;\nvar didWarnAboutUninitializedState = void 0;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = void 0;\nvar didWarnAboutLegacyLifecyclesAndDerivedState = void 0;\nvar didWarnAboutUndefinedDerivedState = void 0;\nvar warnOnUndefinedDerivedState = void 0;\nvar warnOnInvalidCallback$1 = void 0;\nvar didWarnAboutDirectlyAssigningPropsToState = void 0;\n\n{\n  didWarnAboutStateAssignmentForComponent = new Set();\n  didWarnAboutUninitializedState = new Set();\n  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n  didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n  didWarnAboutDirectlyAssigningPropsToState = new Set();\n  didWarnAboutUndefinedDerivedState = new Set();\n\n  var didWarnOnInvalidCallback = new Set();\n\n  warnOnInvalidCallback$1 = function (callback, callerName) {\n    if (callback === null || typeof callback === 'function') {\n      return;\n    }\n    var key = callerName + '_' + callback;\n    if (!didWarnOnInvalidCallback.has(key)) {\n      didWarnOnInvalidCallback.add(key);\n      warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  };\n\n  warnOnUndefinedDerivedState = function (type, partialState) {\n    if (partialState === undefined) {\n      var componentName = getComponentName(type) || 'Component';\n      if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n        didWarnAboutUndefinedDerivedState.add(componentName);\n        warningWithoutStack$1(false, '%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n      }\n    }\n  };\n\n  // This is so gross but it's at least non-critical and can be removed if\n  // it causes problems. This is meant to give a nicer error message for\n  // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n  // ...)) which otherwise throws a \"_processChildContext is not a function\"\n  // exception.\n  Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n    enumerable: false,\n    value: function () {\n      invariant(false, '_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn\\'t supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).');\n    }\n  });\n  Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n  var prevState = workInProgress.memoizedState;\n\n  {\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      // Invoke the function an extra time to help detect side-effects.\n      getDerivedStateFromProps(nextProps, prevState);\n    }\n  }\n\n  var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n  {\n    warnOnUndefinedDerivedState(ctor, partialState);\n  }\n  // Merge the partial state and the previous state.\n  var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n  workInProgress.memoizedState = memoizedState;\n\n  // Once the update queue is empty, persist the derived state onto the\n  // base state.\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null && workInProgress.expirationTime === NoWork) {\n    updateQueue.baseState = memoizedState;\n  }\n}\n\nvar classComponentUpdater = {\n  isMounted: isMounted,\n  enqueueSetState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber);\n\n    var update = createUpdate(expirationTime);\n    update.payload = payload;\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'setState');\n      }\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueReplaceState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber);\n\n    var update = createUpdate(expirationTime);\n    update.tag = ReplaceState;\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'replaceState');\n      }\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueForceUpdate: function (inst, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber);\n\n    var update = createUpdate(expirationTime);\n    update.tag = ForceUpdate;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'forceUpdate');\n      }\n      update.callback = callback;\n    }\n\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextLegacyContext) {\n  var instance = workInProgress.stateNode;\n  if (typeof instance.shouldComponentUpdate === 'function') {\n    startPhaseTimer(workInProgress, 'shouldComponentUpdate');\n    var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextLegacyContext);\n    stopPhaseTimer();\n\n    {\n      !(shouldUpdate !== undefined) ? warningWithoutStack$1(false, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component') : void 0;\n    }\n\n    return shouldUpdate;\n  }\n\n  if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n    return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n  }\n\n  return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n  var instance = workInProgress.stateNode;\n  {\n    var name = getComponentName(ctor) || 'Component';\n    var renderPresent = instance.render;\n\n    if (!renderPresent) {\n      if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n      } else {\n        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n      }\n    }\n\n    var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;\n    !noGetInitialStateOnES6 ? warningWithoutStack$1(false, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name) : void 0;\n    var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;\n    !noGetDefaultPropsOnES6 ? warningWithoutStack$1(false, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name) : void 0;\n    var noInstancePropTypes = !instance.propTypes;\n    !noInstancePropTypes ? warningWithoutStack$1(false, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name) : void 0;\n    var noInstanceContextTypes = !instance.contextTypes;\n    !noInstanceContextTypes ? warningWithoutStack$1(false, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name) : void 0;\n    var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';\n    !noComponentShouldUpdate ? warningWithoutStack$1(false, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name) : void 0;\n    if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n      warningWithoutStack$1(false, '%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n    }\n    var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';\n    !noComponentDidUnmount ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name) : void 0;\n    var noComponentDidReceiveProps = typeof instance.componentDidReceiveProps !== 'function';\n    !noComponentDidReceiveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name) : void 0;\n    var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';\n    !noComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name) : void 0;\n    var noUnsafeComponentWillRecieveProps = typeof instance.UNSAFE_componentWillRecieveProps !== 'function';\n    !noUnsafeComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name) : void 0;\n    var hasMutatedProps = instance.props !== newProps;\n    !(instance.props === undefined || !hasMutatedProps) ? warningWithoutStack$1(false, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name) : void 0;\n    var noInstanceDefaultProps = !instance.defaultProps;\n    !noInstanceDefaultProps ? warningWithoutStack$1(false, 'Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name) : void 0;\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n      didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n      warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n    }\n\n    var noInstanceGetDerivedStateFromProps = typeof instance.getDerivedStateFromProps !== 'function';\n    !noInstanceGetDerivedStateFromProps ? warningWithoutStack$1(false, '%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;\n    var noInstanceGetDerivedStateFromCatch = typeof instance.getDerivedStateFromCatch !== 'function';\n    !noInstanceGetDerivedStateFromCatch ? warningWithoutStack$1(false, '%s: getDerivedStateFromCatch() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;\n    var noStaticGetSnapshotBeforeUpdate = typeof ctor.getSnapshotBeforeUpdate !== 'function';\n    !noStaticGetSnapshotBeforeUpdate ? warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name) : void 0;\n    var _state = instance.state;\n    if (_state && (typeof _state !== 'object' || isArray(_state))) {\n      warningWithoutStack$1(false, '%s.state: must be set to an object or null', name);\n    }\n    if (typeof instance.getChildContext === 'function') {\n      !(typeof ctor.childContextTypes === 'object') ? warningWithoutStack$1(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name) : void 0;\n    }\n  }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n  instance.updater = classComponentUpdater;\n  workInProgress.stateNode = instance;\n  // The instance needs access to the fiber so that it can schedule updates\n  set(instance, workInProgress);\n  {\n    instance._reactInternalInstance = fakeInternalInstance;\n  }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props, renderExpirationTime) {\n  var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n  var contextTypes = ctor.contextTypes;\n  var isContextConsumer = contextTypes !== null && contextTypes !== undefined;\n  var context = isContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n\n  // Instantiate twice to help detect side-effects.\n  {\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      new ctor(props, context); // eslint-disable-line no-new\n    }\n  }\n\n  var instance = new ctor(props, context);\n  var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n  adoptClassInstance(workInProgress, instance);\n\n  {\n    if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n      var componentName = getComponentName(ctor) || 'Component';\n      if (!didWarnAboutUninitializedState.has(componentName)) {\n        didWarnAboutUninitializedState.add(componentName);\n        warningWithoutStack$1(false, '`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n      }\n    }\n\n    // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n    // Warn about these lifecycles if they are present.\n    // Don't warn about react-lifecycles-compat polyfilled methods though.\n    if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n      var foundWillMountName = null;\n      var foundWillReceivePropsName = null;\n      var foundWillUpdateName = null;\n      if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n        foundWillMountName = 'componentWillMount';\n      } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        foundWillMountName = 'UNSAFE_componentWillMount';\n      }\n      if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n        foundWillReceivePropsName = 'componentWillReceiveProps';\n      } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n        foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n      }\n      if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n        foundWillUpdateName = 'componentWillUpdate';\n      } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n      }\n      if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n        var _componentName = getComponentName(ctor) || 'Component';\n        var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n        if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n          didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n          warningWithoutStack$1(false, 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks', _componentName, newApiName, foundWillMountName !== null ? '\\n  ' + foundWillMountName : '', foundWillReceivePropsName !== null ? '\\n  ' + foundWillReceivePropsName : '', foundWillUpdateName !== null ? '\\n  ' + foundWillUpdateName : '');\n        }\n      }\n    }\n  }\n\n  // Cache unmasked context so we can avoid recreating masked context unless necessary.\n  // ReactFiberContext usually updates this cache but can't for newly-created instances.\n  if (isContextConsumer) {\n    cacheContext(workInProgress, unmaskedContext, context);\n  }\n\n  return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n  startPhaseTimer(workInProgress, 'componentWillMount');\n  var oldState = instance.state;\n\n  if (typeof instance.componentWillMount === 'function') {\n    instance.componentWillMount();\n  }\n  if (typeof instance.UNSAFE_componentWillMount === 'function') {\n    instance.UNSAFE_componentWillMount();\n  }\n\n  stopPhaseTimer();\n\n  if (oldState !== instance.state) {\n    {\n      warningWithoutStack$1(false, '%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n    }\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextLegacyContext) {\n  var oldState = instance.state;\n  startPhaseTimer(workInProgress, 'componentWillReceiveProps');\n  if (typeof instance.componentWillReceiveProps === 'function') {\n    instance.componentWillReceiveProps(newProps, nextLegacyContext);\n  }\n  if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n    instance.UNSAFE_componentWillReceiveProps(newProps, nextLegacyContext);\n  }\n  stopPhaseTimer();\n\n  if (instance.state !== oldState) {\n    {\n      var componentName = getComponentName(workInProgress.type) || 'Component';\n      if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n        didWarnAboutStateAssignmentForComponent.add(componentName);\n        warningWithoutStack$1(false, '%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n      }\n    }\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\n// Invokes the mount life-cycles on a previously never rendered instance.\nfunction mountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  {\n    checkClassInstance(workInProgress, ctor, newProps);\n  }\n\n  var instance = workInProgress.stateNode;\n  var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n\n  instance.props = newProps;\n  instance.state = workInProgress.memoizedState;\n  instance.refs = emptyRefsObject;\n  instance.context = getMaskedContext(workInProgress, unmaskedContext);\n\n  {\n    if (instance.state === newProps) {\n      var componentName = getComponentName(ctor) || 'Component';\n      if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n        didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n        warningWithoutStack$1(false, '%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n    }\n\n    if (warnAboutDeprecatedLifecycles) {\n      ReactStrictModeWarnings.recordDeprecationWarnings(workInProgress, instance);\n    }\n  }\n\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n    callComponentWillMount(workInProgress, instance);\n    // If we had additional state updates during this life-cycle, let's\n    // process them now.\n    updateQueue = workInProgress.updateQueue;\n    if (updateQueue !== null) {\n      processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n      instance.state = workInProgress.memoizedState;\n    }\n  }\n\n  if (typeof instance.componentDidMount === 'function') {\n    workInProgress.effectTag |= Update;\n  }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = oldProps;\n\n  var oldContext = instance.context;\n  var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n  var nextLegacyContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';\n\n  // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextLegacyContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextLegacyContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    newState = workInProgress.memoizedState;\n  }\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextLegacyContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillMount');\n      if (typeof instance.componentWillMount === 'function') {\n        instance.componentWillMount();\n      }\n      if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        instance.UNSAFE_componentWillMount();\n      }\n      stopPhaseTimer();\n    }\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n\n    // If shouldComponentUpdate returned false, we should still update the\n    // memoized state to indicate that this work can be reused.\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  }\n\n  // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextLegacyContext;\n\n  return shouldUpdate;\n}\n\n// Invokes the update life-cycles and returns false if it shouldn't rerender.\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = oldProps;\n\n  var oldContext = instance.context;\n  var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n  var nextLegacyContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';\n\n  // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextLegacyContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextLegacyContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    newState = workInProgress.memoizedState;\n  }\n\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    }\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextLegacyContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillUpdate');\n      if (typeof instance.componentWillUpdate === 'function') {\n        instance.componentWillUpdate(newProps, newState, nextLegacyContext);\n      }\n      if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        instance.UNSAFE_componentWillUpdate(newProps, newState, nextLegacyContext);\n      }\n      stopPhaseTimer();\n    }\n    if (typeof instance.componentDidUpdate === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      workInProgress.effectTag |= Snapshot;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    }\n\n    // If shouldComponentUpdate returned false, we should still update the\n    // memoized props/state to indicate that this work can be reused.\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  }\n\n  // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextLegacyContext;\n\n  return shouldUpdate;\n}\n\nvar didWarnAboutMaps = void 0;\nvar didWarnAboutGenerators = void 0;\nvar didWarnAboutStringRefInStrictMode = void 0;\nvar ownerHasKeyUseWarning = void 0;\nvar ownerHasFunctionTypeWarning = void 0;\nvar warnForMissingKey = function (child) {};\n\n{\n  didWarnAboutMaps = false;\n  didWarnAboutGenerators = false;\n  didWarnAboutStringRefInStrictMode = {};\n\n  /**\n   * Warn if there's no key explicitly set on dynamic arrays of children or\n   * object keys are not valid. This allows us to keep track of children between\n   * updates.\n   */\n  ownerHasKeyUseWarning = {};\n  ownerHasFunctionTypeWarning = {};\n\n  warnForMissingKey = function (child) {\n    if (child === null || typeof child !== 'object') {\n      return;\n    }\n    if (!child._store || child._store.validated || child.key != null) {\n      return;\n    }\n    !(typeof child._store === 'object') ? invariant(false, 'React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n    child._store.validated = true;\n\n    var currentComponentErrorInfo = 'Each child in an array or iterator should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.' + getCurrentFiberStackInDev();\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n    warning$1(false, 'Each child in an array or iterator should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.');\n  };\n}\n\nvar isArray$1 = Array.isArray;\n\nfunction coerceRef(returnFiber, current$$1, element) {\n  var mixedRef = element.ref;\n  if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n    {\n      if (returnFiber.mode & StrictMode) {\n        var componentName = getComponentName(returnFiber.type) || 'Component';\n        if (!didWarnAboutStringRefInStrictMode[componentName]) {\n          warningWithoutStack$1(false, 'A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using createRef() instead.' + '\\n%s' + '\\n\\nLearn more about using refs safely here:' + '\\nhttps://fb.me/react-strict-mode-string-ref', mixedRef, getStackByFiberInDevAndProd(returnFiber));\n          didWarnAboutStringRefInStrictMode[componentName] = true;\n        }\n      }\n    }\n\n    if (element._owner) {\n      var owner = element._owner;\n      var inst = void 0;\n      if (owner) {\n        var ownerFiber = owner;\n        !(ownerFiber.tag === ClassComponent || ownerFiber.tag === ClassComponentLazy) ? invariant(false, 'Stateless function components cannot have refs.') : void 0;\n        inst = ownerFiber.stateNode;\n      }\n      !inst ? invariant(false, 'Missing owner for string ref %s. This error is likely caused by a bug in React. Please file an issue.', mixedRef) : void 0;\n      var stringRef = '' + mixedRef;\n      // Check if previous string ref matches new string ref\n      if (current$$1 !== null && current$$1.ref !== null && typeof current$$1.ref === 'function' && current$$1.ref._stringRef === stringRef) {\n        return current$$1.ref;\n      }\n      var ref = function (value) {\n        var refs = inst.refs;\n        if (refs === emptyRefsObject) {\n          // This is a lazy pooled frozen object, so we need to initialize.\n          refs = inst.refs = {};\n        }\n        if (value === null) {\n          delete refs[stringRef];\n        } else {\n          refs[stringRef] = value;\n        }\n      };\n      ref._stringRef = stringRef;\n      return ref;\n    } else {\n      !(typeof mixedRef === 'string') ? invariant(false, 'Expected ref to be a function, a string, an object returned by React.createRef(), or null.') : void 0;\n      !element._owner ? invariant(false, 'Element ref was specified as a string (%s) but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a functional component\\n2. You may be adding a ref to a component that was not created inside a component\\'s render method\\n3. You have multiple copies of React loaded\\nSee https://fb.me/react-refs-must-have-owner for more information.', mixedRef) : void 0;\n    }\n  }\n  return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n  if (returnFiber.type !== 'textarea') {\n    var addendum = '';\n    {\n      addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + getCurrentFiberStackInDev();\n    }\n    invariant(false, 'Objects are not valid as a React child (found: %s).%s', Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild, addendum);\n  }\n}\n\nfunction warnOnFunctionType() {\n  var currentComponentErrorInfo = 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.' + getCurrentFiberStackInDev();\n\n  if (ownerHasFunctionTypeWarning[currentComponentErrorInfo]) {\n    return;\n  }\n  ownerHasFunctionTypeWarning[currentComponentErrorInfo] = true;\n\n  warning$1(false, 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n}\n\n// This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\nfunction ChildReconciler(shouldTrackSideEffects) {\n  function deleteChild(returnFiber, childToDelete) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return;\n    }\n    // Deletions are added in reversed order so we add it to the front.\n    // At this point, the return fiber's effect list is empty except for\n    // deletions, so we can just append the deletion to the list. The remaining\n    // effects aren't added until the complete phase. Once we implement\n    // resuming, this may not be true.\n    var last = returnFiber.lastEffect;\n    if (last !== null) {\n      last.nextEffect = childToDelete;\n      returnFiber.lastEffect = childToDelete;\n    } else {\n      returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n    }\n    childToDelete.nextEffect = null;\n    childToDelete.effectTag = Deletion;\n  }\n\n  function deleteRemainingChildren(returnFiber, currentFirstChild) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return null;\n    }\n\n    // TODO: For the shouldClone case, this could be micro-optimized a bit by\n    // assuming that after the first child we've already added everything.\n    var childToDelete = currentFirstChild;\n    while (childToDelete !== null) {\n      deleteChild(returnFiber, childToDelete);\n      childToDelete = childToDelete.sibling;\n    }\n    return null;\n  }\n\n  function mapRemainingChildren(returnFiber, currentFirstChild) {\n    // Add the remaining children to a temporary map so that we can find them by\n    // keys quickly. Implicit (null) keys get added to this set with their index\n    var existingChildren = new Map();\n\n    var existingChild = currentFirstChild;\n    while (existingChild !== null) {\n      if (existingChild.key !== null) {\n        existingChildren.set(existingChild.key, existingChild);\n      } else {\n        existingChildren.set(existingChild.index, existingChild);\n      }\n      existingChild = existingChild.sibling;\n    }\n    return existingChildren;\n  }\n\n  function useFiber(fiber, pendingProps, expirationTime) {\n    // We currently set sibling to null and index to 0 here because it is easy\n    // to forget to do before returning it. E.g. for the single child case.\n    var clone = createWorkInProgress(fiber, pendingProps, expirationTime);\n    clone.index = 0;\n    clone.sibling = null;\n    return clone;\n  }\n\n  function placeChild(newFiber, lastPlacedIndex, newIndex) {\n    newFiber.index = newIndex;\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return lastPlacedIndex;\n    }\n    var current$$1 = newFiber.alternate;\n    if (current$$1 !== null) {\n      var oldIndex = current$$1.index;\n      if (oldIndex < lastPlacedIndex) {\n        // This is a move.\n        newFiber.effectTag = Placement;\n        return lastPlacedIndex;\n      } else {\n        // This item can stay in place.\n        return oldIndex;\n      }\n    } else {\n      // This is an insertion.\n      newFiber.effectTag = Placement;\n      return lastPlacedIndex;\n    }\n  }\n\n  function placeSingleChild(newFiber) {\n    // This is simpler for the single child case. We only need to do a\n    // placement for inserting new children.\n    if (shouldTrackSideEffects && newFiber.alternate === null) {\n      newFiber.effectTag = Placement;\n    }\n    return newFiber;\n  }\n\n  function updateTextNode(returnFiber, current$$1, textContent, expirationTime) {\n    if (current$$1 === null || current$$1.tag !== HostText) {\n      // Insert\n      var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, textContent, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateElement(returnFiber, current$$1, element, expirationTime) {\n    if (current$$1 !== null && current$$1.type === element.type) {\n      // Move based on index\n      var existing = useFiber(current$$1, element.props, expirationTime);\n      existing.ref = coerceRef(returnFiber, current$$1, element);\n      existing.return = returnFiber;\n      {\n        existing._debugSource = element._source;\n        existing._debugOwner = element._owner;\n      }\n      return existing;\n    } else {\n      // Insert\n      var created = createFiberFromElement(element, returnFiber.mode, expirationTime);\n      created.ref = coerceRef(returnFiber, current$$1, element);\n      created.return = returnFiber;\n      return created;\n    }\n  }\n\n  function updatePortal(returnFiber, current$$1, portal, expirationTime) {\n    if (current$$1 === null || current$$1.tag !== HostPortal || current$$1.stateNode.containerInfo !== portal.containerInfo || current$$1.stateNode.implementation !== portal.implementation) {\n      // Insert\n      var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, portal.children || [], expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateFragment(returnFiber, current$$1, fragment, expirationTime, key) {\n    if (current$$1 === null || current$$1.tag !== Fragment) {\n      // Insert\n      var created = createFiberFromFragment(fragment, returnFiber.mode, expirationTime, key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, fragment, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function createChild(returnFiber, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime);\n            _created.ref = coerceRef(returnFiber, null, newChild);\n            _created.return = returnFiber;\n            return _created;\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime);\n            _created2.return = returnFiber;\n            return _created2;\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null);\n        _created3.return = returnFiber;\n        return _created3;\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateSlot(returnFiber, oldFiber, newChild, expirationTime) {\n    // Update the fiber if the keys match, otherwise return null.\n\n    var key = oldFiber !== null ? oldFiber.key : null;\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      if (key !== null) {\n        return null;\n      }\n      return updateTextNode(returnFiber, oldFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            if (newChild.key === key) {\n              if (newChild.type === REACT_FRAGMENT_TYPE) {\n                return updateFragment(returnFiber, oldFiber, newChild.props.children, expirationTime, key);\n              }\n              return updateElement(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            if (newChild.key === key) {\n              return updatePortal(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        if (key !== null) {\n          return null;\n        }\n\n        return updateFragment(returnFiber, oldFiber, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateFromMap(existingChildren, returnFiber, newIdx, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys, so we neither have to check the old nor\n      // new node for the key. If both are text nodes, they match.\n      var matchedFiber = existingChildren.get(newIdx) || null;\n      return updateTextNode(returnFiber, matchedFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n            if (newChild.type === REACT_FRAGMENT_TYPE) {\n              return updateFragment(returnFiber, _matchedFiber, newChild.props.children, expirationTime, newChild.key);\n            }\n            return updateElement(returnFiber, _matchedFiber, newChild, expirationTime);\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n            return updatePortal(returnFiber, _matchedFiber2, newChild, expirationTime);\n          }\n      }\n\n      if (isArray$1(newChild) || getIteratorFn(newChild)) {\n        var _matchedFiber3 = existingChildren.get(newIdx) || null;\n        return updateFragment(returnFiber, _matchedFiber3, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Warns if there is a duplicate or missing key\n   */\n  function warnOnInvalidKey(child, knownKeys) {\n    {\n      if (typeof child !== 'object' || child === null) {\n        return knownKeys;\n      }\n      switch (child.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n        case REACT_PORTAL_TYPE:\n          warnForMissingKey(child);\n          var key = child.key;\n          if (typeof key !== 'string') {\n            break;\n          }\n          if (knownKeys === null) {\n            knownKeys = new Set();\n            knownKeys.add(key);\n            break;\n          }\n          if (!knownKeys.has(key)) {\n            knownKeys.add(key);\n            break;\n          }\n          warning$1(false, 'Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n          break;\n        default:\n          break;\n      }\n    }\n    return knownKeys;\n  }\n\n  function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, expirationTime) {\n    // This algorithm can't optimize by searching from boths ends since we\n    // don't have backpointers on fibers. I'm trying to see how far we can get\n    // with that model. If it ends up not being worth the tradeoffs, we can\n    // add it later.\n\n    // Even with a two ended optimization, we'd want to optimize for the case\n    // where there are few changes and brute force the comparison instead of\n    // going for the Map. It'd like to explore hitting that path first in\n    // forward-only mode and only go for the Map once we notice that we need\n    // lots of look ahead. This doesn't handle reversal as well as two ended\n    // search but that's unusual. Besides, for the two ended optimization to\n    // work on Iterables, we'd need to copy the whole set.\n\n    // In this first iteration, we'll just live with hitting the bad case\n    // (adding everything to a Map) in for every insert/move.\n\n    // If you change this code, also update reconcileChildrenIterator() which\n    // uses the same algorithm.\n\n    {\n      // First, validate keys.\n      var knownKeys = null;\n      for (var i = 0; i < newChildren.length; i++) {\n        var child = newChildren[i];\n        knownKeys = warnOnInvalidKey(child, knownKeys);\n      }\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n    for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n      var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], expirationTime);\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n        break;\n      }\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (newIdx === newChildren.length) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; newIdx < newChildren.length; newIdx++) {\n        var _newFiber = createChild(returnFiber, newChildren[newIdx], expirationTime);\n        if (!_newFiber) {\n          continue;\n        }\n        lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber;\n        } else {\n          previousNewFiber.sibling = _newFiber;\n        }\n        previousNewFiber = _newFiber;\n      }\n      return resultingFirstChild;\n    }\n\n    // Add all children to a key map for quick lookups.\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n    // Keep scanning and use the map to restore deleted items as moves.\n    for (; newIdx < newChildren.length; newIdx++) {\n      var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], expirationTime);\n      if (_newFiber2) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber2.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n          }\n        }\n        lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber2;\n        } else {\n          previousNewFiber.sibling = _newFiber2;\n        }\n        previousNewFiber = _newFiber2;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, expirationTime) {\n    // This is the same implementation as reconcileChildrenArray(),\n    // but using the iterator instead.\n\n    var iteratorFn = getIteratorFn(newChildrenIterable);\n    !(typeof iteratorFn === 'function') ? invariant(false, 'An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n    {\n      // We don't support rendering Generators because it's a mutation.\n      // See https://github.com/facebook/react/issues/12995\n      if (typeof Symbol === 'function' &&\n      // $FlowFixMe Flow doesn't know about toStringTag\n      newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n        !didWarnAboutGenerators ? warning$1(false, 'Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.') : void 0;\n        didWarnAboutGenerators = true;\n      }\n\n      // Warn about using Maps as children\n      if (newChildrenIterable.entries === iteratorFn) {\n        !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;\n        didWarnAboutMaps = true;\n      }\n\n      // First, validate keys.\n      // We'll get a different iterator later for the main pass.\n      var _newChildren = iteratorFn.call(newChildrenIterable);\n      if (_newChildren) {\n        var knownKeys = null;\n        var _step = _newChildren.next();\n        for (; !_step.done; _step = _newChildren.next()) {\n          var child = _step.value;\n          knownKeys = warnOnInvalidKey(child, knownKeys);\n        }\n      }\n    }\n\n    var newChildren = iteratorFn.call(newChildrenIterable);\n    !(newChildren != null) ? invariant(false, 'An iterable object provided no iterator.') : void 0;\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n\n    var step = newChildren.next();\n    for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n      var newFiber = updateSlot(returnFiber, oldFiber, step.value, expirationTime);\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (!oldFiber) {\n          oldFiber = nextOldFiber;\n        }\n        break;\n      }\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (step.done) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; !step.done; newIdx++, step = newChildren.next()) {\n        var _newFiber3 = createChild(returnFiber, step.value, expirationTime);\n        if (_newFiber3 === null) {\n          continue;\n        }\n        lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber3;\n        } else {\n          previousNewFiber.sibling = _newFiber3;\n        }\n        previousNewFiber = _newFiber3;\n      }\n      return resultingFirstChild;\n    }\n\n    // Add all children to a key map for quick lookups.\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n    // Keep scanning and use the map to restore deleted items as moves.\n    for (; !step.done; newIdx++, step = newChildren.next()) {\n      var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, expirationTime);\n      if (_newFiber4 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber4.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n          }\n        }\n        lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber4;\n        } else {\n          previousNewFiber.sibling = _newFiber4;\n        }\n        previousNewFiber = _newFiber4;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, expirationTime) {\n    // There's no need to check for keys on text nodes since we don't have a\n    // way to define them.\n    if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n      // We already have an existing node so let's just update it and delete\n      // the rest.\n      deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n      var existing = useFiber(currentFirstChild, textContent, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n    // The existing first child is not a text node so we need to create one\n    // and delete the existing ones.\n    deleteRemainingChildren(returnFiber, currentFirstChild);\n    var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function reconcileSingleElement(returnFiber, currentFirstChild, element, expirationTime) {\n    var key = element.key;\n    var child = currentFirstChild;\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === Fragment ? element.type === REACT_FRAGMENT_TYPE : child.type === element.type) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, element.type === REACT_FRAGMENT_TYPE ? element.props.children : element.props, expirationTime);\n          existing.ref = coerceRef(returnFiber, child, element);\n          existing.return = returnFiber;\n          {\n            existing._debugSource = element._source;\n            existing._debugOwner = element._owner;\n          }\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n      child = child.sibling;\n    }\n\n    if (element.type === REACT_FRAGMENT_TYPE) {\n      var created = createFiberFromFragment(element.props.children, returnFiber.mode, expirationTime, element.key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      var _created4 = createFiberFromElement(element, returnFiber.mode, expirationTime);\n      _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n      _created4.return = returnFiber;\n      return _created4;\n    }\n  }\n\n  function reconcileSinglePortal(returnFiber, currentFirstChild, portal, expirationTime) {\n    var key = portal.key;\n    var child = currentFirstChild;\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, portal.children || [], expirationTime);\n          existing.return = returnFiber;\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n      child = child.sibling;\n    }\n\n    var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  }\n\n  // This API will tag the children with the side-effect of the reconciliation\n  // itself. They will be added to the side-effect list as we pass through the\n  // children and the parent.\n  function reconcileChildFibers(returnFiber, currentFirstChild, newChild, expirationTime) {\n    // This function is not recursive.\n    // If the top level item is an array, we treat it as a set of children,\n    // not as a fragment. Nested arrays on the other hand will be treated as\n    // fragment nodes. Recursion happens at the normal flow.\n\n    // Handle top level unkeyed fragments as if they were arrays.\n    // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n    // We treat the ambiguous cases above the same.\n    var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n    if (isUnkeyedTopLevelFragment) {\n      newChild = newChild.props.children;\n    }\n\n    // Handle object types\n    var isObject = typeof newChild === 'object' && newChild !== null;\n\n    if (isObject) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, expirationTime));\n        case REACT_PORTAL_TYPE:\n          return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, expirationTime));\n      }\n    }\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, expirationTime));\n    }\n\n    if (isArray$1(newChild)) {\n      return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (getIteratorFn(newChild)) {\n      return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (isObject) {\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n    if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n      // If the new child is undefined, and the return fiber is a composite\n      // component, throw an error. If Fiber return types are disabled,\n      // we already threw above.\n      switch (returnFiber.tag) {\n        case ClassComponent:\n        case ClassComponentLazy:\n          {\n            {\n              var instance = returnFiber.stateNode;\n              if (instance.render._isMockFunction) {\n                // We allow auto-mocks to proceed as if they're returning null.\n                break;\n              }\n            }\n          }\n        // Intentionally fall through to the next case, which handles both\n        // functions and classes\n        // eslint-disable-next-lined no-fallthrough\n        case FunctionalComponent:\n          {\n            var Component = returnFiber.type;\n            invariant(false, '%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.', Component.displayName || Component.name || 'Component');\n          }\n      }\n    }\n\n    // Remaining cases are all treated as empty.\n    return deleteRemainingChildren(returnFiber, currentFirstChild);\n  }\n\n  return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\n\nfunction cloneChildFibers(current$$1, workInProgress) {\n  !(current$$1 === null || workInProgress.child === current$$1.child) ? invariant(false, 'Resuming work not yet implemented.') : void 0;\n\n  if (workInProgress.child === null) {\n    return;\n  }\n\n  var currentChild = workInProgress.child;\n  var newChild = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n  workInProgress.child = newChild;\n\n  newChild.return = workInProgress;\n  while (currentChild.sibling !== null) {\n    currentChild = currentChild.sibling;\n    newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n    newChild.return = workInProgress;\n  }\n  newChild.sibling = null;\n}\n\n// The deepest Fiber on the stack involved in a hydration context.\n// This may have been an insertion or a hydration.\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n  if (!supportsHydration) {\n    return false;\n  }\n\n  var parentInstance = fiber.stateNode.containerInfo;\n  nextHydratableInstance = getFirstHydratableChild(parentInstance);\n  hydrationParentFiber = fiber;\n  isHydrating = true;\n  return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n        break;\n      case HostComponent:\n        didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n        break;\n    }\n  }\n\n  var childToDelete = createFiberFromHostInstanceForDeletion();\n  childToDelete.stateNode = instance;\n  childToDelete.return = returnFiber;\n  childToDelete.effectTag = Deletion;\n\n  // This might seem like it belongs on progressedFirstDeletion. However,\n  // these children are not part of the reconciliation list of children.\n  // Even if we abort and rereconcile the children, that will try to hydrate\n  // again and the nodes are still in the host tree so these will be\n  // recreated.\n  if (returnFiber.lastEffect !== null) {\n    returnFiber.lastEffect.nextEffect = childToDelete;\n    returnFiber.lastEffect = childToDelete;\n  } else {\n    returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n  }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n  fiber.effectTag |= Placement;\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        {\n          var parentContainer = returnFiber.stateNode.containerInfo;\n          switch (fiber.tag) {\n            case HostComponent:\n              var type = fiber.type;\n              var props = fiber.pendingProps;\n              didNotFindHydratableContainerInstance(parentContainer, type, props);\n              break;\n            case HostText:\n              var text = fiber.pendingProps;\n              didNotFindHydratableContainerTextInstance(parentContainer, text);\n              break;\n          }\n          break;\n        }\n      case HostComponent:\n        {\n          var parentType = returnFiber.type;\n          var parentProps = returnFiber.memoizedProps;\n          var parentInstance = returnFiber.stateNode;\n          switch (fiber.tag) {\n            case HostComponent:\n              var _type = fiber.type;\n              var _props = fiber.pendingProps;\n              didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props);\n              break;\n            case HostText:\n              var _text = fiber.pendingProps;\n              didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n              break;\n          }\n          break;\n        }\n      default:\n        return;\n    }\n  }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n  switch (fiber.tag) {\n    case HostComponent:\n      {\n        var type = fiber.type;\n        var props = fiber.pendingProps;\n        var instance = canHydrateInstance(nextInstance, type, props);\n        if (instance !== null) {\n          fiber.stateNode = instance;\n          return true;\n        }\n        return false;\n      }\n    case HostText:\n      {\n        var text = fiber.pendingProps;\n        var textInstance = canHydrateTextInstance(nextInstance, text);\n        if (textInstance !== null) {\n          fiber.stateNode = textInstance;\n          return true;\n        }\n        return false;\n      }\n    default:\n      return false;\n  }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n  if (!isHydrating) {\n    return;\n  }\n  var nextInstance = nextHydratableInstance;\n  if (!nextInstance) {\n    // Nothing to hydrate. Make it an insertion.\n    insertNonHydratedInstance(hydrationParentFiber, fiber);\n    isHydrating = false;\n    hydrationParentFiber = fiber;\n    return;\n  }\n  var firstAttemptedInstance = nextInstance;\n  if (!tryHydrate(fiber, nextInstance)) {\n    // If we can't hydrate this instance let's try the next one.\n    // We use this as a heuristic. It's based on intuition and not data so it\n    // might be flawed or unnecessary.\n    nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n    if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n      // Nothing to hydrate. Make it an insertion.\n      insertNonHydratedInstance(hydrationParentFiber, fiber);\n      isHydrating = false;\n      hydrationParentFiber = fiber;\n      return;\n    }\n    // We matched the next one, we'll now assume that the first one was\n    // superfluous and we'll delete it. Since we can't eagerly delete it\n    // we'll have to schedule a deletion. To do that, this node needs a dummy\n    // fiber associated with it.\n    deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n  }\n  hydrationParentFiber = fiber;\n  nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n  if (!supportsHydration) {\n    invariant(false, 'Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  var instance = fiber.stateNode;\n  var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber);\n  // TODO: Type this specific to this type of component.\n  fiber.updateQueue = updatePayload;\n  // If the update payload indicates that there is a change or if there\n  // is a new ref we mark this as an update.\n  if (updatePayload !== null) {\n    return true;\n  }\n  return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n  if (!supportsHydration) {\n    invariant(false, 'Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  var textInstance = fiber.stateNode;\n  var textContent = fiber.memoizedProps;\n  var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n  {\n    if (shouldUpdate) {\n      // We assume that prepareToHydrateHostTextInstance is called in a context where the\n      // hydration parent is the parent host component of this host text.\n      var returnFiber = hydrationParentFiber;\n      if (returnFiber !== null) {\n        switch (returnFiber.tag) {\n          case HostRoot:\n            {\n              var parentContainer = returnFiber.stateNode.containerInfo;\n              didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n              break;\n            }\n          case HostComponent:\n            {\n              var parentType = returnFiber.type;\n              var parentProps = returnFiber.memoizedProps;\n              var parentInstance = returnFiber.stateNode;\n              didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n              break;\n            }\n        }\n      }\n    }\n  }\n  return shouldUpdate;\n}\n\nfunction popToNextHostParent(fiber) {\n  var parent = fiber.return;\n  while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot) {\n    parent = parent.return;\n  }\n  hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n  if (!supportsHydration) {\n    return false;\n  }\n  if (fiber !== hydrationParentFiber) {\n    // We're deeper than the current hydration context, inside an inserted\n    // tree.\n    return false;\n  }\n  if (!isHydrating) {\n    // If we're not currently hydrating but we're in a hydration context, then\n    // we were an insertion and now need to pop up reenter hydration of our\n    // siblings.\n    popToNextHostParent(fiber);\n    isHydrating = true;\n    return false;\n  }\n\n  var type = fiber.type;\n\n  // If we have any remaining hydratable nodes, we need to delete them now.\n  // We only do this deeper than head and body since they tend to have random\n  // other nodes in them. We also ignore components with pure text content in\n  // side of them.\n  // TODO: Better heuristic.\n  if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n    var nextInstance = nextHydratableInstance;\n    while (nextInstance) {\n      deleteHydratableInstance(fiber, nextInstance);\n      nextInstance = getNextHydratableSibling(nextInstance);\n    }\n  }\n\n  popToNextHostParent(fiber);\n  nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n  return true;\n}\n\nfunction resetHydrationState() {\n  if (!supportsHydration) {\n    return;\n  }\n\n  hydrationParentFiber = null;\n  nextHydratableInstance = null;\n  isHydrating = false;\n}\n\nfunction readLazyComponentType(thenable) {\n  var status = thenable._reactStatus;\n  switch (status) {\n    case Resolved:\n      var Component = thenable._reactResult;\n      return Component;\n    case Rejected:\n      throw thenable._reactResult;\n    case Pending:\n      throw thenable;\n    default:\n      {\n        thenable._reactStatus = Pending;\n        thenable.then(function (resolvedValue) {\n          if (thenable._reactStatus === Pending) {\n            thenable._reactStatus = Resolved;\n            if (typeof resolvedValue === 'object' && resolvedValue !== null) {\n              // If the `default` property is not empty, assume it's the result\n              // of an async import() and use that. Otherwise, use the\n              // resolved value itself.\n              var defaultExport = resolvedValue.default;\n              resolvedValue = defaultExport !== undefined && defaultExport !== null ? defaultExport : resolvedValue;\n            } else {\n              resolvedValue = resolvedValue;\n            }\n            thenable._reactResult = resolvedValue;\n          }\n        }, function (error) {\n          if (thenable._reactStatus === Pending) {\n            thenable._reactStatus = Rejected;\n            thenable._reactResult = error;\n          }\n        });\n        throw thenable;\n      }\n  }\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\n\nvar didWarnAboutBadClass = void 0;\nvar didWarnAboutGetDerivedStateOnFunctionalComponent = void 0;\nvar didWarnAboutStatelessRefs = void 0;\n\n{\n  didWarnAboutBadClass = {};\n  didWarnAboutGetDerivedStateOnFunctionalComponent = {};\n  didWarnAboutStatelessRefs = {};\n}\n\nfunction reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime) {\n  if (current$$1 === null) {\n    // If this is a fresh new component that hasn't been rendered yet, we\n    // won't update its child set by applying minimal side-effects. Instead,\n    // we will add them all to the child before it gets rendered. That means\n    // we can optimize this reconciliation pass by not tracking side-effects.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    // If the current child is the same as the work in progress, it means that\n    // we haven't yet started any work on these children. Therefore, we use\n    // the clone algorithm to create a copy of all the current children.\n\n    // If we had any progressed work already, that is invalid at this point so\n    // let's throw it out.\n    workInProgress.child = reconcileChildFibers(workInProgress, current$$1.child, nextChildren, renderExpirationTime);\n  }\n}\n\nfunction updateForwardRef(current$$1, workInProgress, type, nextProps, renderExpirationTime) {\n  var render = type.render;\n  var ref = workInProgress.ref;\n  if (hasContextChanged()) {\n    // Normally we can bail out on props equality but if context has changed\n    // we don't do the bailout and we have to reuse existing props instead.\n  } else if (workInProgress.memoizedProps === nextProps) {\n    var currentRef = current$$1 !== null ? current$$1.ref : null;\n    if (ref === currentRef) {\n      return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n    }\n  }\n\n  var nextChildren = void 0;\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    nextChildren = render(nextProps, ref);\n    setCurrentPhase(null);\n  }\n\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextProps);\n  return workInProgress.child;\n}\n\nfunction updateFragment(current$$1, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextChildren);\n  return workInProgress.child;\n}\n\nfunction updateMode(current$$1, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps.children;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextChildren);\n  return workInProgress.child;\n}\n\nfunction updateProfiler(current$$1, workInProgress, renderExpirationTime) {\n  if (enableProfilerTimer) {\n    workInProgress.effectTag |= Update;\n  }\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextProps);\n  return workInProgress.child;\n}\n\nfunction markRef(current$$1, workInProgress) {\n  var ref = workInProgress.ref;\n  if (current$$1 === null && ref !== null || current$$1 !== null && current$$1.ref !== ref) {\n    // Schedule a Ref effect\n    workInProgress.effectTag |= Ref;\n  }\n}\n\nfunction updateFunctionalComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {\n  var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n  var context = getMaskedContext(workInProgress, unmaskedContext);\n\n  var nextChildren = void 0;\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    nextChildren = Component(nextProps, context);\n    setCurrentPhase(null);\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextProps);\n  return workInProgress.child;\n}\n\nfunction updateClassComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {\n  // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n  var hasContext = void 0;\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  var shouldUpdate = void 0;\n  if (current$$1 === null) {\n    if (workInProgress.stateNode === null) {\n      // In the initial pass we might need to construct the instance.\n      constructClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n      mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n      shouldUpdate = true;\n    } else {\n      // In a resume, we'll already have an instance we can reuse.\n      shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n    }\n  } else {\n    shouldUpdate = updateClassInstance(current$$1, workInProgress, Component, nextProps, renderExpirationTime);\n  }\n  return finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime);\n}\n\nfunction finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime) {\n  // Refs should update even if shouldComponentUpdate returns false\n  markRef(current$$1, workInProgress);\n\n  var didCaptureError = (workInProgress.effectTag & DidCapture) !== NoEffect;\n\n  if (!shouldUpdate && !didCaptureError) {\n    // Context providers should defer to sCU for rendering\n    if (hasContext) {\n      invalidateContextProvider(workInProgress, Component, false);\n    }\n\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n\n  var instance = workInProgress.stateNode;\n\n  // Rerender\n  ReactCurrentOwner$3.current = workInProgress;\n  var nextChildren = void 0;\n  if (didCaptureError && (!enableGetDerivedStateFromCatch || typeof Component.getDerivedStateFromCatch !== 'function')) {\n    // If we captured an error, but getDerivedStateFrom catch is not defined,\n    // unmount all the children. componentDidCatch will schedule an update to\n    // re-render a fallback. This is temporary until we migrate everyone to\n    // the new API.\n    // TODO: Warn in a future release.\n    nextChildren = null;\n\n    if (enableProfilerTimer) {\n      stopProfilerTimerIfRunning(workInProgress);\n    }\n  } else {\n    {\n      setCurrentPhase('render');\n      nextChildren = instance.render();\n      if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n        instance.render();\n      }\n      setCurrentPhase(null);\n    }\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  if (current$$1 !== null && didCaptureError) {\n    // If we're recovering from an error, reconcile twice: first to delete\n    // all the existing children.\n    reconcileChildren(current$$1, workInProgress, null, renderExpirationTime);\n    workInProgress.child = null;\n    // Now we can continue reconciling like normal. This has the effect of\n    // remounting all children regardless of whether their their\n    // identity matches.\n  }\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  // Memoize props and state using the values we just used to render.\n  // TODO: Restructure so we never read values from the instance.\n  memoizeState(workInProgress, instance.state);\n  memoizeProps(workInProgress, instance.props);\n\n  // The context might have changed so we need to recalculate it.\n  if (hasContext) {\n    invalidateContextProvider(workInProgress, Component, true);\n  }\n\n  return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n  var root = workInProgress.stateNode;\n  if (root.pendingContext) {\n    pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n  } else if (root.context) {\n    // Should always be set\n    pushTopLevelContextObject(workInProgress, root.context, false);\n  }\n  pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current$$1, workInProgress, renderExpirationTime) {\n  pushHostRootContext(workInProgress);\n  var updateQueue = workInProgress.updateQueue;\n  !(updateQueue !== null) ? invariant(false, 'If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  var nextProps = workInProgress.pendingProps;\n  var prevState = workInProgress.memoizedState;\n  var prevChildren = prevState !== null ? prevState.element : null;\n  processUpdateQueue(workInProgress, updateQueue, nextProps, null, renderExpirationTime);\n  var nextState = workInProgress.memoizedState;\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  var nextChildren = nextState.element;\n  if (nextChildren === prevChildren) {\n    // If the state is the same as before, that's a bailout because we had\n    // no work that expires at this time.\n    resetHydrationState();\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n  var root = workInProgress.stateNode;\n  if ((current$$1 === null || current$$1.child === null) && root.hydrate && enterHydrationState(workInProgress)) {\n    // If we don't have any current children this might be the first pass.\n    // We always try to hydrate. If this isn't a hydration pass there won't\n    // be any children to hydrate which is effectively the same thing as\n    // not hydrating.\n\n    // This is a bit of a hack. We track the host root as a placement to\n    // know that we're currently in a mounting state. That way isMounted\n    // works as expected. We must reset this before committing.\n    // TODO: Delete this when we delete isMounted and findDOMNode.\n    workInProgress.effectTag |= Placement;\n\n    // Ensure that children mount into this root without tracking\n    // side-effects. This ensures that we don't store Placement effects on\n    // nodes that will be hydrated.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    // Otherwise reset hydration state in case we aborted and resumed another\n    // root.\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n    resetHydrationState();\n  }\n  return workInProgress.child;\n}\n\nfunction updateHostComponent(current$$1, workInProgress, renderExpirationTime) {\n  pushHostContext(workInProgress);\n\n  if (current$$1 === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n\n  var type = workInProgress.type;\n  var nextProps = workInProgress.pendingProps;\n  var prevProps = current$$1 !== null ? current$$1.memoizedProps : null;\n\n  var nextChildren = nextProps.children;\n  var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n  if (isDirectTextChild) {\n    // We special case a direct text child of a host node. This is a common\n    // case. We won't handle it as a reified child. We will instead handle\n    // this in the host environment that also have access to this prop. That\n    // avoids allocating another HostText fiber and traversing it.\n    nextChildren = null;\n  } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n    // If we're switching from a direct text child to a normal child, or to\n    // empty, we need to schedule the text content to be reset.\n    workInProgress.effectTag |= ContentReset;\n  }\n\n  markRef(current$$1, workInProgress);\n\n  // Check the host config to see if the children are offscreen/hidden.\n  if (renderExpirationTime !== Never && workInProgress.mode & AsyncMode && shouldDeprioritizeSubtree(type, nextProps)) {\n    // Schedule this fiber to re-render at offscreen priority. Then bailout.\n    workInProgress.expirationTime = Never;\n    workInProgress.memoizedProps = nextProps;\n    return null;\n  }\n\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  memoizeProps(workInProgress, nextProps);\n  return workInProgress.child;\n}\n\nfunction updateHostText(current$$1, workInProgress) {\n  if (current$$1 === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n  var nextProps = workInProgress.pendingProps;\n  memoizeProps(workInProgress, nextProps);\n  // Nothing to do here. This is terminal. We'll do the completion step\n  // immediately after.\n  return null;\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n  if (Component && Component.defaultProps) {\n    // Resolve default props. Taken from ReactElement\n    var props = _assign({}, baseProps);\n    var defaultProps = Component.defaultProps;\n    for (var propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n    return props;\n  }\n  return baseProps;\n}\n\nfunction mountIndeterminateComponent(current$$1, workInProgress, Component, renderExpirationTime) {\n  !(current$$1 === null) ? invariant(false, 'An indeterminate component should never have mounted. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  var props = workInProgress.pendingProps;\n  if (typeof Component === 'object' && Component !== null && typeof Component.then === 'function') {\n    Component = readLazyComponentType(Component);\n    var resolvedTag = workInProgress.tag = resolveLazyComponentTag(workInProgress, Component);\n    var resolvedProps = resolveDefaultProps(Component, props);\n    switch (resolvedTag) {\n      case FunctionalComponentLazy:\n        {\n          return updateFunctionalComponent(current$$1, workInProgress, Component, resolvedProps, renderExpirationTime);\n        }\n      case ClassComponentLazy:\n        {\n          return updateClassComponent(current$$1, workInProgress, Component, resolvedProps, renderExpirationTime);\n        }\n      case ForwardRefLazy:\n        {\n          return updateForwardRef(current$$1, workInProgress, Component, resolvedProps, renderExpirationTime);\n        }\n      default:\n        {\n          // This message intentionally doesn't metion ForwardRef because the\n          // fact that it's a separate type of work is an implementation detail.\n          invariant(false, 'Element type is invalid. Received a promise that resolves to: %s. Promise elements must resolve to a class or function.', Component);\n        }\n    }\n  }\n\n  var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n  var context = getMaskedContext(workInProgress, unmaskedContext);\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  var value = void 0;\n\n  {\n    if (Component.prototype && typeof Component.prototype.render === 'function') {\n      var componentName = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutBadClass[componentName]) {\n        warningWithoutStack$1(false, \"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n        didWarnAboutBadClass[componentName] = true;\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n    }\n\n    ReactCurrentOwner$3.current = workInProgress;\n    value = Component(props, context);\n  }\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n\n  if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n    // Proceed under the assumption that this is a class instance\n    workInProgress.tag = ClassComponent;\n\n    // Push context providers early to prevent context stack mismatches.\n    // During mounting we don't know the child context yet as the instance doesn't exist.\n    // We will invalidate the child context in finishClassComponent() right after rendering.\n    var hasContext = false;\n    if (isContextProvider(Component)) {\n      hasContext = true;\n      pushContextProvider(workInProgress);\n    } else {\n      hasContext = false;\n    }\n\n    workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n\n    var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n    if (typeof getDerivedStateFromProps === 'function') {\n      applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n    }\n\n    adoptClassInstance(workInProgress, value);\n    mountClassInstance(workInProgress, Component, props, renderExpirationTime);\n    return finishClassComponent(current$$1, workInProgress, Component, true, hasContext, renderExpirationTime);\n  } else {\n    // Proceed under the assumption that this is a functional component\n    workInProgress.tag = FunctionalComponent;\n    {\n      if (Component) {\n        !!Component.childContextTypes ? warningWithoutStack$1(false, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n      }\n      if (workInProgress.ref !== null) {\n        var info = '';\n        var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n        if (ownerName) {\n          info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n        }\n\n        var warningKey = ownerName || workInProgress._debugID || '';\n        var debugSource = workInProgress._debugSource;\n        if (debugSource) {\n          warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n        }\n        if (!didWarnAboutStatelessRefs[warningKey]) {\n          didWarnAboutStatelessRefs[warningKey] = true;\n          warning$1(false, 'Stateless function components cannot be given refs. ' + 'Attempts to access this ref will fail.%s', info);\n        }\n      }\n\n      if (typeof Component.getDerivedStateFromProps === 'function') {\n        var _componentName = getComponentName(Component) || 'Unknown';\n\n        if (!didWarnAboutGetDerivedStateOnFunctionalComponent[_componentName]) {\n          warningWithoutStack$1(false, '%s: Stateless functional components do not support getDerivedStateFromProps.', _componentName);\n          didWarnAboutGetDerivedStateOnFunctionalComponent[_componentName] = true;\n        }\n      }\n    }\n    reconcileChildren(current$$1, workInProgress, value, renderExpirationTime);\n    memoizeProps(workInProgress, props);\n    return workInProgress.child;\n  }\n}\n\nfunction updatePlaceholderComponent(current$$1, workInProgress, renderExpirationTime) {\n  if (enableSuspense) {\n    var nextProps = workInProgress.pendingProps;\n\n    // Check if we already attempted to render the normal state. If we did,\n    // and we timed out, render the placeholder state.\n    var alreadyCaptured = (workInProgress.effectTag & DidCapture) === NoEffect;\n\n    var nextDidTimeout = void 0;\n    if (current$$1 !== null && workInProgress.updateQueue !== null) {\n      // We're outside strict mode. Something inside this Placeholder boundary\n      // suspended during the last commit. Switch to the placholder.\n      workInProgress.updateQueue = null;\n      nextDidTimeout = true;\n      // If we're recovering from an error, reconcile twice: first to delete\n      // all the existing children.\n      reconcileChildren(current$$1, workInProgress, null, renderExpirationTime);\n      current$$1.child = null;\n      // Now we can continue reconciling like normal. This has the effect of\n      // remounting all children regardless of whether their their\n      // identity matches.\n    } else {\n      nextDidTimeout = !alreadyCaptured;\n    }\n\n    if ((workInProgress.mode & StrictMode) !== NoEffect) {\n      if (nextDidTimeout) {\n        // If the timed-out view commits, schedule an update effect to record\n        // the committed time.\n        workInProgress.effectTag |= Update;\n      } else {\n        // The state node points to the time at which placeholder timed out.\n        // We can clear it once we switch back to the normal children.\n        workInProgress.stateNode = null;\n      }\n    }\n\n    // If the `children` prop is a function, treat it like a render prop.\n    // TODO: This is temporary until we finalize a lower level API.\n    var children = nextProps.children;\n    var nextChildren = void 0;\n    if (typeof children === 'function') {\n      nextChildren = children(nextDidTimeout);\n    } else {\n      nextChildren = nextDidTimeout ? nextProps.fallback : children;\n    }\n\n    workInProgress.memoizedProps = nextProps;\n    workInProgress.memoizedState = nextDidTimeout;\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n    return workInProgress.child;\n  } else {\n    return null;\n  }\n}\n\nfunction updatePortalComponent(current$$1, workInProgress, renderExpirationTime) {\n  pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n  var nextChildren = workInProgress.pendingProps;\n  if (current$$1 === null) {\n    // Portals are special because we don't append the children during mount\n    // but at commit. Therefore we need to track insertions which the normal\n    // flow doesn't do during mount. This doesn't happen at the root because\n    // the root always starts with a \"current\" with a null child.\n    // TODO: Consider unifying this with how the root works.\n    workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n    memoizeProps(workInProgress, nextChildren);\n  } else {\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n    memoizeProps(workInProgress, nextChildren);\n  }\n  return workInProgress.child;\n}\n\nfunction updateContextProvider(current$$1, workInProgress, renderExpirationTime) {\n  var providerType = workInProgress.type;\n  var context = providerType._context;\n\n  var newProps = workInProgress.pendingProps;\n  var oldProps = workInProgress.memoizedProps;\n\n  var newValue = newProps.value;\n  workInProgress.memoizedProps = newProps;\n\n  {\n    var providerPropTypes = workInProgress.type.propTypes;\n\n    if (providerPropTypes) {\n      checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider', getCurrentFiberStackInDev);\n    }\n  }\n\n  pushProvider(workInProgress, newValue);\n\n  if (oldProps !== null) {\n    var oldValue = oldProps.value;\n    var changedBits = calculateChangedBits(context, newValue, oldValue);\n    if (changedBits === 0) {\n      // No change. Bailout early if children are the same.\n      if (oldProps.children === newProps.children && !hasContextChanged()) {\n        return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n      }\n    } else {\n      // The context value changed. Search for matching consumers and schedule\n      // them to update.\n      propagateContextChange(workInProgress, context, changedBits, renderExpirationTime);\n    }\n  }\n\n  var newChildren = newProps.children;\n  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateContextConsumer(current$$1, workInProgress, renderExpirationTime) {\n  var context = workInProgress.type;\n  var newProps = workInProgress.pendingProps;\n  var render = newProps.children;\n\n  {\n    !(typeof render === 'function') ? warningWithoutStack$1(false, 'A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.') : void 0;\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var newValue = readContext(context, newProps.unstable_observedBits);\n  var newChildren = void 0;\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    newChildren = render(newValue);\n    setCurrentPhase(null);\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);\n  workInProgress.memoizedProps = newProps;\n  return workInProgress.child;\n}\n\n/*\n  function reuseChildrenEffects(returnFiber : Fiber, firstChild : Fiber) {\n    let child = firstChild;\n    do {\n      // Ensure that the first and last effect of the parent corresponds\n      // to the children's first and last effect.\n      if (!returnFiber.firstEffect) {\n        returnFiber.firstEffect = child.firstEffect;\n      }\n      if (child.lastEffect) {\n        if (returnFiber.lastEffect) {\n          returnFiber.lastEffect.nextEffect = child.firstEffect;\n        }\n        returnFiber.lastEffect = child.lastEffect;\n      }\n    } while (child = child.sibling);\n  }\n  */\n\nfunction bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime) {\n  cancelWorkTimer(workInProgress);\n\n  if (current$$1 !== null) {\n    // Reuse previous context list\n    workInProgress.firstContextDependency = current$$1.firstContextDependency;\n  }\n\n  if (enableProfilerTimer) {\n    // Don't update \"base\" render times for bailouts.\n    stopProfilerTimerIfRunning(workInProgress);\n  }\n\n  // Check if the children have any pending work.\n  var childExpirationTime = workInProgress.childExpirationTime;\n  if (childExpirationTime === NoWork || childExpirationTime > renderExpirationTime) {\n    // The children don't have any work either. We can skip them.\n    // TODO: Once we add back resuming, we should check if the children are\n    // a work-in-progress set. If so, we need to transfer their effects.\n    return null;\n  } else {\n    // This fiber doesn't have work, but its subtree does. Clone the child\n    // fibers and continue.\n    cloneChildFibers(current$$1, workInProgress);\n    return workInProgress.child;\n  }\n}\n\n// TODO: Delete memoizeProps/State and move to reconcile/bailout instead\nfunction memoizeProps(workInProgress, nextProps) {\n  workInProgress.memoizedProps = nextProps;\n}\n\nfunction memoizeState(workInProgress, nextState) {\n  workInProgress.memoizedState = nextState;\n  // Don't reset the updateQueue, in case there are pending updates. Resetting\n  // is handled by processUpdateQueue.\n}\n\nfunction beginWork(current$$1, workInProgress, renderExpirationTime) {\n  var updateExpirationTime = workInProgress.expirationTime;\n  if (!hasContextChanged() && (updateExpirationTime === NoWork || updateExpirationTime > renderExpirationTime)) {\n    // This fiber does not have any pending work. Bailout without entering\n    // the begin phase. There's still some bookkeeping we that needs to be done\n    // in this optimized path, mostly pushing stuff onto the stack.\n    switch (workInProgress.tag) {\n      case HostRoot:\n        pushHostRootContext(workInProgress);\n        resetHydrationState();\n        break;\n      case HostComponent:\n        pushHostContext(workInProgress);\n        break;\n      case ClassComponent:\n        {\n          var Component = workInProgress.type;\n          if (isContextProvider(Component)) {\n            pushContextProvider(workInProgress);\n          }\n          break;\n        }\n      case ClassComponentLazy:\n        {\n          var thenable = workInProgress.type;\n          var _Component = getResultFromResolvedThenable(thenable);\n          if (isContextProvider(_Component)) {\n            pushContextProvider(workInProgress);\n          }\n          break;\n        }\n      case HostPortal:\n        pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n        break;\n      case ContextProvider:\n        {\n          var newValue = workInProgress.memoizedProps.value;\n          pushProvider(workInProgress, newValue);\n          break;\n        }\n      case Profiler:\n        if (enableProfilerTimer) {\n          workInProgress.effectTag |= Update;\n        }\n        break;\n    }\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n\n  // Before entering the begin phase, clear the expiration time.\n  workInProgress.expirationTime = NoWork;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n      {\n        var _Component3 = workInProgress.type;\n        return mountIndeterminateComponent(current$$1, workInProgress, _Component3, renderExpirationTime);\n      }\n    case FunctionalComponent:\n      {\n        var _Component4 = workInProgress.type;\n        var _unresolvedProps = workInProgress.pendingProps;\n        return updateFunctionalComponent(current$$1, workInProgress, _Component4, _unresolvedProps, renderExpirationTime);\n      }\n    case FunctionalComponentLazy:\n      {\n        var _thenable2 = workInProgress.type;\n        var _Component5 = getResultFromResolvedThenable(_thenable2);\n        var _unresolvedProps2 = workInProgress.pendingProps;\n        var _child = updateFunctionalComponent(current$$1, workInProgress, _Component5, resolveDefaultProps(_Component5, _unresolvedProps2), renderExpirationTime);\n        workInProgress.memoizedProps = _unresolvedProps2;\n        return _child;\n      }\n    case ClassComponent:\n      {\n        var _Component6 = workInProgress.type;\n        var _unresolvedProps3 = workInProgress.pendingProps;\n        return updateClassComponent(current$$1, workInProgress, _Component6, _unresolvedProps3, renderExpirationTime);\n      }\n    case ClassComponentLazy:\n      {\n        var _thenable3 = workInProgress.type;\n        var _Component7 = getResultFromResolvedThenable(_thenable3);\n        var _unresolvedProps4 = workInProgress.pendingProps;\n        var _child2 = updateClassComponent(current$$1, workInProgress, _Component7, resolveDefaultProps(_Component7, _unresolvedProps4), renderExpirationTime);\n        workInProgress.memoizedProps = _unresolvedProps4;\n        return _child2;\n      }\n    case HostRoot:\n      return updateHostRoot(current$$1, workInProgress, renderExpirationTime);\n    case HostComponent:\n      return updateHostComponent(current$$1, workInProgress, renderExpirationTime);\n    case HostText:\n      return updateHostText(current$$1, workInProgress);\n    case PlaceholderComponent:\n      return updatePlaceholderComponent(current$$1, workInProgress, renderExpirationTime);\n    case HostPortal:\n      return updatePortalComponent(current$$1, workInProgress, renderExpirationTime);\n    case ForwardRef:\n      {\n        var type = workInProgress.type;\n        return updateForwardRef(current$$1, workInProgress, type, workInProgress.pendingProps, renderExpirationTime);\n      }\n    case ForwardRefLazy:\n      var _thenable = workInProgress.type;\n      var _Component2 = getResultFromResolvedThenable(_thenable);\n      var unresolvedProps = workInProgress.pendingProps;\n      var child = updateForwardRef(current$$1, workInProgress, _Component2, resolveDefaultProps(_Component2, unresolvedProps), renderExpirationTime);\n      workInProgress.memoizedProps = unresolvedProps;\n      return child;\n    case Fragment:\n      return updateFragment(current$$1, workInProgress, renderExpirationTime);\n    case Mode:\n      return updateMode(current$$1, workInProgress, renderExpirationTime);\n    case Profiler:\n      return updateProfiler(current$$1, workInProgress, renderExpirationTime);\n    case ContextProvider:\n      return updateContextProvider(current$$1, workInProgress, renderExpirationTime);\n    case ContextConsumer:\n      return updateContextConsumer(current$$1, workInProgress, renderExpirationTime);\n    default:\n      invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');\n  }\n}\n\nfunction markUpdate(workInProgress) {\n  // Tag the fiber with an update effect. This turns a Placement into\n  // a PlacementAndUpdate.\n  workInProgress.effectTag |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n  workInProgress.effectTag |= Ref;\n}\n\nfunction appendAllChildren(parent, workInProgress) {\n  // We only have the top Fiber that was created but we need recurse down its\n  // children to find all the terminal nodes.\n  var node = workInProgress.child;\n  while (node !== null) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      appendInitialChild(parent, node.stateNode);\n    } else if (node.tag === HostPortal) {\n      // If we have a portal child, then we don't want to traverse\n      // down its children. Instead, we'll get insertions from each child in\n      // the portal directly.\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === workInProgress) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === workInProgress) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nvar updateHostContainer = void 0;\nvar updateHostComponent$1 = void 0;\nvar updateHostText$1 = void 0;\nif (supportsMutation) {\n  // Mutation mode\n\n  updateHostContainer = function (workInProgress) {\n    // Noop\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // If we have an alternate, that means this is an update and we need to\n    // schedule a side-effect to do the updates.\n    var oldProps = current.memoizedProps;\n    if (oldProps === newProps) {\n      // In mutation mode, this is sufficient for a bailout because\n      // we won't touch this node even if children changed.\n      return;\n    }\n\n    // If we get updated because one of our children updated, we don't\n    // have newProps so we'll have to reuse them.\n    // TODO: Split the update API as separate for the props vs. children.\n    // Even better would be if children weren't special cased at all tho.\n    var instance = workInProgress.stateNode;\n    var currentHostContext = getHostContext();\n    // TODO: Experiencing an error where oldProps is null. Suggests a host\n    // component is hitting the resume path. Figure out why. Possibly\n    // related to `hidden`.\n    var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext);\n    // TODO: Type this specific to this type of component.\n    workInProgress.updateQueue = updatePayload;\n    // If the update payload indicates that there is a change or if there\n    // is a new ref we mark this as an update. All the work is done in commitWork.\n    if (updatePayload) {\n      markUpdate(workInProgress);\n    }\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // If the text differs, mark it as an update. All the work in done in commitWork.\n    if (oldText !== newText) {\n      markUpdate(workInProgress);\n    }\n  };\n} else if (supportsPersistence) {\n  // Persistent host tree mode\n\n  // An unfortunate fork of appendAllChildren because we have two different parent types.\n  var appendAllChildrenToContainer = function (containerChildSet, workInProgress) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n    while (node !== null) {\n      if (node.tag === HostComponent || node.tag === HostText) {\n        appendChildToContainerChildSet(containerChildSet, node.stateNode);\n      } else if (node.tag === HostPortal) {\n        // If we have a portal child, then we don't want to traverse\n        // down its children. Instead, we'll get insertions from each child in\n        // the portal directly.\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      if (node === workInProgress) {\n        return;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n  updateHostContainer = function (workInProgress) {\n    var portalOrRoot = workInProgress.stateNode;\n    var childrenUnchanged = workInProgress.firstEffect === null;\n    if (childrenUnchanged) {\n      // No changes, just reuse the existing instance.\n    } else {\n      var container = portalOrRoot.containerInfo;\n      var newChildSet = createContainerChildSet(container);\n      // If children might have changed, we have to add them all to the set.\n      appendAllChildrenToContainer(newChildSet, workInProgress);\n      portalOrRoot.pendingChildren = newChildSet;\n      // Schedule an update on the container to swap out the container.\n      markUpdate(workInProgress);\n      finalizeContainerChildren(container, newChildSet);\n    }\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    var currentInstance = current.stateNode;\n    var oldProps = current.memoizedProps;\n    // If there are no effects associated with this node, then none of our children had any updates.\n    // This guarantees that we can reuse all of them.\n    var childrenUnchanged = workInProgress.firstEffect === null;\n    if (childrenUnchanged && oldProps === newProps) {\n      // No changes, just reuse the existing instance.\n      // Note that this might release a previous clone.\n      workInProgress.stateNode = currentInstance;\n      return;\n    }\n    var recyclableInstance = workInProgress.stateNode;\n    var currentHostContext = getHostContext();\n    var updatePayload = null;\n    if (oldProps !== newProps) {\n      updatePayload = prepareUpdate(recyclableInstance, type, oldProps, newProps, rootContainerInstance, currentHostContext);\n    }\n    if (childrenUnchanged && updatePayload === null) {\n      // No changes, just reuse the existing instance.\n      // Note that this might release a previous clone.\n      workInProgress.stateNode = currentInstance;\n      return;\n    }\n    var newInstance = cloneInstance(currentInstance, updatePayload, type, oldProps, newProps, workInProgress, childrenUnchanged, recyclableInstance);\n    if (finalizeInitialChildren(newInstance, type, newProps, rootContainerInstance, currentHostContext)) {\n      markUpdate(workInProgress);\n    }\n    workInProgress.stateNode = newInstance;\n    if (childrenUnchanged) {\n      // If there are no other effects in this tree, we need to flag this node as having one.\n      // Even though we're not going to use it for anything.\n      // Otherwise parents won't know that there are new children to propagate upwards.\n      markUpdate(workInProgress);\n    } else {\n      // If children might have changed, we have to add them all to the set.\n      appendAllChildren(newInstance, workInProgress);\n    }\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    if (oldText !== newText) {\n      // If the text content differs, we'll create a new text instance for it.\n      var rootContainerInstance = getRootHostContainer();\n      var currentHostContext = getHostContext();\n      workInProgress.stateNode = createTextInstance(newText, rootContainerInstance, currentHostContext, workInProgress);\n      // We'll have to mark it as having an effect, even though we won't use the effect for anything.\n      // This lets the parents know that at least one of their children has changed.\n      markUpdate(workInProgress);\n    }\n  };\n} else {\n  // No host operations\n  updateHostContainer = function (workInProgress) {\n    // Noop\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // Noop\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // Noop\n  };\n}\n\nfunction completeWork(current, workInProgress, renderExpirationTime) {\n  var newProps = workInProgress.pendingProps;\n\n  switch (workInProgress.tag) {\n    case FunctionalComponent:\n    case FunctionalComponentLazy:\n      break;\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n        break;\n      }\n    case ClassComponentLazy:\n      {\n        var _Component = getResultFromResolvedThenable(workInProgress.type);\n        if (isContextProvider(_Component)) {\n          popContext(workInProgress);\n        }\n        break;\n      }\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var fiberRoot = workInProgress.stateNode;\n        if (fiberRoot.pendingContext) {\n          fiberRoot.context = fiberRoot.pendingContext;\n          fiberRoot.pendingContext = null;\n        }\n        if (current === null || current.child === null) {\n          // If we hydrated, pop so that we can delete any remaining children\n          // that weren't hydrated.\n          popHydrationState(workInProgress);\n          // This resets the hacky state to fix isMounted before committing.\n          // TODO: Delete this when we delete isMounted and findDOMNode.\n          workInProgress.effectTag &= ~Placement;\n        }\n        updateHostContainer(workInProgress);\n        break;\n      }\n    case HostComponent:\n      {\n        popHostContext(workInProgress);\n        var rootContainerInstance = getRootHostContainer();\n        var type = workInProgress.type;\n        if (current !== null && workInProgress.stateNode != null) {\n          updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n          if (current.ref !== workInProgress.ref) {\n            markRef$1(workInProgress);\n          }\n        } else {\n          if (!newProps) {\n            !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n            // This can happen when we abort work.\n            break;\n          }\n\n          var currentHostContext = getHostContext();\n          // TODO: Move createInstance to beginWork and keep it on a context\n          // \"stack\" as the parent. Then append children as we go in beginWork\n          // or completeWork depending on we want to add then top->down or\n          // bottom->up. Top->down is faster in IE11.\n          var wasHydrated = popHydrationState(workInProgress);\n          if (wasHydrated) {\n            // TODO: Move this and createInstance step into the beginPhase\n            // to consolidate.\n            if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n              // If changes to the hydrated node needs to be applied at the\n              // commit-phase we mark this as such.\n              markUpdate(workInProgress);\n            }\n          } else {\n            var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n\n            appendAllChildren(instance, workInProgress);\n\n            // Certain renderers require commit-time effects for initial mount.\n            // (eg DOM renderer supports auto-focus for certain elements).\n            // Make sure such renderers get scheduled for later work.\n            if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance, currentHostContext)) {\n              markUpdate(workInProgress);\n            }\n            workInProgress.stateNode = instance;\n          }\n\n          if (workInProgress.ref !== null) {\n            // If there is a ref on a host node we need to schedule a callback\n            markRef$1(workInProgress);\n          }\n        }\n        break;\n      }\n    case HostText:\n      {\n        var newText = newProps;\n        if (current && workInProgress.stateNode != null) {\n          var oldText = current.memoizedProps;\n          // If we have an alternate, that means this is an update and we need\n          // to schedule a side-effect to do the updates.\n          updateHostText$1(current, workInProgress, oldText, newText);\n        } else {\n          if (typeof newText !== 'string') {\n            !(workInProgress.stateNode !== null) ? invariant(false, 'We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n            // This can happen when we abort work.\n          }\n          var _rootContainerInstance = getRootHostContainer();\n          var _currentHostContext = getHostContext();\n          var _wasHydrated = popHydrationState(workInProgress);\n          if (_wasHydrated) {\n            if (prepareToHydrateHostTextInstance(workInProgress)) {\n              markUpdate(workInProgress);\n            }\n          } else {\n            workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n          }\n        }\n        break;\n      }\n    case ForwardRef:\n    case ForwardRefLazy:\n      break;\n    case PlaceholderComponent:\n      break;\n    case Fragment:\n      break;\n    case Mode:\n      break;\n    case Profiler:\n      break;\n    case HostPortal:\n      popHostContainer(workInProgress);\n      updateHostContainer(workInProgress);\n      break;\n    case ContextProvider:\n      // Pop provider fiber\n      popProvider(workInProgress);\n      break;\n    case ContextConsumer:\n      break;\n    // Error cases\n    case IndeterminateComponent:\n      invariant(false, 'An indeterminate component should have become determinate before completing. This error is likely caused by a bug in React. Please file an issue.');\n    // eslint-disable-next-line no-fallthrough\n    default:\n      invariant(false, 'Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.');\n  }\n\n  return null;\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(capturedError) {\n  return true;\n}\n\nfunction logCapturedError(capturedError) {\n  var logError = showErrorDialog(capturedError);\n\n  // Allow injected showErrorDialog() to prevent default console.error logging.\n  // This enables renderers like ReactNative to better manage redbox behavior.\n  if (logError === false) {\n    return;\n  }\n\n  var error = capturedError.error;\n  {\n    var componentName = capturedError.componentName,\n        componentStack = capturedError.componentStack,\n        errorBoundaryName = capturedError.errorBoundaryName,\n        errorBoundaryFound = capturedError.errorBoundaryFound,\n        willRetry = capturedError.willRetry;\n\n    // Browsers support silencing uncaught errors by calling\n    // `preventDefault()` in window `error` handler.\n    // We record this information as an expando on the error.\n\n    if (error != null && error._suppressLogging) {\n      if (errorBoundaryFound && willRetry) {\n        // The error is recoverable and was silenced.\n        // Ignore it and don't print the stack addendum.\n        // This is handy for testing error boundaries without noise.\n        return;\n      }\n      // The error is fatal. Since the silencing might have\n      // been accidental, we'll surface it anyway.\n      // However, the browser would have silenced the original error\n      // so we'll print it first, and then print the stack addendum.\n      console.error(error);\n      // For a more detailed description of this block, see:\n      // https://github.com/facebook/react/pull/13384\n    }\n\n    var componentNameMessage = componentName ? 'The above error occurred in the <' + componentName + '> component:' : 'The above error occurred in one of your React components:';\n\n    var errorBoundaryMessage = void 0;\n    // errorBoundaryFound check is sufficient; errorBoundaryName check is to satisfy Flow.\n    if (errorBoundaryFound && errorBoundaryName) {\n      if (willRetry) {\n        errorBoundaryMessage = 'React will try to recreate this component tree from scratch ' + ('using the error boundary you provided, ' + errorBoundaryName + '.');\n      } else {\n        errorBoundaryMessage = 'This error was initially handled by the error boundary ' + errorBoundaryName + '.\\n' + 'Recreating the tree from scratch failed so React will unmount the tree.';\n      }\n    } else {\n      errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://fb.me/react-error-boundaries to learn more about error boundaries.';\n    }\n    var combinedMessage = '' + componentNameMessage + componentStack + '\\n\\n' + ('' + errorBoundaryMessage);\n\n    // In development, we provide our own message with just the component stack.\n    // We don't include the original error message and JS stack because the browser\n    // has already printed it. Even if the application swallows the error, it is still\n    // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n    console.error(combinedMessage);\n  }\n}\n\nvar emptyObject = {};\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n{\n  didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nfunction logError(boundary, errorInfo) {\n  var source = errorInfo.source;\n  var stack = errorInfo.stack;\n  if (stack === null && source !== null) {\n    stack = getStackByFiberInDevAndProd(source);\n  }\n\n  var capturedError = {\n    componentName: source !== null ? getComponentName(source.type) : null,\n    componentStack: stack !== null ? stack : '',\n    error: errorInfo.value,\n    errorBoundary: null,\n    errorBoundaryName: null,\n    errorBoundaryFound: false,\n    willRetry: false\n  };\n\n  if (boundary !== null && boundary.tag === ClassComponent) {\n    capturedError.errorBoundary = boundary.stateNode;\n    capturedError.errorBoundaryName = getComponentName(boundary.type);\n    capturedError.errorBoundaryFound = true;\n    capturedError.willRetry = true;\n  }\n\n  try {\n    logCapturedError(capturedError);\n  } catch (e) {\n    // This method must not throw, or React internal state will get messed up.\n    // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n    // we want to report this error outside of the normal stack as a last resort.\n    // https://github.com/facebook/react/issues/13188\n    setTimeout(function () {\n      throw e;\n    });\n  }\n}\n\nvar callComponentWillUnmountWithTimer = function (current$$1, instance) {\n  startPhaseTimer(current$$1, 'componentWillUnmount');\n  instance.props = current$$1.memoizedProps;\n  instance.state = current$$1.memoizedState;\n  instance.componentWillUnmount();\n  stopPhaseTimer();\n};\n\n// Capture errors so they don't interrupt unmounting.\nfunction safelyCallComponentWillUnmount(current$$1, instance) {\n  {\n    invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current$$1, instance);\n    if (hasCaughtError()) {\n      var unmountError = clearCaughtError();\n      captureCommitPhaseError(current$$1, unmountError);\n    }\n  }\n}\n\nfunction safelyDetachRef(current$$1) {\n  var ref = current$$1.ref;\n  if (ref !== null) {\n    if (typeof ref === 'function') {\n      {\n        invokeGuardedCallback(null, ref, null, null);\n        if (hasCaughtError()) {\n          var refError = clearCaughtError();\n          captureCommitPhaseError(current$$1, refError);\n        }\n      }\n    } else {\n      ref.current = null;\n    }\n  }\n}\n\nfunction commitBeforeMutationLifeCycles(current$$1, finishedWork) {\n  switch (finishedWork.tag) {\n    case ClassComponent:\n    case ClassComponentLazy:\n      {\n        if (finishedWork.effectTag & Snapshot) {\n          if (current$$1 !== null) {\n            var prevProps = current$$1.memoizedProps;\n            var prevState = current$$1.memoizedState;\n            startPhaseTimer(finishedWork, 'getSnapshotBeforeUpdate');\n            var instance = finishedWork.stateNode;\n            instance.props = finishedWork.memoizedProps;\n            instance.state = finishedWork.memoizedState;\n            var snapshot = instance.getSnapshotBeforeUpdate(prevProps, prevState);\n            {\n              var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n              if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n                didWarnSet.add(finishedWork.type);\n                warningWithoutStack$1(false, '%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n              }\n            }\n            instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n            stopPhaseTimer();\n          }\n        }\n        return;\n      }\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n      // Nothing to do for these component types\n      return;\n    default:\n      {\n        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n      }\n  }\n}\n\nfunction commitLifeCycles(finishedRoot, current$$1, finishedWork, committedExpirationTime) {\n  switch (finishedWork.tag) {\n    case ClassComponent:\n    case ClassComponentLazy:\n      {\n        var instance = finishedWork.stateNode;\n        if (finishedWork.effectTag & Update) {\n          if (current$$1 === null) {\n            startPhaseTimer(finishedWork, 'componentDidMount');\n            instance.props = finishedWork.memoizedProps;\n            instance.state = finishedWork.memoizedState;\n            instance.componentDidMount();\n            stopPhaseTimer();\n          } else {\n            var prevProps = current$$1.memoizedProps;\n            var prevState = current$$1.memoizedState;\n            startPhaseTimer(finishedWork, 'componentDidUpdate');\n            instance.props = finishedWork.memoizedProps;\n            instance.state = finishedWork.memoizedState;\n            instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n            stopPhaseTimer();\n          }\n        }\n        var updateQueue = finishedWork.updateQueue;\n        if (updateQueue !== null) {\n          instance.props = finishedWork.memoizedProps;\n          instance.state = finishedWork.memoizedState;\n          commitUpdateQueue(finishedWork, updateQueue, instance, committedExpirationTime);\n        }\n        return;\n      }\n    case HostRoot:\n      {\n        var _updateQueue = finishedWork.updateQueue;\n        if (_updateQueue !== null) {\n          var _instance = null;\n          if (finishedWork.child !== null) {\n            switch (finishedWork.child.tag) {\n              case HostComponent:\n                _instance = getPublicInstance(finishedWork.child.stateNode);\n                break;\n              case ClassComponent:\n              case ClassComponentLazy:\n                _instance = finishedWork.child.stateNode;\n                break;\n            }\n          }\n          commitUpdateQueue(finishedWork, _updateQueue, _instance, committedExpirationTime);\n        }\n        return;\n      }\n    case HostComponent:\n      {\n        var _instance2 = finishedWork.stateNode;\n\n        // Renderers may schedule work to be done after host components are mounted\n        // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n        // These effects should only be committed when components are first mounted,\n        // aka when there is no current/alternate.\n        if (current$$1 === null && finishedWork.effectTag & Update) {\n          var type = finishedWork.type;\n          var props = finishedWork.memoizedProps;\n          commitMount(_instance2, type, props, finishedWork);\n        }\n\n        return;\n      }\n    case HostText:\n      {\n        // We have no life-cycles associated with text.\n        return;\n      }\n    case HostPortal:\n      {\n        // We have no life-cycles associated with portals.\n        return;\n      }\n    case Profiler:\n      {\n        if (enableProfilerTimer) {\n          var onRender = finishedWork.memoizedProps.onRender;\n\n          if (enableSchedulerTracing) {\n            onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime(), finishedRoot.memoizedInteractions);\n          } else {\n            onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime());\n          }\n        }\n        return;\n      }\n    case PlaceholderComponent:\n      {\n        if (enableSuspense) {\n          if ((finishedWork.mode & StrictMode) === NoEffect) {\n            // In loose mode, a placeholder times out by scheduling a synchronous\n            // update in the commit phase. Use `updateQueue` field to signal that\n            // the Timeout needs to switch to the placeholder. We don't need an\n            // entire queue. Any non-null value works.\n            // $FlowFixMe - Intentionally using a value other than an UpdateQueue.\n            finishedWork.updateQueue = emptyObject;\n            scheduleWork(finishedWork, Sync);\n          } else {\n            // In strict mode, the Update effect is used to record the time at\n            // which the placeholder timed out.\n            var currentTime = requestCurrentTime();\n            finishedWork.stateNode = { timedOutAt: currentTime };\n          }\n        }\n        return;\n      }\n    default:\n      {\n        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n      }\n  }\n}\n\nfunction commitAttachRef(finishedWork) {\n  var ref = finishedWork.ref;\n  if (ref !== null) {\n    var instance = finishedWork.stateNode;\n    var instanceToUse = void 0;\n    switch (finishedWork.tag) {\n      case HostComponent:\n        instanceToUse = getPublicInstance(instance);\n        break;\n      default:\n        instanceToUse = instance;\n    }\n    if (typeof ref === 'function') {\n      ref(instanceToUse);\n    } else {\n      {\n        if (!ref.hasOwnProperty('current')) {\n          warningWithoutStack$1(false, 'Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().%s', getComponentName(finishedWork.type), getStackByFiberInDevAndProd(finishedWork));\n        }\n      }\n\n      ref.current = instanceToUse;\n    }\n  }\n}\n\nfunction commitDetachRef(current$$1) {\n  var currentRef = current$$1.ref;\n  if (currentRef !== null) {\n    if (typeof currentRef === 'function') {\n      currentRef(null);\n    } else {\n      currentRef.current = null;\n    }\n  }\n}\n\n// User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\nfunction commitUnmount(current$$1) {\n  onCommitUnmount(current$$1);\n\n  switch (current$$1.tag) {\n    case ClassComponent:\n    case ClassComponentLazy:\n      {\n        safelyDetachRef(current$$1);\n        var instance = current$$1.stateNode;\n        if (typeof instance.componentWillUnmount === 'function') {\n          safelyCallComponentWillUnmount(current$$1, instance);\n        }\n        return;\n      }\n    case HostComponent:\n      {\n        safelyDetachRef(current$$1);\n        return;\n      }\n    case HostPortal:\n      {\n        // TODO: this is recursive.\n        // We are also not using this parent because\n        // the portal will get pushed immediately.\n        if (supportsMutation) {\n          unmountHostComponents(current$$1);\n        } else if (supportsPersistence) {\n          emptyPortalContainer(current$$1);\n        }\n        return;\n      }\n  }\n}\n\nfunction commitNestedUnmounts(root) {\n  // While we're inside a removed host node we don't want to call\n  // removeChild on the inner nodes because they're removed by the top\n  // call anyway. We also want to call componentWillUnmount on all\n  // composites before this host node is removed from the tree. Therefore\n  var node = root;\n  while (true) {\n    commitUnmount(node);\n    // Visit children because they may contain more composite or host nodes.\n    // Skip portals because commitUnmount() currently visits them recursively.\n    if (node.child !== null && (\n    // If we use mutation we drill down into portals using commitUnmount above.\n    // If we don't use mutation we drill down into portals here instead.\n    !supportsMutation || node.tag !== HostPortal)) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === root) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === root) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction detachFiber(current$$1) {\n  // Cut off the return pointers to disconnect it from the tree. Ideally, we\n  // should clear the child pointer of the parent alternate to let this\n  // get GC:ed but we don't know which for sure which parent is the current\n  // one so we'll settle for GC:ing the subtree of this child. This child\n  // itself will be GC:ed when the parent updates the next time.\n  current$$1.return = null;\n  current$$1.child = null;\n  if (current$$1.alternate) {\n    current$$1.alternate.child = null;\n    current$$1.alternate.return = null;\n  }\n}\n\nfunction emptyPortalContainer(current$$1) {\n  if (!supportsPersistence) {\n    return;\n  }\n\n  var portal = current$$1.stateNode;\n  var containerInfo = portal.containerInfo;\n\n  var emptyChildSet = createContainerChildSet(containerInfo);\n  replaceContainerChildren(containerInfo, emptyChildSet);\n}\n\nfunction commitContainer(finishedWork) {\n  if (!supportsPersistence) {\n    return;\n  }\n\n  switch (finishedWork.tag) {\n    case ClassComponent:\n    case ClassComponentLazy:\n      {\n        return;\n      }\n    case HostComponent:\n      {\n        return;\n      }\n    case HostText:\n      {\n        return;\n      }\n    case HostRoot:\n    case HostPortal:\n      {\n        var portalOrRoot = finishedWork.stateNode;\n        var containerInfo = portalOrRoot.containerInfo,\n            _pendingChildren = portalOrRoot.pendingChildren;\n\n        replaceContainerChildren(containerInfo, _pendingChildren);\n        return;\n      }\n    default:\n      {\n        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n      }\n  }\n}\n\nfunction getHostParentFiber(fiber) {\n  var parent = fiber.return;\n  while (parent !== null) {\n    if (isHostParent(parent)) {\n      return parent;\n    }\n    parent = parent.return;\n  }\n  invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.');\n}\n\nfunction isHostParent(fiber) {\n  return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n  // We're going to search forward into the tree until we find a sibling host\n  // node. Unfortunately, if multiple insertions are done in a row we have to\n  // search past them. This leads to exponential search for the next sibling.\n  var node = fiber;\n  siblings: while (true) {\n    // If we didn't find anything, let's try the next sibling.\n    while (node.sibling === null) {\n      if (node.return === null || isHostParent(node.return)) {\n        // If we pop out of the root or hit the parent the fiber we are the\n        // last sibling.\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n    while (node.tag !== HostComponent && node.tag !== HostText) {\n      // If it is not host node and, we might have a host node inside it.\n      // Try to search down until we find one.\n      if (node.effectTag & Placement) {\n        // If we don't have a child, try the siblings instead.\n        continue siblings;\n      }\n      // If we don't have a child, try the siblings instead.\n      // We also skip portals because they are not part of this host tree.\n      if (node.child === null || node.tag === HostPortal) {\n        continue siblings;\n      } else {\n        node.child.return = node;\n        node = node.child;\n      }\n    }\n    // Check if this host node is stable or about to be placed.\n    if (!(node.effectTag & Placement)) {\n      // Found it!\n      return node.stateNode;\n    }\n  }\n}\n\nfunction commitPlacement(finishedWork) {\n  if (!supportsMutation) {\n    return;\n  }\n\n  // Recursively insert all host nodes into the parent.\n  var parentFiber = getHostParentFiber(finishedWork);\n\n  // Note: these two variables *must* always be updated together.\n  var parent = void 0;\n  var isContainer = void 0;\n\n  switch (parentFiber.tag) {\n    case HostComponent:\n      parent = parentFiber.stateNode;\n      isContainer = false;\n      break;\n    case HostRoot:\n      parent = parentFiber.stateNode.containerInfo;\n      isContainer = true;\n      break;\n    case HostPortal:\n      parent = parentFiber.stateNode.containerInfo;\n      isContainer = true;\n      break;\n    default:\n      invariant(false, 'Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.');\n  }\n  if (parentFiber.effectTag & ContentReset) {\n    // Reset the text content of the parent before doing any insertions\n    resetTextContent(parent);\n    // Clear ContentReset from the effect tag\n    parentFiber.effectTag &= ~ContentReset;\n  }\n\n  var before = getHostSibling(finishedWork);\n  // We only have the top Fiber that was inserted but we need recurse down its\n  // children to find all the terminal nodes.\n  var node = finishedWork;\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      if (before) {\n        if (isContainer) {\n          insertInContainerBefore(parent, node.stateNode, before);\n        } else {\n          insertBefore(parent, node.stateNode, before);\n        }\n      } else {\n        if (isContainer) {\n          appendChildToContainer(parent, node.stateNode);\n        } else {\n          appendChild(parent, node.stateNode);\n        }\n      }\n    } else if (node.tag === HostPortal) {\n      // If the insertion itself is a portal, then we don't want to traverse\n      // down its children. Instead, we'll get insertions from each child in\n      // the portal directly.\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === finishedWork) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === finishedWork) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction unmountHostComponents(current$$1) {\n  // We only have the top Fiber that was deleted but we need recurse down its\n  var node = current$$1;\n\n  // Each iteration, currentParent is populated with node's host parent if not\n  // currentParentIsValid.\n  var currentParentIsValid = false;\n\n  // Note: these two variables *must* always be updated together.\n  var currentParent = void 0;\n  var currentParentIsContainer = void 0;\n\n  while (true) {\n    if (!currentParentIsValid) {\n      var parent = node.return;\n      findParent: while (true) {\n        !(parent !== null) ? invariant(false, 'Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n        switch (parent.tag) {\n          case HostComponent:\n            currentParent = parent.stateNode;\n            currentParentIsContainer = false;\n            break findParent;\n          case HostRoot:\n            currentParent = parent.stateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n          case HostPortal:\n            currentParent = parent.stateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n        }\n        parent = parent.return;\n      }\n      currentParentIsValid = true;\n    }\n\n    if (node.tag === HostComponent || node.tag === HostText) {\n      commitNestedUnmounts(node);\n      // After all the children have unmounted, it is now safe to remove the\n      // node from the tree.\n      if (currentParentIsContainer) {\n        removeChildFromContainer(currentParent, node.stateNode);\n      } else {\n        removeChild(currentParent, node.stateNode);\n      }\n      // Don't visit children because we already visited them.\n    } else if (node.tag === HostPortal) {\n      // When we go into a portal, it becomes the parent to remove from.\n      // We will reassign it back when we pop the portal on the way up.\n      currentParent = node.stateNode.containerInfo;\n      currentParentIsContainer = true;\n      // Visit children because portals might contain host components.\n      if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    } else {\n      commitUnmount(node);\n      // Visit children because we may find more host components below.\n      if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    }\n    if (node === current$$1) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === current$$1) {\n        return;\n      }\n      node = node.return;\n      if (node.tag === HostPortal) {\n        // When we go out of the portal, we need to restore the parent.\n        // Since we don't keep a stack of them, we will search for it.\n        currentParentIsValid = false;\n      }\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction commitDeletion(current$$1) {\n  if (supportsMutation) {\n    // Recursively delete all host nodes from the parent.\n    // Detach refs and call componentWillUnmount() on the whole subtree.\n    unmountHostComponents(current$$1);\n  } else {\n    // Detach refs and call componentWillUnmount() on the whole subtree.\n    commitNestedUnmounts(current$$1);\n  }\n  detachFiber(current$$1);\n}\n\nfunction commitWork(current$$1, finishedWork) {\n  if (!supportsMutation) {\n    commitContainer(finishedWork);\n    return;\n  }\n\n  switch (finishedWork.tag) {\n    case ClassComponent:\n    case ClassComponentLazy:\n      {\n        return;\n      }\n    case HostComponent:\n      {\n        var instance = finishedWork.stateNode;\n        if (instance != null) {\n          // Commit the work prepared earlier.\n          var newProps = finishedWork.memoizedProps;\n          // For hydration we reuse the update path but we treat the oldProps\n          // as the newProps. The updatePayload will contain the real change in\n          // this case.\n          var oldProps = current$$1 !== null ? current$$1.memoizedProps : newProps;\n          var type = finishedWork.type;\n          // TODO: Type the updateQueue to be specific to host components.\n          var updatePayload = finishedWork.updateQueue;\n          finishedWork.updateQueue = null;\n          if (updatePayload !== null) {\n            commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork);\n          }\n        }\n        return;\n      }\n    case HostText:\n      {\n        !(finishedWork.stateNode !== null) ? invariant(false, 'This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n        var textInstance = finishedWork.stateNode;\n        var newText = finishedWork.memoizedProps;\n        // For hydration we reuse the update path but we treat the oldProps\n        // as the newProps. The updatePayload will contain the real change in\n        // this case.\n        var oldText = current$$1 !== null ? current$$1.memoizedProps : newText;\n        commitTextUpdate(textInstance, oldText, newText);\n        return;\n      }\n    case HostRoot:\n      {\n        return;\n      }\n    case Profiler:\n      {\n        return;\n      }\n    case PlaceholderComponent:\n      {\n        return;\n      }\n    default:\n      {\n        invariant(false, 'This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.');\n      }\n  }\n}\n\nfunction commitResetTextContent(current$$1) {\n  if (!supportsMutation) {\n    return;\n  }\n  resetTextContent(current$$1.stateNode);\n}\n\nfunction NoopComponent() {\n  return null;\n}\n\nfunction createRootErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime);\n  // Unmount the root by rendering null.\n  update.tag = CaptureUpdate;\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  update.payload = { element: null };\n  var error = errorInfo.value;\n  update.callback = function () {\n    onUncaughtError(error);\n    logError(fiber, errorInfo);\n  };\n  return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime);\n  update.tag = CaptureUpdate;\n  var getDerivedStateFromCatch = fiber.type.getDerivedStateFromCatch;\n  if (enableGetDerivedStateFromCatch && typeof getDerivedStateFromCatch === 'function') {\n    var error = errorInfo.value;\n    update.payload = function () {\n      return getDerivedStateFromCatch(error);\n    };\n  }\n\n  var inst = fiber.stateNode;\n  if (inst !== null && typeof inst.componentDidCatch === 'function') {\n    update.callback = function callback() {\n      if (!enableGetDerivedStateFromCatch || getDerivedStateFromCatch !== 'function') {\n        // To preserve the preexisting retry behavior of error boundaries,\n        // we keep track of which ones already failed during this batch.\n        // This gets reset before we yield back to the browser.\n        // TODO: Warn in strict mode if getDerivedStateFromCatch is\n        // not defined.\n        markLegacyErrorBoundaryAsFailed(this);\n      }\n      var error = errorInfo.value;\n      var stack = errorInfo.stack;\n      logError(fiber, errorInfo);\n      this.componentDidCatch(error, {\n        componentStack: stack !== null ? stack : ''\n      });\n    };\n  }\n  return update;\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, renderExpirationTime) {\n  // The source fiber did not complete.\n  sourceFiber.effectTag |= Incomplete;\n  // Its effect list is no longer valid.\n  sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n  if (enableSuspense && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n    // This is a thenable.\n    var thenable = value;\n\n    // Find the earliest timeout threshold of all the placeholders in the\n    // ancestor path. We could avoid this traversal by storing the thresholds on\n    // the stack, but we choose not to because we only hit this path if we're\n    // IO-bound (i.e. if something suspends). Whereas the stack is used even in\n    // the non-IO- bound case.\n    var _workInProgress = returnFiber;\n    var earliestTimeoutMs = -1;\n    var startTimeMs = -1;\n    do {\n      if (_workInProgress.tag === PlaceholderComponent) {\n        var current = _workInProgress.alternate;\n        if (current !== null && current.memoizedState === true && current.stateNode !== null) {\n          // Reached a placeholder that already timed out. Each timed out\n          // placeholder acts as the root of a new suspense boundary.\n\n          // Use the time at which the placeholder timed out as the start time\n          // for the current render.\n          var timedOutAt = current.stateNode.timedOutAt;\n          startTimeMs = expirationTimeToMs(timedOutAt);\n\n          // Do not search any further.\n          break;\n        }\n        var timeoutPropMs = _workInProgress.pendingProps.delayMs;\n        if (typeof timeoutPropMs === 'number') {\n          if (timeoutPropMs <= 0) {\n            earliestTimeoutMs = 0;\n          } else if (earliestTimeoutMs === -1 || timeoutPropMs < earliestTimeoutMs) {\n            earliestTimeoutMs = timeoutPropMs;\n          }\n        }\n      }\n      _workInProgress = _workInProgress.return;\n    } while (_workInProgress !== null);\n\n    // Schedule the nearest Placeholder to re-render the timed out view.\n    _workInProgress = returnFiber;\n    do {\n      if (_workInProgress.tag === PlaceholderComponent) {\n        var didTimeout = _workInProgress.memoizedState;\n        if (!didTimeout) {\n          // Found the nearest boundary.\n\n          // If the boundary is not in async mode, we should not suspend, and\n          // likewise, when the promise resolves, we should ping synchronously.\n          var pingTime = (_workInProgress.mode & AsyncMode) === NoEffect ? Sync : renderExpirationTime;\n\n          // Attach a listener to the promise to \"ping\" the root and retry.\n          var onResolveOrReject = retrySuspendedRoot.bind(null, root, _workInProgress, pingTime);\n          thenable.then(onResolveOrReject, onResolveOrReject);\n\n          // If the boundary is outside of strict mode, we should *not* suspend\n          // the commit. Pretend as if the suspended component rendered null and\n          // keep rendering. In the commit phase, we'll schedule a subsequent\n          // synchronous update to re-render the Placeholder.\n          //\n          // Note: It doesn't matter whether the component that suspended was\n          // inside a strict mode tree. If the Placeholder is outside of it, we\n          // should *not* suspend the commit.\n          if ((_workInProgress.mode & StrictMode) === NoEffect) {\n            _workInProgress.effectTag |= Update;\n\n            // Unmount the source fiber's children\n            var nextChildren = null;\n            reconcileChildren(sourceFiber.alternate, sourceFiber, nextChildren, renderExpirationTime);\n            sourceFiber.effectTag &= ~Incomplete;\n            if (sourceFiber.tag === IndeterminateComponent) {\n              // Let's just assume it's a functional component. This fiber will\n              // be unmounted in the immediate next commit, anyway.\n              sourceFiber.tag = FunctionalComponent;\n            }\n\n            if (sourceFiber.tag === ClassComponent || sourceFiber.tag === ClassComponentLazy) {\n              // We're going to commit this fiber even though it didn't\n              // complete. But we shouldn't call any lifecycle methods or\n              // callbacks. Remove all lifecycle effect tags.\n              sourceFiber.effectTag &= ~LifecycleEffectMask;\n              if (sourceFiber.alternate === null) {\n                // We're about to mount a class component that doesn't have an\n                // instance. Turn this into a dummy functional component instead,\n                // to prevent type errors. This is a bit weird but it's an edge\n                // case and we're about to synchronously delete this\n                // component, anyway.\n                sourceFiber.tag = FunctionalComponent;\n                sourceFiber.type = NoopComponent;\n              }\n            }\n\n            // Exit without suspending.\n            return;\n          }\n\n          // Confirmed that the boundary is in a strict mode tree. Continue with\n          // the normal suspend path.\n\n          var absoluteTimeoutMs = void 0;\n          if (earliestTimeoutMs === -1) {\n            // If no explicit threshold is given, default to an abitrarily large\n            // value. The actual size doesn't matter because the threshold for the\n            // whole tree will be clamped to the expiration time.\n            absoluteTimeoutMs = maxSigned31BitInt;\n          } else {\n            if (startTimeMs === -1) {\n              // This suspend happened outside of any already timed-out\n              // placeholders. We don't know exactly when the update was scheduled,\n              // but we can infer an approximate start time from the expiration\n              // time. First, find the earliest uncommitted expiration time in the\n              // tree, including work that is suspended. Then subtract the offset\n              // used to compute an async update's expiration time. This will cause\n              // high priority (interactive) work to expire earlier than necessary,\n              // but we can account for this by adjusting for the Just Noticeable\n              // Difference.\n              var earliestExpirationTime = findEarliestOutstandingPriorityLevel(root, renderExpirationTime);\n              var earliestExpirationTimeMs = expirationTimeToMs(earliestExpirationTime);\n              startTimeMs = earliestExpirationTimeMs - LOW_PRIORITY_EXPIRATION;\n            }\n            absoluteTimeoutMs = startTimeMs + earliestTimeoutMs;\n          }\n\n          // Mark the earliest timeout in the suspended fiber's ancestor path.\n          // After completing the root, we'll take the largest of all the\n          // suspended fiber's timeouts and use it to compute a timeout for the\n          // whole tree.\n          renderDidSuspend(root, absoluteTimeoutMs, renderExpirationTime);\n\n          _workInProgress.effectTag |= ShouldCapture;\n          _workInProgress.expirationTime = renderExpirationTime;\n          return;\n        }\n        // This boundary already captured during this render. Continue to the\n        // next boundary.\n      }\n      _workInProgress = _workInProgress.return;\n    } while (_workInProgress !== null);\n    // No boundary was found. Fallthrough to error mode.\n    value = new Error('An update was suspended, but no placeholder UI was provided.');\n  }\n\n  // We didn't find a boundary that could handle this type of exception. Start\n  // over and traverse parent path again, this time treating the exception\n  // as an error.\n  renderDidError();\n  value = createCapturedValue(value, sourceFiber);\n  var workInProgress = returnFiber;\n  do {\n    switch (workInProgress.tag) {\n      case HostRoot:\n        {\n          var _errorInfo = value;\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime;\n          var update = createRootErrorUpdate(workInProgress, _errorInfo, renderExpirationTime);\n          enqueueCapturedUpdate(workInProgress, update);\n          return;\n        }\n      case ClassComponent:\n      case ClassComponentLazy:\n        // Capture and retry\n        var errorInfo = value;\n        var ctor = workInProgress.type;\n        var instance = workInProgress.stateNode;\n        if ((workInProgress.effectTag & DidCapture) === NoEffect && (typeof ctor.getDerivedStateFromCatch === 'function' && enableGetDerivedStateFromCatch || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime;\n          // Schedule the error boundary to re-render using updated state\n          var _update = createClassErrorUpdate(workInProgress, errorInfo, renderExpirationTime);\n          enqueueCapturedUpdate(workInProgress, _update);\n          return;\n        }\n        break;\n      default:\n        break;\n    }\n    workInProgress = workInProgress.return;\n  } while (workInProgress !== null);\n}\n\nfunction unwindWork(workInProgress, renderExpirationTime) {\n  switch (workInProgress.tag) {\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n        var effectTag = workInProgress.effectTag;\n        if (effectTag & ShouldCapture) {\n          workInProgress.effectTag = effectTag & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        }\n        return null;\n      }\n    case ClassComponentLazy:\n      {\n        var _Component = workInProgress.type._reactResult;\n        if (isContextProvider(_Component)) {\n          popContext(workInProgress);\n        }\n        var _effectTag = workInProgress.effectTag;\n        if (_effectTag & ShouldCapture) {\n          workInProgress.effectTag = _effectTag & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        }\n        return null;\n      }\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var _effectTag2 = workInProgress.effectTag;\n        !((_effectTag2 & DidCapture) === NoEffect) ? invariant(false, 'The root failed to unmount after an error. This is likely a bug in React. Please file an issue.') : void 0;\n        workInProgress.effectTag = _effectTag2 & ~ShouldCapture | DidCapture;\n        return workInProgress;\n      }\n    case HostComponent:\n      {\n        popHostContext(workInProgress);\n        return null;\n      }\n    case PlaceholderComponent:\n      {\n        var _effectTag3 = workInProgress.effectTag;\n        if (_effectTag3 & ShouldCapture) {\n          workInProgress.effectTag = _effectTag3 & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        }\n        return null;\n      }\n    case HostPortal:\n      popHostContainer(workInProgress);\n      return null;\n    case ContextProvider:\n      popProvider(workInProgress);\n      return null;\n    default:\n      return null;\n  }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n  switch (interruptedWork.tag) {\n    case ClassComponent:\n      {\n        var childContextTypes = interruptedWork.type.childContextTypes;\n        if (childContextTypes !== null && childContextTypes !== undefined) {\n          popContext(interruptedWork);\n        }\n        break;\n      }\n    case ClassComponentLazy:\n      {\n        var _childContextTypes = interruptedWork.type._reactResult.childContextTypes;\n        if (_childContextTypes !== null && _childContextTypes !== undefined) {\n          popContext(interruptedWork);\n        }\n        break;\n      }\n    case HostRoot:\n      {\n        popHostContainer(interruptedWork);\n        popTopLevelContextObject(interruptedWork);\n        break;\n      }\n    case HostComponent:\n      {\n        popHostContext(interruptedWork);\n        break;\n      }\n    case HostPortal:\n      popHostContainer(interruptedWork);\n      break;\n    case ContextProvider:\n      popProvider(interruptedWork);\n      break;\n    default:\n      break;\n  }\n}\n\nvar Dispatcher = {\n  readContext: readContext\n};\n\nvar ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner;\n\n\nvar didWarnAboutStateTransition = void 0;\nvar didWarnSetStateChildContext = void 0;\nvar warnAboutUpdateOnUnmounted = void 0;\nvar warnAboutInvalidUpdates = void 0;\n\nif (enableSchedulerTracing) {\n  // Provide explicit error message when production+profiling bundle of e.g. react-dom\n  // is used with production (non-profiling) bundle of schedule/tracing\n  !(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null) ? invariant(false, 'It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `schedule/tracing` module with `schedule/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling') : void 0;\n}\n\n{\n  didWarnAboutStateTransition = false;\n  didWarnSetStateChildContext = false;\n  var didWarnStateUpdateForUnmountedComponent = {};\n\n  warnAboutUpdateOnUnmounted = function (fiber) {\n    // We show the whole stack but dedupe on the top component's name because\n    // the problematic code almost always lies inside that component.\n    var componentName = getComponentName(fiber.type) || 'ReactClass';\n    if (didWarnStateUpdateForUnmountedComponent[componentName]) {\n      return;\n    }\n    warningWithoutStack$1(false, \"Can't call setState (or forceUpdate) on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in the ' + 'componentWillUnmount method.%s', getStackByFiberInDevAndProd(fiber));\n    didWarnStateUpdateForUnmountedComponent[componentName] = true;\n  };\n\n  warnAboutInvalidUpdates = function (instance) {\n    switch (phase) {\n      case 'getChildContext':\n        if (didWarnSetStateChildContext) {\n          return;\n        }\n        warningWithoutStack$1(false, 'setState(...): Cannot call setState() inside getChildContext()');\n        didWarnSetStateChildContext = true;\n        break;\n      case 'render':\n        if (didWarnAboutStateTransition) {\n          return;\n        }\n        warningWithoutStack$1(false, 'Cannot update during an existing state transition (such as within ' + '`render`). Render methods should be a pure function of props and state.');\n        didWarnAboutStateTransition = true;\n        break;\n    }\n  };\n}\n\n// Used to ensure computeUniqueAsyncExpiration is monotonically increasing.\nvar lastUniqueAsyncExpiration = 0;\n\n// Represents the expiration time that incoming updates should use. (If this\n// is NoWork, use the default strategy: async updates in async mode, sync\n// updates in sync mode.)\nvar expirationContext = NoWork;\n\nvar isWorking = false;\n\n// The next work in progress fiber that we're currently working on.\nvar nextUnitOfWork = null;\nvar nextRoot = null;\n// The time at which we're currently rendering work.\nvar nextRenderExpirationTime = NoWork;\nvar nextLatestAbsoluteTimeoutMs = -1;\nvar nextRenderDidError = false;\n\n// The next fiber with an effect that we're currently committing.\nvar nextEffect = null;\n\nvar isCommitting$1 = false;\n\nvar legacyErrorBoundariesThatAlreadyFailed = null;\n\n// Used for performance tracking.\nvar interruptedBy = null;\n\n// Do not decrement interaction counts in the event of suspense timeouts.\n// This would lead to prematurely calling the interaction-complete hook.\nvar suspenseDidTimeout = false;\n\nvar stashedWorkInProgressProperties = void 0;\nvar replayUnitOfWork = void 0;\nvar isReplayingFailedUnitOfWork = void 0;\nvar originalReplayError = void 0;\nvar rethrowOriginalError = void 0;\nif (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {\n  stashedWorkInProgressProperties = null;\n  isReplayingFailedUnitOfWork = false;\n  originalReplayError = null;\n  replayUnitOfWork = function (failedUnitOfWork, thrownValue, isYieldy) {\n    if (thrownValue !== null && typeof thrownValue === 'object' && typeof thrownValue.then === 'function') {\n      // Don't replay promises. Treat everything else like an error.\n      // TODO: Need to figure out a different strategy if/when we add\n      // support for catching other types.\n      return;\n    }\n\n    // Restore the original state of the work-in-progress\n    if (stashedWorkInProgressProperties === null) {\n      // This should never happen. Don't throw because this code is DEV-only.\n      warningWithoutStack$1(false, 'Could not replay rendering after an error. This is likely a bug in React. ' + 'Please file an issue.');\n      return;\n    }\n    assignFiberPropertiesInDEV(failedUnitOfWork, stashedWorkInProgressProperties);\n\n    switch (failedUnitOfWork.tag) {\n      case HostRoot:\n        popHostContainer(failedUnitOfWork);\n        popTopLevelContextObject(failedUnitOfWork);\n        break;\n      case HostComponent:\n        popHostContext(failedUnitOfWork);\n        break;\n      case ClassComponent:\n        {\n          var Component = failedUnitOfWork.type;\n          if (isContextProvider(Component)) {\n            popContext(failedUnitOfWork);\n          }\n          break;\n        }\n      case ClassComponentLazy:\n        {\n          var _Component = getResultFromResolvedThenable(failedUnitOfWork.type);\n          if (isContextProvider(_Component)) {\n            popContext(failedUnitOfWork);\n          }\n          break;\n        }\n      case HostPortal:\n        popHostContainer(failedUnitOfWork);\n        break;\n      case ContextProvider:\n        popProvider(failedUnitOfWork);\n        break;\n    }\n    // Replay the begin phase.\n    isReplayingFailedUnitOfWork = true;\n    originalReplayError = thrownValue;\n    invokeGuardedCallback(null, workLoop, null, isYieldy);\n    isReplayingFailedUnitOfWork = false;\n    originalReplayError = null;\n    if (hasCaughtError()) {\n      var replayError = clearCaughtError();\n      if (replayError != null && thrownValue != null) {\n        try {\n          // Reading the expando property is intentionally\n          // inside `try` because it might be a getter or Proxy.\n          if (replayError._suppressLogging) {\n            // Also suppress logging for the original error.\n            thrownValue._suppressLogging = true;\n          }\n        } catch (inner) {\n          // Ignore.\n        }\n      }\n    } else {\n      // If the begin phase did not fail the second time, set this pointer\n      // back to the original value.\n      nextUnitOfWork = failedUnitOfWork;\n    }\n  };\n  rethrowOriginalError = function () {\n    throw originalReplayError;\n  };\n}\n\nfunction resetStack() {\n  if (nextUnitOfWork !== null) {\n    var interruptedWork = nextUnitOfWork.return;\n    while (interruptedWork !== null) {\n      unwindInterruptedWork(interruptedWork);\n      interruptedWork = interruptedWork.return;\n    }\n  }\n\n  {\n    ReactStrictModeWarnings.discardPendingWarnings();\n    checkThatStackIsEmpty();\n  }\n\n  nextRoot = null;\n  nextRenderExpirationTime = NoWork;\n  nextLatestAbsoluteTimeoutMs = -1;\n  nextRenderDidError = false;\n  nextUnitOfWork = null;\n}\n\nfunction commitAllHostEffects() {\n  while (nextEffect !== null) {\n    {\n      setCurrentFiber(nextEffect);\n    }\n    recordEffect();\n\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & ContentReset) {\n      commitResetTextContent(nextEffect);\n    }\n\n    if (effectTag & Ref) {\n      var current$$1 = nextEffect.alternate;\n      if (current$$1 !== null) {\n        commitDetachRef(current$$1);\n      }\n    }\n\n    // The following switch statement is only concerned about placement,\n    // updates, and deletions. To avoid needing to add a case for every\n    // possible bitmap value, we remove the secondary effects from the\n    // effect tag and switch on that value.\n    var primaryEffectTag = effectTag & (Placement | Update | Deletion);\n    switch (primaryEffectTag) {\n      case Placement:\n        {\n          commitPlacement(nextEffect);\n          // Clear the \"placement\" from effect tag so that we know that this is inserted, before\n          // any life-cycles like componentDidMount gets called.\n          // TODO: findDOMNode doesn't rely on this any more but isMounted\n          // does and isMounted is deprecated anyway so we should be able\n          // to kill this.\n          nextEffect.effectTag &= ~Placement;\n          break;\n        }\n      case PlacementAndUpdate:\n        {\n          // Placement\n          commitPlacement(nextEffect);\n          // Clear the \"placement\" from effect tag so that we know that this is inserted, before\n          // any life-cycles like componentDidMount gets called.\n          nextEffect.effectTag &= ~Placement;\n\n          // Update\n          var _current = nextEffect.alternate;\n          commitWork(_current, nextEffect);\n          break;\n        }\n      case Update:\n        {\n          var _current2 = nextEffect.alternate;\n          commitWork(_current2, nextEffect);\n          break;\n        }\n      case Deletion:\n        {\n          commitDeletion(nextEffect);\n          break;\n        }\n    }\n    nextEffect = nextEffect.nextEffect;\n  }\n\n  {\n    resetCurrentFiber();\n  }\n}\n\nfunction commitBeforeMutationLifecycles() {\n  while (nextEffect !== null) {\n    {\n      setCurrentFiber(nextEffect);\n    }\n\n    var effectTag = nextEffect.effectTag;\n    if (effectTag & Snapshot) {\n      recordEffect();\n      var current$$1 = nextEffect.alternate;\n      commitBeforeMutationLifeCycles(current$$1, nextEffect);\n    }\n\n    // Don't cleanup effects yet;\n    // This will be done by commitAllLifeCycles()\n    nextEffect = nextEffect.nextEffect;\n  }\n\n  {\n    resetCurrentFiber();\n  }\n}\n\nfunction commitAllLifeCycles(finishedRoot, committedExpirationTime) {\n  {\n    ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n\n    if (warnAboutDeprecatedLifecycles) {\n      ReactStrictModeWarnings.flushPendingDeprecationWarnings();\n    }\n\n    if (warnAboutLegacyContextAPI) {\n      ReactStrictModeWarnings.flushLegacyContextWarning();\n    }\n  }\n  while (nextEffect !== null) {\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & (Update | Callback)) {\n      recordEffect();\n      var current$$1 = nextEffect.alternate;\n      commitLifeCycles(finishedRoot, current$$1, nextEffect, committedExpirationTime);\n    }\n\n    if (effectTag & Ref) {\n      recordEffect();\n      commitAttachRef(nextEffect);\n    }\n\n    var next = nextEffect.nextEffect;\n    // Ensure that we clean these up so that we don't accidentally keep them.\n    // I'm not actually sure this matters because we can't reset firstEffect\n    // and lastEffect since they're on every node, not just the effectful\n    // ones. So we have to clean everything as we reuse nodes anyway.\n    nextEffect.nextEffect = null;\n    // Ensure that we reset the effectTag here so that we can rely on effect\n    // tags to reason about the current life-cycle.\n    nextEffect = next;\n  }\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n  return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\n\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n  if (legacyErrorBoundariesThatAlreadyFailed === null) {\n    legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n  } else {\n    legacyErrorBoundariesThatAlreadyFailed.add(instance);\n  }\n}\n\nfunction commitRoot(root, finishedWork) {\n  isWorking = true;\n  isCommitting$1 = true;\n  startCommitTimer();\n\n  !(root.current !== finishedWork) ? invariant(false, 'Cannot commit the same tree as before. This is probably a bug related to the return field. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  var committedExpirationTime = root.pendingCommitExpirationTime;\n  !(committedExpirationTime !== NoWork) ? invariant(false, 'Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  root.pendingCommitExpirationTime = NoWork;\n\n  // Update the pending priority levels to account for the work that we are\n  // about to commit. This needs to happen before calling the lifecycles, since\n  // they may schedule additional updates.\n  var updateExpirationTimeBeforeCommit = finishedWork.expirationTime;\n  var childExpirationTimeBeforeCommit = finishedWork.childExpirationTime;\n  var earliestRemainingTimeBeforeCommit = updateExpirationTimeBeforeCommit === NoWork || childExpirationTimeBeforeCommit !== NoWork && childExpirationTimeBeforeCommit < updateExpirationTimeBeforeCommit ? childExpirationTimeBeforeCommit : updateExpirationTimeBeforeCommit;\n  markCommittedPriorityLevels(root, earliestRemainingTimeBeforeCommit);\n\n  var prevInteractions = null;\n  var committedInteractions = enableSchedulerTracing ? [] : null;\n  if (enableSchedulerTracing) {\n    // Restore any pending interactions at this point,\n    // So that cascading work triggered during the render phase will be accounted for.\n    prevInteractions = tracing.__interactionsRef.current;\n    tracing.__interactionsRef.current = root.memoizedInteractions;\n\n    // We are potentially finished with the current batch of interactions.\n    // So we should clear them out of the pending interaction map.\n    // We do this at the start of commit in case cascading work is scheduled by commit phase lifecycles.\n    // In that event, interaction data may be added back into the pending map for a future commit.\n    // We also store the interactions we are about to commit so that we can notify subscribers after we're done.\n    // These are stored as an Array rather than a Set,\n    // Because the same interaction may be pending for multiple expiration times,\n    // In which case it's important that we decrement the count the right number of times after finishing.\n    root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n      if (scheduledExpirationTime <= committedExpirationTime) {\n        committedInteractions.push.apply(committedInteractions, Array.from(scheduledInteractions));\n        root.pendingInteractionMap.delete(scheduledExpirationTime);\n      }\n    });\n  }\n\n  // Reset this to null before calling lifecycles\n  ReactCurrentOwner$2.current = null;\n\n  var firstEffect = void 0;\n  if (finishedWork.effectTag > PerformedWork) {\n    // A fiber's effect list consists only of its children, not itself. So if\n    // the root has an effect, we need to add it to the end of the list. The\n    // resulting list is the set that would belong to the root's parent, if\n    // it had one; that is, all the effects in the tree including the root.\n    if (finishedWork.lastEffect !== null) {\n      finishedWork.lastEffect.nextEffect = finishedWork;\n      firstEffect = finishedWork.firstEffect;\n    } else {\n      firstEffect = finishedWork;\n    }\n  } else {\n    // There is no effect on the root.\n    firstEffect = finishedWork.firstEffect;\n  }\n\n  prepareForCommit(root.containerInfo);\n\n  // Invoke instances of getSnapshotBeforeUpdate before mutation.\n  nextEffect = firstEffect;\n  startCommitSnapshotEffectsTimer();\n  while (nextEffect !== null) {\n    var didError = false;\n    var error = void 0;\n    {\n      invokeGuardedCallback(null, commitBeforeMutationLifecycles, null);\n      if (hasCaughtError()) {\n        didError = true;\n        error = clearCaughtError();\n      }\n    }\n    if (didError) {\n      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n      captureCommitPhaseError(nextEffect, error);\n      // Clean-up\n      if (nextEffect !== null) {\n        nextEffect = nextEffect.nextEffect;\n      }\n    }\n  }\n  stopCommitSnapshotEffectsTimer();\n\n  if (enableProfilerTimer) {\n    // Mark the current commit time to be shared by all Profilers in this batch.\n    // This enables them to be grouped later.\n    recordCommitTime();\n  }\n\n  // Commit all the side-effects within a tree. We'll do this in two passes.\n  // The first pass performs all the host insertions, updates, deletions and\n  // ref unmounts.\n  nextEffect = firstEffect;\n  startCommitHostEffectsTimer();\n  while (nextEffect !== null) {\n    var _didError = false;\n    var _error = void 0;\n    {\n      invokeGuardedCallback(null, commitAllHostEffects, null);\n      if (hasCaughtError()) {\n        _didError = true;\n        _error = clearCaughtError();\n      }\n    }\n    if (_didError) {\n      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n      captureCommitPhaseError(nextEffect, _error);\n      // Clean-up\n      if (nextEffect !== null) {\n        nextEffect = nextEffect.nextEffect;\n      }\n    }\n  }\n  stopCommitHostEffectsTimer();\n\n  resetAfterCommit(root.containerInfo);\n\n  // The work-in-progress tree is now the current tree. This must come after\n  // the first pass of the commit phase, so that the previous tree is still\n  // current during componentWillUnmount, but before the second pass, so that\n  // the finished work is current during componentDidMount/Update.\n  root.current = finishedWork;\n\n  // In the second pass we'll perform all life-cycles and ref callbacks.\n  // Life-cycles happen as a separate pass so that all placements, updates,\n  // and deletions in the entire tree have already been invoked.\n  // This pass also triggers any renderer-specific initial effects.\n  nextEffect = firstEffect;\n  startCommitLifeCyclesTimer();\n  while (nextEffect !== null) {\n    var _didError2 = false;\n    var _error2 = void 0;\n    {\n      invokeGuardedCallback(null, commitAllLifeCycles, null, root, committedExpirationTime);\n      if (hasCaughtError()) {\n        _didError2 = true;\n        _error2 = clearCaughtError();\n      }\n    }\n    if (_didError2) {\n      !(nextEffect !== null) ? invariant(false, 'Should have next effect. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n      captureCommitPhaseError(nextEffect, _error2);\n      if (nextEffect !== null) {\n        nextEffect = nextEffect.nextEffect;\n      }\n    }\n  }\n\n  isCommitting$1 = false;\n  isWorking = false;\n  stopCommitLifeCyclesTimer();\n  stopCommitTimer();\n  onCommitRoot(finishedWork.stateNode);\n  if (true && ReactFiberInstrumentation_1.debugTool) {\n    ReactFiberInstrumentation_1.debugTool.onCommitWork(finishedWork);\n  }\n\n  var updateExpirationTimeAfterCommit = finishedWork.expirationTime;\n  var childExpirationTimeAfterCommit = finishedWork.childExpirationTime;\n  var earliestRemainingTimeAfterCommit = updateExpirationTimeAfterCommit === NoWork || childExpirationTimeAfterCommit !== NoWork && childExpirationTimeAfterCommit < updateExpirationTimeAfterCommit ? childExpirationTimeAfterCommit : updateExpirationTimeAfterCommit;\n  if (earliestRemainingTimeAfterCommit === NoWork) {\n    // If there's no remaining work, we can clear the set of already failed\n    // error boundaries.\n    legacyErrorBoundariesThatAlreadyFailed = null;\n  }\n  onCommit(root, earliestRemainingTimeAfterCommit);\n\n  if (enableSchedulerTracing) {\n    tracing.__interactionsRef.current = prevInteractions;\n\n    var subscriber = void 0;\n\n    try {\n      subscriber = tracing.__subscriberRef.current;\n      if (subscriber !== null && root.memoizedInteractions.size > 0) {\n        var threadID = computeThreadID(committedExpirationTime, root.interactionThreadID);\n        subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n      }\n    } catch (error) {\n      // It's not safe for commitRoot() to throw.\n      // Store the error for now and we'll re-throw in finishRendering().\n      if (!hasUnhandledError) {\n        hasUnhandledError = true;\n        unhandledError = error;\n      }\n    } finally {\n      // Don't update interaction counts if we're frozen due to suspense.\n      // In this case, we can skip the completed-work check entirely.\n      if (!suspenseDidTimeout) {\n        // Now that we're done, check the completed batch of interactions.\n        // If no more work is outstanding for a given interaction,\n        // We need to notify the subscribers that it's finished.\n        committedInteractions.forEach(function (interaction) {\n          interaction.__count--;\n          if (subscriber !== null && interaction.__count === 0) {\n            try {\n              subscriber.onInteractionScheduledWorkCompleted(interaction);\n            } catch (error) {\n              // It's not safe for commitRoot() to throw.\n              // Store the error for now and we'll re-throw in finishRendering().\n              if (!hasUnhandledError) {\n                hasUnhandledError = true;\n                unhandledError = error;\n              }\n            }\n          }\n        });\n      }\n    }\n  }\n}\n\nfunction resetChildExpirationTime(workInProgress, renderTime) {\n  if (renderTime !== Never && workInProgress.childExpirationTime === Never) {\n    // The children of this component are hidden. Don't bubble their\n    // expiration times.\n    return;\n  }\n\n  var newChildExpirationTime = NoWork;\n\n  // Bubble up the earliest expiration time.\n  if (enableProfilerTimer && workInProgress.mode & ProfileMode) {\n    // We're in profiling mode.\n    // Let's use this same traversal to update the render durations.\n    var actualDuration = workInProgress.actualDuration;\n    var treeBaseDuration = workInProgress.selfBaseDuration;\n\n    // When a fiber is cloned, its actualDuration is reset to 0.\n    // This value will only be updated if work is done on the fiber (i.e. it doesn't bailout).\n    // When work is done, it should bubble to the parent's actualDuration.\n    // If the fiber has not been cloned though, (meaning no work was done),\n    // Then this value will reflect the amount of time spent working on a previous render.\n    // In that case it should not bubble.\n    // We determine whether it was cloned by comparing the child pointer.\n    var shouldBubbleActualDurations = workInProgress.alternate === null || workInProgress.child !== workInProgress.alternate.child;\n\n    var child = workInProgress.child;\n    while (child !== null) {\n      var childUpdateExpirationTime = child.expirationTime;\n      var childChildExpirationTime = child.childExpirationTime;\n      if (newChildExpirationTime === NoWork || childUpdateExpirationTime !== NoWork && childUpdateExpirationTime < newChildExpirationTime) {\n        newChildExpirationTime = childUpdateExpirationTime;\n      }\n      if (newChildExpirationTime === NoWork || childChildExpirationTime !== NoWork && childChildExpirationTime < newChildExpirationTime) {\n        newChildExpirationTime = childChildExpirationTime;\n      }\n      if (shouldBubbleActualDurations) {\n        actualDuration += child.actualDuration;\n      }\n      treeBaseDuration += child.treeBaseDuration;\n      child = child.sibling;\n    }\n    workInProgress.actualDuration = actualDuration;\n    workInProgress.treeBaseDuration = treeBaseDuration;\n  } else {\n    var _child = workInProgress.child;\n    while (_child !== null) {\n      var _childUpdateExpirationTime = _child.expirationTime;\n      var _childChildExpirationTime = _child.childExpirationTime;\n      if (newChildExpirationTime === NoWork || _childUpdateExpirationTime !== NoWork && _childUpdateExpirationTime < newChildExpirationTime) {\n        newChildExpirationTime = _childUpdateExpirationTime;\n      }\n      if (newChildExpirationTime === NoWork || _childChildExpirationTime !== NoWork && _childChildExpirationTime < newChildExpirationTime) {\n        newChildExpirationTime = _childChildExpirationTime;\n      }\n      _child = _child.sibling;\n    }\n  }\n\n  workInProgress.childExpirationTime = newChildExpirationTime;\n}\n\nfunction completeUnitOfWork(workInProgress) {\n  // Attempt to complete the current unit of work, then move to the\n  // next sibling. If there are no more siblings, return to the\n  // parent fiber.\n  while (true) {\n    // The current, flushed, state of this fiber is the alternate.\n    // Ideally nothing should rely on this, but relying on it here\n    // means that we don't need an additional field on the work in\n    // progress.\n    var current$$1 = workInProgress.alternate;\n    {\n      setCurrentFiber(workInProgress);\n    }\n\n    var returnFiber = workInProgress.return;\n    var siblingFiber = workInProgress.sibling;\n\n    if ((workInProgress.effectTag & Incomplete) === NoEffect) {\n      // This fiber completed.\n      if (enableProfilerTimer) {\n        if (workInProgress.mode & ProfileMode) {\n          startProfilerTimer(workInProgress);\n        }\n\n        nextUnitOfWork = completeWork(current$$1, workInProgress, nextRenderExpirationTime);\n\n        if (workInProgress.mode & ProfileMode) {\n          // Update render duration assuming we didn't error.\n          stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);\n        }\n      } else {\n        nextUnitOfWork = completeWork(current$$1, workInProgress, nextRenderExpirationTime);\n      }\n      var next = nextUnitOfWork;\n      stopWorkTimer(workInProgress);\n      resetChildExpirationTime(workInProgress, nextRenderExpirationTime);\n      {\n        resetCurrentFiber();\n      }\n\n      if (next !== null) {\n        stopWorkTimer(workInProgress);\n        if (true && ReactFiberInstrumentation_1.debugTool) {\n          ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n        }\n        // If completing this work spawned new work, do that next. We'll come\n        // back here again.\n        return next;\n      }\n\n      if (returnFiber !== null &&\n      // Do not append effects to parents if a sibling failed to complete\n      (returnFiber.effectTag & Incomplete) === NoEffect) {\n        // Append all the effects of the subtree and this fiber onto the effect\n        // list of the parent. The completion order of the children affects the\n        // side-effect order.\n        if (returnFiber.firstEffect === null) {\n          returnFiber.firstEffect = workInProgress.firstEffect;\n        }\n        if (workInProgress.lastEffect !== null) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress.firstEffect;\n          }\n          returnFiber.lastEffect = workInProgress.lastEffect;\n        }\n\n        // If this fiber had side-effects, we append it AFTER the children's\n        // side-effects. We can perform certain side-effects earlier if\n        // needed, by doing multiple passes over the effect list. We don't want\n        // to schedule our own side-effect on our own list because if end up\n        // reusing children we'll schedule this effect onto itself since we're\n        // at the end.\n        var effectTag = workInProgress.effectTag;\n        // Skip both NoWork and PerformedWork tags when creating the effect list.\n        // PerformedWork effect is read by React DevTools but shouldn't be committed.\n        if (effectTag > PerformedWork) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress;\n          } else {\n            returnFiber.firstEffect = workInProgress;\n          }\n          returnFiber.lastEffect = workInProgress;\n        }\n      }\n\n      if (true && ReactFiberInstrumentation_1.debugTool) {\n        ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n      }\n\n      if (siblingFiber !== null) {\n        // If there is more work to do in this returnFiber, do that next.\n        return siblingFiber;\n      } else if (returnFiber !== null) {\n        // If there's no more work in this returnFiber. Complete the returnFiber.\n        workInProgress = returnFiber;\n        continue;\n      } else {\n        // We've reached the root.\n        return null;\n      }\n    } else {\n      if (workInProgress.mode & ProfileMode) {\n        // Record the render duration for the fiber that errored.\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);\n      }\n\n      // This fiber did not complete because something threw. Pop values off\n      // the stack without entering the complete phase. If this is a boundary,\n      // capture values if possible.\n      var _next = unwindWork(workInProgress, nextRenderExpirationTime);\n      // Because this fiber did not complete, don't reset its expiration time.\n      if (workInProgress.effectTag & DidCapture) {\n        // Restarting an error boundary\n        stopFailedWorkTimer(workInProgress);\n      } else {\n        stopWorkTimer(workInProgress);\n      }\n\n      {\n        resetCurrentFiber();\n      }\n\n      if (_next !== null) {\n        stopWorkTimer(workInProgress);\n        if (true && ReactFiberInstrumentation_1.debugTool) {\n          ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n        }\n\n        if (enableProfilerTimer) {\n          // Include the time spent working on failed children before continuing.\n          if (_next.mode & ProfileMode) {\n            var actualDuration = _next.actualDuration;\n            var child = _next.child;\n            while (child !== null) {\n              actualDuration += child.actualDuration;\n              child = child.sibling;\n            }\n            _next.actualDuration = actualDuration;\n          }\n        }\n\n        // If completing this work spawned new work, do that next. We'll come\n        // back here again.\n        // Since we're restarting, remove anything that is not a host effect\n        // from the effect tag.\n        _next.effectTag &= HostEffectMask;\n        return _next;\n      }\n\n      if (returnFiber !== null) {\n        // Mark the parent fiber as incomplete and clear its effect list.\n        returnFiber.firstEffect = returnFiber.lastEffect = null;\n        returnFiber.effectTag |= Incomplete;\n      }\n\n      if (true && ReactFiberInstrumentation_1.debugTool) {\n        ReactFiberInstrumentation_1.debugTool.onCompleteWork(workInProgress);\n      }\n\n      if (siblingFiber !== null) {\n        // If there is more work to do in this returnFiber, do that next.\n        return siblingFiber;\n      } else if (returnFiber !== null) {\n        // If there's no more work in this returnFiber. Complete the returnFiber.\n        workInProgress = returnFiber;\n        continue;\n      } else {\n        return null;\n      }\n    }\n  }\n\n  // Without this explicit null return Flow complains of invalid return type\n  // TODO Remove the above while(true) loop\n  // eslint-disable-next-line no-unreachable\n  return null;\n}\n\nfunction performUnitOfWork(workInProgress) {\n  // The current, flushed, state of this fiber is the alternate.\n  // Ideally nothing should rely on this, but relying on it here\n  // means that we don't need an additional field on the work in\n  // progress.\n  var current$$1 = workInProgress.alternate;\n\n  // See if beginning this work spawns more work.\n  startWorkTimer(workInProgress);\n  {\n    setCurrentFiber(workInProgress);\n  }\n\n  if (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {\n    stashedWorkInProgressProperties = assignFiberPropertiesInDEV(stashedWorkInProgressProperties, workInProgress);\n  }\n\n  var next = void 0;\n  if (enableProfilerTimer) {\n    if (workInProgress.mode & ProfileMode) {\n      startProfilerTimer(workInProgress);\n    }\n\n    next = beginWork(current$$1, workInProgress, nextRenderExpirationTime);\n\n    if (workInProgress.mode & ProfileMode) {\n      // Record the render duration assuming we didn't bailout (or error).\n      stopProfilerTimerIfRunningAndRecordDelta(workInProgress, true);\n    }\n  } else {\n    next = beginWork(current$$1, workInProgress, nextRenderExpirationTime);\n  }\n\n  {\n    resetCurrentFiber();\n    if (isReplayingFailedUnitOfWork) {\n      // Currently replaying a failed unit of work. This should be unreachable,\n      // because the render phase is meant to be idempotent, and it should\n      // have thrown again. Since it didn't, rethrow the original error, so\n      // React's internal stack is not misaligned.\n      rethrowOriginalError();\n    }\n  }\n  if (true && ReactFiberInstrumentation_1.debugTool) {\n    ReactFiberInstrumentation_1.debugTool.onBeginWork(workInProgress);\n  }\n\n  if (next === null) {\n    // If this doesn't spawn new work, complete the current work.\n    next = completeUnitOfWork(workInProgress);\n  }\n\n  ReactCurrentOwner$2.current = null;\n\n  return next;\n}\n\nfunction workLoop(isYieldy) {\n  if (!isYieldy) {\n    // Flush work without yielding\n    while (nextUnitOfWork !== null) {\n      nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n    }\n  } else {\n    // Flush asynchronous work until the deadline runs out of time.\n    while (nextUnitOfWork !== null && !shouldYield()) {\n      nextUnitOfWork = performUnitOfWork(nextUnitOfWork);\n    }\n  }\n}\n\nfunction renderRoot(root, isYieldy, isExpired) {\n  !!isWorking ? invariant(false, 'renderRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  isWorking = true;\n  ReactCurrentOwner$2.currentDispatcher = Dispatcher;\n\n  var expirationTime = root.nextExpirationTimeToWorkOn;\n\n  var prevInteractions = null;\n  if (enableSchedulerTracing) {\n    // We're about to start new traced work.\n    // Restore pending interactions so cascading work triggered during the render phase will be accounted for.\n    prevInteractions = tracing.__interactionsRef.current;\n    tracing.__interactionsRef.current = root.memoizedInteractions;\n  }\n\n  // Check if we're starting from a fresh stack, or if we're resuming from\n  // previously yielded work.\n  if (expirationTime !== nextRenderExpirationTime || root !== nextRoot || nextUnitOfWork === null) {\n    // Reset the stack and start working from the root.\n    resetStack();\n    nextRoot = root;\n    nextRenderExpirationTime = expirationTime;\n    nextUnitOfWork = createWorkInProgress(nextRoot.current, null, nextRenderExpirationTime);\n    root.pendingCommitExpirationTime = NoWork;\n\n    if (enableSchedulerTracing) {\n      // Determine which interactions this batch of work currently includes,\n      // So that we can accurately attribute time spent working on it,\n      var interactions = new Set();\n      root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n        if (scheduledExpirationTime <= expirationTime) {\n          scheduledInteractions.forEach(function (interaction) {\n            return interactions.add(interaction);\n          });\n        }\n      });\n\n      // Store the current set of interactions on the FiberRoot for a few reasons:\n      // We can re-use it in hot functions like renderRoot() without having to recalculate it.\n      // We will also use it in commitWork() to pass to any Profiler onRender() hooks.\n      // This also provides DevTools with a way to access it when the onCommitRoot() hook is called.\n      root.memoizedInteractions = interactions;\n\n      if (interactions.size > 0) {\n        var subscriber = tracing.__subscriberRef.current;\n        if (subscriber !== null) {\n          var threadID = computeThreadID(expirationTime, root.interactionThreadID);\n          try {\n            subscriber.onWorkStarted(interactions, threadID);\n          } catch (error) {\n            // Work thrown by an interaction tracing subscriber should be rethrown,\n            // But only once it's safe (to avoid leaveing the scheduler in an invalid state).\n            // Store the error for now and we'll re-throw in finishRendering().\n            if (!hasUnhandledError) {\n              hasUnhandledError = true;\n              unhandledError = error;\n            }\n          }\n        }\n      }\n    }\n  }\n\n  var didFatal = false;\n\n  startWorkLoopTimer(nextUnitOfWork);\n\n  do {\n    try {\n      workLoop(isYieldy);\n    } catch (thrownValue) {\n      if (nextUnitOfWork === null) {\n        // This is a fatal error.\n        didFatal = true;\n        onUncaughtError(thrownValue);\n      } else {\n        {\n          // Reset global debug state\n          // We assume this is defined in DEV\n          resetCurrentlyProcessingQueue();\n        }\n\n        var failedUnitOfWork = nextUnitOfWork;\n        if (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {\n          replayUnitOfWork(failedUnitOfWork, thrownValue, isYieldy);\n        }\n\n        // TODO: we already know this isn't true in some cases.\n        // At least this shows a nicer error message until we figure out the cause.\n        // https://github.com/facebook/react/issues/12449#issuecomment-386727431\n        !(nextUnitOfWork !== null) ? invariant(false, 'Failed to replay rendering after an error. This is likely caused by a bug in React. Please file an issue with a reproducing case to help us find it.') : void 0;\n\n        var sourceFiber = nextUnitOfWork;\n        var returnFiber = sourceFiber.return;\n        if (returnFiber === null) {\n          // This is the root. The root could capture its own errors. However,\n          // we don't know if it errors before or after we pushed the host\n          // context. This information is needed to avoid a stack mismatch.\n          // Because we're not sure, treat this as a fatal error. We could track\n          // which phase it fails in, but doesn't seem worth it. At least\n          // for now.\n          didFatal = true;\n          onUncaughtError(thrownValue);\n        } else {\n          throwException(root, returnFiber, sourceFiber, thrownValue, nextRenderExpirationTime);\n          nextUnitOfWork = completeUnitOfWork(sourceFiber);\n          continue;\n        }\n      }\n    }\n    break;\n  } while (true);\n\n  if (enableSchedulerTracing) {\n    // Traced work is done for now; restore the previous interactions.\n    tracing.__interactionsRef.current = prevInteractions;\n  }\n\n  // We're done performing work. Time to clean up.\n  isWorking = false;\n  ReactCurrentOwner$2.currentDispatcher = null;\n  resetContextDependences();\n\n  // Yield back to main thread.\n  if (didFatal) {\n    var _didCompleteRoot = false;\n    stopWorkLoopTimer(interruptedBy, _didCompleteRoot);\n    interruptedBy = null;\n    // There was a fatal error.\n    {\n      resetStackAfterFatalErrorInDev();\n    }\n    // `nextRoot` points to the in-progress root. A non-null value indicates\n    // that we're in the middle of an async render. Set it to null to indicate\n    // there's no more work to be done in the current batch.\n    nextRoot = null;\n    onFatal(root);\n    return;\n  }\n\n  if (nextUnitOfWork !== null) {\n    // There's still remaining async work in this tree, but we ran out of time\n    // in the current frame. Yield back to the renderer. Unless we're\n    // interrupted by a higher priority update, we'll continue later from where\n    // we left off.\n    var _didCompleteRoot2 = false;\n    stopWorkLoopTimer(interruptedBy, _didCompleteRoot2);\n    interruptedBy = null;\n    onYield(root);\n    return;\n  }\n\n  // We completed the whole tree.\n  var didCompleteRoot = true;\n  stopWorkLoopTimer(interruptedBy, didCompleteRoot);\n  var rootWorkInProgress = root.current.alternate;\n  !(rootWorkInProgress !== null) ? invariant(false, 'Finished root should have a work-in-progress. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  // `nextRoot` points to the in-progress root. A non-null value indicates\n  // that we're in the middle of an async render. Set it to null to indicate\n  // there's no more work to be done in the current batch.\n  nextRoot = null;\n  interruptedBy = null;\n\n  if (nextRenderDidError) {\n    // There was an error\n    if (hasLowerPriorityWork(root, expirationTime)) {\n      // There's lower priority work. If so, it may have the effect of fixing\n      // the exception that was just thrown. Exit without committing. This is\n      // similar to a suspend, but without a timeout because we're not waiting\n      // for a promise to resolve. React will restart at the lower\n      // priority level.\n      markSuspendedPriorityLevel(root, expirationTime);\n      var suspendedExpirationTime = expirationTime;\n      var rootExpirationTime = root.expirationTime;\n      onSuspend(root, rootWorkInProgress, suspendedExpirationTime, rootExpirationTime, -1 // Indicates no timeout\n      );\n      return;\n    } else if (\n    // There's no lower priority work, but we're rendering asynchronously.\n    // Synchronsouly attempt to render the same level one more time. This is\n    // similar to a suspend, but without a timeout because we're not waiting\n    // for a promise to resolve.\n    !root.didError && !isExpired) {\n      root.didError = true;\n      var _suspendedExpirationTime = root.nextExpirationTimeToWorkOn = expirationTime;\n      var _rootExpirationTime = root.expirationTime = Sync;\n      onSuspend(root, rootWorkInProgress, _suspendedExpirationTime, _rootExpirationTime, -1 // Indicates no timeout\n      );\n      return;\n    }\n  }\n\n  if (enableSuspense && !isExpired && nextLatestAbsoluteTimeoutMs !== -1) {\n    // The tree was suspended.\n    var _suspendedExpirationTime2 = expirationTime;\n    markSuspendedPriorityLevel(root, _suspendedExpirationTime2);\n\n    // Find the earliest uncommitted expiration time in the tree, including\n    // work that is suspended. The timeout threshold cannot be longer than\n    // the overall expiration.\n    var earliestExpirationTime = findEarliestOutstandingPriorityLevel(root, expirationTime);\n    var earliestExpirationTimeMs = expirationTimeToMs(earliestExpirationTime);\n    if (earliestExpirationTimeMs < nextLatestAbsoluteTimeoutMs) {\n      nextLatestAbsoluteTimeoutMs = earliestExpirationTimeMs;\n    }\n\n    // Subtract the current time from the absolute timeout to get the number\n    // of milliseconds until the timeout. In other words, convert an absolute\n    // timestamp to a relative time. This is the value that is passed\n    // to `setTimeout`.\n    var currentTimeMs = expirationTimeToMs(requestCurrentTime());\n    var msUntilTimeout = nextLatestAbsoluteTimeoutMs - currentTimeMs;\n    msUntilTimeout = msUntilTimeout < 0 ? 0 : msUntilTimeout;\n\n    // TODO: Account for the Just Noticeable Difference\n\n    var _rootExpirationTime2 = root.expirationTime;\n    onSuspend(root, rootWorkInProgress, _suspendedExpirationTime2, _rootExpirationTime2, msUntilTimeout);\n    return;\n  }\n\n  // Ready to commit.\n  onComplete(root, rootWorkInProgress, expirationTime);\n}\n\nfunction dispatch(sourceFiber, value, expirationTime) {\n  !(!isWorking || isCommitting$1) ? invariant(false, 'dispatch: Cannot dispatch during the render phase.') : void 0;\n\n  var fiber = sourceFiber.return;\n  while (fiber !== null) {\n    switch (fiber.tag) {\n      case ClassComponent:\n      case ClassComponentLazy:\n        var ctor = fiber.type;\n        var instance = fiber.stateNode;\n        if (typeof ctor.getDerivedStateFromCatch === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n          var errorInfo = createCapturedValue(value, sourceFiber);\n          var update = createClassErrorUpdate(fiber, errorInfo, expirationTime);\n          enqueueUpdate(fiber, update);\n          scheduleWork(fiber, expirationTime);\n          return;\n        }\n        break;\n      case HostRoot:\n        {\n          var _errorInfo = createCapturedValue(value, sourceFiber);\n          var _update = createRootErrorUpdate(fiber, _errorInfo, expirationTime);\n          enqueueUpdate(fiber, _update);\n          scheduleWork(fiber, expirationTime);\n          return;\n        }\n    }\n    fiber = fiber.return;\n  }\n\n  if (sourceFiber.tag === HostRoot) {\n    // Error was thrown at the root. There is no parent, so the root\n    // itself should capture it.\n    var rootFiber = sourceFiber;\n    var _errorInfo2 = createCapturedValue(value, rootFiber);\n    var _update2 = createRootErrorUpdate(rootFiber, _errorInfo2, expirationTime);\n    enqueueUpdate(rootFiber, _update2);\n    scheduleWork(rootFiber, expirationTime);\n  }\n}\n\nfunction captureCommitPhaseError(fiber, error) {\n  return dispatch(fiber, error, Sync);\n}\n\nfunction computeThreadID(expirationTime, interactionThreadID) {\n  // Interaction threads are unique per root and expiration time.\n  return expirationTime * 1000 + interactionThreadID;\n}\n\n// Creates a unique async expiration time.\nfunction computeUniqueAsyncExpiration() {\n  var currentTime = requestCurrentTime();\n  var result = computeAsyncExpiration(currentTime);\n  if (result <= lastUniqueAsyncExpiration) {\n    // Since we assume the current time monotonically increases, we only hit\n    // this branch when computeUniqueAsyncExpiration is fired multiple times\n    // within a 200ms window (or whatever the async bucket size is).\n    result = lastUniqueAsyncExpiration + 1;\n  }\n  lastUniqueAsyncExpiration = result;\n  return lastUniqueAsyncExpiration;\n}\n\nfunction computeExpirationForFiber(currentTime, fiber) {\n  var expirationTime = void 0;\n  if (expirationContext !== NoWork) {\n    // An explicit expiration context was set;\n    expirationTime = expirationContext;\n  } else if (isWorking) {\n    if (isCommitting$1) {\n      // Updates that occur during the commit phase should have sync priority\n      // by default.\n      expirationTime = Sync;\n    } else {\n      // Updates during the render phase should expire at the same time as\n      // the work that is being rendered.\n      expirationTime = nextRenderExpirationTime;\n    }\n  } else {\n    // No explicit expiration context was set, and we're not currently\n    // performing work. Calculate a new expiration time.\n    if (fiber.mode & AsyncMode) {\n      if (isBatchingInteractiveUpdates) {\n        // This is an interactive update\n        expirationTime = computeInteractiveExpiration(currentTime);\n      } else {\n        // This is an async update\n        expirationTime = computeAsyncExpiration(currentTime);\n      }\n      // If we're in the middle of rendering a tree, do not update at the same\n      // expiration time that is already rendering.\n      if (nextRoot !== null && expirationTime === nextRenderExpirationTime) {\n        expirationTime += 1;\n      }\n    } else {\n      // This is a sync update\n      expirationTime = Sync;\n    }\n  }\n  if (isBatchingInteractiveUpdates) {\n    // This is an interactive update. Keep track of the lowest pending\n    // interactive expiration time. This allows us to synchronously flush\n    // all interactive updates when needed.\n    if (lowestPriorityPendingInteractiveExpirationTime === NoWork || expirationTime > lowestPriorityPendingInteractiveExpirationTime) {\n      lowestPriorityPendingInteractiveExpirationTime = expirationTime;\n    }\n  }\n  return expirationTime;\n}\n\nfunction renderDidSuspend(root, absoluteTimeoutMs, suspendedTime) {\n  // Schedule the timeout.\n  if (absoluteTimeoutMs >= 0 && nextLatestAbsoluteTimeoutMs < absoluteTimeoutMs) {\n    nextLatestAbsoluteTimeoutMs = absoluteTimeoutMs;\n  }\n}\n\nfunction renderDidError() {\n  nextRenderDidError = true;\n}\n\nfunction retrySuspendedRoot(root, fiber, suspendedTime) {\n  if (enableSuspense) {\n    var retryTime = void 0;\n\n    if (isPriorityLevelSuspended(root, suspendedTime)) {\n      // Ping at the original level\n      retryTime = suspendedTime;\n      markPingedPriorityLevel(root, retryTime);\n    } else {\n      // Placeholder already timed out. Compute a new expiration time\n      var currentTime = requestCurrentTime();\n      retryTime = computeExpirationForFiber(currentTime, fiber);\n      markPendingPriorityLevel(root, retryTime);\n    }\n\n    scheduleWorkToRoot(fiber, retryTime);\n    var rootExpirationTime = root.expirationTime;\n    if (rootExpirationTime !== NoWork) {\n      if (enableSchedulerTracing) {\n        // Restore previous interactions so that new work is associated with them.\n        var prevInteractions = tracing.__interactionsRef.current;\n        tracing.__interactionsRef.current = root.memoizedInteractions;\n        // Because suspense timeouts do not decrement the interaction count,\n        // Continued suspense work should also not increment the count.\n        storeInteractionsForExpirationTime(root, rootExpirationTime, false);\n        requestWork(root, rootExpirationTime);\n        tracing.__interactionsRef.current = prevInteractions;\n      } else {\n        requestWork(root, rootExpirationTime);\n      }\n    }\n  }\n}\n\nfunction scheduleWorkToRoot(fiber, expirationTime) {\n  // Update the source fiber's expiration time\n  if (fiber.expirationTime === NoWork || fiber.expirationTime > expirationTime) {\n    fiber.expirationTime = expirationTime;\n  }\n  var alternate = fiber.alternate;\n  if (alternate !== null && (alternate.expirationTime === NoWork || alternate.expirationTime > expirationTime)) {\n    alternate.expirationTime = expirationTime;\n  }\n  // Walk the parent path to the root and update the child expiration time.\n  var node = fiber.return;\n  if (node === null && fiber.tag === HostRoot) {\n    return fiber.stateNode;\n  }\n  while (node !== null) {\n    alternate = node.alternate;\n    if (node.childExpirationTime === NoWork || node.childExpirationTime > expirationTime) {\n      node.childExpirationTime = expirationTime;\n      if (alternate !== null && (alternate.childExpirationTime === NoWork || alternate.childExpirationTime > expirationTime)) {\n        alternate.childExpirationTime = expirationTime;\n      }\n    } else if (alternate !== null && (alternate.childExpirationTime === NoWork || alternate.childExpirationTime > expirationTime)) {\n      alternate.childExpirationTime = expirationTime;\n    }\n    if (node.return === null && node.tag === HostRoot) {\n      return node.stateNode;\n    }\n    node = node.return;\n  }\n  return null;\n}\n\nfunction storeInteractionsForExpirationTime(root, expirationTime, updateInteractionCounts) {\n  if (!enableSchedulerTracing) {\n    return;\n  }\n\n  var interactions = tracing.__interactionsRef.current;\n  if (interactions.size > 0) {\n    var pendingInteractions = root.pendingInteractionMap.get(expirationTime);\n    if (pendingInteractions != null) {\n      interactions.forEach(function (interaction) {\n        if (updateInteractionCounts && !pendingInteractions.has(interaction)) {\n          // Update the pending async work count for previously unscheduled interaction.\n          interaction.__count++;\n        }\n\n        pendingInteractions.add(interaction);\n      });\n    } else {\n      root.pendingInteractionMap.set(expirationTime, new Set(interactions));\n\n      // Update the pending async work count for the current interactions.\n      if (updateInteractionCounts) {\n        interactions.forEach(function (interaction) {\n          interaction.__count++;\n        });\n      }\n    }\n\n    var subscriber = tracing.__subscriberRef.current;\n    if (subscriber !== null) {\n      var threadID = computeThreadID(expirationTime, root.interactionThreadID);\n      subscriber.onWorkScheduled(interactions, threadID);\n    }\n  }\n}\n\nfunction scheduleWork(fiber, expirationTime) {\n  recordScheduleUpdate();\n\n  {\n    if (fiber.tag === ClassComponent || fiber.tag === ClassComponentLazy) {\n      var instance = fiber.stateNode;\n      warnAboutInvalidUpdates(instance);\n    }\n  }\n\n  var root = scheduleWorkToRoot(fiber, expirationTime);\n  if (root === null) {\n    if (true && (fiber.tag === ClassComponent || fiber.tag === ClassComponentLazy)) {\n      warnAboutUpdateOnUnmounted(fiber);\n    }\n    return;\n  }\n\n  if (enableSchedulerTracing) {\n    storeInteractionsForExpirationTime(root, expirationTime, true);\n  }\n\n  if (!isWorking && nextRenderExpirationTime !== NoWork && expirationTime < nextRenderExpirationTime) {\n    // This is an interruption. (Used for performance tracking.)\n    interruptedBy = fiber;\n    resetStack();\n  }\n  markPendingPriorityLevel(root, expirationTime);\n  if (\n  // If we're in the render phase, we don't need to schedule this root\n  // for an update, because we'll do it before we exit...\n  !isWorking || isCommitting$1 ||\n  // ...unless this is a different root than the one we're rendering.\n  nextRoot !== root) {\n    var rootExpirationTime = root.expirationTime;\n    requestWork(root, rootExpirationTime);\n  }\n  if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n    // Reset this back to zero so subsequent updates don't throw.\n    nestedUpdateCount = 0;\n    invariant(false, 'Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.');\n  }\n}\n\nfunction syncUpdates(fn, a, b, c, d) {\n  var previousExpirationContext = expirationContext;\n  expirationContext = Sync;\n  try {\n    return fn(a, b, c, d);\n  } finally {\n    expirationContext = previousExpirationContext;\n  }\n}\n\n// TODO: Everything below this is written as if it has been lifted to the\n// renderers. I'll do this in a follow-up.\n\n// Linked-list of roots\nvar firstScheduledRoot = null;\nvar lastScheduledRoot = null;\n\nvar callbackExpirationTime = NoWork;\nvar callbackID = void 0;\nvar isRendering = false;\nvar nextFlushedRoot = null;\nvar nextFlushedExpirationTime = NoWork;\nvar lowestPriorityPendingInteractiveExpirationTime = NoWork;\nvar deadlineDidExpire = false;\nvar hasUnhandledError = false;\nvar unhandledError = null;\nvar deadline = null;\n\nvar isBatchingUpdates = false;\nvar isUnbatchingUpdates = false;\nvar isBatchingInteractiveUpdates = false;\n\nvar completedBatches = null;\n\nvar originalStartTimeMs = schedule.unstable_now();\nvar currentRendererTime = msToExpirationTime(originalStartTimeMs);\nvar currentSchedulerTime = currentRendererTime;\n\n// Use these to prevent an infinite loop of nested updates\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar lastCommittedRootDuringThisBatch = null;\n\nvar timeHeuristicForUnitOfWork = 1;\n\nfunction recomputeCurrentRendererTime() {\n  var currentTimeMs = schedule.unstable_now() - originalStartTimeMs;\n  currentRendererTime = msToExpirationTime(currentTimeMs);\n}\n\nfunction scheduleCallbackWithExpirationTime(root, expirationTime) {\n  if (callbackExpirationTime !== NoWork) {\n    // A callback is already scheduled. Check its expiration time (timeout).\n    if (expirationTime > callbackExpirationTime) {\n      // Existing callback has sufficient timeout. Exit.\n      return;\n    } else {\n      if (callbackID !== null) {\n        // Existing callback has insufficient timeout. Cancel and schedule a\n        // new one.\n        schedule.unstable_cancelScheduledWork(callbackID);\n      }\n    }\n    // The request callback timer is already running. Don't start a new one.\n  } else {\n    startRequestCallbackTimer();\n  }\n\n  callbackExpirationTime = expirationTime;\n  var currentMs = schedule.unstable_now() - originalStartTimeMs;\n  var expirationTimeMs = expirationTimeToMs(expirationTime);\n  var timeout = expirationTimeMs - currentMs;\n  callbackID = schedule.unstable_scheduleWork(performAsyncWork, { timeout: timeout });\n}\n\n// For every call to renderRoot, one of onFatal, onComplete, onSuspend, and\n// onYield is called upon exiting. We use these in lieu of returning a tuple.\n// I've also chosen not to inline them into renderRoot because these will\n// eventually be lifted into the renderer.\nfunction onFatal(root) {\n  root.finishedWork = null;\n}\n\nfunction onComplete(root, finishedWork, expirationTime) {\n  root.pendingCommitExpirationTime = expirationTime;\n  root.finishedWork = finishedWork;\n}\n\nfunction onSuspend(root, finishedWork, suspendedExpirationTime, rootExpirationTime, msUntilTimeout) {\n  root.expirationTime = rootExpirationTime;\n  if (enableSuspense && msUntilTimeout === 0 && !shouldYield()) {\n    // Don't wait an additional tick. Commit the tree immediately.\n    root.pendingCommitExpirationTime = suspendedExpirationTime;\n    root.finishedWork = finishedWork;\n  } else if (msUntilTimeout > 0) {\n    // Wait `msUntilTimeout` milliseconds before committing.\n    root.timeoutHandle = scheduleTimeout(onTimeout.bind(null, root, finishedWork, suspendedExpirationTime), msUntilTimeout);\n  }\n}\n\nfunction onYield(root) {\n  root.finishedWork = null;\n}\n\nfunction onTimeout(root, finishedWork, suspendedExpirationTime) {\n  if (enableSuspense) {\n    // The root timed out. Commit it.\n    root.pendingCommitExpirationTime = suspendedExpirationTime;\n    root.finishedWork = finishedWork;\n    // Read the current time before entering the commit phase. We can be\n    // certain this won't cause tearing related to batching of event updates\n    // because we're at the top of a timer event.\n    recomputeCurrentRendererTime();\n    currentSchedulerTime = currentRendererTime;\n\n    if (enableSchedulerTracing) {\n      // Don't update pending interaction counts for suspense timeouts,\n      // Because we know we still need to do more work in this case.\n      suspenseDidTimeout = true;\n      flushRoot(root, suspendedExpirationTime);\n      suspenseDidTimeout = false;\n    } else {\n      flushRoot(root, suspendedExpirationTime);\n    }\n  }\n}\n\nfunction onCommit(root, expirationTime) {\n  root.expirationTime = expirationTime;\n  root.finishedWork = null;\n}\n\nfunction requestCurrentTime() {\n  // requestCurrentTime is called by the scheduler to compute an expiration\n  // time.\n  //\n  // Expiration times are computed by adding to the current time (the start\n  // time). However, if two updates are scheduled within the same event, we\n  // should treat their start times as simultaneous, even if the actual clock\n  // time has advanced between the first and second call.\n\n  // In other words, because expiration times determine how updates are batched,\n  // we want all updates of like priority that occur within the same event to\n  // receive the same expiration time. Otherwise we get tearing.\n  //\n  // We keep track of two separate times: the current \"renderer\" time and the\n  // current \"scheduler\" time. The renderer time can be updated whenever; it\n  // only exists to minimize the calls performance.now.\n  //\n  // But the scheduler time can only be updated if there's no pending work, or\n  // if we know for certain that we're not in the middle of an event.\n\n  if (isRendering) {\n    // We're already rendering. Return the most recently read time.\n    return currentSchedulerTime;\n  }\n  // Check if there's pending work.\n  findHighestPriorityRoot();\n  if (nextFlushedExpirationTime === NoWork || nextFlushedExpirationTime === Never) {\n    // If there's no pending work, or if the pending work is offscreen, we can\n    // read the current time without risk of tearing.\n    recomputeCurrentRendererTime();\n    currentSchedulerTime = currentRendererTime;\n    return currentSchedulerTime;\n  }\n  // There's already pending work. We might be in the middle of a browser\n  // event. If we were to read the current time, it could cause multiple updates\n  // within the same event to receive different expiration times, leading to\n  // tearing. Return the last read time. During the next idle callback, the\n  // time will be updated.\n  return currentSchedulerTime;\n}\n\n// requestWork is called by the scheduler whenever a root receives an update.\n// It's up to the renderer to call renderRoot at some point in the future.\nfunction requestWork(root, expirationTime) {\n  addRootToSchedule(root, expirationTime);\n  if (isRendering) {\n    // Prevent reentrancy. Remaining work will be scheduled at the end of\n    // the currently rendering batch.\n    return;\n  }\n\n  if (isBatchingUpdates) {\n    // Flush work at the end of the batch.\n    if (isUnbatchingUpdates) {\n      // ...unless we're inside unbatchedUpdates, in which case we should\n      // flush it now.\n      nextFlushedRoot = root;\n      nextFlushedExpirationTime = Sync;\n      performWorkOnRoot(root, Sync, true);\n    }\n    return;\n  }\n\n  // TODO: Get rid of Sync and use current time?\n  if (expirationTime === Sync) {\n    performSyncWork();\n  } else {\n    scheduleCallbackWithExpirationTime(root, expirationTime);\n  }\n}\n\nfunction addRootToSchedule(root, expirationTime) {\n  // Add the root to the schedule.\n  // Check if this root is already part of the schedule.\n  if (root.nextScheduledRoot === null) {\n    // This root is not already scheduled. Add it.\n    root.expirationTime = expirationTime;\n    if (lastScheduledRoot === null) {\n      firstScheduledRoot = lastScheduledRoot = root;\n      root.nextScheduledRoot = root;\n    } else {\n      lastScheduledRoot.nextScheduledRoot = root;\n      lastScheduledRoot = root;\n      lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;\n    }\n  } else {\n    // This root is already scheduled, but its priority may have increased.\n    var remainingExpirationTime = root.expirationTime;\n    if (remainingExpirationTime === NoWork || expirationTime < remainingExpirationTime) {\n      // Update the priority.\n      root.expirationTime = expirationTime;\n    }\n  }\n}\n\nfunction findHighestPriorityRoot() {\n  var highestPriorityWork = NoWork;\n  var highestPriorityRoot = null;\n  if (lastScheduledRoot !== null) {\n    var previousScheduledRoot = lastScheduledRoot;\n    var root = firstScheduledRoot;\n    while (root !== null) {\n      var remainingExpirationTime = root.expirationTime;\n      if (remainingExpirationTime === NoWork) {\n        // This root no longer has work. Remove it from the scheduler.\n\n        // TODO: This check is redudant, but Flow is confused by the branch\n        // below where we set lastScheduledRoot to null, even though we break\n        // from the loop right after.\n        !(previousScheduledRoot !== null && lastScheduledRoot !== null) ? invariant(false, 'Should have a previous and last root. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n        if (root === root.nextScheduledRoot) {\n          // This is the only root in the list.\n          root.nextScheduledRoot = null;\n          firstScheduledRoot = lastScheduledRoot = null;\n          break;\n        } else if (root === firstScheduledRoot) {\n          // This is the first root in the list.\n          var next = root.nextScheduledRoot;\n          firstScheduledRoot = next;\n          lastScheduledRoot.nextScheduledRoot = next;\n          root.nextScheduledRoot = null;\n        } else if (root === lastScheduledRoot) {\n          // This is the last root in the list.\n          lastScheduledRoot = previousScheduledRoot;\n          lastScheduledRoot.nextScheduledRoot = firstScheduledRoot;\n          root.nextScheduledRoot = null;\n          break;\n        } else {\n          previousScheduledRoot.nextScheduledRoot = root.nextScheduledRoot;\n          root.nextScheduledRoot = null;\n        }\n        root = previousScheduledRoot.nextScheduledRoot;\n      } else {\n        if (highestPriorityWork === NoWork || remainingExpirationTime < highestPriorityWork) {\n          // Update the priority, if it's higher\n          highestPriorityWork = remainingExpirationTime;\n          highestPriorityRoot = root;\n        }\n        if (root === lastScheduledRoot) {\n          break;\n        }\n        if (highestPriorityWork === Sync) {\n          // Sync is highest priority by definition so\n          // we can stop searching.\n          break;\n        }\n        previousScheduledRoot = root;\n        root = root.nextScheduledRoot;\n      }\n    }\n  }\n\n  nextFlushedRoot = highestPriorityRoot;\n  nextFlushedExpirationTime = highestPriorityWork;\n}\n\nfunction performAsyncWork(dl) {\n  if (dl.didTimeout) {\n    // The callback timed out. That means at least one update has expired.\n    // Iterate through the root schedule. If they contain expired work, set\n    // the next render expiration time to the current time. This has the effect\n    // of flushing all expired work in a single batch, instead of flushing each\n    // level one at a time.\n    if (firstScheduledRoot !== null) {\n      recomputeCurrentRendererTime();\n      var root = firstScheduledRoot;\n      do {\n        didExpireAtExpirationTime(root, currentRendererTime);\n        // The root schedule is circular, so this is never null.\n        root = root.nextScheduledRoot;\n      } while (root !== firstScheduledRoot);\n    }\n  }\n  performWork(NoWork, dl);\n}\n\nfunction performSyncWork() {\n  performWork(Sync, null);\n}\n\nfunction performWork(minExpirationTime, dl) {\n  deadline = dl;\n\n  // Keep working on roots until there's no more work, or until we reach\n  // the deadline.\n  findHighestPriorityRoot();\n\n  if (deadline !== null) {\n    recomputeCurrentRendererTime();\n    currentSchedulerTime = currentRendererTime;\n\n    if (enableUserTimingAPI) {\n      var didExpire = nextFlushedExpirationTime < currentRendererTime;\n      var timeout = expirationTimeToMs(nextFlushedExpirationTime);\n      stopRequestCallbackTimer(didExpire, timeout);\n    }\n\n    while (nextFlushedRoot !== null && nextFlushedExpirationTime !== NoWork && (minExpirationTime === NoWork || minExpirationTime >= nextFlushedExpirationTime) && (!deadlineDidExpire || currentRendererTime >= nextFlushedExpirationTime)) {\n      performWorkOnRoot(nextFlushedRoot, nextFlushedExpirationTime, currentRendererTime >= nextFlushedExpirationTime);\n      findHighestPriorityRoot();\n      recomputeCurrentRendererTime();\n      currentSchedulerTime = currentRendererTime;\n    }\n  } else {\n    while (nextFlushedRoot !== null && nextFlushedExpirationTime !== NoWork && (minExpirationTime === NoWork || minExpirationTime >= nextFlushedExpirationTime)) {\n      performWorkOnRoot(nextFlushedRoot, nextFlushedExpirationTime, true);\n      findHighestPriorityRoot();\n    }\n  }\n\n  // We're done flushing work. Either we ran out of time in this callback,\n  // or there's no more work left with sufficient priority.\n\n  // If we're inside a callback, set this to false since we just completed it.\n  if (deadline !== null) {\n    callbackExpirationTime = NoWork;\n    callbackID = null;\n  }\n  // If there's work left over, schedule a new callback.\n  if (nextFlushedExpirationTime !== NoWork) {\n    scheduleCallbackWithExpirationTime(nextFlushedRoot, nextFlushedExpirationTime);\n  }\n\n  // Clean-up.\n  deadline = null;\n  deadlineDidExpire = false;\n\n  finishRendering();\n}\n\nfunction flushRoot(root, expirationTime) {\n  !!isRendering ? invariant(false, 'work.commit(): Cannot commit while already rendering. This likely means you attempted to commit from inside a lifecycle method.') : void 0;\n  // Perform work on root as if the given expiration time is the current time.\n  // This has the effect of synchronously flushing all work up to and\n  // including the given time.\n  nextFlushedRoot = root;\n  nextFlushedExpirationTime = expirationTime;\n  performWorkOnRoot(root, expirationTime, true);\n  // Flush any sync work that was scheduled by lifecycles\n  performSyncWork();\n}\n\nfunction finishRendering() {\n  nestedUpdateCount = 0;\n  lastCommittedRootDuringThisBatch = null;\n\n  if (completedBatches !== null) {\n    var batches = completedBatches;\n    completedBatches = null;\n    for (var i = 0; i < batches.length; i++) {\n      var batch = batches[i];\n      try {\n        batch._onComplete();\n      } catch (error) {\n        if (!hasUnhandledError) {\n          hasUnhandledError = true;\n          unhandledError = error;\n        }\n      }\n    }\n  }\n\n  if (hasUnhandledError) {\n    var error = unhandledError;\n    unhandledError = null;\n    hasUnhandledError = false;\n    throw error;\n  }\n}\n\nfunction performWorkOnRoot(root, expirationTime, isExpired) {\n  !!isRendering ? invariant(false, 'performWorkOnRoot was called recursively. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n\n  isRendering = true;\n\n  // Check if this is async work or sync/expired work.\n  if (deadline === null || isExpired) {\n    // Flush work without yielding.\n    // TODO: Non-yieldy work does not necessarily imply expired work. A renderer\n    // may want to perform some work without yielding, but also without\n    // requiring the root to complete (by triggering placeholders).\n\n    var finishedWork = root.finishedWork;\n    if (finishedWork !== null) {\n      // This root is already complete. We can commit it.\n      completeRoot(root, finishedWork, expirationTime);\n    } else {\n      root.finishedWork = null;\n      // If this root previously suspended, clear its existing timeout, since\n      // we're about to try rendering again.\n      var timeoutHandle = root.timeoutHandle;\n      if (enableSuspense && timeoutHandle !== noTimeout) {\n        root.timeoutHandle = noTimeout;\n        // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n        cancelTimeout(timeoutHandle);\n      }\n      var isYieldy = false;\n      renderRoot(root, isYieldy, isExpired);\n      finishedWork = root.finishedWork;\n      if (finishedWork !== null) {\n        // We've completed the root. Commit it.\n        completeRoot(root, finishedWork, expirationTime);\n      }\n    }\n  } else {\n    // Flush async work.\n    var _finishedWork = root.finishedWork;\n    if (_finishedWork !== null) {\n      // This root is already complete. We can commit it.\n      completeRoot(root, _finishedWork, expirationTime);\n    } else {\n      root.finishedWork = null;\n      // If this root previously suspended, clear its existing timeout, since\n      // we're about to try rendering again.\n      var _timeoutHandle = root.timeoutHandle;\n      if (enableSuspense && _timeoutHandle !== noTimeout) {\n        root.timeoutHandle = noTimeout;\n        // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n        cancelTimeout(_timeoutHandle);\n      }\n      var _isYieldy = true;\n      renderRoot(root, _isYieldy, isExpired);\n      _finishedWork = root.finishedWork;\n      if (_finishedWork !== null) {\n        // We've completed the root. Check the deadline one more time\n        // before committing.\n        if (!shouldYield()) {\n          // Still time left. Commit the root.\n          completeRoot(root, _finishedWork, expirationTime);\n        } else {\n          // There's no time left. Mark this root as complete. We'll come\n          // back and commit it later.\n          root.finishedWork = _finishedWork;\n        }\n      }\n    }\n  }\n\n  isRendering = false;\n}\n\nfunction completeRoot(root, finishedWork, expirationTime) {\n  // Check if there's a batch that matches this expiration time.\n  var firstBatch = root.firstBatch;\n  if (firstBatch !== null && firstBatch._expirationTime <= expirationTime) {\n    if (completedBatches === null) {\n      completedBatches = [firstBatch];\n    } else {\n      completedBatches.push(firstBatch);\n    }\n    if (firstBatch._defer) {\n      // This root is blocked from committing by a batch. Unschedule it until\n      // we receive another update.\n      root.finishedWork = finishedWork;\n      root.expirationTime = NoWork;\n      return;\n    }\n  }\n\n  // Commit the root.\n  root.finishedWork = null;\n\n  // Check if this is a nested update (a sync update scheduled during the\n  // commit phase).\n  if (root === lastCommittedRootDuringThisBatch) {\n    // If the next root is the same as the previous root, this is a nested\n    // update. To prevent an infinite loop, increment the nested update count.\n    nestedUpdateCount++;\n  } else {\n    // Reset whenever we switch roots.\n    lastCommittedRootDuringThisBatch = root;\n    nestedUpdateCount = 0;\n  }\n  commitRoot(root, finishedWork);\n}\n\n// When working on async work, the reconciler asks the renderer if it should\n// yield execution. For DOM, we implement this with requestIdleCallback.\nfunction shouldYield() {\n  if (deadlineDidExpire) {\n    return true;\n  }\n  if (deadline === null || deadline.timeRemaining() > timeHeuristicForUnitOfWork) {\n    // Disregard deadline.didTimeout. Only expired work should be flushed\n    // during a timeout. This path is only hit for non-expired work.\n    return false;\n  }\n  deadlineDidExpire = true;\n  return true;\n}\n\nfunction onUncaughtError(error) {\n  !(nextFlushedRoot !== null) ? invariant(false, 'Should be working on a root. This error is likely caused by a bug in React. Please file an issue.') : void 0;\n  // Unschedule this root so we don't work on it again until there's\n  // another update.\n  nextFlushedRoot.expirationTime = NoWork;\n  if (!hasUnhandledError) {\n    hasUnhandledError = true;\n    unhandledError = error;\n  }\n}\n\n// TODO: Batching should be implemented at the renderer level, not inside\n// the reconciler.\nfunction batchedUpdates$1(fn, a) {\n  var previousIsBatchingUpdates = isBatchingUpdates;\n  isBatchingUpdates = true;\n  try {\n    return fn(a);\n  } finally {\n    isBatchingUpdates = previousIsBatchingUpdates;\n    if (!isBatchingUpdates && !isRendering) {\n      performSyncWork();\n    }\n  }\n}\n\n// TODO: Batching should be implemented at the renderer level, not inside\n// the reconciler.\nfunction unbatchedUpdates(fn, a) {\n  if (isBatchingUpdates && !isUnbatchingUpdates) {\n    isUnbatchingUpdates = true;\n    try {\n      return fn(a);\n    } finally {\n      isUnbatchingUpdates = false;\n    }\n  }\n  return fn(a);\n}\n\n// TODO: Batching should be implemented at the renderer level, not within\n// the reconciler.\nfunction flushSync(fn, a) {\n  !!isRendering ? invariant(false, 'flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.') : void 0;\n  var previousIsBatchingUpdates = isBatchingUpdates;\n  isBatchingUpdates = true;\n  try {\n    return syncUpdates(fn, a);\n  } finally {\n    isBatchingUpdates = previousIsBatchingUpdates;\n    performSyncWork();\n  }\n}\n\nfunction interactiveUpdates$1(fn, a, b) {\n  if (isBatchingInteractiveUpdates) {\n    return fn(a, b);\n  }\n  // If there are any pending interactive updates, synchronously flush them.\n  // This needs to happen before we read any handlers, because the effect of\n  // the previous event may influence which handlers are called during\n  // this event.\n  if (!isBatchingUpdates && !isRendering && lowestPriorityPendingInteractiveExpirationTime !== NoWork) {\n    // Synchronously flush pending interactive updates.\n    performWork(lowestPriorityPendingInteractiveExpirationTime, null);\n    lowestPriorityPendingInteractiveExpirationTime = NoWork;\n  }\n  var previousIsBatchingInteractiveUpdates = isBatchingInteractiveUpdates;\n  var previousIsBatchingUpdates = isBatchingUpdates;\n  isBatchingInteractiveUpdates = true;\n  isBatchingUpdates = true;\n  try {\n    return fn(a, b);\n  } finally {\n    isBatchingInteractiveUpdates = previousIsBatchingInteractiveUpdates;\n    isBatchingUpdates = previousIsBatchingUpdates;\n    if (!isBatchingUpdates && !isRendering) {\n      performSyncWork();\n    }\n  }\n}\n\nfunction flushInteractiveUpdates$1() {\n  if (!isRendering && lowestPriorityPendingInteractiveExpirationTime !== NoWork) {\n    // Synchronously flush pending interactive updates.\n    performWork(lowestPriorityPendingInteractiveExpirationTime, null);\n    lowestPriorityPendingInteractiveExpirationTime = NoWork;\n  }\n}\n\nfunction flushControlled(fn) {\n  var previousIsBatchingUpdates = isBatchingUpdates;\n  isBatchingUpdates = true;\n  try {\n    syncUpdates(fn);\n  } finally {\n    isBatchingUpdates = previousIsBatchingUpdates;\n    if (!isBatchingUpdates && !isRendering) {\n      performSyncWork();\n    }\n  }\n}\n\n// 0 is PROD, 1 is DEV.\n// Might add PROFILE later.\n\n\nvar didWarnAboutNestedUpdates = void 0;\n\n{\n  didWarnAboutNestedUpdates = false;\n}\n\nfunction getContextForSubtree(parentComponent) {\n  if (!parentComponent) {\n    return emptyContextObject;\n  }\n\n  var fiber = get(parentComponent);\n  var parentContext = findCurrentUnmaskedContext(fiber);\n\n  if (fiber.tag === ClassComponent) {\n    var Component = fiber.type;\n    if (isContextProvider(Component)) {\n      return processChildContext(fiber, Component, parentContext);\n    }\n  } else if (fiber.tag === ClassComponentLazy) {\n    var _Component = getResultFromResolvedThenable(fiber.type);\n    if (isContextProvider(_Component)) {\n      return processChildContext(fiber, _Component, parentContext);\n    }\n  }\n\n  return parentContext;\n}\n\nfunction scheduleRootUpdate(current$$1, element, expirationTime, callback) {\n  {\n    if (phase === 'render' && current !== null && !didWarnAboutNestedUpdates) {\n      didWarnAboutNestedUpdates = true;\n      warningWithoutStack$1(false, 'Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n    }\n  }\n\n  var update = createUpdate(expirationTime);\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  update.payload = { element: element };\n\n  callback = callback === undefined ? null : callback;\n  if (callback !== null) {\n    !(typeof callback === 'function') ? warningWithoutStack$1(false, 'render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback) : void 0;\n    update.callback = callback;\n  }\n  enqueueUpdate(current$$1, update);\n\n  scheduleWork(current$$1, expirationTime);\n  return expirationTime;\n}\n\nfunction updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, callback) {\n  // TODO: If this is a nested container, this won't be the root.\n  var current$$1 = container.current;\n\n  {\n    if (ReactFiberInstrumentation_1.debugTool) {\n      if (current$$1.alternate === null) {\n        ReactFiberInstrumentation_1.debugTool.onMountContainer(container);\n      } else if (element === null) {\n        ReactFiberInstrumentation_1.debugTool.onUnmountContainer(container);\n      } else {\n        ReactFiberInstrumentation_1.debugTool.onUpdateContainer(container);\n      }\n    }\n  }\n\n  var context = getContextForSubtree(parentComponent);\n  if (container.context === null) {\n    container.context = context;\n  } else {\n    container.pendingContext = context;\n  }\n\n  return scheduleRootUpdate(current$$1, element, expirationTime, callback);\n}\n\nfunction findHostInstance(component) {\n  var fiber = get(component);\n  if (fiber === undefined) {\n    if (typeof component.render === 'function') {\n      invariant(false, 'Unable to find node on an unmounted component.');\n    } else {\n      invariant(false, 'Argument appears to not be a ReactComponent. Keys: %s', Object.keys(component));\n    }\n  }\n  var hostFiber = findCurrentHostFiber(fiber);\n  if (hostFiber === null) {\n    return null;\n  }\n  return hostFiber.stateNode;\n}\n\nfunction createContainer(containerInfo, isAsync, hydrate) {\n  return createFiberRoot(containerInfo, isAsync, hydrate);\n}\n\nfunction updateContainer(element, container, parentComponent, callback) {\n  var current$$1 = container.current;\n  var currentTime = requestCurrentTime();\n  var expirationTime = computeExpirationForFiber(currentTime, current$$1);\n  return updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, callback);\n}\n\nfunction getPublicRootInstance(container) {\n  var containerFiber = container.current;\n  if (!containerFiber.child) {\n    return null;\n  }\n  switch (containerFiber.child.tag) {\n    case HostComponent:\n      return getPublicInstance(containerFiber.child.stateNode);\n    default:\n      return containerFiber.child.stateNode;\n  }\n}\n\nfunction findHostInstanceWithNoPortals(fiber) {\n  var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n  if (hostFiber === null) {\n    return null;\n  }\n  return hostFiber.stateNode;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n  var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n\n  return injectInternals(_assign({}, devToolsConfig, {\n    findHostInstanceByFiber: function (fiber) {\n      var hostFiber = findCurrentHostFiber(fiber);\n      if (hostFiber === null) {\n        return null;\n      }\n      return hostFiber.stateNode;\n    },\n    findFiberByHostInstance: function (instance) {\n      if (!findFiberByHostInstance) {\n        // Might not be implemented by the renderer.\n        return null;\n      }\n      return findFiberByHostInstance(instance);\n    }\n  }));\n}\n\n// This file intentionally does *not* have the Flow annotation.\n// Don't add it. See `./inline-typed.js` for an explanation.\n\nfunction createPortal$1(children, containerInfo,\n// TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  return {\n    // This tag allow us to uniquely identify this as a React Portal\n    $$typeof: REACT_PORTAL_TYPE,\n    key: key == null ? null : '' + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.5.2';\n\n// TODO: This type is shared between the reconciler and ReactDOM, but will\n// eventually be lifted out to the renderer.\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n\nvar topLevelUpdateWarnings = void 0;\nvar warnOnInvalidCallback = void 0;\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n  if (typeof Map !== 'function' ||\n  // $FlowIssue Flow incorrectly thinks Map has no prototype\n  Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' ||\n  // $FlowIssue Flow incorrectly thinks Set has no prototype\n  Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n    warningWithoutStack$1(false, 'React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n  }\n\n  topLevelUpdateWarnings = function (container) {\n    if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n      if (hostInstance) {\n        !(hostInstance.parentNode === container) ? warningWithoutStack$1(false, 'render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.') : void 0;\n      }\n    }\n\n    var isRootRenderedBySomeReact = !!container._reactRootContainer;\n    var rootEl = getReactRootElementInContainer(container);\n    var hasNonRootReactChild = !!(rootEl && getInstanceFromNode$1(rootEl));\n\n    !(!hasNonRootReactChild || isRootRenderedBySomeReact) ? warningWithoutStack$1(false, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n    !(container.nodeType !== ELEMENT_NODE || !container.tagName || container.tagName.toUpperCase() !== 'BODY') ? warningWithoutStack$1(false, 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n  };\n\n  warnOnInvalidCallback = function (callback, callerName) {\n    !(callback === null || typeof callback === 'function') ? warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback) : void 0;\n  };\n}\n\nsetRestoreImplementation(restoreControlledState$1);\n\n/* eslint-disable no-use-before-define */\n\n/* eslint-enable no-use-before-define */\n\nfunction ReactBatch(root) {\n  var expirationTime = computeUniqueAsyncExpiration();\n  this._expirationTime = expirationTime;\n  this._root = root;\n  this._next = null;\n  this._callbacks = null;\n  this._didComplete = false;\n  this._hasChildren = false;\n  this._children = null;\n  this._defer = true;\n}\nReactBatch.prototype.render = function (children) {\n  !this._defer ? invariant(false, 'batch.render: Cannot render a batch that already committed.') : void 0;\n  this._hasChildren = true;\n  this._children = children;\n  var internalRoot = this._root._internalRoot;\n  var expirationTime = this._expirationTime;\n  var work = new ReactWork();\n  updateContainerAtExpirationTime(children, internalRoot, null, expirationTime, work._onCommit);\n  return work;\n};\nReactBatch.prototype.then = function (onComplete) {\n  if (this._didComplete) {\n    onComplete();\n    return;\n  }\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    callbacks = this._callbacks = [];\n  }\n  callbacks.push(onComplete);\n};\nReactBatch.prototype.commit = function () {\n  var internalRoot = this._root._internalRoot;\n  var firstBatch = internalRoot.firstBatch;\n  !(this._defer && firstBatch !== null) ? invariant(false, 'batch.commit: Cannot commit a batch multiple times.') : void 0;\n\n  if (!this._hasChildren) {\n    // This batch is empty. Return.\n    this._next = null;\n    this._defer = false;\n    return;\n  }\n\n  var expirationTime = this._expirationTime;\n\n  // Ensure this is the first batch in the list.\n  if (firstBatch !== this) {\n    // This batch is not the earliest batch. We need to move it to the front.\n    // Update its expiration time to be the expiration time of the earliest\n    // batch, so that we can flush it without flushing the other batches.\n    if (this._hasChildren) {\n      expirationTime = this._expirationTime = firstBatch._expirationTime;\n      // Rendering this batch again ensures its children will be the final state\n      // when we flush (updates are processed in insertion order: last\n      // update wins).\n      // TODO: This forces a restart. Should we print a warning?\n      this.render(this._children);\n    }\n\n    // Remove the batch from the list.\n    var previous = null;\n    var batch = firstBatch;\n    while (batch !== this) {\n      previous = batch;\n      batch = batch._next;\n    }\n    !(previous !== null) ? invariant(false, 'batch.commit: Cannot commit a batch multiple times.') : void 0;\n    previous._next = batch._next;\n\n    // Add it to the front.\n    this._next = firstBatch;\n    firstBatch = internalRoot.firstBatch = this;\n  }\n\n  // Synchronously flush all the work up to this batch's expiration time.\n  this._defer = false;\n  flushRoot(internalRoot, expirationTime);\n\n  // Pop the batch from the list.\n  var next = this._next;\n  this._next = null;\n  firstBatch = internalRoot.firstBatch = next;\n\n  // Append the next earliest batch's children to the update queue.\n  if (firstBatch !== null && firstBatch._hasChildren) {\n    firstBatch.render(firstBatch._children);\n  }\n};\nReactBatch.prototype._onComplete = function () {\n  if (this._didComplete) {\n    return;\n  }\n  this._didComplete = true;\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    return;\n  }\n  // TODO: Error handling.\n  for (var i = 0; i < callbacks.length; i++) {\n    var _callback = callbacks[i];\n    _callback();\n  }\n};\n\nfunction ReactWork() {\n  this._callbacks = null;\n  this._didCommit = false;\n  // TODO: Avoid need to bind by replacing callbacks in the update queue with\n  // list of Work objects.\n  this._onCommit = this._onCommit.bind(this);\n}\nReactWork.prototype.then = function (onCommit) {\n  if (this._didCommit) {\n    onCommit();\n    return;\n  }\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    callbacks = this._callbacks = [];\n  }\n  callbacks.push(onCommit);\n};\nReactWork.prototype._onCommit = function () {\n  if (this._didCommit) {\n    return;\n  }\n  this._didCommit = true;\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    return;\n  }\n  // TODO: Error handling.\n  for (var i = 0; i < callbacks.length; i++) {\n    var _callback2 = callbacks[i];\n    !(typeof _callback2 === 'function') ? invariant(false, 'Invalid argument passed as callback. Expected a function. Instead received: %s', _callback2) : void 0;\n    _callback2();\n  }\n};\n\nfunction ReactRoot(container, isAsync, hydrate) {\n  var root = createContainer(container, isAsync, hydrate);\n  this._internalRoot = root;\n}\nReactRoot.prototype.render = function (children, callback) {\n  var root = this._internalRoot;\n  var work = new ReactWork();\n  callback = callback === undefined ? null : callback;\n  {\n    warnOnInvalidCallback(callback, 'render');\n  }\n  if (callback !== null) {\n    work.then(callback);\n  }\n  updateContainer(children, root, null, work._onCommit);\n  return work;\n};\nReactRoot.prototype.unmount = function (callback) {\n  var root = this._internalRoot;\n  var work = new ReactWork();\n  callback = callback === undefined ? null : callback;\n  {\n    warnOnInvalidCallback(callback, 'render');\n  }\n  if (callback !== null) {\n    work.then(callback);\n  }\n  updateContainer(null, root, null, work._onCommit);\n  return work;\n};\nReactRoot.prototype.legacy_renderSubtreeIntoContainer = function (parentComponent, children, callback) {\n  var root = this._internalRoot;\n  var work = new ReactWork();\n  callback = callback === undefined ? null : callback;\n  {\n    warnOnInvalidCallback(callback, 'render');\n  }\n  if (callback !== null) {\n    work.then(callback);\n  }\n  updateContainer(children, root, parentComponent, work._onCommit);\n  return work;\n};\nReactRoot.prototype.createBatch = function () {\n  var batch = new ReactBatch(this);\n  var expirationTime = batch._expirationTime;\n\n  var internalRoot = this._internalRoot;\n  var firstBatch = internalRoot.firstBatch;\n  if (firstBatch === null) {\n    internalRoot.firstBatch = batch;\n    batch._next = null;\n  } else {\n    // Insert sorted by expiration time then insertion order\n    var insertAfter = null;\n    var insertBefore = firstBatch;\n    while (insertBefore !== null && insertBefore._expirationTime <= expirationTime) {\n      insertAfter = insertBefore;\n      insertBefore = insertBefore._next;\n    }\n    batch._next = insertBefore;\n    if (insertAfter !== null) {\n      insertAfter._next = batch;\n    }\n  }\n\n  return batch;\n};\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOCUMENT_NODE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nsetBatchingImplementation(batchedUpdates$1, interactiveUpdates$1, flushInteractiveUpdates$1);\n\nvar warnedAboutHydrateAPI = false;\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n  var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container);\n  // First clear any existing content.\n  if (!shouldHydrate) {\n    var warned = false;\n    var rootSibling = void 0;\n    while (rootSibling = container.lastChild) {\n      {\n        if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n          warned = true;\n          warningWithoutStack$1(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n        }\n      }\n      container.removeChild(rootSibling);\n    }\n  }\n  {\n    if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n      warnedAboutHydrateAPI = true;\n      lowPriorityWarning$1(false, 'render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v17. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n    }\n  }\n  // Legacy roots are not async by default.\n  var isAsync = false;\n  return new ReactRoot(container, isAsync, shouldHydrate);\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n  // TODO: Ensure all entry points contain this check\n  !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;\n\n  {\n    topLevelUpdateWarnings(container);\n  }\n\n  // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n  // member of intersection type.\" Whyyyyyy.\n  var root = container._reactRootContainer;\n  if (!root) {\n    // Initial mount\n    root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n    if (typeof callback === 'function') {\n      var originalCallback = callback;\n      callback = function () {\n        var instance = getPublicRootInstance(root._internalRoot);\n        originalCallback.call(instance);\n      };\n    }\n    // Initial mount should not be batched.\n    unbatchedUpdates(function () {\n      if (parentComponent != null) {\n        root.legacy_renderSubtreeIntoContainer(parentComponent, children, callback);\n      } else {\n        root.render(children, callback);\n      }\n    });\n  } else {\n    if (typeof callback === 'function') {\n      var _originalCallback = callback;\n      callback = function () {\n        var instance = getPublicRootInstance(root._internalRoot);\n        _originalCallback.call(instance);\n      };\n    }\n    // Update\n    if (parentComponent != null) {\n      root.legacy_renderSubtreeIntoContainer(parentComponent, children, callback);\n    } else {\n      root.render(children, callback);\n    }\n  }\n  return getPublicRootInstance(root._internalRoot);\n}\n\nfunction createPortal(children, container) {\n  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  !isValidContainer(container) ? invariant(false, 'Target container is not a DOM element.') : void 0;\n  // TODO: pass ReactDOM portal implementation as third argument\n  return createPortal$1(children, container, null, key);\n}\n\nvar ReactDOM = {\n  createPortal: createPortal,\n\n  findDOMNode: function (componentOrElement) {\n    {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null && owner.stateNode !== null) {\n        var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n        !warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component') : void 0;\n        owner.stateNode._warnedAboutRefsInRender = true;\n      }\n    }\n    if (componentOrElement == null) {\n      return null;\n    }\n    if (componentOrElement.nodeType === ELEMENT_NODE) {\n      return componentOrElement;\n    }\n\n    return findHostInstance(componentOrElement);\n  },\n  hydrate: function (element, container, callback) {\n    // TODO: throw or warn if we couldn't hydrate?\n    return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n  },\n  render: function (element, container, callback) {\n    return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n  },\n  unstable_renderSubtreeIntoContainer: function (parentComponent, element, containerNode, callback) {\n    !(parentComponent != null && has(parentComponent)) ? invariant(false, 'parentComponent must be a valid React Component') : void 0;\n    return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n  },\n  unmountComponentAtNode: function (container) {\n    !isValidContainer(container) ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : void 0;\n\n    if (container._reactRootContainer) {\n      {\n        var rootEl = getReactRootElementInContainer(container);\n        var renderedByDifferentReact = rootEl && !getInstanceFromNode$1(rootEl);\n        !!renderedByDifferentReact ? warningWithoutStack$1(false, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.') : void 0;\n      }\n\n      // Unmount should not be batched.\n      unbatchedUpdates(function () {\n        legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n          container._reactRootContainer = null;\n        });\n      });\n      // If you call unmountComponentAtNode twice in quick succession, you'll\n      // get `true` twice. That's probably fine?\n      return true;\n    } else {\n      {\n        var _rootEl = getReactRootElementInContainer(container);\n        var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode$1(_rootEl));\n\n        // Check if the container itself is a React root node.\n        var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n        !!hasNonRootReactChild ? warningWithoutStack$1(false, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n      }\n\n      return false;\n    }\n  },\n\n\n  // Temporary alias since we already shipped React 16 RC with it.\n  // TODO: remove in React 17.\n  unstable_createPortal: function () {\n    if (!didWarnAboutUnstableCreatePortal) {\n      didWarnAboutUnstableCreatePortal = true;\n      lowPriorityWarning$1(false, 'The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n    }\n    return createPortal.apply(undefined, arguments);\n  },\n\n\n  unstable_batchedUpdates: batchedUpdates$1,\n\n  unstable_interactiveUpdates: interactiveUpdates$1,\n\n  flushSync: flushSync,\n\n  unstable_flushControlled: flushControlled,\n\n  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {\n    // Keep in sync with ReactDOMUnstableNativeDependencies.js\n    // and ReactTestUtils.js. This is an array for better minification.\n    Events: [getInstanceFromNode$1, getNodeFromInstance$1, getFiberCurrentPropsFromNode$1, injection.injectEventPluginsByName, eventNameDispatchConfigs, accumulateTwoPhaseDispatches, accumulateDirectDispatches, enqueueStateRestore, restoreStateIfNeeded, dispatchEvent, runEventsInBatch]\n  }\n};\n\nReactDOM.unstable_createRoot = function createRoot(container, options) {\n  !isValidContainer(container) ? invariant(false, 'unstable_createRoot(...): Target container is not a DOM element.') : void 0;\n  var hydrate = options != null && options.hydrate === true;\n  return new ReactRoot(container, true, hydrate);\n};\n\nvar foundDevTools = injectIntoDevTools({\n  findFiberByHostInstance: getClosestInstanceFromNode,\n  bundleType: 1,\n  version: ReactVersion,\n  rendererPackageName: 'react-dom'\n});\n\n{\n  if (!foundDevTools && canUseDOM && window.top === window.self) {\n    // If we're in Chrome or Firefox, provide a download link if not installed.\n    if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n      var protocol = window.location.protocol;\n      // Don't warn in exotic cases like chrome-extension://.\n      if (/^(https?|file):$/.test(protocol)) {\n        console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://fb.me/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://fb.me/react-devtools-faq' : ''), 'font-weight:bold');\n      }\n    }\n  }\n}\n\n\n\nvar ReactDOM$2 = Object.freeze({\n\tdefault: ReactDOM\n});\n\nvar ReactDOM$3 = ( ReactDOM$2 && ReactDOM ) || ReactDOM$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar reactDom = ReactDOM$3.default || ReactDOM$3;\n\nmodule.exports = reactDom;\n  })();\n}\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar common = {\n  black: '#000',\n  white: '#fff'\n};\nvar _default = common;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar red = {\n  50: '#ffebee',\n  100: '#ffcdd2',\n  200: '#ef9a9a',\n  300: '#e57373',\n  400: '#ef5350',\n  500: '#f44336',\n  600: '#e53935',\n  700: '#d32f2f',\n  800: '#c62828',\n  900: '#b71c1c',\n  A100: '#ff8a80',\n  A200: '#ff5252',\n  A400: '#ff1744',\n  A700: '#d50000'\n};\nvar _default = red;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar pink = {\n  50: '#fce4ec',\n  100: '#f8bbd0',\n  200: '#f48fb1',\n  300: '#f06292',\n  400: '#ec407a',\n  500: '#e91e63',\n  600: '#d81b60',\n  700: '#c2185b',\n  800: '#ad1457',\n  900: '#880e4f',\n  A100: '#ff80ab',\n  A200: '#ff4081',\n  A400: '#f50057',\n  A700: '#c51162'\n};\nvar _default = pink;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar purple = {\n  50: '#f3e5f5',\n  100: '#e1bee7',\n  200: '#ce93d8',\n  300: '#ba68c8',\n  400: '#ab47bc',\n  500: '#9c27b0',\n  600: '#8e24aa',\n  700: '#7b1fa2',\n  800: '#6a1b9a',\n  900: '#4a148c',\n  A100: '#ea80fc',\n  A200: '#e040fb',\n  A400: '#d500f9',\n  A700: '#aa00ff'\n};\nvar _default = purple;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar deepPurple = {\n  50: '#ede7f6',\n  100: '#d1c4e9',\n  200: '#b39ddb',\n  300: '#9575cd',\n  400: '#7e57c2',\n  500: '#673ab7',\n  600: '#5e35b1',\n  700: '#512da8',\n  800: '#4527a0',\n  900: '#311b92',\n  A100: '#b388ff',\n  A200: '#7c4dff',\n  A400: '#651fff',\n  A700: '#6200ea'\n};\nvar _default = deepPurple;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar indigo = {\n  50: '#e8eaf6',\n  100: '#c5cae9',\n  200: '#9fa8da',\n  300: '#7986cb',\n  400: '#5c6bc0',\n  500: '#3f51b5',\n  600: '#3949ab',\n  700: '#303f9f',\n  800: '#283593',\n  900: '#1a237e',\n  A100: '#8c9eff',\n  A200: '#536dfe',\n  A400: '#3d5afe',\n  A700: '#304ffe'\n};\nvar _default = indigo;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar blue = {\n  50: '#e3f2fd',\n  100: '#bbdefb',\n  200: '#90caf9',\n  300: '#64b5f6',\n  400: '#42a5f5',\n  500: '#2196f3',\n  600: '#1e88e5',\n  700: '#1976d2',\n  800: '#1565c0',\n  900: '#0d47a1',\n  A100: '#82b1ff',\n  A200: '#448aff',\n  A400: '#2979ff',\n  A700: '#2962ff'\n};\nvar _default = blue;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar lightBlue = {\n  50: '#e1f5fe',\n  100: '#b3e5fc',\n  200: '#81d4fa',\n  300: '#4fc3f7',\n  400: '#29b6f6',\n  500: '#03a9f4',\n  600: '#039be5',\n  700: '#0288d1',\n  800: '#0277bd',\n  900: '#01579b',\n  A100: '#80d8ff',\n  A200: '#40c4ff',\n  A400: '#00b0ff',\n  A700: '#0091ea'\n};\nvar _default = lightBlue;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar cyan = {\n  50: '#e0f7fa',\n  100: '#b2ebf2',\n  200: '#80deea',\n  300: '#4dd0e1',\n  400: '#26c6da',\n  500: '#00bcd4',\n  600: '#00acc1',\n  700: '#0097a7',\n  800: '#00838f',\n  900: '#006064',\n  A100: '#84ffff',\n  A200: '#18ffff',\n  A400: '#00e5ff',\n  A700: '#00b8d4'\n};\nvar _default = cyan;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar teal = {\n  50: '#e0f2f1',\n  100: '#b2dfdb',\n  200: '#80cbc4',\n  300: '#4db6ac',\n  400: '#26a69a',\n  500: '#009688',\n  600: '#00897b',\n  700: '#00796b',\n  800: '#00695c',\n  900: '#004d40',\n  A100: '#a7ffeb',\n  A200: '#64ffda',\n  A400: '#1de9b6',\n  A700: '#00bfa5'\n};\nvar _default = teal;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar green = {\n  50: '#e8f5e9',\n  100: '#c8e6c9',\n  200: '#a5d6a7',\n  300: '#81c784',\n  400: '#66bb6a',\n  500: '#4caf50',\n  600: '#43a047',\n  700: '#388e3c',\n  800: '#2e7d32',\n  900: '#1b5e20',\n  A100: '#b9f6ca',\n  A200: '#69f0ae',\n  A400: '#00e676',\n  A700: '#00c853'\n};\nvar _default = green;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar lightGreen = {\n  50: '#f1f8e9',\n  100: '#dcedc8',\n  200: '#c5e1a5',\n  300: '#aed581',\n  400: '#9ccc65',\n  500: '#8bc34a',\n  600: '#7cb342',\n  700: '#689f38',\n  800: '#558b2f',\n  900: '#33691e',\n  A100: '#ccff90',\n  A200: '#b2ff59',\n  A400: '#76ff03',\n  A700: '#64dd17'\n};\nvar _default = lightGreen;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar lime = {\n  50: '#f9fbe7',\n  100: '#f0f4c3',\n  200: '#e6ee9c',\n  300: '#dce775',\n  400: '#d4e157',\n  500: '#cddc39',\n  600: '#c0ca33',\n  700: '#afb42b',\n  800: '#9e9d24',\n  900: '#827717',\n  A100: '#f4ff81',\n  A200: '#eeff41',\n  A400: '#c6ff00',\n  A700: '#aeea00'\n};\nvar _default = lime;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar yellow = {\n  50: '#fffde7',\n  100: '#fff9c4',\n  200: '#fff59d',\n  300: '#fff176',\n  400: '#ffee58',\n  500: '#ffeb3b',\n  600: '#fdd835',\n  700: '#fbc02d',\n  800: '#f9a825',\n  900: '#f57f17',\n  A100: '#ffff8d',\n  A200: '#ffff00',\n  A400: '#ffea00',\n  A700: '#ffd600'\n};\nvar _default = yellow;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar amber = {\n  50: '#fff8e1',\n  100: '#ffecb3',\n  200: '#ffe082',\n  300: '#ffd54f',\n  400: '#ffca28',\n  500: '#ffc107',\n  600: '#ffb300',\n  700: '#ffa000',\n  800: '#ff8f00',\n  900: '#ff6f00',\n  A100: '#ffe57f',\n  A200: '#ffd740',\n  A400: '#ffc400',\n  A700: '#ffab00'\n};\nvar _default = amber;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar orange = {\n  50: '#fff3e0',\n  100: '#ffe0b2',\n  200: '#ffcc80',\n  300: '#ffb74d',\n  400: '#ffa726',\n  500: '#ff9800',\n  600: '#fb8c00',\n  700: '#f57c00',\n  800: '#ef6c00',\n  900: '#e65100',\n  A100: '#ffd180',\n  A200: '#ffab40',\n  A400: '#ff9100',\n  A700: '#ff6d00'\n};\nvar _default = orange;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar deepOrange = {\n  50: '#fbe9e7',\n  100: '#ffccbc',\n  200: '#ffab91',\n  300: '#ff8a65',\n  400: '#ff7043',\n  500: '#ff5722',\n  600: '#f4511e',\n  700: '#e64a19',\n  800: '#d84315',\n  900: '#bf360c',\n  A100: '#ff9e80',\n  A200: '#ff6e40',\n  A400: '#ff3d00',\n  A700: '#dd2c00'\n};\nvar _default = deepOrange;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar brown = {\n  50: '#efebe9',\n  100: '#d7ccc8',\n  200: '#bcaaa4',\n  300: '#a1887f',\n  400: '#8d6e63',\n  500: '#795548',\n  600: '#6d4c41',\n  700: '#5d4037',\n  800: '#4e342e',\n  900: '#3e2723',\n  A100: '#d7ccc8',\n  A200: '#bcaaa4',\n  A400: '#8d6e63',\n  A700: '#5d4037'\n};\nvar _default = brown;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar grey = {\n  50: '#fafafa',\n  100: '#f5f5f5',\n  200: '#eeeeee',\n  300: '#e0e0e0',\n  400: '#bdbdbd',\n  500: '#9e9e9e',\n  600: '#757575',\n  700: '#616161',\n  800: '#424242',\n  900: '#212121',\n  A100: '#d5d5d5',\n  A200: '#aaaaaa',\n  A400: '#303030',\n  A700: '#616161'\n};\nvar _default = grey;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar blueGrey = {\n  50: '#eceff1',\n  100: '#cfd8dc',\n  200: '#b0bec5',\n  300: '#90a4ae',\n  400: '#78909c',\n  500: '#607d8b',\n  600: '#546e7a',\n  700: '#455a64',\n  800: '#37474f',\n  900: '#263238',\n  A100: '#cfd8dc',\n  A200: '#b0bec5',\n  A400: '#78909c',\n  A700: '#455a64'\n};\nvar _default = blueGrey;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"common\", {\n  enumerable: true,\n  get: function get() {\n    return _common.default;\n  }\n});\nObject.defineProperty(exports, \"red\", {\n  enumerable: true,\n  get: function get() {\n    return _red.default;\n  }\n});\nObject.defineProperty(exports, \"pink\", {\n  enumerable: true,\n  get: function get() {\n    return _pink.default;\n  }\n});\nObject.defineProperty(exports, \"purple\", {\n  enumerable: true,\n  get: function get() {\n    return _purple.default;\n  }\n});\nObject.defineProperty(exports, \"deepPurple\", {\n  enumerable: true,\n  get: function get() {\n    return _deepPurple.default;\n  }\n});\nObject.defineProperty(exports, \"indigo\", {\n  enumerable: true,\n  get: function get() {\n    return _indigo.default;\n  }\n});\nObject.defineProperty(exports, \"blue\", {\n  enumerable: true,\n  get: function get() {\n    return _blue.default;\n  }\n});\nObject.defineProperty(exports, \"lightBlue\", {\n  enumerable: true,\n  get: function get() {\n    return _lightBlue.default;\n  }\n});\nObject.defineProperty(exports, \"cyan\", {\n  enumerable: true,\n  get: function get() {\n    return _cyan.default;\n  }\n});\nObject.defineProperty(exports, \"teal\", {\n  enumerable: true,\n  get: function get() {\n    return _teal.default;\n  }\n});\nObject.defineProperty(exports, \"green\", {\n  enumerable: true,\n  get: function get() {\n    return _green.default;\n  }\n});\nObject.defineProperty(exports, \"lightGreen\", {\n  enumerable: true,\n  get: function get() {\n    return _lightGreen.default;\n  }\n});\nObject.defineProperty(exports, \"lime\", {\n  enumerable: true,\n  get: function get() {\n    return _lime.default;\n  }\n});\nObject.defineProperty(exports, \"yellow\", {\n  enumerable: true,\n  get: function get() {\n    return _yellow.default;\n  }\n});\nObject.defineProperty(exports, \"amber\", {\n  enumerable: true,\n  get: function get() {\n    return _amber.default;\n  }\n});\nObject.defineProperty(exports, \"orange\", {\n  enumerable: true,\n  get: function get() {\n    return _orange.default;\n  }\n});\nObject.defineProperty(exports, \"deepOrange\", {\n  enumerable: true,\n  get: function get() {\n    return _deepOrange.default;\n  }\n});\nObject.defineProperty(exports, \"brown\", {\n  enumerable: true,\n  get: function get() {\n    return _brown.default;\n  }\n});\nObject.defineProperty(exports, \"grey\", {\n  enumerable: true,\n  get: function get() {\n    return _grey.default;\n  }\n});\nObject.defineProperty(exports, \"blueGrey\", {\n  enumerable: true,\n  get: function get() {\n    return _blueGrey.default;\n  }\n});\n\nvar _common = _interopRequireDefault(require(\"./common\"));\n\nvar _red = _interopRequireDefault(require(\"./red\"));\n\nvar _pink = _interopRequireDefault(require(\"./pink\"));\n\nvar _purple = _interopRequireDefault(require(\"./purple\"));\n\nvar _deepPurple = _interopRequireDefault(require(\"./deepPurple\"));\n\nvar _indigo = _interopRequireDefault(require(\"./indigo\"));\n\nvar _blue = _interopRequireDefault(require(\"./blue\"));\n\nvar _lightBlue = _interopRequireDefault(require(\"./lightBlue\"));\n\nvar _cyan = _interopRequireDefault(require(\"./cyan\"));\n\nvar _teal = _interopRequireDefault(require(\"./teal\"));\n\nvar _green = _interopRequireDefault(require(\"./green\"));\n\nvar _lightGreen = _interopRequireDefault(require(\"./lightGreen\"));\n\nvar _lime = _interopRequireDefault(require(\"./lime\"));\n\nvar _yellow = _interopRequireDefault(require(\"./yellow\"));\n\nvar _amber = _interopRequireDefault(require(\"./amber\"));\n\nvar _orange = _interopRequireDefault(require(\"./orange\"));\n\nvar _deepOrange = _interopRequireDefault(require(\"./deepOrange\"));\n\nvar _brown = _interopRequireDefault(require(\"./brown\"));\n\nvar _grey = _interopRequireDefault(require(\"./grey\"));\n\nvar _blueGrey = _interopRequireDefault(require(\"./blueGrey\"));","/**\n * Copyright (c) 2014-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\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 __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\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  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createGenerateClassName;\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\n/* eslint-disable no-underscore-dangle */\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\n\nfunction safePrefix(classNamePrefix) {\n  var prefix = String(classNamePrefix);\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(prefix.length < 256, \"Material-UI: the class name prefix is too long: \".concat(prefix, \".\")) : void 0; // Sanitize the string as will be used to prefix the generated class name.\n\n  return prefix.replace(escapeRegex, '-');\n} // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\n\nfunction createGenerateClassName() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var _options$dangerouslyU = options.dangerouslyUseGlobalCSS,\n      dangerouslyUseGlobalCSS = _options$dangerouslyU === void 0 ? false : _options$dangerouslyU,\n      _options$productionPr = options.productionPrefix,\n      productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n      _options$seed = options.seed,\n      seed = _options$seed === void 0 ? '' : _options$seed;\n  var ruleCounter = 0;\n  return function (rule, styleSheet) {\n    ruleCounter += 1;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(ruleCounter < 1e10, ['Material-UI: you might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join('')) : void 0; // Code branch the whole block at the expense of more code.\n\n    if (dangerouslyUseGlobalCSS) {\n      if (styleSheet) {\n        if (styleSheet.options.name) {\n          return \"\".concat(styleSheet.options.name, \"-\").concat(rule.key);\n        }\n\n        if (styleSheet.options.classNamePrefix && process.env.NODE_ENV !== 'production') {\n          var prefix = safePrefix(styleSheet.options.classNamePrefix);\n          return \"\".concat(prefix, \"-\").concat(rule.key, \"-\").concat(seed).concat(ruleCounter);\n        }\n      }\n\n      if (process.env.NODE_ENV === 'production') {\n        return \"\".concat(productionPrefix).concat(seed).concat(ruleCounter);\n      }\n\n      return \"\".concat(rule.key, \"-\").concat(seed).concat(ruleCounter);\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return \"\".concat(productionPrefix).concat(seed).concat(ruleCounter);\n    }\n\n    if (styleSheet && styleSheet.options.classNamePrefix) {\n      var _prefix = safePrefix(styleSheet.options.classNamePrefix);\n\n      return \"\".concat(_prefix, \"-\").concat(rule.key, \"-\").concat(seed).concat(ruleCounter);\n    }\n\n    return \"\".concat(rule.key, \"-\").concat(seed).concat(ruleCounter);\n  };\n}","function _extends() {\n  module.exports = _extends = 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\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n  return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n  return isObject(o) === true\n    && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n  var ctor,prot;\n\n  if (isObjectObject(o) === false) return false;\n\n  // If has modified constructor\n  ctor = o.constructor;\n  if (typeof ctor !== 'function') return false;\n\n  // If has modified prototype\n  prot = ctor.prototype;\n  if (isObjectObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createBreakpoints;\nexports.keys = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nvar keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexports.keys = keys;\n\nfunction createBreakpoints(breakpoints) {\n  var _breakpoints$values = breakpoints.values,\n      values = _breakpoints$values === void 0 ? {\n    xs: 0,\n    sm: 600,\n    md: 960,\n    lg: 1280,\n    xl: 1920\n  } : _breakpoints$values,\n      _breakpoints$unit = breakpoints.unit,\n      unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n      _breakpoints$step = breakpoints.step,\n      step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n      other = (0, _objectWithoutProperties2.default)(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n  function up(key) {\n    var value = typeof values[key] === 'number' ? values[key] : key;\n    return \"@media (min-width:\".concat(value).concat(unit, \")\");\n  }\n\n  function down(key) {\n    var endIndex = keys.indexOf(key) + 1;\n    var upperbound = values[keys[endIndex]];\n\n    if (endIndex === keys.length) {\n      // xl down applies to all sizes\n      return up('xs');\n    }\n\n    var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n    return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n  }\n\n  function between(start, end) {\n    var endIndex = keys.indexOf(end) + 1;\n\n    if (endIndex === keys.length) {\n      return up(start);\n    }\n\n    return \"@media (min-width:\".concat(values[start]).concat(unit, \") and \") + \"(max-width:\".concat(values[keys[endIndex]] - step / 100).concat(unit, \")\");\n  }\n\n  function only(key) {\n    return between(key, key);\n  }\n\n  function width(key) {\n    return values[key];\n  }\n\n  return (0, _extends2.default)({\n    keys: keys,\n    values: values,\n    up: up,\n    down: down,\n    between: between,\n    only: only,\n    width: width\n  }, other);\n}","function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createMixins;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nfunction createMixins(breakpoints, spacing, mixins) {\n  var _toolbar;\n\n  return (0, _extends3.default)({\n    gutters: function gutters() {\n      var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      return (0, _extends3.default)({\n        paddingLeft: spacing.unit * 2,\n        paddingRight: spacing.unit * 2\n      }, styles, (0, _defineProperty2.default)({}, breakpoints.up('sm'), (0, _extends3.default)({\n        paddingLeft: spacing.unit * 3,\n        paddingRight: spacing.unit * 3\n      }, styles[breakpoints.up('sm')])));\n    },\n    toolbar: (_toolbar = {\n      minHeight: 56\n    }, (0, _defineProperty2.default)(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n      minHeight: 48\n    }), (0, _defineProperty2.default)(_toolbar, breakpoints.up('sm'), {\n      minHeight: 64\n    }), _toolbar)\n  }, mixins);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.convertHexToRGB = convertHexToRGB;\nexports.rgbToHex = rgbToHex;\nexports.decomposeColor = decomposeColor;\nexports.recomposeColor = recomposeColor;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.emphasize = emphasize;\nexports.fade = fade;\nexports.darken = darken;\nexports.lighten = lighten;\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(value >= min && value <= max, \"Material-UI: the value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\")) : void 0;\n\n  if (value < min) {\n    return min;\n  }\n\n  if (value > max) {\n    return max;\n  }\n\n  return value;\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction convertHexToRGB(color) {\n  color = color.substr(1);\n  var re = new RegExp(\".{1,\".concat(color.length / 3, \"}\"), 'g');\n  var colors = color.match(re);\n\n  if (colors && colors[0].length === 1) {\n    colors = colors.map(function (n) {\n      return n + n;\n    });\n  }\n\n  return colors ? \"rgb(\".concat(colors.map(function (n) {\n    return parseInt(n, 16);\n  }).join(', '), \")\") : '';\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n  // Pass hex straight through\n  if (color.indexOf('#') === 0) {\n    return color;\n  }\n\n  function intToHex(c) {\n    var hex = c.toString(16);\n    return hex.length === 1 ? \"0\".concat(hex) : hex;\n  }\n\n  var _decomposeColor = decomposeColor(color),\n      values = _decomposeColor.values;\n\n  values = values.map(function (n) {\n    return intToHex(n);\n  });\n  return \"#\".concat(values.join(''));\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nfunction decomposeColor(color) {\n  if (color.charAt(0) === '#') {\n    return decomposeColor(convertHexToRGB(color));\n  }\n\n  var marker = color.indexOf('(');\n  var type = color.substring(0, marker);\n  var values = color.substring(marker + 1, color.length - 1).split(',');\n  values = values.map(function (value) {\n    return parseFloat(value);\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n      throw new Error([\"Material-UI: unsupported `\".concat(color, \"` color.\"), 'We support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().'].join('\\n'));\n    }\n  }\n\n  return {\n    type: type,\n    values: values\n  };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\n\nfunction recomposeColor(color) {\n  var type = color.type;\n  var values = color.values;\n\n  if (type.indexOf('rgb') !== -1) {\n    // Only convert the first 3 values to int (i.e. not alpha)\n    values = values.map(function (n, i) {\n      return i < 3 ? parseInt(n, 10) : n;\n    });\n  }\n\n  if (type.indexOf('hsl') !== -1) {\n    values[1] = \"\".concat(values[1], \"%\");\n    values[2] = \"\".concat(values[2], \"%\");\n  }\n\n  return \"\".concat(color.type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\n\nfunction getContrastRatio(foreground, background) {\n  var lumA = getLuminance(foreground);\n  var lumB = getLuminance(background);\n  return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\n\nfunction getLuminance(color) {\n  var decomposedColor = decomposeColor(color);\n\n  if (decomposedColor.type.indexOf('rgb') !== -1) {\n    var rgb = decomposedColor.values.map(function (val) {\n      val /= 255; // normalized\n\n      return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n    }); // Truncate at 3 digits\n\n    return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n  } // else if (decomposedColor.type.indexOf('hsl') !== -1)\n\n\n  return decomposedColor.values[2] / 100;\n}\n/**\n * Darken or lighten a colour, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction emphasize(color) {\n  var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n  return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction fade(color, value) {\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(color, \"Material-UI: missing color argument in fade(\".concat(color, \", \").concat(value, \").\")) : void 0;\n  if (!color) return color;\n  color = decomposeColor(color);\n  value = clamp(value);\n\n  if (color.type === 'rgb' || color.type === 'hsl') {\n    color.type += 'a';\n  }\n\n  color.values[3] = value;\n  return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction darken(color, coefficient) {\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(color, \"Material-UI: missing color argument in darken(\".concat(color, \", \").concat(coefficient, \").\")) : void 0;\n  if (!color) return color;\n  color = decomposeColor(color);\n  coefficient = clamp(coefficient);\n\n  if (color.type.indexOf('hsl') !== -1) {\n    color.values[2] *= 1 - coefficient;\n  } else if (color.type.indexOf('rgb') !== -1) {\n    for (var i = 0; i < 3; i += 1) {\n      color.values[i] *= 1 - coefficient;\n    }\n  }\n\n  return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction lighten(color, coefficient) {\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(color, \"Material-UI: missing color argument in lighten(\".concat(color, \", \").concat(coefficient, \").\")) : void 0;\n  if (!color) return color;\n  color = decomposeColor(color);\n  coefficient = clamp(coefficient);\n\n  if (color.type.indexOf('hsl') !== -1) {\n    color.values[2] += (100 - color.values[2]) * coefficient;\n  } else if (color.type.indexOf('rgb') !== -1) {\n    for (var i = 0; i < 3; i += 1) {\n      color.values[i] += (255 - color.values[i]) * coefficient;\n    }\n  }\n\n  return recomposeColor(color);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createPalette;\nexports.dark = exports.light = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _indigo = _interopRequireDefault(require(\"../colors/indigo\"));\n\nvar _pink = _interopRequireDefault(require(\"../colors/pink\"));\n\nvar _grey = _interopRequireDefault(require(\"../colors/grey\"));\n\nvar _red = _interopRequireDefault(require(\"../colors/red\"));\n\nvar _common = _interopRequireDefault(require(\"../colors/common\"));\n\nvar _colorManipulator = require(\"./colorManipulator\");\n\n// < 1kb payload overhead when lodash/merge is > 3kb.\nvar light = {\n  // The colors used to style the text.\n  text: {\n    // The most important text.\n    primary: 'rgba(0, 0, 0, 0.87)',\n    // Secondary text.\n    secondary: 'rgba(0, 0, 0, 0.54)',\n    // Disabled text have even lower visual prominence.\n    disabled: 'rgba(0, 0, 0, 0.38)',\n    // Text hints.\n    hint: 'rgba(0, 0, 0, 0.38)'\n  },\n  // The color used to divide different elements.\n  divider: 'rgba(0, 0, 0, 0.12)',\n  // The background colors used to style the surfaces.\n  // Consistency between these values is important.\n  background: {\n    paper: _common.default.white,\n    default: _grey.default[50]\n  },\n  // The colors used to style the action elements.\n  action: {\n    // The color of an active action like an icon button.\n    active: 'rgba(0, 0, 0, 0.54)',\n    // The color of an hovered action.\n    hover: 'rgba(0, 0, 0, 0.08)',\n    hoverOpacity: 0.08,\n    // The color of a selected action.\n    selected: 'rgba(0, 0, 0, 0.14)',\n    // The color of a disabled action.\n    disabled: 'rgba(0, 0, 0, 0.26)',\n    // The background color of a disabled action.\n    disabledBackground: 'rgba(0, 0, 0, 0.12)'\n  }\n};\nexports.light = light;\nvar dark = {\n  text: {\n    primary: _common.default.white,\n    secondary: 'rgba(255, 255, 255, 0.7)',\n    disabled: 'rgba(255, 255, 255, 0.5)',\n    hint: 'rgba(255, 255, 255, 0.5)',\n    icon: 'rgba(255, 255, 255, 0.5)'\n  },\n  divider: 'rgba(255, 255, 255, 0.12)',\n  background: {\n    paper: _grey.default[800],\n    default: '#303030'\n  },\n  action: {\n    active: _common.default.white,\n    hover: 'rgba(255, 255, 255, 0.1)',\n    hoverOpacity: 0.1,\n    selected: 'rgba(255, 255, 255, 0.2)',\n    disabled: 'rgba(255, 255, 255, 0.3)',\n    disabledBackground: 'rgba(255, 255, 255, 0.12)'\n  }\n};\nexports.dark = dark;\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n  if (!intent[direction]) {\n    if (intent.hasOwnProperty(shade)) {\n      intent[direction] = intent[shade];\n    } else if (direction === 'light') {\n      intent.light = (0, _colorManipulator.lighten)(intent.main, tonalOffset);\n    } else if (direction === 'dark') {\n      intent.dark = (0, _colorManipulator.darken)(intent.main, tonalOffset * 1.5);\n    }\n  }\n}\n\nfunction createPalette(palette) {\n  var _palette$primary = palette.primary,\n      primary = _palette$primary === void 0 ? {\n    light: _indigo.default[300],\n    main: _indigo.default[500],\n    dark: _indigo.default[700]\n  } : _palette$primary,\n      _palette$secondary = palette.secondary,\n      secondary = _palette$secondary === void 0 ? {\n    light: _pink.default.A200,\n    main: _pink.default.A400,\n    dark: _pink.default.A700\n  } : _palette$secondary,\n      _palette$error = palette.error,\n      error = _palette$error === void 0 ? {\n    light: _red.default[300],\n    main: _red.default[500],\n    dark: _red.default[700]\n  } : _palette$error,\n      _palette$type = palette.type,\n      type = _palette$type === void 0 ? 'light' : _palette$type,\n      _palette$contrastThre = palette.contrastThreshold,\n      contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n      _palette$tonalOffset = palette.tonalOffset,\n      tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n      other = (0, _objectWithoutProperties2.default)(palette, [\"primary\", \"secondary\", \"error\", \"type\", \"contrastThreshold\", \"tonalOffset\"]);\n\n  function getContrastText(background) {\n    // Use the same logic as\n    // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n    // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n    var contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText);\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(contrast >= 3, [\"Material-UI: the contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WACG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n')) : void 0;\n    }\n\n    return contrastText;\n  }\n\n  function augmentColor(color) {\n    var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n    var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n    var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n\n    if (!color.main && color[mainShade]) {\n      color.main = color[mainShade];\n    }\n\n    if (process.env.NODE_ENV !== 'production' && !color.main) {\n      throw new Error(['Material-UI: the color provided to augmentColor(color) is invalid.', \"The color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\")].join('\\n'));\n    }\n\n    addLightOrDark(color, 'light', lightShade, tonalOffset);\n    addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n    if (!color.contrastText) {\n      color.contrastText = getContrastText(color.main);\n    }\n  }\n\n  augmentColor(primary);\n  augmentColor(secondary, 'A400', 'A200', 'A700');\n  augmentColor(error);\n  var types = {\n    dark: dark,\n    light: light\n  };\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(types[type], \"Material-UI: the palette type `\".concat(type, \"` is not supported.\")) : void 0;\n  var paletteOutput = (0, _deepmerge.default)((0, _extends2.default)({\n    // A collection of common colors.\n    common: _common.default,\n    // The palette type, can be light or dark.\n    type: type,\n    // The colors used to represent primary interface elements for a user.\n    primary: primary,\n    // The colors used to represent secondary interface elements for a user.\n    secondary: secondary,\n    // The colors used to represent interface elements that the user should be made aware of.\n    error: error,\n    // The grey colors.\n    grey: _grey.default,\n    // Used by `getContrastText()` to maximize the contrast between the background and\n    // the text.\n    contrastThreshold: contrastThreshold,\n    // Take a background color and return the color of the text to maximize the contrast.\n    getContrastText: getContrastText,\n    // Generate a rich color object.\n    augmentColor: augmentColor,\n    // Used by the functions below to shift a color's luminance by approximately\n    // two indexes within its tonal palette.\n    // E.g., shift from Red 500 to Red 300 or Red 700.\n    tonalOffset: tonalOffset\n  }, types[type]), other, {\n    clone: false // No need to clone deep\n\n  });\n  return paletteOutput;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createTypography;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\n// < 1kb payload overhead when lodash/merge is > 3kb.\nfunction round(value) {\n  return Math.round(value * 1e5) / 1e5;\n}\n\nfunction createTypography(palette, typography) {\n  var _ref = typeof typography === 'function' ? typography(palette) : typography,\n      _ref$fontFamily = _ref.fontFamily,\n      fontFamily = _ref$fontFamily === void 0 ? '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif' : _ref$fontFamily,\n      _ref$fontSize = _ref.fontSize,\n      fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n      _ref$fontWeightLight = _ref.fontWeightLight,\n      fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n      _ref$fontWeightRegula = _ref.fontWeightRegular,\n      fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n      _ref$fontWeightMedium = _ref.fontWeightMedium,\n      fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n      _ref$htmlFontSize = _ref.htmlFontSize,\n      htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n      allVariants = _ref.allVariants,\n      other = (0, _objectWithoutProperties2.default)(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"htmlFontSize\", \"allVariants\"]);\n\n  var coef = fontSize / 14;\n\n  function pxToRem(value) {\n    return \"\".concat(value / htmlFontSize * coef, \"rem\");\n  }\n\n  return (0, _deepmerge.default)({\n    pxToRem: pxToRem,\n    round: round,\n    fontFamily: fontFamily,\n    fontSize: fontSize,\n    fontWeightLight: fontWeightLight,\n    fontWeightRegular: fontWeightRegular,\n    fontWeightMedium: fontWeightMedium,\n    display4: (0, _extends2.default)({\n      fontSize: pxToRem(112),\n      fontWeight: fontWeightLight,\n      fontFamily: fontFamily,\n      letterSpacing: '-.04em',\n      lineHeight: \"\".concat(round(128 / 112), \"em\"),\n      marginLeft: '-.04em',\n      color: palette.text.secondary\n    }, allVariants),\n    display3: (0, _extends2.default)({\n      fontSize: pxToRem(56),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      letterSpacing: '-.02em',\n      lineHeight: \"\".concat(round(73 / 56), \"em\"),\n      marginLeft: '-.02em',\n      color: palette.text.secondary\n    }, allVariants),\n    display2: (0, _extends2.default)({\n      fontSize: pxToRem(45),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(51 / 45), \"em\"),\n      marginLeft: '-.02em',\n      color: palette.text.secondary\n    }, allVariants),\n    display1: (0, _extends2.default)({\n      fontSize: pxToRem(34),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(41 / 34), \"em\"),\n      color: palette.text.secondary\n    }, allVariants),\n    headline: (0, _extends2.default)({\n      fontSize: pxToRem(24),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(32.5 / 24), \"em\"),\n      color: palette.text.primary\n    }, allVariants),\n    title: (0, _extends2.default)({\n      fontSize: pxToRem(21),\n      fontWeight: fontWeightMedium,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(24.5 / 21), \"em\"),\n      color: palette.text.primary\n    }, allVariants),\n    subheading: (0, _extends2.default)({\n      fontSize: pxToRem(16),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(24 / 16), \"em\"),\n      color: palette.text.primary\n    }, allVariants),\n    body2: (0, _extends2.default)({\n      fontSize: pxToRem(14),\n      fontWeight: fontWeightMedium,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(24 / 14), \"em\"),\n      color: palette.text.primary\n    }, allVariants),\n    body1: (0, _extends2.default)({\n      fontSize: pxToRem(14),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(20.5 / 14), \"em\"),\n      color: palette.text.primary\n    }, allVariants),\n    caption: (0, _extends2.default)({\n      fontSize: pxToRem(12),\n      fontWeight: fontWeightRegular,\n      fontFamily: fontFamily,\n      lineHeight: \"\".concat(round(16.5 / 12), \"em\"),\n      color: palette.text.secondary\n    }, allVariants),\n    button: (0, _extends2.default)({\n      fontSize: pxToRem(14),\n      textTransform: 'uppercase',\n      fontWeight: fontWeightMedium,\n      fontFamily: fontFamily,\n      color: palette.text.primary\n    }, allVariants)\n  }, other, {\n    clone: false // No need to clone deep\n\n  });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n  return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0, 0, 0, \").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0, 0, 0, \").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0, 0, 0, \").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n}\n\nvar shadows = ['none', createShadow(0, 1, 3, 0, 0, 1, 1, 0, 0, 2, 1, -1), createShadow(0, 1, 5, 0, 0, 2, 2, 0, 0, 3, 1, -2), createShadow(0, 1, 8, 0, 0, 3, 4, 0, 0, 3, 3, -2), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nvar _default = shadows;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar shape = {\n  borderRadius: 4\n};\nvar _default = shape;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\nvar spacing = {\n  // All components align to an 8dp square baseline grid for mobile, tablet, and desktop.\n  // https://material.io/design/layout/understanding-layout.html#pixel-density\n  unit: 8\n};\nvar _default = spacing;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.isNumber = exports.isString = exports.formatMs = exports.duration = exports.easing = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\n/* eslint-disable no-param-reassign */\n\n/* eslint-disable no-restricted-globals */\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nvar easing = {\n  // This is the most common easing curve.\n  easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n  // Objects enter the screen at full velocity from off-screen and\n  // slowly decelerate to a resting point.\n  easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n  // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n  easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n  // The sharp curve is used by objects that may return to the screen at any time.\n  sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexports.easing = easing;\nvar duration = {\n  shortest: 150,\n  shorter: 200,\n  short: 250,\n  // most basic recommended timing\n  standard: 300,\n  // this is to be used in complex animations\n  complex: 375,\n  // recommended when something is entering screen\n  enteringScreen: 225,\n  // recommended when something is leaving screen\n  leavingScreen: 195\n};\nexports.duration = duration;\n\nvar formatMs = function formatMs(milliseconds) {\n  return \"\".concat(Math.round(milliseconds), \"ms\");\n};\n\nexports.formatMs = formatMs;\n\nvar isString = function isString(value) {\n  return typeof value === 'string';\n};\n\nexports.isString = isString;\n\nvar isNumber = function isNumber(value) {\n  return !isNaN(parseFloat(value));\n};\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexports.isNumber = isNumber;\nvar _default = {\n  easing: easing,\n  duration: duration,\n  create: function create() {\n    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _options$duration = options.duration,\n        durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n        _options$easing = options.easing,\n        easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n        _options$delay = options.delay,\n        delay = _options$delay === void 0 ? 0 : _options$delay,\n        other = (0, _objectWithoutProperties2.default)(options, [\"duration\", \"easing\", \"delay\"]);\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(isString(props) || Array.isArray(props), 'Material-UI: argument \"props\" must be a string or Array.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(isNumber(durationOption) || isString(durationOption), \"Material-UI: argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\")) : void 0;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(isString(easingOption), 'Material-UI: argument \"easing\" must be a string.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(isNumber(delay) || isString(delay), 'Material-UI: argument \"delay\" must be a number or a string.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(Object.keys(other).length === 0, \"Material-UI: unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"]\")) : void 0;\n    return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n      return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n    }).join(',');\n  },\n  getAutoHeightDuration: function getAutoHeightDuration(height) {\n    if (!height) {\n      return 0;\n    }\n\n    var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n    return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n  }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n  mobileStepper: 1000,\n  appBar: 1100,\n  drawer: 1200,\n  modal: 1300,\n  snackbar: 1400,\n  tooltip: 1500\n};\nvar _default = zIndex;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _isPlainObject = _interopRequireDefault(require(\"is-plain-object\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _createBreakpoints = _interopRequireDefault(require(\"./createBreakpoints\"));\n\nvar _createMixins = _interopRequireDefault(require(\"./createMixins\"));\n\nvar _createPalette = _interopRequireDefault(require(\"./createPalette\"));\n\nvar _createTypography = _interopRequireDefault(require(\"./createTypography\"));\n\nvar _shadows = _interopRequireDefault(require(\"./shadows\"));\n\nvar _shape = _interopRequireDefault(require(\"./shape\"));\n\nvar _spacing = _interopRequireDefault(require(\"./spacing\"));\n\nvar _transitions = _interopRequireDefault(require(\"./transitions\"));\n\nvar _zIndex = _interopRequireDefault(require(\"./zIndex\"));\n\n// < 1kb payload overhead when lodash/merge is > 3kb.\nfunction createMuiTheme() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var _options$breakpoints = options.breakpoints,\n      breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n      _options$mixins = options.mixins,\n      mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n      _options$palette = options.palette,\n      paletteInput = _options$palette === void 0 ? {} : _options$palette,\n      shadowsInput = options.shadows,\n      _options$typography = options.typography,\n      typographyInput = _options$typography === void 0 ? {} : _options$typography,\n      other = (0, _objectWithoutProperties2.default)(options, [\"breakpoints\", \"mixins\", \"palette\", \"shadows\", \"typography\"]);\n  var palette = (0, _createPalette.default)(paletteInput);\n  var breakpoints = (0, _createBreakpoints.default)(breakpointsInput);\n  var muiTheme = (0, _extends2.default)({\n    breakpoints: breakpoints,\n    direction: 'ltr',\n    mixins: (0, _createMixins.default)(breakpoints, _spacing.default, mixinsInput),\n    overrides: {},\n    // Inject custom styles\n    palette: palette,\n    props: {},\n    // Inject custom properties\n    shadows: shadowsInput || _shadows.default,\n    typography: (0, _createTypography.default)(palette, typographyInput)\n  }, (0, _deepmerge.default)({\n    shape: _shape.default,\n    spacing: _spacing.default,\n    transitions: _transitions.default,\n    zIndex: _zIndex.default\n  }, other, {\n    isMergeableObject: _isPlainObject.default\n  }));\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(muiTheme.shadows.length === 25, 'Material-UI: the shadows array provided to createMuiTheme should support 25 elevations.') : void 0;\n  return muiTheme;\n}\n\nvar _default = createMuiTheme;\nexports.default = _default;","'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['default'] = getDynamicStyles;\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n  var to = null;\n\n  for (var key in styles) {\n    var value = styles[key];\n    var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n    if (type === 'function') {\n      if (!to) to = {};\n      to[key] = value;\n    } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n      var extracted = getDynamicStyles(value);\n      if (extracted) {\n        if (!to) to = {};\n        to[key] = extracted;\n      }\n    }\n  }\n\n  return to;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = toCssValue;\nvar join = function join(value, by) {\n  var result = '';\n  for (var i = 0; i < value.length; i++) {\n    // Remove !important from the value, it will be readded later.\n    if (value[i] === '!important') break;\n    if (result) result += by;\n    result += value[i];\n  }\n  return result;\n};\n\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nfunction toCssValue(value) {\n  var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  if (!Array.isArray(value)) return value;\n\n  var cssValue = '';\n\n  // Support space separated values via `[['5px', '10px']]`.\n  if (Array.isArray(value[0])) {\n    for (var i = 0; i < value.length; i++) {\n      if (value[i] === '!important') break;\n      if (cssValue) cssValue += ', ';\n      cssValue += join(value[i], ' ');\n    }\n  } else cssValue = join(value, ', ');\n\n  // Add !important, because it was ignored.\n  if (!ignoreImportant && value[value.length - 1] === '!important') {\n    cssValue += ' !important';\n  }\n\n  return cssValue;\n}","'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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry = function () {\n  function SheetsRegistry() {\n    _classCallCheck(this, SheetsRegistry);\n\n    this.registry = [];\n  }\n\n  _createClass(SheetsRegistry, [{\n    key: 'add',\n\n\n    /**\n     * Register a Style Sheet.\n     */\n    value: function add(sheet) {\n      var registry = this.registry;\n      var index = sheet.options.index;\n\n\n      if (registry.indexOf(sheet) !== -1) return;\n\n      if (registry.length === 0 || index >= this.index) {\n        registry.push(sheet);\n        return;\n      }\n\n      // Find a position.\n      for (var i = 0; i < registry.length; i++) {\n        if (registry[i].options.index > index) {\n          registry.splice(i, 0, sheet);\n          return;\n        }\n      }\n    }\n\n    /**\n     * Reset the registry.\n     */\n\n  }, {\n    key: 'reset',\n    value: function reset() {\n      this.registry = [];\n    }\n\n    /**\n     * Remove a Style Sheet.\n     */\n\n  }, {\n    key: 'remove',\n    value: function remove(sheet) {\n      var index = this.registry.indexOf(sheet);\n      this.registry.splice(index, 1);\n    }\n\n    /**\n     * Convert all attached sheets to a CSS string.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString(options) {\n      return this.registry.filter(function (sheet) {\n        return sheet.attached;\n      }).map(function (sheet) {\n        return sheet.toString(options);\n      }).join('\\n');\n    }\n  }, {\n    key: 'index',\n\n\n    /**\n     * Current highest index number.\n     */\n    get: function get() {\n      return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n    }\n  }]);\n\n  return SheetsRegistry;\n}();\n\nexports['default'] = SheetsRegistry;","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * 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 warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\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\nmodule.exports = warning;\n","'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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager = function () {\n  function SheetsManager() {\n    _classCallCheck(this, SheetsManager);\n\n    this.sheets = [];\n    this.refs = [];\n    this.keys = [];\n  }\n\n  _createClass(SheetsManager, [{\n    key: 'get',\n    value: function get(key) {\n      var index = this.keys.indexOf(key);\n      return this.sheets[index];\n    }\n  }, {\n    key: 'add',\n    value: function add(key, sheet) {\n      var sheets = this.sheets,\n          refs = this.refs,\n          keys = this.keys;\n\n      var index = sheets.indexOf(sheet);\n\n      if (index !== -1) return index;\n\n      sheets.push(sheet);\n      refs.push(0);\n      keys.push(key);\n\n      return sheets.length - 1;\n    }\n  }, {\n    key: 'manage',\n    value: function manage(key) {\n      var index = this.keys.indexOf(key);\n      var sheet = this.sheets[index];\n      if (this.refs[index] === 0) sheet.attach();\n      this.refs[index]++;\n      if (!this.keys[index]) this.keys.splice(index, 0, key);\n      return sheet;\n    }\n  }, {\n    key: 'unmanage',\n    value: function unmanage(key) {\n      var index = this.keys.indexOf(key);\n      if (index === -1) {\n        // eslint-ignore-next-line no-console\n        (0, _warning2['default'])(false, \"SheetsManager: can't find sheet to unmanage\");\n        return;\n      }\n      if (this.refs[index] > 0) {\n        this.refs[index]--;\n        if (this.refs[index] === 0) this.sheets[index].detach();\n      }\n    }\n  }, {\n    key: 'size',\n    get: function get() {\n      return this.keys.length;\n    }\n  }]);\n\n  return SheetsManager;\n}();\n\nexports['default'] = SheetsManager;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = toCss;\n\nvar _toCssValue = require('./toCssValue');\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n  var result = '';\n  for (var index = 0; index < indent; index++) {\n    result += '  ';\n  }return result + str;\n}\n\n/**\n * Converts a Rule to CSS string.\n */\n\nfunction toCss(selector, style) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  var result = '';\n\n  if (!style) return result;\n\n  var _options$indent = options.indent,\n      indent = _options$indent === undefined ? 0 : _options$indent;\n  var fallbacks = style.fallbacks;\n\n\n  indent++;\n\n  // Apply fallbacks first.\n  if (fallbacks) {\n    // Array syntax {fallbacks: [{prop: value}]}\n    if (Array.isArray(fallbacks)) {\n      for (var index = 0; index < fallbacks.length; index++) {\n        var fallback = fallbacks[index];\n        for (var prop in fallback) {\n          var value = fallback[prop];\n          if (value != null) {\n            result += '\\n' + indentStr(prop + ': ' + (0, _toCssValue2['default'])(value) + ';', indent);\n          }\n        }\n      }\n    } else {\n      // Object syntax {fallbacks: {prop: value}}\n      for (var _prop in fallbacks) {\n        var _value = fallbacks[_prop];\n        if (_value != null) {\n          result += '\\n' + indentStr(_prop + ': ' + (0, _toCssValue2['default'])(_value) + ';', indent);\n        }\n      }\n    }\n  }\n\n  for (var _prop2 in style) {\n    var _value2 = style[_prop2];\n    if (_value2 != null && _prop2 !== 'fallbacks') {\n      result += '\\n' + indentStr(_prop2 + ': ' + (0, _toCssValue2['default'])(_value2) + ';', indent);\n    }\n  }\n\n  // Allow empty style in this case, because properties will be added dynamically.\n  if (!result && !options.allowEmpty) return result;\n\n  indent--;\n  result = indentStr(selector + ' {' + result + '\\n', indent) + indentStr('}', indent);\n\n  return result;\n}","'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 _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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _toCss = require('../utils/toCss');\n\nvar _toCss2 = _interopRequireDefault(_toCss);\n\nvar _toCssValue = require('../utils/toCssValue');\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\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 StyleRule = function () {\n  function StyleRule(key, style, options) {\n    _classCallCheck(this, StyleRule);\n\n    this.type = 'style';\n    this.isProcessed = false;\n    var sheet = options.sheet,\n        Renderer = options.Renderer,\n        selector = options.selector;\n\n    this.key = key;\n    this.options = options;\n    this.style = style;\n    if (selector) this.selectorText = selector;\n    this.renderer = sheet ? sheet.renderer : new Renderer();\n  }\n\n  /**\n   * Set selector string.\n   * Attention: use this with caution. Most browsers didn't implement\n   * selectorText setter, so this may result in rerendering of entire Style Sheet.\n   */\n\n\n  _createClass(StyleRule, [{\n    key: 'prop',\n\n\n    /**\n     * Get or set a style property.\n     */\n    value: function prop(name, value) {\n      // It's a getter.\n      if (value === undefined) return this.style[name];\n\n      // Don't do anything if the value has not changed.\n      if (this.style[name] === value) return this;\n\n      value = this.options.jss.plugins.onChangeValue(value, name, this);\n\n      var isEmpty = value == null || value === false;\n      var isDefined = name in this.style;\n\n      // Value is empty and wasn't defined before.\n      if (isEmpty && !isDefined) return this;\n\n      // We are going to remove this value.\n      var remove = isEmpty && isDefined;\n\n      if (remove) delete this.style[name];else this.style[name] = value;\n\n      // Renderable is defined if StyleSheet option `link` is true.\n      if (this.renderable) {\n        if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, value);\n        return this;\n      }\n\n      var sheet = this.options.sheet;\n\n      if (sheet && sheet.attached) {\n        (0, _warning2['default'])(false, 'Rule is not linked. Missing sheet option \"link: true\".');\n      }\n      return this;\n    }\n\n    /**\n     * Apply rule to an element inline.\n     */\n\n  }, {\n    key: 'applyTo',\n    value: function applyTo(renderable) {\n      var json = this.toJSON();\n      for (var prop in json) {\n        this.renderer.setProperty(renderable, prop, json[prop]);\n      }return this;\n    }\n\n    /**\n     * Returns JSON representation of the rule.\n     * Fallbacks are not supported.\n     * Useful for inline styles.\n     */\n\n  }, {\n    key: 'toJSON',\n    value: function toJSON() {\n      var json = {};\n      for (var prop in this.style) {\n        var value = this.style[prop];\n        if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = (0, _toCssValue2['default'])(value);\n      }\n      return json;\n    }\n\n    /**\n     * Generates a CSS string.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString(options) {\n      var sheet = this.options.sheet;\n\n      var link = sheet ? sheet.options.link : false;\n      var opts = link ? _extends({}, options, { allowEmpty: true }) : options;\n      return (0, _toCss2['default'])(this.selector, this.style, opts);\n    }\n  }, {\n    key: 'selector',\n    set: function set(selector) {\n      if (selector === this.selectorText) return;\n\n      this.selectorText = selector;\n\n      if (!this.renderable) return;\n\n      var hasChanged = this.renderer.setSelector(this.renderable, selector);\n\n      // If selector setter is not implemented, rerender the rule.\n      if (!hasChanged && this.renderable) {\n        var renderable = this.renderer.replaceRule(this.renderable, this);\n        if (renderable) this.renderable = renderable;\n      }\n    }\n\n    /**\n     * Get selector string.\n     */\n    ,\n    get: function get() {\n      return this.selectorText;\n    }\n  }]);\n\n  return StyleRule;\n}();\n\nexports['default'] = StyleRule;","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n  root = self;\n} else if (typeof window !== 'undefined') {\n  root = window;\n} else if (typeof global !== 'undefined') {\n  root = global;\n} else if (typeof module !== 'undefined') {\n  root = module;\n} else {\n  root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = function (value) {\n  return value && value[_symbolObservable2['default']] && value === value[_symbolObservable2['default']]();\n};","'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['default'] = cloneStyle;\n\nvar _isObservable = require('./isObservable');\n\nvar _isObservable2 = _interopRequireDefault(_isObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar isArray = Array.isArray;\nfunction cloneStyle(style) {\n  // Support empty values in case user ends up with them by accident.\n  if (style == null) return style;\n\n  // Support string value for SimpleRule.\n  var typeOfStyle = typeof style === 'undefined' ? 'undefined' : _typeof(style);\n\n  if (typeOfStyle === 'string' || typeOfStyle === 'number' || typeOfStyle === 'function') {\n    return style;\n  }\n\n  // Support array for FontFaceRule.\n  if (isArray(style)) return style.map(cloneStyle);\n\n  // Support Observable styles.  Observables are immutable, so we don't need to\n  // copy them.\n  if ((0, _isObservable2['default'])(style)) return style;\n\n  var newStyle = {};\n  for (var name in style) {\n    var value = style[name];\n    if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n      newStyle[name] = cloneStyle(value);\n      continue;\n    }\n    newStyle[name] = value;\n  }\n\n  return newStyle;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = createRule;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _StyleRule = require('../rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _cloneStyle = require('../utils/cloneStyle');\n\nvar _cloneStyle2 = _interopRequireDefault(_cloneStyle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Create a rule instance.\n */\nfunction createRule() {\n  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unnamed';\n  var decl = arguments[1];\n  var options = arguments[2];\n  var jss = options.jss;\n\n  var declCopy = (0, _cloneStyle2['default'])(decl);\n\n  var rule = jss.plugins.onCreateRule(name, declCopy, options);\n  if (rule) return rule;\n\n  // It is an at-rule and it has no instance.\n  if (name[0] === '@') {\n    (0, _warning2['default'])(false, '[JSS] Unknown at-rule %s', name);\n  }\n\n  return new _StyleRule2['default'](name, declCopy, options);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = linkRule;\n/**\n * Link rule with CSSStyleRule and nested rules with corresponding nested cssRules if both exists.\n */\nfunction linkRule(rule, cssRule) {\n  rule.renderable = cssRule;\n  if (rule.rules && cssRule.cssRules) rule.rules.link(cssRule.cssRules);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar CSS = global.CSS;\n\nvar env = process.env.NODE_ENV;\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`])/g;\n\nexports['default'] = function (str) {\n  // We don't need to escape it in production, because we are not using user's\n  // input for selectors, we are generating a valid selector.\n  if (env === 'production') return str;\n\n  if (!CSS || !CSS.escape) {\n    return str.replace(escapeRegex, '\\\\$1');\n  }\n\n  return CSS.escape(str);\n};","'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 _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 _createRule = require('./utils/createRule');\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nvar _linkRule = require('./utils/linkRule');\n\nvar _linkRule2 = _interopRequireDefault(_linkRule);\n\nvar _StyleRule = require('./rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _escape = require('./utils/escape');\n\nvar _escape2 = _interopRequireDefault(_escape);\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\n/**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\nvar RuleList = function () {\n\n  // Original styles object.\n  function RuleList(options) {\n    var _this = this;\n\n    _classCallCheck(this, RuleList);\n\n    this.map = {};\n    this.raw = {};\n    this.index = [];\n\n    this.update = function (name, data) {\n      var _options = _this.options,\n          plugins = _options.jss.plugins,\n          sheet = _options.sheet;\n\n      if (typeof name === 'string') {\n        plugins.onUpdate(data, _this.get(name), sheet);\n      } else {\n        for (var index = 0; index < _this.index.length; index++) {\n          plugins.onUpdate(name, _this.index[index], sheet);\n        }\n      }\n    };\n\n    this.options = options;\n    this.classes = options.classes;\n  }\n\n  /**\n   * Create and register rule.\n   *\n   * Will not render after Style Sheet was rendered the first time.\n   */\n\n\n  // Used to ensure correct rules order.\n\n  // Rules registry for access by .get() method.\n  // It contains the same rule registered by name and by selector.\n\n\n  _createClass(RuleList, [{\n    key: 'add',\n    value: function add(name, decl, options) {\n      var _options2 = this.options,\n          parent = _options2.parent,\n          sheet = _options2.sheet,\n          jss = _options2.jss,\n          Renderer = _options2.Renderer,\n          generateClassName = _options2.generateClassName;\n\n\n      options = _extends({\n        classes: this.classes,\n        parent: parent,\n        sheet: sheet,\n        jss: jss,\n        Renderer: Renderer,\n        generateClassName: generateClassName\n      }, options);\n\n      if (!options.selector && this.classes[name]) {\n        options.selector = '.' + (0, _escape2['default'])(this.classes[name]);\n      }\n\n      this.raw[name] = decl;\n\n      var rule = (0, _createRule2['default'])(name, decl, options);\n\n      var className = void 0;\n\n      if (!options.selector && rule instanceof _StyleRule2['default']) {\n        className = generateClassName(rule, sheet);\n        rule.selector = '.' + (0, _escape2['default'])(className);\n      }\n\n      this.register(rule, className);\n\n      var index = options.index === undefined ? this.index.length : options.index;\n      this.index.splice(index, 0, rule);\n\n      return rule;\n    }\n\n    /**\n     * Get a rule.\n     */\n\n  }, {\n    key: 'get',\n    value: function get(name) {\n      return this.map[name];\n    }\n\n    /**\n     * Delete a rule.\n     */\n\n  }, {\n    key: 'remove',\n    value: function remove(rule) {\n      this.unregister(rule);\n      this.index.splice(this.indexOf(rule), 1);\n    }\n\n    /**\n     * Get index of a rule.\n     */\n\n  }, {\n    key: 'indexOf',\n    value: function indexOf(rule) {\n      return this.index.indexOf(rule);\n    }\n\n    /**\n     * Run `onProcessRule()` plugins on every rule.\n     */\n\n  }, {\n    key: 'process',\n    value: function process() {\n      var plugins = this.options.jss.plugins;\n      // We need to clone array because if we modify the index somewhere else during a loop\n      // we end up with very hard-to-track-down side effects.\n\n      this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n    }\n\n    /**\n     * Register a rule in `.map` and `.classes` maps.\n     */\n\n  }, {\n    key: 'register',\n    value: function register(rule, className) {\n      this.map[rule.key] = rule;\n      if (rule instanceof _StyleRule2['default']) {\n        this.map[rule.selector] = rule;\n        if (className) this.classes[rule.key] = className;\n      }\n    }\n\n    /**\n     * Unregister a rule.\n     */\n\n  }, {\n    key: 'unregister',\n    value: function unregister(rule) {\n      delete this.map[rule.key];\n      if (rule instanceof _StyleRule2['default']) {\n        delete this.map[rule.selector];\n        delete this.classes[rule.key];\n      }\n    }\n\n    /**\n     * Update the function values with a new data.\n     */\n\n  }, {\n    key: 'link',\n\n\n    /**\n     * Link renderable rules with CSSRuleList.\n     */\n    value: function link(cssRules) {\n      var map = this.options.sheet.renderer.getUnescapedKeysMap(this.index);\n\n      for (var i = 0; i < cssRules.length; i++) {\n        var cssRule = cssRules[i];\n        var _key = this.options.sheet.renderer.getKey(cssRule);\n        if (map[_key]) _key = map[_key];\n        var rule = this.map[_key];\n        if (rule) (0, _linkRule2['default'])(rule, cssRule);\n      }\n    }\n\n    /**\n     * Convert rules to a CSS string.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString(options) {\n      var str = '';\n      var sheet = this.options.sheet;\n\n      var link = sheet ? sheet.options.link : false;\n\n      for (var index = 0; index < this.index.length; index++) {\n        var rule = this.index[index];\n        var css = rule.toString(options);\n\n        // No need to render an empty rule.\n        if (!css && !link) continue;\n\n        if (str) str += '\\n';\n        str += css;\n      }\n\n      return str;\n    }\n  }]);\n\n  return RuleList;\n}();\n\nexports['default'] = RuleList;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _SheetsRegistry = require('./SheetsRegistry');\n\nvar _SheetsRegistry2 = _interopRequireDefault(_SheetsRegistry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\nexports['default'] = new _SheetsRegistry2['default']();","'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 _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 _linkRule = require('./utils/linkRule');\n\nvar _linkRule2 = _interopRequireDefault(_linkRule);\n\nvar _RuleList = require('./RuleList');\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\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\n/* eslint-disable-next-line no-use-before-define */\nvar StyleSheet = function () {\n  function StyleSheet(styles, options) {\n    var _this = this;\n\n    _classCallCheck(this, StyleSheet);\n\n    this.update = function (name, data) {\n      if (typeof name === 'string') {\n        _this.rules.update(name, data);\n      } else {\n        _this.rules.update(name);\n      }\n      return _this;\n    };\n\n    this.attached = false;\n    this.deployed = false;\n    this.linked = false;\n    this.classes = {};\n    this.options = _extends({}, options, {\n      sheet: this,\n      parent: this,\n      classes: this.classes\n    });\n    this.renderer = new options.Renderer(this);\n    this.rules = new _RuleList2['default'](this.options);\n\n    for (var _name in styles) {\n      this.rules.add(_name, styles[_name]);\n    }\n\n    this.rules.process();\n  }\n\n  /**\n   * Attach renderable to the render tree.\n   */\n\n\n  _createClass(StyleSheet, [{\n    key: 'attach',\n    value: function attach() {\n      if (this.attached) return this;\n      if (!this.deployed) this.deploy();\n      this.renderer.attach();\n      if (!this.linked && this.options.link) this.link();\n      this.attached = true;\n      return this;\n    }\n\n    /**\n     * Remove renderable from render tree.\n     */\n\n  }, {\n    key: 'detach',\n    value: function detach() {\n      if (!this.attached) return this;\n      this.renderer.detach();\n      this.attached = false;\n      return this;\n    }\n\n    /**\n     * Add a rule to the current stylesheet.\n     * Will insert a rule also after the stylesheet has been rendered first time.\n     */\n\n  }, {\n    key: 'addRule',\n    value: function addRule(name, decl, options) {\n      var queue = this.queue;\n\n      // Plugins can create rules.\n      // In order to preserve the right order, we need to queue all `.addRule` calls,\n      // which happen after the first `rules.add()` call.\n\n      if (this.attached && !queue) this.queue = [];\n\n      var rule = this.rules.add(name, decl, options);\n      this.options.jss.plugins.onProcessRule(rule);\n\n      if (this.attached) {\n        if (!this.deployed) return rule;\n        // Don't insert rule directly if there is no stringified version yet.\n        // It will be inserted all together when .attach is called.\n        if (queue) queue.push(rule);else {\n          this.insertRule(rule);\n          if (this.queue) {\n            this.queue.forEach(this.insertRule, this);\n            this.queue = undefined;\n          }\n        }\n        return rule;\n      }\n\n      // We can't add rules to a detached style node.\n      // We will redeploy the sheet once user will attach it.\n      this.deployed = false;\n\n      return rule;\n    }\n\n    /**\n     * Insert rule into the StyleSheet\n     */\n\n  }, {\n    key: 'insertRule',\n    value: function insertRule(rule) {\n      var renderable = this.renderer.insertRule(rule);\n      if (renderable && this.options.link) (0, _linkRule2['default'])(rule, renderable);\n    }\n\n    /**\n     * Create and add rules.\n     * Will render also after Style Sheet was rendered the first time.\n     */\n\n  }, {\n    key: 'addRules',\n    value: function addRules(styles, options) {\n      var added = [];\n      for (var _name2 in styles) {\n        added.push(this.addRule(_name2, styles[_name2], options));\n      }\n      return added;\n    }\n\n    /**\n     * Get a rule by name.\n     */\n\n  }, {\n    key: 'getRule',\n    value: function getRule(name) {\n      return this.rules.get(name);\n    }\n\n    /**\n     * Delete a rule by name.\n     * Returns `true`: if rule has been deleted from the DOM.\n     */\n\n  }, {\n    key: 'deleteRule',\n    value: function deleteRule(name) {\n      var rule = this.rules.get(name);\n\n      if (!rule) return false;\n\n      this.rules.remove(rule);\n\n      if (this.attached && rule.renderable) {\n        return this.renderer.deleteRule(rule.renderable);\n      }\n\n      return true;\n    }\n\n    /**\n     * Get index of a rule.\n     */\n\n  }, {\n    key: 'indexOf',\n    value: function indexOf(rule) {\n      return this.rules.indexOf(rule);\n    }\n\n    /**\n     * Deploy pure CSS string to a renderable.\n     */\n\n  }, {\n    key: 'deploy',\n    value: function deploy() {\n      this.renderer.deploy();\n      this.deployed = true;\n      return this;\n    }\n\n    /**\n     * Link renderable CSS rules from sheet with their corresponding models.\n     */\n\n  }, {\n    key: 'link',\n    value: function link() {\n      var cssRules = this.renderer.getRules();\n\n      // Is undefined when VirtualRenderer is used.\n      if (cssRules) this.rules.link(cssRules);\n      this.linked = true;\n      return this;\n    }\n\n    /**\n     * Update the function values with a new data.\n     */\n\n  }, {\n    key: 'toString',\n\n\n    /**\n     * Convert rules to a CSS string.\n     */\n    value: function toString(options) {\n      return this.rules.toString(options);\n    }\n  }]);\n\n  return StyleSheet;\n}();\n\nexports['default'] = StyleSheet;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (global[ns] == null) global[ns] = 0;\n\n// Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\nexports['default'] = global[ns]++;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _StyleSheet = require('../StyleSheet');\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nvar _moduleId = require('./moduleId');\n\nvar _moduleId2 = _interopRequireDefault(_moduleId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar maxRules = 1e10;\n\n\nvar env = process.env.NODE_ENV;\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nexports['default'] = function () {\n  var ruleCounter = 0;\n  var defaultPrefix = env === 'production' ? 'c' : '';\n\n  return function (rule, sheet) {\n    ruleCounter += 1;\n\n    if (ruleCounter > maxRules) {\n      (0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter);\n    }\n\n    var prefix = defaultPrefix;\n    var jssId = '';\n\n    if (sheet) {\n      prefix = sheet.options.classNamePrefix || defaultPrefix;\n      if (sheet.options.jss.id != null) jssId += sheet.options.jss.id;\n    }\n\n    if (env === 'production') {\n      return '' + prefix + _moduleId2['default'] + jssId + ruleCounter;\n    }\n\n    return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter;\n  };\n};","var _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\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","'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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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 PluginsRegistry = function () {\n  function PluginsRegistry() {\n    _classCallCheck(this, PluginsRegistry);\n\n    this.hooks = {\n      onCreateRule: [],\n      onProcessRule: [],\n      onProcessStyle: [],\n      onProcessSheet: [],\n      onChangeValue: [],\n      onUpdate: []\n\n      /**\n       * Call `onCreateRule` hooks and return an object if returned by a hook.\n       */\n    };\n  }\n\n  _createClass(PluginsRegistry, [{\n    key: 'onCreateRule',\n    value: function onCreateRule(name, decl, options) {\n      for (var i = 0; i < this.hooks.onCreateRule.length; i++) {\n        var rule = this.hooks.onCreateRule[i](name, decl, options);\n        if (rule) return rule;\n      }\n      return null;\n    }\n\n    /**\n     * Call `onProcessRule` hooks.\n     */\n\n  }, {\n    key: 'onProcessRule',\n    value: function onProcessRule(rule) {\n      if (rule.isProcessed) return;\n      var sheet = rule.options.sheet;\n\n      for (var i = 0; i < this.hooks.onProcessRule.length; i++) {\n        this.hooks.onProcessRule[i](rule, sheet);\n      }\n\n      // $FlowFixMe\n      if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n\n      rule.isProcessed = true;\n    }\n\n    /**\n     * Call `onProcessStyle` hooks.\n     */\n\n  }, {\n    key: 'onProcessStyle',\n    value: function onProcessStyle(style, rule, sheet) {\n      var nextStyle = style;\n\n      for (var i = 0; i < this.hooks.onProcessStyle.length; i++) {\n        nextStyle = this.hooks.onProcessStyle[i](nextStyle, rule, sheet);\n        // $FlowFixMe\n        rule.style = nextStyle;\n      }\n    }\n\n    /**\n     * Call `onProcessSheet` hooks.\n     */\n\n  }, {\n    key: 'onProcessSheet',\n    value: function onProcessSheet(sheet) {\n      for (var i = 0; i < this.hooks.onProcessSheet.length; i++) {\n        this.hooks.onProcessSheet[i](sheet);\n      }\n    }\n\n    /**\n     * Call `onUpdate` hooks.\n     */\n\n  }, {\n    key: 'onUpdate',\n    value: function onUpdate(data, rule, sheet) {\n      for (var i = 0; i < this.hooks.onUpdate.length; i++) {\n        this.hooks.onUpdate[i](data, rule, sheet);\n      }\n    }\n\n    /**\n     * Call `onChangeValue` hooks.\n     */\n\n  }, {\n    key: 'onChangeValue',\n    value: function onChangeValue(value, prop, rule) {\n      var processedValue = value;\n      for (var i = 0; i < this.hooks.onChangeValue.length; i++) {\n        processedValue = this.hooks.onChangeValue[i](processedValue, prop, rule);\n      }\n      return processedValue;\n    }\n\n    /**\n     * Register a plugin.\n     * If function is passed, it is a shortcut for `{onProcessRule}`.\n     */\n\n  }, {\n    key: 'use',\n    value: function use(plugin) {\n      for (var name in plugin) {\n        if (this.hooks[name]) this.hooks[name].push(plugin[name]);else (0, _warning2['default'])(false, '[JSS] Unknown hook \"%s\".', name);\n      }\n    }\n  }]);\n\n  return PluginsRegistry;\n}();\n\nexports['default'] = PluginsRegistry;","'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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SimpleRule = function () {\n  function SimpleRule(key, value, options) {\n    _classCallCheck(this, SimpleRule);\n\n    this.type = 'simple';\n    this.isProcessed = false;\n\n    this.key = key;\n    this.value = value;\n    this.options = options;\n  }\n\n  /**\n   * Generates a CSS string.\n   */\n  // eslint-disable-next-line no-unused-vars\n\n\n  _createClass(SimpleRule, [{\n    key: 'toString',\n    value: function toString(options) {\n      if (Array.isArray(this.value)) {\n        var str = '';\n        for (var index = 0; index < this.value.length; index++) {\n          str += this.key + ' ' + this.value[index] + ';';\n          if (this.value[index + 1]) str += '\\n';\n        }\n        return str;\n      }\n\n      return this.key + ' ' + this.value + ';';\n    }\n  }]);\n\n  return SimpleRule;\n}();\n\nexports['default'] = SimpleRule;","'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 _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 _RuleList = require('../RuleList');\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\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\n/**\n * Rule for @keyframes\n */\nvar KeyframesRule = function () {\n  function KeyframesRule(key, frames, options) {\n    _classCallCheck(this, KeyframesRule);\n\n    this.type = 'keyframes';\n    this.isProcessed = false;\n\n    this.key = key;\n    this.options = options;\n    this.rules = new _RuleList2['default'](_extends({}, options, { parent: this }));\n\n    for (var name in frames) {\n      this.rules.add(name, frames[name], _extends({}, this.options, {\n        parent: this,\n        selector: name\n      }));\n    }\n\n    this.rules.process();\n  }\n\n  /**\n   * Generates a CSS string.\n   */\n\n\n  _createClass(KeyframesRule, [{\n    key: 'toString',\n    value: function toString() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 };\n\n      var inner = this.rules.toString(options);\n      if (inner) inner += '\\n';\n      return this.key + ' {\\n' + inner + '}';\n    }\n  }]);\n\n  return KeyframesRule;\n}();\n\nexports['default'] = KeyframesRule;","'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 _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 _RuleList = require('../RuleList');\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\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\n/**\n * Conditional rule for @media, @supports\n */\nvar ConditionalRule = function () {\n  function ConditionalRule(key, styles, options) {\n    _classCallCheck(this, ConditionalRule);\n\n    this.type = 'conditional';\n    this.isProcessed = false;\n\n    this.key = key;\n    this.options = options;\n    this.rules = new _RuleList2['default'](_extends({}, options, { parent: this }));\n\n    for (var name in styles) {\n      this.rules.add(name, styles[name]);\n    }\n\n    this.rules.process();\n  }\n\n  /**\n   * Get a rule.\n   */\n\n\n  _createClass(ConditionalRule, [{\n    key: 'getRule',\n    value: function getRule(name) {\n      return this.rules.get(name);\n    }\n\n    /**\n     * Get index of a rule.\n     */\n\n  }, {\n    key: 'indexOf',\n    value: function indexOf(rule) {\n      return this.rules.indexOf(rule);\n    }\n\n    /**\n     * Create and register rule, run plugins.\n     */\n\n  }, {\n    key: 'addRule',\n    value: function addRule(name, style, options) {\n      var rule = this.rules.add(name, style, options);\n      this.options.jss.plugins.onProcessRule(rule);\n      return rule;\n    }\n\n    /**\n     * Generates a CSS string.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 };\n\n      var inner = this.rules.toString(options);\n      return inner ? this.key + ' {\\n' + inner + '\\n}' : '';\n    }\n  }]);\n\n  return ConditionalRule;\n}();\n\nexports['default'] = ConditionalRule;","'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 _toCss = require('../utils/toCss');\n\nvar _toCss2 = _interopRequireDefault(_toCss);\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 FontFaceRule = function () {\n  function FontFaceRule(key, style, options) {\n    _classCallCheck(this, FontFaceRule);\n\n    this.type = 'font-face';\n    this.isProcessed = false;\n\n    this.key = key;\n    this.style = style;\n    this.options = options;\n  }\n\n  /**\n   * Generates a CSS string.\n   */\n\n\n  _createClass(FontFaceRule, [{\n    key: 'toString',\n    value: function toString(options) {\n      if (Array.isArray(this.style)) {\n        var str = '';\n        for (var index = 0; index < this.style.length; index++) {\n          str += (0, _toCss2['default'])(this.key, this.style[index]);\n          if (this.style[index + 1]) str += '\\n';\n        }\n        return str;\n      }\n\n      return (0, _toCss2['default'])(this.key, this.style, options);\n    }\n  }]);\n\n  return FontFaceRule;\n}();\n\nexports['default'] = FontFaceRule;","'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 _toCss = require('../utils/toCss');\n\nvar _toCss2 = _interopRequireDefault(_toCss);\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 ViewportRule = function () {\n  function ViewportRule(key, style, options) {\n    _classCallCheck(this, ViewportRule);\n\n    this.type = 'viewport';\n    this.isProcessed = false;\n\n    this.key = key;\n    this.style = style;\n    this.options = options;\n  }\n\n  /**\n   * Generates a CSS string.\n   */\n\n\n  _createClass(ViewportRule, [{\n    key: 'toString',\n    value: function toString(options) {\n      return (0, _toCss2['default'])(this.key, this.style, options);\n    }\n  }]);\n\n  return ViewportRule;\n}();\n\nexports['default'] = ViewportRule;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _SimpleRule = require('../rules/SimpleRule');\n\nvar _SimpleRule2 = _interopRequireDefault(_SimpleRule);\n\nvar _KeyframesRule = require('../rules/KeyframesRule');\n\nvar _KeyframesRule2 = _interopRequireDefault(_KeyframesRule);\n\nvar _ConditionalRule = require('../rules/ConditionalRule');\n\nvar _ConditionalRule2 = _interopRequireDefault(_ConditionalRule);\n\nvar _FontFaceRule = require('../rules/FontFaceRule');\n\nvar _FontFaceRule2 = _interopRequireDefault(_FontFaceRule);\n\nvar _ViewportRule = require('../rules/ViewportRule');\n\nvar _ViewportRule2 = _interopRequireDefault(_ViewportRule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar classes = {\n  '@charset': _SimpleRule2['default'],\n  '@import': _SimpleRule2['default'],\n  '@namespace': _SimpleRule2['default'],\n  '@keyframes': _KeyframesRule2['default'],\n  '@media': _ConditionalRule2['default'],\n  '@supports': _ConditionalRule2['default'],\n  '@font-face': _FontFaceRule2['default'],\n  '@viewport': _ViewportRule2['default'],\n  '@-ms-viewport': _ViewportRule2['default']\n\n  /**\n   * Generate plugins which will register all rules.\n   */\n};\nvar plugins = Object.keys(classes).map(function (key) {\n  // https://jsperf.com/indexof-vs-substr-vs-regex-at-the-beginning-3\n  var re = new RegExp('^' + key);\n  var RuleClass = classes[key];\n  var onCreateRule = function onCreateRule(name, decl, options) {\n    return re.test(name) ? new RuleClass(name, decl, options) : null;\n  };\n  return { onCreateRule: onCreateRule };\n});\n\nexports['default'] = plugins;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _StyleRule = require('../rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createRule = require('../utils/createRule');\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nvar _isObservable = require('../utils/isObservable');\n\nvar _isObservable2 = _interopRequireDefault(_isObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n  onCreateRule: function onCreateRule(name, decl, options) {\n    if (!(0, _isObservable2['default'])(decl)) return null;\n\n    // Cast `decl` to `Observable`, since it passed the type guard.\n    var style$ = decl;\n\n    var rule = (0, _createRule2['default'])(name, {}, options);\n\n    // TODO\n    // Call `stream.subscribe()` returns a subscription, which should be explicitly\n    // unsubscribed from when we know this sheet is no longer needed.\n    style$.subscribe(function (style) {\n      for (var prop in style) {\n        rule.prop(prop, style[prop]);\n      }\n    });\n\n    return rule;\n  },\n  onProcessRule: function onProcessRule(rule) {\n    if (!(rule instanceof _StyleRule2['default'])) return;\n    var styleRule = rule;\n    var style = styleRule.style;\n\n    var _loop = function _loop(prop) {\n      var value = style[prop];\n      if (!(0, _isObservable2['default'])(value)) return 'continue';\n      delete style[prop];\n      value.subscribe({\n        next: function next(nextValue) {\n          styleRule.prop(prop, nextValue);\n        }\n      });\n    };\n\n    for (var prop in style) {\n      var _ret = _loop(prop);\n\n      if (_ret === 'continue') continue;\n    }\n  }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _RuleList = require('../RuleList');\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\n\nvar _StyleRule = require('../rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createRule = require('../utils/createRule');\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// A symbol replacement.\nvar now = Date.now();\n\nvar fnValuesNs = 'fnValues' + now;\nvar fnStyleNs = 'fnStyle' + ++now;\n\nexports['default'] = {\n  onCreateRule: function onCreateRule(name, decl, options) {\n    if (typeof decl !== 'function') return null;\n    var rule = (0, _createRule2['default'])(name, {}, options);\n    rule[fnStyleNs] = decl;\n    return rule;\n  },\n  onProcessStyle: function onProcessStyle(style, rule) {\n    var fn = {};\n    for (var prop in style) {\n      var value = style[prop];\n      if (typeof value !== 'function') continue;\n      delete style[prop];\n      fn[prop] = value;\n    }\n    rule = rule;\n    rule[fnValuesNs] = fn;\n    return style;\n  },\n  onUpdate: function onUpdate(data, rule) {\n    // It is a rules container like for e.g. ConditionalRule.\n    if (rule.rules instanceof _RuleList2['default']) {\n      rule.rules.update(data);\n      return;\n    }\n    if (!(rule instanceof _StyleRule2['default'])) return;\n\n    rule = rule;\n\n    // If we have a fn values map, it is a rule with function values.\n    if (rule[fnValuesNs]) {\n      for (var prop in rule[fnValuesNs]) {\n        rule.prop(prop, rule[fnValuesNs][prop](data));\n      }\n    }\n\n    rule = rule;\n\n    var fnStyle = rule[fnStyleNs];\n\n    // If we have a style function, the entire rule is dynamic and style object\n    // will be returned from that function.\n    if (fnStyle) {\n      var style = fnStyle(data);\n      for (var _prop in style) {\n        rule.prop(_prop, style[_prop]);\n      }\n    }\n  }\n};","'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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _sheets = require('../sheets');\n\nvar _sheets2 = _interopRequireDefault(_sheets);\n\nvar _StyleRule = require('../rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _toCssValue = require('../utils/toCssValue');\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\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\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n  var value = void 0;\n  return function () {\n    if (!value) value = fn();\n    return value;\n  };\n};\n\n/**\n * Get a style property value.\n */\nfunction getPropertyValue(cssRule, prop) {\n  try {\n    return cssRule.style.getPropertyValue(prop);\n  } catch (err) {\n    // IE may throw if property is unknown.\n    return '';\n  }\n}\n\n/**\n * Set a style property.\n */\nfunction setProperty(cssRule, prop, value) {\n  try {\n    var cssValue = value;\n\n    if (Array.isArray(value)) {\n      cssValue = (0, _toCssValue2['default'])(value, true);\n\n      if (value[value.length - 1] === '!important') {\n        cssRule.style.setProperty(prop, cssValue, 'important');\n        return true;\n      }\n    }\n\n    cssRule.style.setProperty(prop, cssValue);\n  } catch (err) {\n    // IE may throw if property is unknown.\n    return false;\n  }\n  return true;\n}\n\n/**\n * Remove a style property.\n */\nfunction removeProperty(cssRule, prop) {\n  try {\n    cssRule.style.removeProperty(prop);\n  } catch (err) {\n    (0, _warning2['default'])(false, '[JSS] DOMException \"%s\" was thrown. Tried to remove property \"%s\".', err.message, prop);\n  }\n}\n\nvar CSSRuleTypes = {\n  STYLE_RULE: 1,\n  KEYFRAMES_RULE: 7\n\n  /**\n   * Get the CSS Rule key.\n   */\n\n};var getKey = function () {\n  var extractKey = function extractKey(cssText) {\n    var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    return cssText.substr(from, cssText.indexOf('{') - 1);\n  };\n\n  return function (cssRule) {\n    if (cssRule.type === CSSRuleTypes.STYLE_RULE) return cssRule.selectorText;\n    if (cssRule.type === CSSRuleTypes.KEYFRAMES_RULE) {\n      var name = cssRule.name;\n\n      if (name) return '@keyframes ' + name;\n\n      // There is no rule.name in the following browsers:\n      // - IE 9\n      // - Safari 7.1.8\n      // - Mobile Safari 9.0.0\n      var cssText = cssRule.cssText;\n\n      return '@' + extractKey(cssText, cssText.indexOf('keyframes'));\n    }\n\n    // Conditionals.\n    return extractKey(cssRule.cssText);\n  };\n}();\n\n/**\n * Set the selector.\n */\nfunction setSelector(cssRule, selectorText) {\n  cssRule.selectorText = selectorText;\n\n  // Return false if setter was not successful.\n  // Currently works in chrome only.\n  return cssRule.selectorText === selectorText;\n}\n\n/**\n * Gets the `head` element upon the first call and caches it.\n */\nvar getHead = memoize(function () {\n  return document.head || document.getElementsByTagName('head')[0];\n});\n\n/**\n * Gets a map of rule keys, where the property is an unescaped key and value\n * is a potentially escaped one.\n * It is used to identify CSS rules and the corresponding JSS rules. As an identifier\n * for CSSStyleRule we normally use `selectorText`. Though if original selector text\n * contains escaped code points e.g. `:not(#\\\\20)`, CSSOM will compile it to `:not(# )`\n * and so CSS rule's `selectorText` won't match JSS rule selector.\n *\n * https://www.w3.org/International/questions/qa-escapes#cssescapes\n */\nvar getUnescapedKeysMap = function () {\n  var style = void 0;\n  var isAttached = false;\n\n  return function (rules) {\n    var map = {};\n    // https://github.com/facebook/flow/issues/2696\n    if (!style) style = document.createElement('style');\n    for (var i = 0; i < rules.length; i++) {\n      var rule = rules[i];\n      if (!(rule instanceof _StyleRule2['default'])) continue;\n      var selector = rule.selector;\n      // Only unescape selector over CSSOM if it contains a back slash.\n\n      if (selector && selector.indexOf('\\\\') !== -1) {\n        // Lazilly attach when needed.\n        if (!isAttached) {\n          getHead().appendChild(style);\n          isAttached = true;\n        }\n        style.textContent = selector + ' {}';\n        var _style = style,\n            sheet = _style.sheet;\n\n        if (sheet) {\n          var cssRules = sheet.cssRules;\n\n          if (cssRules) map[cssRules[0].selectorText] = rule.key;\n        }\n      }\n    }\n    if (isAttached) {\n      getHead().removeChild(style);\n      isAttached = false;\n    }\n    return map;\n  };\n}();\n\n/**\n * Find attached sheet with an index higher than the passed one.\n */\nfunction findHigherSheet(registry, options) {\n  for (var i = 0; i < registry.length; i++) {\n    var sheet = registry[i];\n    if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n      return sheet;\n    }\n  }\n  return null;\n}\n\n/**\n * Find attached sheet with the highest index.\n */\nfunction findHighestSheet(registry, options) {\n  for (var i = registry.length - 1; i >= 0; i--) {\n    var sheet = registry[i];\n    if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n      return sheet;\n    }\n  }\n  return null;\n}\n\n/**\n * Find a comment with \"jss\" inside.\n */\nfunction findCommentNode(text) {\n  var head = getHead();\n  for (var i = 0; i < head.childNodes.length; i++) {\n    var node = head.childNodes[i];\n    if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n      return node;\n    }\n  }\n  return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n  var registry = _sheets2['default'].registry;\n\n\n  if (registry.length > 0) {\n    // Try to insert before the next higher sheet.\n    var sheet = findHigherSheet(registry, options);\n    if (sheet) return sheet.renderer.element;\n\n    // Otherwise insert after the last attached.\n    sheet = findHighestSheet(registry, options);\n    if (sheet) return sheet.renderer.element.nextElementSibling;\n  }\n\n  // Try to find a comment placeholder if registry is empty.\n  var insertionPoint = options.insertionPoint;\n\n  if (insertionPoint && typeof insertionPoint === 'string') {\n    var comment = findCommentNode(insertionPoint);\n    if (comment) return comment.nextSibling;\n    // If user specifies an insertion point and it can't be found in the document -\n    // bad specificity issues may appear.\n    (0, _warning2['default'])(insertionPoint === 'jss', '[JSS] Insertion point \"%s\" not found.', insertionPoint);\n  }\n\n  return null;\n}\n\n/**\n * Insert style element into the DOM.\n */\nfunction insertStyle(style, options) {\n  var insertionPoint = options.insertionPoint;\n\n  var prevNode = findPrevNode(options);\n\n  if (prevNode) {\n    var parentNode = prevNode.parentNode;\n\n    if (parentNode) parentNode.insertBefore(style, prevNode);\n    return;\n  }\n\n  // Works with iframes and any node types.\n  if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n    // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n    var insertionPointElement = insertionPoint;\n    var _parentNode = insertionPointElement.parentNode;\n\n    if (_parentNode) _parentNode.insertBefore(style, insertionPointElement.nextSibling);else (0, _warning2['default'])(false, '[JSS] Insertion point is not in the DOM.');\n    return;\n  }\n\n  getHead().insertBefore(style, prevNode);\n}\n\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\nvar getNonce = memoize(function () {\n  var node = document.querySelector('meta[property=\"csp-nonce\"]');\n  return node ? node.getAttribute('content') : null;\n});\n\nvar DomRenderer = function () {\n  function DomRenderer(sheet) {\n    _classCallCheck(this, DomRenderer);\n\n    this.getPropertyValue = getPropertyValue;\n    this.setProperty = setProperty;\n    this.removeProperty = removeProperty;\n    this.setSelector = setSelector;\n    this.getKey = getKey;\n    this.getUnescapedKeysMap = getUnescapedKeysMap;\n    this.hasInsertedRules = false;\n\n    // There is no sheet when the renderer is used from a standalone StyleRule.\n    if (sheet) _sheets2['default'].add(sheet);\n\n    this.sheet = sheet;\n\n    var _ref = this.sheet ? this.sheet.options : {},\n        media = _ref.media,\n        meta = _ref.meta,\n        element = _ref.element;\n\n    this.element = element || document.createElement('style');\n    this.element.setAttribute('data-jss', '');\n    if (media) this.element.setAttribute('media', media);\n    if (meta) this.element.setAttribute('data-meta', meta);\n    var nonce = getNonce();\n    if (nonce) this.element.setAttribute('nonce', nonce);\n  }\n\n  /**\n   * Insert style element into render tree.\n   */\n\n\n  // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n\n\n  _createClass(DomRenderer, [{\n    key: 'attach',\n    value: function attach() {\n      // In the case the element node is external and it is already in the DOM.\n      if (this.element.parentNode || !this.sheet) return;\n\n      // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n      // browsers remove those rules.\n      // TODO figure out if its a bug and if it is known.\n      // Workaround is to redeploy the sheet before attaching as a string.\n      if (this.hasInsertedRules) {\n        this.deploy();\n        this.hasInsertedRules = false;\n      }\n\n      insertStyle(this.element, this.sheet.options);\n    }\n\n    /**\n     * Remove style element from render tree.\n     */\n\n  }, {\n    key: 'detach',\n    value: function detach() {\n      this.element.parentNode.removeChild(this.element);\n    }\n\n    /**\n     * Inject CSS string into element.\n     */\n\n  }, {\n    key: 'deploy',\n    value: function deploy() {\n      if (!this.sheet) return;\n      this.element.textContent = '\\n' + this.sheet.toString() + '\\n';\n    }\n\n    /**\n     * Insert a rule into element.\n     */\n\n  }, {\n    key: 'insertRule',\n    value: function insertRule(rule, index) {\n      var sheet = this.element.sheet;\n      var cssRules = sheet.cssRules;\n\n      var str = rule.toString();\n      if (!index) index = cssRules.length;\n\n      if (!str) return false;\n\n      try {\n        sheet.insertRule(str, index);\n      } catch (err) {\n        (0, _warning2['default'])(false, '[JSS] Can not insert an unsupported rule \\n\\r%s', rule);\n        return false;\n      }\n      this.hasInsertedRules = true;\n\n      return cssRules[index];\n    }\n\n    /**\n     * Delete a rule.\n     */\n\n  }, {\n    key: 'deleteRule',\n    value: function deleteRule(cssRule) {\n      var sheet = this.element.sheet;\n\n      var index = this.indexOf(cssRule);\n      if (index === -1) return false;\n      sheet.deleteRule(index);\n      return true;\n    }\n\n    /**\n     * Get index of a CSS Rule.\n     */\n\n  }, {\n    key: 'indexOf',\n    value: function indexOf(cssRule) {\n      var cssRules = this.element.sheet.cssRules;\n\n      for (var _index = 0; _index < cssRules.length; _index++) {\n        if (cssRule === cssRules[_index]) return _index;\n      }\n      return -1;\n    }\n\n    /**\n     * Generate a new CSS rule and replace the existing one.\n     */\n\n  }, {\n    key: 'replaceRule',\n    value: function replaceRule(cssRule, rule) {\n      var index = this.indexOf(cssRule);\n      var newCssRule = this.insertRule(rule, index);\n      this.element.sheet.deleteRule(index);\n      return newCssRule;\n    }\n\n    /**\n     * Get all rules elements.\n     */\n\n  }, {\n    key: 'getRules',\n    value: function getRules() {\n      return this.element.sheet.cssRules;\n    }\n  }]);\n\n  return DomRenderer;\n}();\n\nexports['default'] = DomRenderer;","'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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* eslint-disable class-methods-use-this */\n\n/**\n * Rendering backend to do nothing in nodejs.\n */\nvar VirtualRenderer = function () {\n  function VirtualRenderer() {\n    _classCallCheck(this, VirtualRenderer);\n  }\n\n  _createClass(VirtualRenderer, [{\n    key: 'setProperty',\n    value: function setProperty() {\n      return true;\n    }\n  }, {\n    key: 'getPropertyValue',\n    value: function getPropertyValue() {\n      return '';\n    }\n  }, {\n    key: 'removeProperty',\n    value: function removeProperty() {}\n  }, {\n    key: 'setSelector',\n    value: function setSelector() {\n      return true;\n    }\n  }, {\n    key: 'getKey',\n    value: function getKey() {\n      return '';\n    }\n  }, {\n    key: 'attach',\n    value: function attach() {}\n  }, {\n    key: 'detach',\n    value: function detach() {}\n  }, {\n    key: 'deploy',\n    value: function deploy() {}\n  }, {\n    key: 'insertRule',\n    value: function insertRule() {\n      return false;\n    }\n  }, {\n    key: 'deleteRule',\n    value: function deleteRule() {\n      return true;\n    }\n  }, {\n    key: 'replaceRule',\n    value: function replaceRule() {\n      return false;\n    }\n  }, {\n    key: 'getRules',\n    value: function getRules() {}\n  }, {\n    key: 'indexOf',\n    value: function indexOf() {\n      return -1;\n    }\n  }]);\n\n  return VirtualRenderer;\n}();\n\nexports['default'] = VirtualRenderer;","'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 _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\nvar _isInBrowser = require('is-in-browser');\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _StyleSheet = require('./StyleSheet');\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nvar _PluginsRegistry = require('./PluginsRegistry');\n\nvar _PluginsRegistry2 = _interopRequireDefault(_PluginsRegistry);\n\nvar _rules = require('./plugins/rules');\n\nvar _rules2 = _interopRequireDefault(_rules);\n\nvar _observables = require('./plugins/observables');\n\nvar _observables2 = _interopRequireDefault(_observables);\n\nvar _functions = require('./plugins/functions');\n\nvar _functions2 = _interopRequireDefault(_functions);\n\nvar _sheets = require('./sheets');\n\nvar _sheets2 = _interopRequireDefault(_sheets);\n\nvar _StyleRule = require('./rules/StyleRule');\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createGenerateClassName = require('./utils/createGenerateClassName');\n\nvar _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName);\n\nvar _createRule2 = require('./utils/createRule');\n\nvar _createRule3 = _interopRequireDefault(_createRule2);\n\nvar _DomRenderer = require('./renderers/DomRenderer');\n\nvar _DomRenderer2 = _interopRequireDefault(_DomRenderer);\n\nvar _VirtualRenderer = require('./renderers/VirtualRenderer');\n\nvar _VirtualRenderer2 = _interopRequireDefault(_VirtualRenderer);\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 defaultPlugins = _rules2['default'].concat([_observables2['default'], _functions2['default']]);\n\nvar instanceCounter = 0;\n\nvar Jss = function () {\n  function Jss(options) {\n    _classCallCheck(this, Jss);\n\n    this.id = instanceCounter++;\n    this.version = \"9.8.7\";\n    this.plugins = new _PluginsRegistry2['default']();\n    this.options = {\n      createGenerateClassName: _createGenerateClassName2['default'],\n      Renderer: _isInBrowser2['default'] ? _DomRenderer2['default'] : _VirtualRenderer2['default'],\n      plugins: []\n    };\n    this.generateClassName = (0, _createGenerateClassName2['default'])();\n\n    // eslint-disable-next-line prefer-spread\n    this.use.apply(this, defaultPlugins);\n    this.setup(options);\n  }\n\n  _createClass(Jss, [{\n    key: 'setup',\n    value: function setup() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      if (options.createGenerateClassName) {\n        this.options.createGenerateClassName = options.createGenerateClassName;\n        // $FlowFixMe\n        this.generateClassName = options.createGenerateClassName();\n      }\n\n      if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n      if (options.virtual || options.Renderer) {\n        this.options.Renderer = options.Renderer || (options.virtual ? _VirtualRenderer2['default'] : _DomRenderer2['default']);\n      }\n\n      // eslint-disable-next-line prefer-spread\n      if (options.plugins) this.use.apply(this, options.plugins);\n\n      return this;\n    }\n\n    /**\n     * Create a Style Sheet.\n     */\n\n  }, {\n    key: 'createStyleSheet',\n    value: function createStyleSheet(styles) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      var index = options.index;\n      if (typeof index !== 'number') {\n        index = _sheets2['default'].index === 0 ? 0 : _sheets2['default'].index + 1;\n      }\n      var sheet = new _StyleSheet2['default'](styles, _extends({}, options, {\n        jss: this,\n        generateClassName: options.generateClassName || this.generateClassName,\n        insertionPoint: this.options.insertionPoint,\n        Renderer: this.options.Renderer,\n        index: index\n      }));\n      this.plugins.onProcessSheet(sheet);\n\n      return sheet;\n    }\n\n    /**\n     * Detach the Style Sheet and remove it from the registry.\n     */\n\n  }, {\n    key: 'removeStyleSheet',\n    value: function removeStyleSheet(sheet) {\n      sheet.detach();\n      _sheets2['default'].remove(sheet);\n      return this;\n    }\n\n    /**\n     * Create a rule without a Style Sheet.\n     */\n\n  }, {\n    key: 'createRule',\n    value: function createRule(name) {\n      var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n      // Enable rule without name for inline styles.\n      if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n        options = style;\n        style = name;\n        name = undefined;\n      }\n\n      // Cast from RuleFactoryOptions to RuleOptions\n      // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n      var ruleOptions = options;\n\n      ruleOptions.jss = this;\n      ruleOptions.Renderer = this.options.Renderer;\n      if (!ruleOptions.generateClassName) ruleOptions.generateClassName = this.generateClassName;\n      if (!ruleOptions.classes) ruleOptions.classes = {};\n      var rule = (0, _createRule3['default'])(name, style, ruleOptions);\n\n      if (!ruleOptions.selector && rule instanceof _StyleRule2['default']) {\n        rule.selector = '.' + ruleOptions.generateClassName(rule);\n      }\n\n      this.plugins.onProcessRule(rule);\n\n      return rule;\n    }\n\n    /**\n     * Register plugin. Passed function will be invoked with a rule instance.\n     */\n\n  }, {\n    key: 'use',\n    value: function use() {\n      var _this = this;\n\n      for (var _len = arguments.length, plugins = Array(_len), _key = 0; _key < _len; _key++) {\n        plugins[_key] = arguments[_key];\n      }\n\n      plugins.forEach(function (plugin) {\n        // Avoids applying same plugin twice, at least based on ref.\n        if (_this.options.plugins.indexOf(plugin) === -1) {\n          _this.options.plugins.push(plugin);\n          _this.plugins.use(plugin);\n        }\n      });\n\n      return this;\n    }\n  }]);\n\n  return Jss;\n}();\n\nexports['default'] = Jss;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.create = exports.createGenerateClassName = exports.sheets = exports.RuleList = exports.SheetsManager = exports.SheetsRegistry = exports.toCssValue = exports.getDynamicStyles = undefined;\n\nvar _getDynamicStyles = require('./utils/getDynamicStyles');\n\nObject.defineProperty(exports, 'getDynamicStyles', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_getDynamicStyles)['default'];\n  }\n});\n\nvar _toCssValue = require('./utils/toCssValue');\n\nObject.defineProperty(exports, 'toCssValue', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_toCssValue)['default'];\n  }\n});\n\nvar _SheetsRegistry = require('./SheetsRegistry');\n\nObject.defineProperty(exports, 'SheetsRegistry', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SheetsRegistry)['default'];\n  }\n});\n\nvar _SheetsManager = require('./SheetsManager');\n\nObject.defineProperty(exports, 'SheetsManager', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_SheetsManager)['default'];\n  }\n});\n\nvar _RuleList = require('./RuleList');\n\nObject.defineProperty(exports, 'RuleList', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_RuleList)['default'];\n  }\n});\n\nvar _sheets = require('./sheets');\n\nObject.defineProperty(exports, 'sheets', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_sheets)['default'];\n  }\n});\n\nvar _createGenerateClassName = require('./utils/createGenerateClassName');\n\nObject.defineProperty(exports, 'createGenerateClassName', {\n  enumerable: true,\n  get: function get() {\n    return _interopRequireDefault(_createGenerateClassName)['default'];\n  }\n});\n\nvar _Jss = require('./Jss');\n\nvar _Jss2 = _interopRequireDefault(_Jss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a new instance of Jss.\n */\nvar create = exports.create = function create(options) {\n  return new _Jss2['default'](options);\n};\n\n/**\n * A global Jss instance.\n */\nexports['default'] = create();","'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 _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\nexports['default'] = jssGlobal;\n\nvar _jss = require('jss');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar propKey = '@global';\nvar prefixKey = '@global ';\n\nvar GlobalContainerRule = function () {\n  function GlobalContainerRule(key, styles, options) {\n    _classCallCheck(this, GlobalContainerRule);\n\n    this.type = 'global';\n\n    this.key = key;\n    this.options = options;\n    this.rules = new _jss.RuleList(_extends({}, options, {\n      parent: this\n    }));\n\n    for (var selector in styles) {\n      this.rules.add(selector, styles[selector], { selector: selector });\n    }\n\n    this.rules.process();\n  }\n\n  /**\n   * Get a rule.\n   */\n\n\n  _createClass(GlobalContainerRule, [{\n    key: 'getRule',\n    value: function getRule(name) {\n      return this.rules.get(name);\n    }\n\n    /**\n     * Create and register rule, run plugins.\n     */\n\n  }, {\n    key: 'addRule',\n    value: function addRule(name, style, options) {\n      var rule = this.rules.add(name, style, options);\n      this.options.jss.plugins.onProcessRule(rule);\n      return rule;\n    }\n\n    /**\n     * Get index of a rule.\n     */\n\n  }, {\n    key: 'indexOf',\n    value: function indexOf(rule) {\n      return this.rules.indexOf(rule);\n    }\n\n    /**\n     * Generates a CSS string.\n     */\n\n  }, {\n    key: 'toString',\n    value: function toString() {\n      return this.rules.toString();\n    }\n  }]);\n\n  return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule = function () {\n  function GlobalPrefixedRule(name, style, options) {\n    _classCallCheck(this, GlobalPrefixedRule);\n\n    this.name = name;\n    this.options = options;\n    var selector = name.substr(prefixKey.length);\n    this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n      parent: this,\n      selector: selector\n    }));\n  }\n\n  _createClass(GlobalPrefixedRule, [{\n    key: 'toString',\n    value: function toString(options) {\n      return this.rule.toString(options);\n    }\n  }]);\n\n  return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n  var parts = selector.split(separatorRegExp);\n  var scoped = '';\n  for (var i = 0; i < parts.length; i++) {\n    scoped += scope + ' ' + parts[i].trim();\n    if (parts[i + 1]) scoped += ', ';\n  }\n  return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule) {\n  var options = rule.options,\n      style = rule.style;\n\n  var rules = style[propKey];\n\n  if (!rules) return;\n\n  for (var name in rules) {\n    options.sheet.addRule(name, rules[name], _extends({}, options, {\n      selector: addScope(name, rule.selector)\n    }));\n  }\n\n  delete style[propKey];\n}\n\nfunction handlePrefixedGlobalRule(rule) {\n  var options = rule.options,\n      style = rule.style;\n\n  for (var prop in style) {\n    if (prop.substr(0, propKey.length) !== propKey) continue;\n\n    var selector = addScope(prop.substr(propKey.length), rule.selector);\n    options.sheet.addRule(selector, style[prop], _extends({}, options, {\n      selector: selector\n    }));\n    delete style[prop];\n  }\n}\n\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssGlobal() {\n  function onCreateRule(name, styles, options) {\n    if (name === propKey) {\n      return new GlobalContainerRule(name, styles, options);\n    }\n\n    if (name[0] === '@' && name.substr(0, prefixKey.length) === prefixKey) {\n      return new GlobalPrefixedRule(name, styles, options);\n    }\n\n    var parent = options.parent;\n\n\n    if (parent) {\n      if (parent.type === 'global' || parent.options.parent.type === 'global') {\n        options.global = true;\n      }\n    }\n\n    if (options.global) options.selector = name;\n\n    return null;\n  }\n\n  function onProcessRule(rule) {\n    if (rule.type !== 'style') return;\n\n    handleNestedGlobalContainerRule(rule);\n    handlePrefixedGlobalRule(rule);\n  }\n\n  return { onCreateRule: onCreateRule, onProcessRule: onProcessRule };\n}","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * 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 warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\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\nmodule.exports = warning;\n","'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 = jssNested;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssNested() {\n  // Get a function to be used for $ref replacement.\n  function getReplaceRef(container) {\n    return function (match, key) {\n      var rule = container.getRule(key);\n      if (rule) return rule.selector;\n      (0, _warning2.default)(false, '[JSS] Could not find the referenced rule %s in %s.', key, container.options.meta || container);\n      return key;\n    };\n  }\n\n  var hasAnd = function hasAnd(str) {\n    return str.indexOf('&') !== -1;\n  };\n\n  function replaceParentRefs(nestedProp, parentProp) {\n    var parentSelectors = parentProp.split(separatorRegExp);\n    var nestedSelectors = nestedProp.split(separatorRegExp);\n\n    var result = '';\n\n    for (var i = 0; i < parentSelectors.length; i++) {\n      var parent = parentSelectors[i];\n\n      for (var j = 0; j < nestedSelectors.length; j++) {\n        var nested = nestedSelectors[j];\n        if (result) result += ', ';\n        // Replace all & by the parent or prefix & with the parent.\n        result += hasAnd(nested) ? nested.replace(parentRegExp, parent) : parent + ' ' + nested;\n      }\n    }\n\n    return result;\n  }\n\n  function getOptions(rule, container, options) {\n    // Options has been already created, now we only increase index.\n    if (options) return _extends({}, options, { index: options.index + 1 });\n\n    var nestingLevel = rule.options.nestingLevel;\n\n    nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n    return _extends({}, rule.options, {\n      nestingLevel: nestingLevel,\n      index: container.indexOf(rule) + 1\n    });\n  }\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n    var container = rule.options.parent;\n    var options = void 0;\n    var replaceRef = void 0;\n    for (var prop in style) {\n      var isNested = hasAnd(prop);\n      var isNestedConditional = prop[0] === '@';\n\n      if (!isNested && !isNestedConditional) continue;\n\n      options = getOptions(rule, container, options);\n\n      if (isNested) {\n        var selector = replaceParentRefs(prop, rule.selector\n        // Lazily create the ref replacer function just once for\n        // all nested rules within the sheet.\n        );if (!replaceRef) replaceRef = getReplaceRef(container\n        // Replace all $refs.\n        );selector = selector.replace(refRegExp, replaceRef);\n\n        container.addRule(selector, style[prop], _extends({}, options, { selector: selector }));\n      } else if (isNestedConditional) {\n        container\n        // Place conditional right after the parent rule to ensure right ordering.\n        .addRule(prop, null, options).addRule(rule.key, style[prop], { selector: rule.selector });\n      }\n\n      delete style[prop];\n    }\n\n    return style;\n  }\n\n  return { onProcessStyle: onProcessStyle };\n}","'use strict';\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction hyphenateStyleName(string) {\n    return string in cache\n    ? cache[string]\n    : cache[string] = string\n      .replace(uppercasePattern, '-$&')\n      .toLowerCase()\n      .replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = camelCase;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\nfunction convertCase(style) {\n  var converted = {};\n\n  for (var prop in style) {\n    converted[(0, _hyphenateStyleName2['default'])(prop)] = style[prop];\n  }\n\n  if (style.fallbacks) {\n    if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n  }\n\n  return converted;\n}\n\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\nfunction camelCase() {\n  function onProcessStyle(style) {\n    if (Array.isArray(style)) {\n      // Handle rules like @font-face, which can have multiple styles in an array\n      for (var index = 0; index < style.length; index++) {\n        style[index] = convertCase(style[index]);\n      }\n      return style;\n    }\n\n    return convertCase(style);\n  }\n\n  function onChangeValue(value, prop, rule) {\n    var hyphenatedProp = (0, _hyphenateStyleName2['default'])(prop);\n\n    // There was no camel case in place\n    if (prop === hyphenatedProp) return value;\n\n    rule.prop(hyphenatedProp, value);\n\n    // Core will ignore that property value we set the proper one above.\n    return null;\n  }\n\n  return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/**\n * Generated jss-default-unit CSS property units\n *\n * @type object\n */\nexports['default'] = {\n  'animation-delay': 'ms',\n  'animation-duration': 'ms',\n  'background-position': 'px',\n  'background-position-x': 'px',\n  'background-position-y': 'px',\n  'background-size': 'px',\n  border: 'px',\n  'border-bottom': 'px',\n  'border-bottom-left-radius': 'px',\n  'border-bottom-right-radius': 'px',\n  'border-bottom-width': 'px',\n  'border-left': 'px',\n  'border-left-width': 'px',\n  'border-radius': 'px',\n  'border-right': 'px',\n  'border-right-width': 'px',\n  'border-spacing': 'px',\n  'border-top': 'px',\n  'border-top-left-radius': 'px',\n  'border-top-right-radius': 'px',\n  'border-top-width': 'px',\n  'border-width': 'px',\n  'border-after-width': 'px',\n  'border-before-width': 'px',\n  'border-end-width': 'px',\n  'border-horizontal-spacing': 'px',\n  'border-start-width': 'px',\n  'border-vertical-spacing': 'px',\n  bottom: 'px',\n  'box-shadow': 'px',\n  'column-gap': 'px',\n  'column-rule': 'px',\n  'column-rule-width': 'px',\n  'column-width': 'px',\n  'flex-basis': 'px',\n  'font-size': 'px',\n  'font-size-delta': 'px',\n  height: 'px',\n  left: 'px',\n  'letter-spacing': 'px',\n  'logical-height': 'px',\n  'logical-width': 'px',\n  margin: 'px',\n  'margin-after': 'px',\n  'margin-before': 'px',\n  'margin-bottom': 'px',\n  'margin-left': 'px',\n  'margin-right': 'px',\n  'margin-top': 'px',\n  'max-height': 'px',\n  'max-width': 'px',\n  'margin-end': 'px',\n  'margin-start': 'px',\n  'mask-position-x': 'px',\n  'mask-position-y': 'px',\n  'mask-size': 'px',\n  'max-logical-height': 'px',\n  'max-logical-width': 'px',\n  'min-height': 'px',\n  'min-width': 'px',\n  'min-logical-height': 'px',\n  'min-logical-width': 'px',\n  motion: 'px',\n  'motion-offset': 'px',\n  outline: 'px',\n  'outline-offset': 'px',\n  'outline-width': 'px',\n  padding: 'px',\n  'padding-bottom': 'px',\n  'padding-left': 'px',\n  'padding-right': 'px',\n  'padding-top': 'px',\n  'padding-after': 'px',\n  'padding-before': 'px',\n  'padding-end': 'px',\n  'padding-start': 'px',\n  'perspective-origin-x': '%',\n  'perspective-origin-y': '%',\n  perspective: 'px',\n  right: 'px',\n  'shape-margin': 'px',\n  size: 'px',\n  'text-indent': 'px',\n  'text-stroke': 'px',\n  'text-stroke-width': 'px',\n  top: 'px',\n  'transform-origin': '%',\n  'transform-origin-x': '%',\n  'transform-origin-y': '%',\n  'transform-origin-z': '%',\n  'transition-delay': 'ms',\n  'transition-duration': 'ms',\n  'vertical-align': 'px',\n  width: 'px',\n  'word-spacing': 'px',\n  // Not existing properties.\n  // Used to avoid issues with jss-expand intergration.\n  'box-shadow-x': 'px',\n  'box-shadow-y': 'px',\n  'box-shadow-blur': 'px',\n  'box-shadow-spread': 'px',\n  'font-line-height': 'px',\n  'text-shadow-x': 'px',\n  'text-shadow-y': 'px',\n  'text-shadow-blur': 'px'\n};","'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['default'] = defaultUnit;\n\nvar _defaultUnits = require('./defaultUnits');\n\nvar _defaultUnits2 = _interopRequireDefault(_defaultUnits);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n  var regExp = /(-[a-z])/g;\n  var replace = function replace(str) {\n    return str[1].toUpperCase();\n  };\n  var newObj = {};\n  for (var key in obj) {\n    newObj[key] = obj[key];\n    newObj[key.replace(regExp, replace)] = obj[key];\n  }\n  return newObj;\n}\n\nvar units = addCamelCasedVersion(_defaultUnits2['default']);\n\n/**\n * Recursive deep style passing function\n *\n * @param {String} current property\n * @param {(Object|Array|Number|String)} property value\n * @param {Object} options\n * @return {(Object|Array|Number|String)} resulting value\n */\nfunction iterate(prop, value, options) {\n  if (!value) return value;\n\n  var convertedValue = value;\n\n  var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n  if (type === 'object' && Array.isArray(value)) type = 'array';\n\n  switch (type) {\n    case 'object':\n      if (prop === 'fallbacks') {\n        for (var innerProp in value) {\n          value[innerProp] = iterate(innerProp, value[innerProp], options);\n        }\n        break;\n      }\n      for (var _innerProp in value) {\n        value[_innerProp] = iterate(prop + '-' + _innerProp, value[_innerProp], options);\n      }\n      break;\n    case 'array':\n      for (var i = 0; i < value.length; i++) {\n        value[i] = iterate(prop, value[i], options);\n      }\n      break;\n    case 'number':\n      if (value !== 0) {\n        convertedValue = value + (options[prop] || units[prop] || '');\n      }\n      break;\n    default:\n      break;\n  }\n\n  return convertedValue;\n}\n\n/**\n * Add unit to numeric values.\n */\nfunction defaultUnit() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var camelCasedOptions = addCamelCasedVersion(options);\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n\n    for (var prop in style) {\n      style[prop] = iterate(prop, style[prop], camelCasedOptions);\n    }\n\n    return style;\n  }\n\n  function onChangeValue(value, prop) {\n    return iterate(prop, value, camelCasedOptions);\n  }\n\n  return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _isInBrowser = require('is-in-browser');\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar js = ''; /**\n              * Export javascript style and css style vendor prefixes.\n              * Based on \"transform\" support test.\n              */\n\nvar css = '';\n\n// We should not do anything if required serverside.\nif (_isInBrowser2['default']) {\n  // Order matters. We need to check Webkit the last one because\n  // other vendors use to add Webkit prefixes to some properties\n  var jsCssMap = {\n    Moz: '-moz-',\n    // IE did it wrong again ...\n    ms: '-ms-',\n    O: '-o-',\n    Webkit: '-webkit-'\n  };\n  var style = document.createElement('p').style;\n  var testProp = 'Transform';\n\n  for (var key in jsCssMap) {\n    if (key + testProp in style) {\n      js = key;\n      css = jsCssMap[key];\n      break;\n    }\n  }\n}\n\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String}}\n * @api public\n */\nexports['default'] = { js: js, css: css };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = camelize;\nvar regExp = /[-\\s]+(.)?/g;\n\n/**\n * Convert dash separated strings to camel cased.\n *\n * @param {String} str\n * @return {String}\n */\nfunction camelize(str) {\n  return str.replace(regExp, toUpper);\n}\n\nfunction toUpper(match, c) {\n  return c ? c.toUpperCase() : '';\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = supportedProperty;\n\nvar _isInBrowser = require('is-in-browser');\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _prefix = require('./prefix');\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _camelize = require('./camelize');\n\nvar _camelize2 = _interopRequireDefault(_camelize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar el = void 0;\nvar cache = {};\n\nif (_isInBrowser2['default']) {\n  el = document.createElement('p');\n\n  /**\n   * We test every property on vendor prefix requirement.\n   * Once tested, result is cached. It gives us up to 70% perf boost.\n   * http://jsperf.com/element-style-object-access-vs-plain-object\n   *\n   * Prefill cache with known css properties to reduce amount of\n   * properties we need to feature test at runtime.\n   * http://davidwalsh.name/vendor-prefix\n   */\n  var computed = window.getComputedStyle(document.documentElement, '');\n  for (var key in computed) {\n    if (!isNaN(key)) cache[computed[key]] = computed[key];\n  }\n}\n\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @return {String|Boolean}\n * @api public\n */\nfunction supportedProperty(prop) {\n  // For server-side rendering.\n  if (!el) return prop;\n\n  // We have not tested this prop yet, lets do the test.\n  if (cache[prop] != null) return cache[prop];\n\n  // Camelization is required because we can't test using\n  // css syntax for e.g. in FF.\n  // Test if property is supported as it is.\n  if ((0, _camelize2['default'])(prop) in el.style) {\n    cache[prop] = prop;\n  }\n  // Test if property is supported with vendor prefix.\n  else if (_prefix2['default'].js + (0, _camelize2['default'])('-' + prop) in el.style) {\n      cache[prop] = _prefix2['default'].css + prop;\n    } else {\n      cache[prop] = false;\n    }\n\n  return cache[prop];\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = supportedValue;\n\nvar _isInBrowser = require('is-in-browser');\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _prefix = require('./prefix');\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar cache = {};\nvar el = void 0;\n\nif (_isInBrowser2['default']) el = document.createElement('p');\n\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\nfunction supportedValue(property, value) {\n  // For server-side rendering.\n  if (!el) return value;\n\n  // It is a string or a number as a string like '1'.\n  // We want only prefixable values here.\n  if (typeof value !== 'string' || !isNaN(parseInt(value, 10))) return value;\n\n  var cacheKey = property + value;\n\n  if (cache[cacheKey] != null) return cache[cacheKey];\n\n  // IE can even throw an error in some cases, for e.g. style.content = 'bar'\n  try {\n    // Test value as it is.\n    el.style[property] = value;\n  } catch (err) {\n    cache[cacheKey] = false;\n    return false;\n  }\n\n  // Value is supported as it is.\n  if (el.style[property] !== '') {\n    cache[cacheKey] = value;\n  } else {\n    // Test value with vendor prefix.\n    value = _prefix2['default'].css + value;\n\n    // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n    if (value === '-ms-flex') value = '-ms-flexbox';\n\n    el.style[property] = value;\n\n    // Value is supported with vendor prefix.\n    if (el.style[property] !== '') cache[cacheKey] = value;\n  }\n\n  if (!cache[cacheKey]) cache[cacheKey] = false;\n\n  // Reset style value.\n  el.style[property] = '';\n\n  return cache[cacheKey];\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.supportedValue = exports.supportedProperty = exports.prefix = undefined;\n\nvar _prefix = require('./prefix');\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _supportedProperty = require('./supported-property');\n\nvar _supportedProperty2 = _interopRequireDefault(_supportedProperty);\n\nvar _supportedValue = require('./supported-value');\n\nvar _supportedValue2 = _interopRequireDefault(_supportedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n  prefix: _prefix2['default'],\n  supportedProperty: _supportedProperty2['default'],\n  supportedValue: _supportedValue2['default']\n}; /**\n    * CSS Vendor prefix detection and property feature testing.\n    *\n    * @copyright Oleg Slobodskoi 2015\n    * @website https://github.com/jsstyles/css-vendor\n    * @license MIT\n    */\n\nexports.prefix = _prefix2['default'];\nexports.supportedProperty = _supportedProperty2['default'];\nexports.supportedValue = _supportedValue2['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = jssVendorPrefixer;\n\nvar _cssVendor = require('css-vendor');\n\nvar vendor = _interopRequireWildcard(_cssVendor);\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)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssVendorPrefixer() {\n  function onProcessRule(rule) {\n    if (rule.type === 'keyframes') {\n      rule.key = '@' + vendor.prefix.css + rule.key.substr(1);\n    }\n  }\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n\n    for (var prop in style) {\n      var value = style[prop];\n\n      var changeProp = false;\n      var supportedProp = vendor.supportedProperty(prop);\n      if (supportedProp && supportedProp !== prop) changeProp = true;\n\n      var changeValue = false;\n      var supportedValue = vendor.supportedValue(supportedProp, value);\n      if (supportedValue && supportedValue !== value) changeValue = true;\n\n      if (changeProp || changeValue) {\n        if (changeProp) delete style[prop];\n        style[supportedProp || prop] = supportedValue || value;\n      }\n    }\n\n    return style;\n  }\n\n  function onChangeValue(value, prop) {\n    return vendor.supportedValue(prop, value);\n  }\n\n  return { onProcessRule: onProcessRule, onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = jssPropsSort;\n/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n  function sort(prop0, prop1) {\n    return prop0.length - prop1.length;\n  }\n\n  function onProcessStyle(style, rule) {\n    if (rule.type !== 'style') return style;\n\n    var newStyle = {};\n    var props = Object.keys(style).sort(sort);\n    for (var prop in props) {\n      newStyle[props[prop]] = style[props[prop]];\n    }\n    return newStyle;\n  }\n\n  return { onProcessStyle: onProcessStyle };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _jssGlobal = _interopRequireDefault(require(\"jss-global\"));\n\nvar _jssNested = _interopRequireDefault(require(\"jss-nested\"));\n\nvar _jssCamelCase = _interopRequireDefault(require(\"jss-camel-case\"));\n\nvar _jssDefaultUnit = _interopRequireDefault(require(\"jss-default-unit\"));\n\nvar _jssVendorPrefixer = _interopRequireDefault(require(\"jss-vendor-prefixer\"));\n\nvar _jssPropsSort = _interopRequireDefault(require(\"jss-props-sort\"));\n\n// Subset of jss-preset-default with only the plugins the Material-UI\n// components are using.\nfunction jssPreset() {\n  return {\n    plugins: [(0, _jssGlobal.default)(), (0, _jssNested.default)(), (0, _jssCamelCase.default)(), (0, _jssDefaultUnit.default)(), (0, _jssVendorPrefixer.default)(), (0, _jssPropsSort.default)()]\n  };\n}\n\nvar _default = jssPreset;\nexports.default = _default;","function _interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  } else {\n    var newObj = {};\n\n    if (obj != null) {\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};\n\n          if (desc.get || desc.set) {\n            Object.defineProperty(newObj, key, desc);\n          } else {\n            newObj[key] = obj[key];\n          }\n        }\n      }\n    }\n\n    newObj.default = obj;\n    return newObj;\n  }\n}\n\nmodule.exports = _interopRequireWildcard;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","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    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return _typeof2(obj);\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","/**\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 assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\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 = '<<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    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 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      process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\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);\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + 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 (propValue.hasOwnProperty(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    // 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.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\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\nif (process.env.NODE_ENV !== 'production') {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\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')(isValidElement, 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","function createBroadcast (initialState) {\n  var listeners = {};\n  var id = 1;\n  var _state = initialState;\n\n  function getState () {\n    return _state\n  }\n\n  function setState (state) {\n    _state = state;\n    var keys = Object.keys(listeners);\n    var i = 0;\n    var len = keys.length;\n    for (; i < len; i++) {\n      // if a listener gets unsubscribed during setState we just skip it\n      if (listeners[keys[i]]) { listeners[keys[i]](state); }\n    }\n  }\n\n  // subscribe to changes and return the subscriptionId\n  function subscribe (listener) {\n    if (typeof listener !== 'function') {\n      throw new Error('listener must be a function.')\n    }\n    var currentId = id;\n    listeners[currentId] = listener;\n    id += 1;\n    return currentId\n  }\n\n  // remove subscription by removing the listener function\n  function unsubscribe (id) {\n    listeners[id] = undefined;\n  }\n\n  return { getState: getState, setState: setState, subscribe: subscribe, unsubscribe: unsubscribe }\n}\n\nexport default createBroadcast;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.CHANNEL = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\n// Same value used by react-jss\nvar CHANNEL = '__THEMING__';\nexports.CHANNEL = CHANNEL;\nvar themeListener = {\n  contextTypes: (0, _defineProperty2.default)({}, CHANNEL, _propTypes.default.object),\n  initial: function initial(context) {\n    if (!context[CHANNEL]) {\n      return null;\n    }\n\n    return context[CHANNEL].getState();\n  },\n  subscribe: function subscribe(context, cb) {\n    if (!context[CHANNEL]) {\n      return null;\n    }\n\n    return context[CHANNEL].subscribe(cb);\n  },\n  unsubscribe: function unsubscribe(context, subscriptionId) {\n    if (context[CHANNEL]) {\n      context[CHANNEL].unsubscribe(subscriptionId);\n    }\n  }\n};\nvar _default = themeListener;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.specialProperty = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n// Only exported for test purposes.\nvar specialProperty = \"exact-prop: \\u200B\";\nexports.specialProperty = specialProperty;\n\nfunction exactProp(propTypes) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV === 'production') {\n    return propTypes;\n  }\n\n  return (0, _extends3.default)({}, propTypes, (0, _defineProperty2.default)({}, specialProperty, function (props) {\n    var unsupportedProps = Object.keys(props).filter(function (prop) {\n      return !propTypes.hasOwnProperty(prop);\n    });\n\n    if (unsupportedProps.length > 0) {\n      return new Error(\"The following properties are not supported: \".concat(unsupportedProps.map(function (prop) {\n        return \"`\".concat(prop, \"`\");\n      }).join(', '), \". Please remove them.\"));\n    }\n\n    return null;\n  }));\n}\n\nvar _default = exactProp;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _brcast = _interopRequireDefault(require(\"brcast\"));\n\nvar _themeListener = _interopRequireWildcard(require(\"./themeListener\"));\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\n/**\n * This component takes a `theme` property.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nvar MuiThemeProvider =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(MuiThemeProvider, _React$Component);\n\n  // We are not using the React state in order to avoid unnecessary rerender.\n  function MuiThemeProvider(props, context) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, MuiThemeProvider);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(MuiThemeProvider).call(this)); // Get the outer theme from the context, can be null\n\n    _this.broadcast = (0, _brcast.default)();\n    _this.outerTheme = _themeListener.default.initial(context); // Propagate the theme so it can be accessed by the children\n\n    _this.broadcast.setState(_this.mergeOuterLocalTheme(props.theme));\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(MuiThemeProvider, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      var _ref;\n\n      var _this$props = this.props,\n          sheetsManager = _this$props.sheetsManager,\n          disableStylesGeneration = _this$props.disableStylesGeneration;\n      var muiThemeProviderOptions = this.context.muiThemeProviderOptions || {};\n\n      if (sheetsManager !== undefined) {\n        muiThemeProviderOptions.sheetsManager = sheetsManager;\n      }\n\n      if (disableStylesGeneration !== undefined) {\n        muiThemeProviderOptions.disableStylesGeneration = disableStylesGeneration;\n      }\n\n      return _ref = {}, (0, _defineProperty2.default)(_ref, _themeListener.CHANNEL, this.broadcast), (0, _defineProperty2.default)(_ref, \"muiThemeProviderOptions\", muiThemeProviderOptions), _ref;\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      // Subscribe on the outer theme, if present\n      this.unsubscribeId = _themeListener.default.subscribe(this.context, function (outerTheme) {\n        _this2.outerTheme = outerTheme; // Forward the parent theme update to the children\n\n        _this2.broadcast.setState(_this2.mergeOuterLocalTheme(_this2.props.theme));\n      });\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Propagate a local theme update\n      if (this.props.theme !== prevProps.theme) {\n        this.broadcast.setState(this.mergeOuterLocalTheme(this.props.theme));\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.unsubscribeId !== null) {\n        _themeListener.default.unsubscribe(this.context, this.unsubscribeId);\n      }\n    } // Simple merge between the outer theme and the local theme\n\n  }, {\n    key: \"mergeOuterLocalTheme\",\n    value: function mergeOuterLocalTheme(localTheme) {\n      // To support composition of theme.\n      if (typeof localTheme === 'function') {\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(this.outerTheme, ['Material-UI: you are providing a theme function property ' + 'to the MuiThemeProvider component:', '<MuiThemeProvider theme={outerTheme => outerTheme} />', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n')) : void 0;\n        return localTheme(this.outerTheme);\n      }\n\n      if (!this.outerTheme) {\n        return localTheme;\n      }\n\n      return (0, _extends2.default)({}, this.outerTheme, localTheme);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      // TODO move the sheetsManager property to a different component.\n      // warning(\n      //   typeof window !== 'undefined' || this.props.sheetsManager,\n      //   [\n      //     'Material-UI: you need to provide a sheetsManager to the MuiThemeProvider ' +\n      //       'when rendering on the server.',\n      //     'If you do not, you might experience a memory leak',\n      //   ].join('\\n'),\n      // );\n      return this.props.children;\n    }\n  }]);\n  return MuiThemeProvider;\n}(_react.default.Component);\n\nMuiThemeProvider.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * You can wrap a node.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * You can disable the generation of the styles with this option.\n   * It can be useful when traversing the React tree outside of the HTML\n   * rendering step on the server.\n   * Let's say you are using react-apollo to extract all\n   * the queries made by the interface server side.\n   * You can significantly speed up the traversal with this property.\n   */\n  disableStylesGeneration: _propTypes.default.bool,\n\n  /**\n   * The sheetsManager is used to deduplicate style sheet injection in the page.\n   * It's deduplicating using the (theme, styles) couple.\n   * On the server, you should provide a new instance for each request.\n   */\n  sheetsManager: _propTypes.default.object,\n\n  /**\n   * A theme object.\n   */\n  theme: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]).isRequired\n} : {};\nMuiThemeProvider.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(MuiThemeProvider.propTypes) : {};\nMuiThemeProvider.childContextTypes = (0, _extends2.default)({}, _themeListener.default.contextTypes, {\n  muiThemeProviderOptions: _propTypes.default.object\n});\nMuiThemeProvider.contextTypes = (0, _extends2.default)({}, _themeListener.default.contextTypes, {\n  muiThemeProviderOptions: _propTypes.default.object\n});\nvar _default = MuiThemeProvider;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createStyles;\n\nfunction createStyles(styles) {\n  return styles;\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n    childContextTypes: true,\n    contextTypes: true,\n    defaultProps: true,\n    displayName: true,\n    getDefaultProps: true,\n    getDerivedStateFromProps: true,\n    mixins: true,\n    propTypes: true,\n    type: true\n};\n\nvar KNOWN_STATICS = {\n    name: true,\n    length: true,\n    prototype: true,\n    caller: true,\n    callee: true,\n    arguments: true,\n    arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n    if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n        if (objectPrototype) {\n            var inheritedComponent = getPrototypeOf(sourceComponent);\n            if (inheritedComponent && inheritedComponent !== objectPrototype) {\n                hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n            }\n        }\n\n        var keys = getOwnPropertyNames(sourceComponent);\n\n        if (getOwnPropertySymbols) {\n            keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n        }\n\n        for (var i = 0; i < keys.length; ++i) {\n            var key = keys[i];\n            if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n                var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n                try { // Avoid failures from read-only properties\n                    defineProperty(targetComponent, key, descriptor);\n                } catch (e) {}\n            }\n        }\n\n        return targetComponent;\n    }\n\n    return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n  if (typeof Component === 'string') {\n    return Component;\n  }\n\n  if (!Component) {\n    return undefined;\n  }\n\n  return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n  return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/**\n * Namespaces to avoid conflicts on the context.\n */\nvar jss = exports.jss = '64a55d578f856d258dc345b094a2a2b3';\nvar sheetsRegistry = exports.sheetsRegistry = 'd4bd0baacbc52bbd48bbb9eb24344ecd';\nvar managers = exports.managers = 'b768b78919504fba9de2c03545c5cd3a';\nvar sheetOptions = exports.sheetOptions = '6fc570d6bd61383819d0f9e7407c452d';","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = require('prop-types');\n\nexports['default'] = {\n  jss: (0, _propTypes.shape)({\n    options: (0, _propTypes.shape)({\n      createGenerateClassName: _propTypes.func.isRequired\n    }).isRequired,\n    createStyleSheet: _propTypes.func.isRequired,\n    removeStyleSheet: _propTypes.func.isRequired\n  }),\n  registry: (0, _propTypes.shape)({\n    add: _propTypes.func.isRequired,\n    toString: _propTypes.func.isRequired\n  })\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _ns$jss$ns$sheetOptio;\n\nvar _propTypes = require('prop-types');\n\nvar _ns = require('./ns');\n\nvar ns = _interopRequireWildcard(_ns);\n\nvar _propTypes2 = require('./propTypes');\n\nvar _propTypes3 = _interopRequireDefault(_propTypes2);\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)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\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\nexports['default'] = (_ns$jss$ns$sheetOptio = {}, _defineProperty(_ns$jss$ns$sheetOptio, ns.jss, _propTypes3['default'].jss), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetOptions, _propTypes.object), _defineProperty(_ns$jss$ns$sheetOptio, ns.sheetsRegistry, _propTypes3['default'].registry), _defineProperty(_ns$jss$ns$sheetOptio, ns.managers, _propTypes.object), _ns$jss$ns$sheetOptio);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getFunctionName = getFunctionName;\nexports.default = void 0;\n// Fork of recompose/getDisplayName with added IE11 support\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nvar fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\n\nfunction getFunctionName(fn) {\n  var match = \"\".concat(fn).match(fnNameMatchRegex);\n  var name = match && match[1];\n  return name || '';\n}\n\nfunction getDisplayName(Component) {\n  if (typeof Component === 'string') {\n    return Component;\n  }\n\n  if (!Component) {\n    return undefined;\n  }\n\n  return Component.displayName || Component.name || getFunctionName(Component) || 'Component';\n}\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _getDisplayName = _interopRequireDefault(require(\"../utils/getDisplayName\"));\n\nfunction mergeClasses() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var baseClasses = options.baseClasses,\n      newClasses = options.newClasses,\n      Component = options.Component,\n      _options$noBase = options.noBase,\n      noBase = _options$noBase === void 0 ? false : _options$noBase;\n\n  if (!newClasses) {\n    return baseClasses;\n  }\n\n  return (0, _extends2.default)({}, baseClasses, Object.keys(newClasses).reduce(function (accumulator, key) {\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(baseClasses[key] || noBase || !newClasses[key], [\"Material-UI: the key `\".concat(key, \"` \") + \"provided to the classes property is not implemented in \".concat((0, _getDisplayName.default)(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','))].join('\\n')) : void 0;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!newClasses[key] || typeof newClasses[key] === 'string', [\"Material-UI: the key `\".concat(key, \"` \") + \"provided to the classes property is not valid for \".concat((0, _getDisplayName.default)(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n')) : void 0;\n\n    if (newClasses[key]) {\n      accumulator[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n    }\n\n    return accumulator;\n  }, {}));\n}\n\nvar _default = mergeClasses;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\n// < 1kb payload overhead when lodash/merge is > 3kb.\n// Support for the jss-expand plugin.\nfunction arrayMerge(destination, source) {\n  return source;\n}\n\nfunction getStylesCreator(stylesOrCreator) {\n  var themingEnabled = typeof stylesOrCreator === 'function';\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)((0, _typeof2.default)(stylesOrCreator) === 'object' || themingEnabled, ['Material-UI: the first argument provided to withStyles() is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n')) : void 0;\n\n  function create(theme, name) {\n    var styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n\n    if (!name || !theme.overrides || !theme.overrides[name]) {\n      return styles;\n    }\n\n    var overrides = theme.overrides[name];\n    var stylesWithOverrides = (0, _extends2.default)({}, styles);\n    Object.keys(overrides).forEach(function (key) {\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(stylesWithOverrides[key], ['Material-UI: you are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n')) : void 0;\n      stylesWithOverrides[key] = (0, _deepmerge.default)(stylesWithOverrides[key], overrides[key], {\n        arrayMerge: arrayMerge\n      });\n    });\n    return stylesWithOverrides;\n  }\n\n  return {\n    create: create,\n    options: {},\n    themingEnabled: themingEnabled\n  };\n}\n\nvar _default = getStylesCreator;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/* eslint-disable no-restricted-syntax */\nfunction getThemeProps(params) {\n  var theme = params.theme,\n      name = params.name,\n      props = params.props;\n\n  if (!name || !theme.props || !theme.props[name]) {\n    return props;\n  } // Resolve default props, code borrow from React source.\n  // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n  var defaultProps = theme.props[name];\n  var propName;\n\n  for (propName in defaultProps) {\n    if (props[propName] === undefined) {\n      props[propName] = defaultProps[propName];\n    }\n  }\n\n  return props;\n}\n\nvar _default = getThemeProps;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.sheetsManager = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"recompose/wrapDisplayName\"));\n\nvar _contextTypes = _interopRequireDefault(require(\"react-jss/lib/contextTypes\"));\n\nvar _jss = require(\"jss\");\n\nvar ns = _interopRequireWildcard(require(\"react-jss/lib/ns\"));\n\nvar _jssPreset = _interopRequireDefault(require(\"./jssPreset\"));\n\nvar _mergeClasses = _interopRequireDefault(require(\"./mergeClasses\"));\n\nvar _createMuiTheme = _interopRequireDefault(require(\"./createMuiTheme\"));\n\nvar _themeListener = _interopRequireDefault(require(\"./themeListener\"));\n\nvar _createGenerateClassName = _interopRequireDefault(require(\"./createGenerateClassName\"));\n\nvar _getStylesCreator = _interopRequireDefault(require(\"./getStylesCreator\"));\n\nvar _getDisplayName = _interopRequireDefault(require(\"../utils/getDisplayName\"));\n\nvar _getThemeProps = _interopRequireDefault(require(\"./getThemeProps\"));\n\n// Default JSS instance.\nvar jss = (0, _jss.create)((0, _jssPreset.default)()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = (0, _createGenerateClassName.default)(); // Global index counter to preserve source order.\n// We create the style sheet during at the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any childs styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\n\nvar indexCounter = -10e10; // Exported for test purposes\n\nvar sheetsManager = new Map(); // We use the same empty object to ref count the styles that don't need a theme object.\n\nexports.sheetsManager = sheetsManager;\nvar noopTheme = {}; // In order to have self-supporting components, we rely on default theme when not provided.\n\nvar defaultTheme;\n\nfunction getDefaultTheme() {\n  if (defaultTheme) {\n    return defaultTheme;\n  }\n\n  defaultTheme = (0, _createMuiTheme.default)();\n  return defaultTheme;\n} // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\n\nvar withStyles = function withStyles(stylesOrCreator) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return function (Component) {\n    var _options$withTheme = options.withTheme,\n        withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n        _options$flip = options.flip,\n        flip = _options$flip === void 0 ? null : _options$flip,\n        name = options.name,\n        styleSheetOptions = (0, _objectWithoutProperties2.default)(options, [\"withTheme\", \"flip\", \"name\"]);\n    var stylesCreator = (0, _getStylesCreator.default)(stylesOrCreator);\n    var listenToTheme = stylesCreator.themingEnabled || withTheme || typeof name === 'string';\n    indexCounter += 1;\n    stylesCreator.options.index = indexCounter;\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(indexCounter < 0, ['Material-UI: you might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join(' ')) : void 0;\n\n    var WithStyles =\n    /*#__PURE__*/\n    function (_React$Component) {\n      (0, _inherits2.default)(WithStyles, _React$Component);\n\n      function WithStyles(props, context) {\n        var _this;\n\n        (0, _classCallCheck2.default)(this, WithStyles);\n        _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(WithStyles).call(this, props, context));\n        _this.disableStylesGeneration = false;\n        _this.jss = null;\n        _this.sheetOptions = null;\n        _this.sheetsManager = sheetsManager;\n        _this.stylesCreatorSaved = null;\n        _this.theme = null;\n        _this.unsubscribeId = null;\n        _this.jss = context[ns.jss] || jss;\n        var muiThemeProviderOptions = context.muiThemeProviderOptions;\n\n        if (muiThemeProviderOptions) {\n          if (muiThemeProviderOptions.sheetsManager) {\n            _this.sheetsManager = muiThemeProviderOptions.sheetsManager;\n          }\n\n          _this.disableStylesGeneration = muiThemeProviderOptions.disableStylesGeneration;\n        } // Attach the stylesCreator to the instance of the component as in the context\n        // of react-hot-loader the hooks can be executed in a different closure context:\n        // https://github.com/gaearon/react-hot-loader/blob/master/src/patch.dev.js#L107\n\n\n        _this.stylesCreatorSaved = stylesCreator;\n        _this.sheetOptions = (0, _extends2.default)({\n          generateClassName: generateClassName\n        }, context[ns.sheetOptions]); // We use || as the function call is lazy evaluated.\n\n        _this.theme = listenToTheme ? _themeListener.default.initial(context) || getDefaultTheme() : noopTheme;\n\n        _this.attach(_this.theme);\n\n        _this.cacheClasses = {\n          // Cache for the finalized classes value.\n          value: null,\n          // Cache for the last used classes prop pointer.\n          lastProp: null,\n          // Cache for the last used rendered classes pointer.\n          lastJSS: {}\n        };\n        return _this;\n      }\n\n      (0, _createClass2.default)(WithStyles, [{\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          var _this2 = this;\n\n          if (!listenToTheme) {\n            return;\n          }\n\n          this.unsubscribeId = _themeListener.default.subscribe(this.context, function (theme) {\n            var oldTheme = _this2.theme;\n            _this2.theme = theme;\n\n            _this2.attach(_this2.theme); // Rerender the component so the underlying component gets the theme update.\n            // By theme update we mean receiving and applying the new class names.\n\n\n            _this2.setState({}, function () {\n              _this2.detach(oldTheme);\n            });\n          });\n        }\n      }, {\n        key: \"componentDidUpdate\",\n        value: function componentDidUpdate() {\n          // react-hot-loader specific logic\n          if (this.stylesCreatorSaved === stylesCreator || process.env.NODE_ENV === 'production') {\n            return;\n          }\n\n          this.detach(this.theme);\n          this.stylesCreatorSaved = stylesCreator;\n          this.attach(this.theme);\n          this.forceUpdate();\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          this.detach(this.theme);\n\n          if (this.unsubscribeId !== null) {\n            _themeListener.default.unsubscribe(this.context, this.unsubscribeId);\n          }\n        }\n      }, {\n        key: \"getClasses\",\n        value: function getClasses() {\n          // Tracks if either the rendered classes or classes prop has changed,\n          // requiring the generation of a new finalized classes object.\n          var generate = false;\n\n          if (!this.disableStylesGeneration) {\n            var sheetManager = this.sheetsManager.get(this.stylesCreatorSaved);\n            var sheetsManagerTheme = sheetManager.get(this.theme);\n\n            if (sheetsManagerTheme.sheet.classes !== this.cacheClasses.lastJSS) {\n              this.cacheClasses.lastJSS = sheetsManagerTheme.sheet.classes;\n              generate = true;\n            }\n          }\n\n          if (this.props.classes !== this.cacheClasses.lastProp) {\n            this.cacheClasses.lastProp = this.props.classes;\n            generate = true;\n          }\n\n          if (generate) {\n            this.cacheClasses.value = (0, _mergeClasses.default)({\n              baseClasses: this.cacheClasses.lastJSS,\n              newClasses: this.props.classes,\n              Component: Component,\n              noBase: this.disableStylesGeneration\n            });\n          }\n\n          return this.cacheClasses.value;\n        }\n      }, {\n        key: \"attach\",\n        value: function attach(theme) {\n          if (this.disableStylesGeneration) {\n            return;\n          }\n\n          var stylesCreatorSaved = this.stylesCreatorSaved;\n          var sheetManager = this.sheetsManager.get(stylesCreatorSaved);\n\n          if (!sheetManager) {\n            sheetManager = new Map();\n            this.sheetsManager.set(stylesCreatorSaved, sheetManager);\n          }\n\n          var sheetManagerTheme = sheetManager.get(theme);\n\n          if (!sheetManagerTheme) {\n            sheetManagerTheme = {\n              refs: 0,\n              sheet: null\n            };\n            sheetManager.set(theme, sheetManagerTheme);\n          }\n\n          if (sheetManagerTheme.refs === 0) {\n            var styles = stylesCreatorSaved.create(theme, name);\n            var meta = name;\n\n            if (process.env.NODE_ENV !== 'production' && !meta) {\n              meta = (0, _getDisplayName.default)(Component);\n              process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(typeof meta === 'string', ['Material-UI: the component displayName is invalid. It needs to be a string.', \"Please fix the following component: \".concat(Component, \".\")].join('\\n')) : void 0;\n            }\n\n            var sheet = this.jss.createStyleSheet(styles, (0, _extends2.default)({\n              meta: meta,\n              classNamePrefix: meta,\n              flip: typeof flip === 'boolean' ? flip : theme.direction === 'rtl',\n              link: false\n            }, this.sheetOptions, stylesCreatorSaved.options, {\n              name: name\n            }, styleSheetOptions));\n            sheetManagerTheme.sheet = sheet;\n            sheet.attach();\n            var sheetsRegistry = this.context[ns.sheetsRegistry];\n\n            if (sheetsRegistry) {\n              sheetsRegistry.add(sheet);\n            }\n          }\n\n          sheetManagerTheme.refs += 1;\n        }\n      }, {\n        key: \"detach\",\n        value: function detach(theme) {\n          if (this.disableStylesGeneration) {\n            return;\n          }\n\n          var stylesCreatorSaved = this.stylesCreatorSaved;\n          var sheetManager = this.sheetsManager.get(stylesCreatorSaved);\n          var sheetManagerTheme = sheetManager.get(theme);\n          sheetManagerTheme.refs -= 1;\n\n          if (sheetManagerTheme.refs === 0) {\n            sheetManager.delete(theme);\n            this.jss.removeStyleSheet(sheetManagerTheme.sheet);\n            var sheetsRegistry = this.context[ns.sheetsRegistry];\n\n            if (sheetsRegistry) {\n              sheetsRegistry.remove(sheetManagerTheme.sheet);\n            }\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          var _this$props = this.props,\n              classes = _this$props.classes,\n              innerRef = _this$props.innerRef,\n              other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"innerRef\"]);\n          var more = (0, _getThemeProps.default)({\n            theme: this.theme,\n            name: name,\n            props: other\n          }); // Provide the theme to the wrapped component.\n          // So we don't have to use the `withTheme()` Higher-order Component.\n\n          if (withTheme && !more.theme) {\n            more.theme = this.theme;\n          }\n\n          return _react.default.createElement(Component, (0, _extends2.default)({}, more, {\n            classes: this.getClasses(),\n            ref: innerRef\n          }));\n        }\n      }]);\n      return WithStyles;\n    }(_react.default.Component);\n\n    WithStyles.propTypes = process.env.NODE_ENV !== \"production\" ? {\n      /**\n       * Override or extend the styles applied to the component.\n       */\n      classes: _propTypes.default.object,\n\n      /**\n       * Use that property to pass a ref callback to the decorated component.\n       */\n      innerRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])\n    } : {};\n    WithStyles.contextTypes = (0, _extends2.default)({\n      muiThemeProviderOptions: _propTypes.default.object\n    }, _contextTypes.default, listenToTheme ? _themeListener.default.contextTypes : {});\n\n    if (process.env.NODE_ENV !== 'production') {\n      WithStyles.displayName = (0, _wrapDisplayName.default)(Component, 'WithStyles');\n    }\n\n    (0, _hoistNonReactStatics.default)(WithStyles, Component);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Exposed for test purposes.\n      WithStyles.Naked = Component;\n      WithStyles.options = options;\n    }\n\n    return WithStyles;\n  };\n};\n\nvar _default = withStyles;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"recompose/wrapDisplayName\"));\n\nvar _createMuiTheme = _interopRequireDefault(require(\"./createMuiTheme\"));\n\nvar _themeListener = _interopRequireDefault(require(\"./themeListener\"));\n\nvar defaultTheme;\n\nfunction getDefaultTheme() {\n  if (defaultTheme) {\n    return defaultTheme;\n  }\n\n  defaultTheme = (0, _createMuiTheme.default)();\n  return defaultTheme;\n} // Provide the theme object as a property to the input component.\n\n\nvar withTheme = function withTheme() {\n  return function (Component) {\n    var WithTheme =\n    /*#__PURE__*/\n    function (_React$Component) {\n      (0, _inherits2.default)(WithTheme, _React$Component);\n\n      function WithTheme(props, context) {\n        var _this;\n\n        (0, _classCallCheck2.default)(this, WithTheme);\n        _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(WithTheme).call(this));\n        _this.state = {\n          // We use || as the function call is lazy evaluated.\n          theme: _themeListener.default.initial(context) || getDefaultTheme()\n        };\n        return _this;\n      }\n\n      (0, _createClass2.default)(WithTheme, [{\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          var _this2 = this;\n\n          this.unsubscribeId = _themeListener.default.subscribe(this.context, function (theme) {\n            _this2.setState({\n              theme: theme\n            });\n          });\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          if (this.unsubscribeId !== null) {\n            _themeListener.default.unsubscribe(this.context, this.unsubscribeId);\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          var _this$props = this.props,\n              innerRef = _this$props.innerRef,\n              other = (0, _objectWithoutProperties2.default)(_this$props, [\"innerRef\"]);\n          return _react.default.createElement(Component, (0, _extends2.default)({\n            theme: this.state.theme,\n            ref: innerRef\n          }, other));\n        }\n      }]);\n      return WithTheme;\n    }(_react.default.Component);\n\n    WithTheme.propTypes = process.env.NODE_ENV !== \"production\" ? {\n      /**\n       * Use that property to pass a ref callback to the decorated component.\n       */\n      innerRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])\n    } : {};\n    WithTheme.contextTypes = _themeListener.default.contextTypes;\n\n    if (process.env.NODE_ENV !== 'production') {\n      WithTheme.displayName = (0, _wrapDisplayName.default)(Component, 'WithTheme');\n    }\n\n    (0, _hoistNonReactStatics.default)(WithTheme, Component);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Exposed for test purposes.\n      WithTheme.Naked = Component;\n    }\n\n    return WithTheme;\n  };\n};\n\nvar _default = withTheme;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"createGenerateClassName\", {\n  enumerable: true,\n  get: function get() {\n    return _createGenerateClassName.default;\n  }\n});\nObject.defineProperty(exports, \"createMuiTheme\", {\n  enumerable: true,\n  get: function get() {\n    return _createMuiTheme.default;\n  }\n});\nObject.defineProperty(exports, \"jssPreset\", {\n  enumerable: true,\n  get: function get() {\n    return _jssPreset.default;\n  }\n});\nObject.defineProperty(exports, \"MuiThemeProvider\", {\n  enumerable: true,\n  get: function get() {\n    return _MuiThemeProvider.default;\n  }\n});\nObject.defineProperty(exports, \"createStyles\", {\n  enumerable: true,\n  get: function get() {\n    return _createStyles.default;\n  }\n});\nObject.defineProperty(exports, \"withStyles\", {\n  enumerable: true,\n  get: function get() {\n    return _withStyles.default;\n  }\n});\nObject.defineProperty(exports, \"withTheme\", {\n  enumerable: true,\n  get: function get() {\n    return _withTheme.default;\n  }\n});\n\nvar _createGenerateClassName = _interopRequireDefault(require(\"./createGenerateClassName\"));\n\nvar _createMuiTheme = _interopRequireDefault(require(\"./createMuiTheme\"));\n\nvar _jssPreset = _interopRequireDefault(require(\"./jssPreset\"));\n\nvar _MuiThemeProvider = _interopRequireDefault(require(\"./MuiThemeProvider\"));\n\nvar _createStyles = _interopRequireDefault(require(\"./createStyles\"));\n\nvar _withStyles = _interopRequireDefault(require(\"./withStyles\"));\n\nvar _withTheme = _interopRequireDefault(require(\"./withTheme\"));","/*!\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.capitalize = capitalize;\nexports.contains = contains;\nexports.findIndex = findIndex;\nexports.find = find;\nexports.createChainedFunction = createChainedFunction;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nfunction capitalize(string) {\n  if (process.env.NODE_ENV !== 'production' && typeof string !== 'string') {\n    throw new Error('Material-UI: capitalize(string) expects a string argument.');\n  }\n\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction contains(obj, pred) {\n  return Object.keys(pred).every(function (key) {\n    return obj.hasOwnProperty(key) && obj[key] === pred[key];\n  });\n}\n\nfunction findIndex(arr, pred) {\n  var predType = (0, _typeof2.default)(pred);\n\n  for (var i = 0; i < arr.length; i += 1) {\n    if (predType === 'function' && !!pred(arr[i], i, arr) === true) {\n      return i;\n    }\n\n    if (predType === 'object' && contains(arr[i], pred)) {\n      return i;\n    }\n\n    if (['string', 'number', 'boolean'].indexOf(predType) !== -1) {\n      return arr.indexOf(pred);\n    }\n  }\n\n  return -1;\n}\n\nfunction find(arr, pred) {\n  var index = findIndex(arr, pred);\n  return index > -1 ? arr[index] : undefined;\n}\n/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\n\n\nfunction createChainedFunction() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  return funcs.reduce(function (acc, func) {\n    if (func == null) {\n      return acc;\n    }\n\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(typeof func === 'function', 'Material-UI: invalid Argument Type, must only provide functions, undefined, or null.') : void 0;\n    return function chainedFunction() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      acc.apply(this, args);\n      func.apply(this, args);\n    };\n  }, function () {});\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  var elevations = {};\n  theme.shadows.forEach(function (shadow, index) {\n    elevations[\"elevation\".concat(index)] = {\n      boxShadow: shadow\n    };\n  });\n  return (0, _extends2.default)({\n    /* Styles applied to the root element. */\n    root: {\n      backgroundColor: theme.palette.background.paper\n    },\n\n    /* Styles applied to the root element if `square={false}`. */\n    rounded: {\n      borderRadius: theme.shape.borderRadius\n    }\n  }, elevations);\n};\n\nexports.styles = styles;\n\nfunction Paper(props) {\n  var classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      square = props.square,\n      elevation = props.elevation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\"]);\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(elevation >= 0 && elevation < 25, \"Material-UI: this elevation `\".concat(elevation, \"` is not implemented.\")) : void 0;\n  var className = (0, _classnames.default)(classes.root, classes[\"elevation\".concat(elevation)], (0, _defineProperty2.default)({}, classes.rounded, !square), classNameProp);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other));\n}\n\nPaper.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Shadow depth, corresponds to `dp` in the spec.\n   * It's accepting values between 0 and 24 inclusive.\n   */\n  elevation: _propTypes.default.number,\n\n  /**\n   * If `true`, rounded corners are disabled.\n   */\n  square: _propTypes.default.bool\n} : {};\nPaper.defaultProps = {\n  component: 'div',\n  elevation: 2,\n  square: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiPaper'\n})(Paper);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Paper.default;\n  }\n});\n\nvar _Paper = _interopRequireDefault(require(\"./Paper\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\n// @inheritedComponent Paper\nvar styles = function styles(theme) {\n  var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      flexDirection: 'column',\n      width: '100%',\n      boxSizing: 'border-box',\n      // Prevent padding issue with the Modal and fixed positioned AppBar.\n      zIndex: theme.zIndex.appBar,\n      flexShrink: 0\n    },\n\n    /* Styles applied to the root element if `position=\"fixed\"`. */\n    positionFixed: {\n      position: 'fixed',\n      top: 0,\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the root element if `position=\"absolute\"`. */\n    positionAbsolute: {\n      position: 'absolute',\n      top: 0,\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the root element if `position=\"sticky\"`. */\n    positionSticky: {\n      position: 'sticky',\n      top: 0,\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the root element if `position=\"static\"`. */\n    positionStatic: {\n      position: 'static'\n    },\n\n    /* Styles applied to the root element if `position=\"relative\"`. */\n    positionRelative: {\n      position: 'relative'\n    },\n\n    /* Styles applied to the root element if `color=\"default\"`. */\n    colorDefault: {\n      backgroundColor: backgroundColorDefault,\n      color: theme.palette.getContrastText(backgroundColorDefault)\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction AppBar(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      color = props.color,\n      position = props.position,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"position\"]);\n  var className = (0, _classnames.default)(classes.root, classes[\"position\".concat((0, _helpers.capitalize)(position))], (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'inherit'), (0, _defineProperty2.default)(_classNames, 'mui-fixed', position === 'fixed'), _classNames), classNameProp);\n  return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    square: true,\n    component: \"header\",\n    elevation: 4,\n    className: className\n  }, other), children);\n}\n\nAppBar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['inherit', 'primary', 'secondary', 'default']),\n\n  /**\n   * The positioning type. The behavior of the different options is described\n   * [here](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n   * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n   */\n  position: _propTypes.default.oneOf(['fixed', 'absolute', 'sticky', 'static', 'relative'])\n} : {};\nAppBar.defaultProps = {\n  color: 'primary',\n  position: 'fixed'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiAppBar'\n})(AppBar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _AppBar.default;\n  }\n});\n\nvar _AppBar = _interopRequireDefault(require(\"./AppBar\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      flexShrink: 0,\n      width: 40,\n      height: 40,\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(20),\n      borderRadius: '50%',\n      overflow: 'hidden',\n      userSelect: 'none'\n    },\n\n    /* Styles applied to the root element if there are children and not `src` or `srcSet` */\n\n    /* Styles applied to the root element if `color=\"default\"`. */\n    colorDefault: {\n      color: theme.palette.background.default,\n      backgroundColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n    },\n\n    /* Styles applied to the img element if either `src` or `srcSet` is defined. */\n    img: {\n      width: '100%',\n      height: '100%',\n      textAlign: 'center',\n      // Handle non-square image. The property isn't supported by IE11.\n      objectFit: 'cover'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Avatar(props) {\n  var alt = props.alt,\n      childrenProp = props.children,\n      childrenClassNameProp = props.childrenClassName,\n      classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      imgProps = props.imgProps,\n      sizes = props.sizes,\n      src = props.src,\n      srcSet = props.srcSet,\n      other = (0, _objectWithoutProperties2.default)(props, [\"alt\", \"children\", \"childrenClassName\", \"classes\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\"]);\n  var className = (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.colorDefault, childrenProp && !src && !srcSet), classNameProp);\n  var children = null;\n\n  if (src || srcSet) {\n    children = _react.default.createElement(\"img\", (0, _extends2.default)({\n      alt: alt,\n      src: src,\n      srcSet: srcSet,\n      sizes: sizes,\n      className: classes.img\n    }, imgProps));\n  } else if (childrenClassNameProp && _react.default.isValidElement(childrenProp)) {\n    var childrenClassName = (0, _classnames.default)(childrenClassNameProp, childrenProp.props.className);\n    children = _react.default.cloneElement(childrenProp, {\n      className: childrenClassName\n    });\n  } else {\n    children = childrenProp;\n  }\n\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other), children);\n}\n\nAvatar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Used in combination with `src` or `srcSet` to\n   * provide an alt attribute for the rendered `img` element.\n   */\n  alt: _propTypes.default.string,\n\n  /**\n   * Used to render icon or text elements inside the Avatar.\n   * `src` and `alt` props will not be used and no `img` will\n   * be rendered by default.\n   *\n   * This can be an element, or just a string.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   * The className of the child element.\n   * Used by Chip and ListItemIcon to style the Avatar icon.\n   */\n  childrenClassName: _propTypes.default.string,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Attributes applied to the `img` element if the component\n   * is used to display an image.\n   */\n  imgProps: _propTypes.default.object,\n\n  /**\n   * The `sizes` attribute for the `img` element.\n   */\n  sizes: _propTypes.default.string,\n\n  /**\n   * The `src` attribute for the `img` element.\n   */\n  src: _propTypes.default.string,\n\n  /**\n   * The `srcSet` attribute for the `img` element.\n   */\n  srcSet: _propTypes.default.string\n} : {};\nAvatar.defaultProps = {\n  component: 'div'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiAvatar'\n})(Avatar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Avatar.default;\n  }\n});\n\nvar _Avatar = _interopRequireDefault(require(\"./Avatar\"));","/**\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","\"use strict\";\n\nexports.__esModule = true;\nexports.transitionTimeout = transitionTimeout;\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\nfunction transitionTimeout(transitionType) {\n  var timeoutPropName = 'transition' + transitionType + 'Timeout';\n  var enabledPropName = 'transition' + transitionType;\n  return function (props) {\n    // If the transition is enabled\n    if (props[enabledPropName]) {\n      // If no timeout duration is provided\n      if (props[timeoutPropName] == null) {\n        return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); // If the duration isn't a number\n      } else if (typeof props[timeoutPropName] !== 'number') {\n        return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n      }\n    }\n\n    return null;\n  };\n}\n\nvar timeoutsShape = _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n  enter: _propTypes.default.number,\n  exit: _propTypes.default.number\n}).isRequired]);\n\nexports.timeoutsShape = timeoutsShape;\n\nvar classNamesShape = _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})]);\n\nexports.classNamesShape = classNamesShape;","\"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 * 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 components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\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 *   <Transition in={inProp} timeout={duration}>\n *     {(state) => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\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 begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n *   this.setState({ in: true });\n * }\n *\n * render() {\n *   return (\n *     <div>\n *       <Transition in={this.state.in} timeout={500} />\n *       <button onClick={this.toggleEnterState}>Click to Enter</button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\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;\n      appear = timeout.appear;\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(); // 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); // FIXME: appear timeout?\n\n\n      _this2.onTransitionEnd(node, timeouts.enter, 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\n    if (node) {\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    } else {\n      setTimeout(this.nextCallback, 0);\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.\n   * This function is called with the current transition status\n   * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n   * to apply context specific props to a component.\n   *\n   * ```jsx\n   * <Transition timeout={150}>\n   *   {(status) => (\n   *     <MyComponent className={`fade fade-${status}`} />\n   *   )}\n   * </Transition>\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 `<Transition>` 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 `<Transition>` 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 like: `timeout={500}`,\n   * or individually like:\n   *\n   * ```jsx\n   * timeout={{\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * @type {number | { enter?: number, exit?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = process.env.NODE_ENV !== \"production\" ? _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;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getTransitionProps = getTransitionProps;\nexports.reflow = void 0;\n\nvar reflow = function reflow(node) {\n  return node.scrollTop;\n};\n\nexports.reflow = reflow;\n\nfunction getTransitionProps(props, options) {\n  var timeout = props.timeout,\n      _props$style = props.style,\n      style = _props$style === void 0 ? {} : _props$style;\n  return {\n    duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode],\n    delay: style.transitionDelay\n  };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _utils = require(\"../transitions/utils\");\n\n// @inheritedComponent Transition\nvar styles = {\n  entering: {\n    opacity: 1\n  },\n  entered: {\n    opacity: 1\n  }\n};\n/**\n * The Fade transition is used by the [Modal](/utils/modal) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Fade =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Fade, _React$Component);\n\n  function Fade() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Fade);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Fade)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleEnter = function (node) {\n      var theme = _this.props.theme;\n      (0, _utils.reflow)(node); // So the animation always start from the start.\n\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'enter'\n      });\n      node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n      node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.handleExit = function (node) {\n      var theme = _this.props.theme;\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'exit'\n      });\n      node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n      node.style.transition = theme.transitions.create('opacity', transitionProps);\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Fade, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          onEnter = _this$props.onEnter,\n          onExit = _this$props.onExit,\n          styleProp = _this$props.style,\n          theme = _this$props.theme,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"onEnter\", \"onExit\", \"style\", \"theme\"]);\n      var style = (0, _extends2.default)({}, styleProp, _react.default.isValidElement(children) ? children.props.style : {});\n      return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        appear: true,\n        onEnter: this.handleEnter,\n        onExit: this.handleExit\n      }, other), function (state, childProps) {\n        return _react.default.cloneElement(children, (0, _extends2.default)({\n          style: (0, _extends2.default)({\n            opacity: 0,\n            willChange: 'opacity'\n          }, styles[state], style)\n        }, childProps));\n      });\n    }\n  }]);\n  return Fade;\n}(_react.default.Component);\n\nFade.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A single child content element.\n   */\n  children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })])\n} : {};\nFade.defaultProps = {\n  timeout: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  }\n};\n\nvar _default = (0, _withTheme.default)()(Fade);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Fade.default;\n  }\n});\n\nvar _Fade = _interopRequireDefault(require(\"./Fade\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Fade = _interopRequireDefault(require(\"../Fade\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    zIndex: -1,\n    position: 'fixed',\n    right: 0,\n    bottom: 0,\n    top: 0,\n    left: 0,\n    backgroundColor: 'rgba(0, 0, 0, 0.5)',\n    // Remove grey highlight\n    WebkitTapHighlightColor: 'transparent',\n    // Disable scroll capabilities.\n    touchAction: 'none'\n  },\n\n  /* Styles applied to the root element if `invisible={true}`. */\n  invisible: {\n    backgroundColor: 'transparent'\n  }\n};\nexports.styles = styles;\n\nfunction Backdrop(props) {\n  var classes = props.classes,\n      className = props.className,\n      invisible = props.invisible,\n      open = props.open,\n      transitionDuration = props.transitionDuration,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"invisible\", \"open\", \"transitionDuration\"]);\n  return _react.default.createElement(_Fade.default, (0, _extends2.default)({\n    in: open,\n    timeout: transitionDuration\n  }, other), _react.default.createElement(\"div\", {\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.invisible, invisible), className),\n    \"aria-hidden\": \"true\"\n  }));\n}\n\nBackdrop.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the backdrop is invisible.\n   * It can be used when rendering a popover or a custom select component.\n   */\n  invisible: _propTypes.default.bool,\n\n  /**\n   * If `true`, the backdrop is open.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })])\n} : {};\nBackdrop.defaultProps = {\n  invisible: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiBackdrop'\n})(Backdrop);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Backdrop.default;\n  }\n});\n\nvar _Backdrop = _interopRequireDefault(require(\"./Backdrop\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar RADIUS = 11;\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'inline-flex',\n      // For correct alignment with the text.\n      verticalAlign: 'middle'\n    },\n\n    /* Styles applied to the badge `span` element. */\n    badge: {\n      display: 'flex',\n      flexDirection: 'row',\n      flexWrap: 'wrap',\n      justifyContent: 'center',\n      alignContent: 'center',\n      alignItems: 'center',\n      position: 'absolute',\n      top: -RADIUS,\n      right: -RADIUS,\n      fontFamily: theme.typography.fontFamily,\n      fontWeight: theme.typography.fontWeight,\n      fontSize: theme.typography.pxToRem(12),\n      width: RADIUS * 2,\n      height: RADIUS * 2,\n      borderRadius: '50%',\n      backgroundColor: theme.palette.color,\n      color: theme.palette.textColor,\n      zIndex: 1 // Render the badge on top of potential ripples.\n\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      backgroundColor: theme.palette.error.main,\n      color: theme.palette.error.contrastText\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Badge(props) {\n  var badgeContent = props.badgeContent,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      color = props.color,\n      ComponentProp = props.component,\n      other = (0, _objectWithoutProperties2.default)(props, [\"badgeContent\", \"children\", \"classes\", \"className\", \"color\", \"component\"]);\n  var badgeClassName = (0, _classnames.default)(classes.badge, (0, _defineProperty2.default)({}, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'default'));\n  return _react.default.createElement(ComponentProp, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classNameProp)\n  }, other), children, _react.default.createElement(\"span\", {\n    className: badgeClassName\n  }, badgeContent));\n}\n\nBadge.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content rendered within the badge.\n   */\n  badgeContent: _propTypes.default.node.isRequired,\n\n  /**\n   * The badge will be added relative to this node.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'primary', 'secondary', 'error']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object])\n} : {};\nBadge.defaultProps = {\n  color: 'default',\n  component: 'span'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiBadge'\n})(Badge);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Badge.default;\n  }\n});\n\nvar _Badge = _interopRequireDefault(require(\"./Badge\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      justifyContent: 'center',\n      height: 56,\n      backgroundColor: theme.palette.background.paper\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction BottomNavigation(props) {\n  var childrenProp = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      onChange = props.onChange,\n      showLabels = props.showLabels,\n      value = props.value,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"onChange\", \"showLabels\", \"value\"]);\n  var className = (0, _classnames.default)(classes.root, classNameProp);\n\n  var children = _react.default.Children.map(childrenProp, function (child, childIndex) {\n    if (!_react.default.isValidElement(child)) {\n      return null;\n    }\n\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the BottomNavigation component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n    var childValue = child.props.value === undefined ? childIndex : child.props.value;\n    return _react.default.cloneElement(child, {\n      selected: childValue === value,\n      showLabel: child.props.showLabel !== undefined ? child.props.showLabel : showLabels,\n      value: childValue,\n      onChange: onChange\n    });\n  });\n\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: className\n  }, other), children);\n}\n\nBottomNavigation.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {object} event The event source of the callback\n   * @param {any} value We default to the index of the child\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * If `true`, all `BottomNavigationAction`s will show their labels.\n   * By default, only the selected `BottomNavigationAction` will show its label.\n   */\n  showLabels: _propTypes.default.bool,\n\n  /**\n   * The value of the currently selected `BottomNavigationAction`.\n   */\n  value: _propTypes.default.any\n} : {};\nBottomNavigation.defaultProps = {\n  showLabels: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiBottomNavigation'\n})(BottomNavigation);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _BottomNavigation.default;\n  }\n});\n\nvar _BottomNavigation = _interopRequireDefault(require(\"./BottomNavigation\"));","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n  // Keyboard Events\n  if (searchInput && 'object' === typeof searchInput) {\n    var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n    if (hasKeyCode) searchInput = hasKeyCode\n  }\n\n  // Numbers\n  if ('number' === typeof searchInput) return names[searchInput]\n\n  // Everything else (cast to string)\n  var search = String(searchInput)\n\n  // check codes\n  var foundNamedKey = codes[search.toLowerCase()]\n  if (foundNamedKey) return foundNamedKey\n\n  // check aliases\n  var foundNamedKey = aliases[search.toLowerCase()]\n  if (foundNamedKey) return foundNamedKey\n\n  // weird character?\n  if (search.length === 1) return search.charCodeAt(0)\n\n  return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n  if (event && 'object' === typeof event) {\n    var keyCode = event.which || event.keyCode || event.charCode\n    if (keyCode === null || keyCode === undefined) { return false; }\n    if (typeof nameOrCode === 'string') {\n      // check codes\n      var foundNamedKey = codes[nameOrCode.toLowerCase()]\n      if (foundNamedKey) { return foundNamedKey === keyCode; }\n    \n      // check aliases\n      var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n      if (foundNamedKey) { return foundNamedKey === keyCode; }\n    } else if (typeof nameOrCode === 'number') {\n      return nameOrCode === keyCode;\n    }\n    return false;\n  }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n *   exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n  'backspace': 8,\n  'tab': 9,\n  'enter': 13,\n  'shift': 16,\n  'ctrl': 17,\n  'alt': 18,\n  'pause/break': 19,\n  'caps lock': 20,\n  'esc': 27,\n  'space': 32,\n  'page up': 33,\n  'page down': 34,\n  'end': 35,\n  'home': 36,\n  'left': 37,\n  'up': 38,\n  'right': 39,\n  'down': 40,\n  'insert': 45,\n  'delete': 46,\n  'command': 91,\n  'left command': 91,\n  'right command': 93,\n  'numpad *': 106,\n  'numpad +': 107,\n  'numpad -': 109,\n  'numpad .': 110,\n  'numpad /': 111,\n  'num lock': 144,\n  'scroll lock': 145,\n  'my computer': 182,\n  'my calculator': 183,\n  ';': 186,\n  '=': 187,\n  ',': 188,\n  '-': 189,\n  '.': 190,\n  '/': 191,\n  '`': 192,\n  '[': 219,\n  '\\\\': 220,\n  ']': 221,\n  \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n  'windows': 91,\n  '⇧': 16,\n  '⌥': 18,\n  '⌃': 17,\n  '⌘': 91,\n  'ctl': 17,\n  'control': 17,\n  'option': 18,\n  'pause': 19,\n  'break': 19,\n  'caps': 20,\n  'return': 13,\n  'escape': 27,\n  'spc': 32,\n  'spacebar': 32,\n  'pgup': 33,\n  'pgdn': 34,\n  'ins': 45,\n  'del': 46,\n  'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n *   exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n  codes[alias] = aliases[alias]\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}\n\nvar _default = ownerDocument;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _ownerDocument = _interopRequireDefault(require(\"./ownerDocument\"));\n\nfunction ownerWindow(node) {\n  var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;\n  var doc = (0, _ownerDocument.default)(node);\n  return doc.defaultView || doc.parentView || fallback;\n}\n\nvar _default = ownerWindow;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.detectFocusVisible = detectFocusVisible;\nexports.listenForFocusKeys = listenForFocusKeys;\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar internal = {\n  focusKeyPressed: false,\n  keyUpEventTimeout: -1\n};\n\nfunction detectFocusVisible(instance, element, callback) {\n  var attempt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(instance.focusVisibleCheckTime, 'Material-UI: missing instance.focusVisibleCheckTime.') : void 0;\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(instance.focusVisibleMaxCheckTimes, 'Material-UI: missing instance.focusVisibleMaxCheckTimes.') : void 0;\n  instance.focusVisibleTimeout = setTimeout(function () {\n    var doc = (0, _ownerDocument.default)(element);\n\n    if (internal.focusKeyPressed && (doc.activeElement === element || element.contains(doc.activeElement))) {\n      callback();\n    } else if (attempt < instance.focusVisibleMaxCheckTimes) {\n      detectFocusVisible(instance, element, callback, attempt + 1);\n    }\n  }, instance.focusVisibleCheckTime);\n}\n\nvar FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right'];\n\nfunction isFocusKey(event) {\n  return FOCUS_KEYS.indexOf((0, _keycode.default)(event)) > -1;\n}\n\nvar handleKeyUpEvent = function handleKeyUpEvent(event) {\n  if (isFocusKey(event)) {\n    internal.focusKeyPressed = true; // Let's consider that the user is using a keyboard during a window frame of 1s.\n\n    clearTimeout(internal.keyUpEventTimeout);\n    internal.keyUpEventTimeout = setTimeout(function () {\n      internal.focusKeyPressed = false;\n    }, 1e3);\n  }\n};\n\nfunction listenForFocusKeys(win) {\n  // The event listener will only be added once per window.\n  // Duplicate event listeners will be ignored by addEventListener.\n  // Also, this logic is client side only, we don't need a teardown.\n  win.addEventListener('keyup', handleKeyUpEvent);\n}","function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","\"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}","\"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 propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * `<TransitionGroup>` renders a `<div>` 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 `<div>` 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 `<Transition>` components, that are toggled `in` and out as they\n   * leave. the `<TransitionGroup>` will inject specific transition props, so\n   * remember to spread them through if you are wrapping the `<Transition>` as\n   * with our `<Fade>` example.\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} : {};;\nvar defaultProps = {\n  component: 'div',\n  childFactory: function childFactory(child) {\n    return child;\n  }\n  /**\n   * The `<TransitionGroup>` component manages a set of transition components\n   * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n   * components, `<TransitionGroup>` 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 `<TransitionGroup>`.\n   *\n   * Note that `<TransitionGroup>`  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  };\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    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  _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\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\n/**\n * @ignore - internal component.\n */\nvar Ripple =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Ripple, _React$Component);\n\n  function Ripple() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Ripple);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Ripple)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {\n      visible: false,\n      leaving: false\n    };\n\n    _this.handleEnter = function () {\n      _this.setState({\n        visible: true\n      });\n    };\n\n    _this.handleExit = function () {\n      _this.setState({\n        leaving: true\n      });\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Ripple, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames, _classNames2;\n\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          classNameProp = _this$props.className,\n          pulsate = _this$props.pulsate,\n          rippleX = _this$props.rippleX,\n          rippleY = _this$props.rippleY,\n          rippleSize = _this$props.rippleSize,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"pulsate\", \"rippleX\", \"rippleY\", \"rippleSize\"]);\n      var _this$state = this.state,\n          visible = _this$state.visible,\n          leaving = _this$state.leaving;\n      var rippleClassName = (0, _classnames.default)(classes.ripple, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.rippleVisible, visible), (0, _defineProperty2.default)(_classNames, classes.ripplePulsate, pulsate), _classNames), classNameProp);\n      var rippleStyles = {\n        width: rippleSize,\n        height: rippleSize,\n        top: -(rippleSize / 2) + rippleY,\n        left: -(rippleSize / 2) + rippleX\n      };\n      var childClassName = (0, _classnames.default)(classes.child, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.childLeaving, leaving), (0, _defineProperty2.default)(_classNames2, classes.childPulsate, pulsate), _classNames2));\n      return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        onEnter: this.handleEnter,\n        onExit: this.handleExit\n      }, other), _react.default.createElement(\"span\", {\n        className: rippleClassName,\n        style: rippleStyles\n      }, _react.default.createElement(\"span\", {\n        className: childClassName\n      })));\n    }\n  }]);\n  return Ripple;\n}(_react.default.Component);\n\nRipple.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n   */\n  pulsate: _propTypes.default.bool,\n\n  /**\n   * Diameter of the ripple.\n   */\n  rippleSize: _propTypes.default.number,\n\n  /**\n   * Horizontal position of the ripple center.\n   */\n  rippleX: _propTypes.default.number,\n\n  /**\n   * Vertical position of the ripple center.\n   */\n  rippleY: _propTypes.default.number\n} : {};\nRipple.defaultProps = {\n  pulsate: false\n};\nvar _default = Ripple;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = exports.DELAY_RIPPLE = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"react-transition-group/TransitionGroup\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Ripple = _interopRequireDefault(require(\"./Ripple\"));\n\nvar DURATION = 550;\nvar DELAY_RIPPLE = 80;\nexports.DELAY_RIPPLE = DELAY_RIPPLE;\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      position: 'absolute',\n      overflow: 'hidden',\n      borderRadius: 'inherit',\n      width: '100%',\n      height: '100%',\n      left: 0,\n      top: 0,\n      pointerEvents: 'none',\n      zIndex: 0\n    },\n\n    /* Styles applied to the internal `Ripple` components `ripple` class. */\n    ripple: {\n      width: 50,\n      height: 50,\n      left: 0,\n      top: 0,\n      opacity: 0,\n      position: 'absolute'\n    },\n\n    /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n    rippleVisible: {\n      opacity: 0.3,\n      transform: 'scale(1)',\n      animation: \"mui-ripple-enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n    },\n\n    /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n    ripplePulsate: {\n      animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n    },\n\n    /* Styles applied to the internal `Ripple` components `child` class. */\n    child: {\n      opacity: 1,\n      display: 'block',\n      width: '100%',\n      height: '100%',\n      borderRadius: '50%',\n      backgroundColor: 'currentColor'\n    },\n\n    /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n    childLeaving: {\n      opacity: 0,\n      animation: \"mui-ripple-exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n    },\n\n    /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n    childPulsate: {\n      position: 'absolute',\n      left: 0,\n      top: 0,\n      animation: \"mui-ripple-pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n    },\n    '@keyframes mui-ripple-enter': {\n      '0%': {\n        transform: 'scale(0)',\n        opacity: 0.1\n      },\n      '100%': {\n        transform: 'scale(1)',\n        opacity: 0.3\n      }\n    },\n    '@keyframes mui-ripple-exit': {\n      '0%': {\n        opacity: 1\n      },\n      '100%': {\n        opacity: 0\n      }\n    },\n    '@keyframes mui-ripple-pulsate': {\n      '0%': {\n        transform: 'scale(1)'\n      },\n      '50%': {\n        transform: 'scale(0.92)'\n      },\n      '100%': {\n        transform: 'scale(1)'\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar TouchRipple =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  (0, _inherits2.default)(TouchRipple, _React$PureComponent);\n\n  function TouchRipple() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, TouchRipple);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(TouchRipple)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {\n      // eslint-disable-next-line react/no-unused-state\n      nextKey: 0,\n      ripples: []\n    };\n\n    _this.pulsate = function () {\n      _this.start({}, {\n        pulsate: true\n      });\n    };\n\n    _this.start = function () {\n      var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var cb = arguments.length > 2 ? arguments[2] : undefined;\n      var _options$pulsate = options.pulsate,\n          pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n          _options$center = options.center,\n          center = _options$center === void 0 ? _this.props.center || options.pulsate : _options$center,\n          _options$fakeElement = options.fakeElement,\n          fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n      if (event.type === 'mousedown' && _this.ignoringMouseDown) {\n        _this.ignoringMouseDown = false;\n        return;\n      }\n\n      if (event.type === 'touchstart') {\n        _this.ignoringMouseDown = true;\n      }\n\n      var element = fakeElement ? null : _reactDom.default.findDOMNode((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n      var rect = element ? element.getBoundingClientRect() : {\n        width: 0,\n        height: 0,\n        left: 0,\n        top: 0\n      }; // Get the size of the ripple\n\n      var rippleX;\n      var rippleY;\n      var rippleSize;\n\n      if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n        rippleX = Math.round(rect.width / 2);\n        rippleY = Math.round(rect.height / 2);\n      } else {\n        var clientX = event.clientX ? event.clientX : event.touches[0].clientX;\n        var clientY = event.clientY ? event.clientY : event.touches[0].clientY;\n        rippleX = Math.round(clientX - rect.left);\n        rippleY = Math.round(clientY - rect.top);\n      }\n\n      if (center) {\n        rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n        if (rippleSize % 2 === 0) {\n          rippleSize += 1;\n        }\n      } else {\n        var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n        var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n        rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n      } // Touche devices\n\n\n      if (event.touches) {\n        // Prepare the ripple effect.\n        _this.startTimerCommit = function () {\n          _this.startCommit({\n            pulsate: pulsate,\n            rippleX: rippleX,\n            rippleY: rippleY,\n            rippleSize: rippleSize,\n            cb: cb\n          });\n        }; // Deplay the execution of the ripple effect.\n\n\n        _this.startTimer = setTimeout(function () {\n          if (_this.startTimerCommit) {\n            _this.startTimerCommit();\n\n            _this.startTimerCommit = null;\n          }\n        }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n      } else {\n        _this.startCommit({\n          pulsate: pulsate,\n          rippleX: rippleX,\n          rippleY: rippleY,\n          rippleSize: rippleSize,\n          cb: cb\n        });\n      }\n    };\n\n    _this.startCommit = function (params) {\n      var pulsate = params.pulsate,\n          rippleX = params.rippleX,\n          rippleY = params.rippleY,\n          rippleSize = params.rippleSize,\n          cb = params.cb;\n\n      _this.setState(function (state) {\n        return {\n          nextKey: state.nextKey + 1,\n          ripples: (0, _toConsumableArray2.default)(state.ripples).concat([_react.default.createElement(_Ripple.default, {\n            key: state.nextKey,\n            classes: _this.props.classes,\n            timeout: {\n              exit: DURATION,\n              enter: DURATION\n            },\n            pulsate: pulsate,\n            rippleX: rippleX,\n            rippleY: rippleY,\n            rippleSize: rippleSize\n          })])\n        };\n      }, cb);\n    };\n\n    _this.stop = function (event, cb) {\n      clearTimeout(_this.startTimer);\n      var ripples = _this.state.ripples; // The touch interaction occurs too quickly.\n      // We still want to show ripple effect.\n\n      if (event.type === 'touchend' && _this.startTimerCommit) {\n        event.persist();\n\n        _this.startTimerCommit();\n\n        _this.startTimerCommit = null;\n        _this.startTimer = setTimeout(function () {\n          _this.stop(event, cb);\n        }, 0);\n        return;\n      }\n\n      _this.startTimerCommit = null;\n\n      if (ripples && ripples.length) {\n        _this.setState({\n          ripples: ripples.slice(1)\n        }, cb);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(TouchRipple, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.startTimer);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          center = _this$props.center,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"center\", \"classes\", \"className\"]);\n      return _react.default.createElement(_TransitionGroup.default, (0, _extends2.default)({\n        component: \"span\",\n        enter: true,\n        exit: true,\n        className: (0, _classnames.default)(classes.root, className)\n      }, other), this.state.ripples);\n    }\n  }]);\n  return TouchRipple;\n}(_react.default.PureComponent);\n\nTouchRipple.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the ripple starts at the center of the component\n   * rather than at the point of interaction.\n   */\n  center: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\nTouchRipple.defaultProps = {\n  center: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  flip: false,\n  name: 'MuiTouchRipple'\n})(TouchRipple);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction createRippleHandler(instance, eventName, action, cb) {\n  return function handleEvent(event) {\n    if (cb) {\n      cb.call(instance, event);\n    }\n\n    var ignore = false; // Ignore events that have been `event.preventDefault()` marked.\n\n    if (event.defaultPrevented) {\n      ignore = true;\n    }\n\n    if (instance.props.disableTouchRipple && eventName !== 'Blur') {\n      ignore = true;\n    }\n\n    if (!ignore && instance.ripple) {\n      instance.ripple[action](event);\n    }\n\n    if (typeof instance.props[\"on\".concat(eventName)] === 'function') {\n      instance.props[\"on\".concat(eventName)](event);\n    }\n\n    return true;\n  };\n}\n\nvar _default = createRippleHandler;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _ownerWindow = _interopRequireDefault(require(\"../utils/ownerWindow\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _focusVisible = require(\"./focusVisible\");\n\nvar _TouchRipple = _interopRequireDefault(require(\"./TouchRipple\"));\n\nvar _createRippleHandler = _interopRequireDefault(require(\"./createRippleHandler\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'inline-flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    position: 'relative',\n    // Remove grey highlight\n    WebkitTapHighlightColor: 'transparent',\n    backgroundColor: 'transparent',\n    // Reset default value\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 'none',\n    border: 0,\n    margin: 0,\n    // Remove the margin in Safari\n    borderRadius: 0,\n    padding: 0,\n    // Remove the padding in Firefox\n    cursor: 'pointer',\n    userSelect: 'none',\n    verticalAlign: 'middle',\n    '-moz-appearance': 'none',\n    // Reset\n    '-webkit-appearance': 'none',\n    // Reset\n    textDecoration: 'none',\n    // So we take precedent over the style of a native <a /> element.\n    color: 'inherit',\n    '&::-moz-focus-inner': {\n      borderStyle: 'none' // Remove Firefox dotted outline.\n\n    },\n    '&$disabled': {\n      pointerEvents: 'none',\n      // Disable link interactions\n      cursor: 'default'\n    }\n  },\n\n  /* Styles applied to the root element if `disabled={true}`. */\n  disabled: {},\n\n  /* Styles applied to the root element if keyboard focused. */\n  focusVisible: {}\n};\n/* istanbul ignore if */\n\nexports.styles = styles;\n\nif (process.env.NODE_ENV !== 'production' && !_react.default.createContext) {\n  throw new Error('Material-UI: react@16.3.0 or greater is required.');\n}\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\n\nvar ButtonBase =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ButtonBase, _React$Component);\n\n  function ButtonBase() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, ButtonBase);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ButtonBase)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {};\n    _this.keyDown = false;\n    _this.focusVisibleCheckTime = 50;\n    _this.focusVisibleMaxCheckTimes = 5;\n    _this.handleMouseDown = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'MouseDown', 'start', function () {\n      clearTimeout(_this.focusVisibleTimeout);\n\n      if (_this.state.focusVisible) {\n        _this.setState({\n          focusVisible: false\n        });\n      }\n    });\n    _this.handleMouseUp = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'MouseUp', 'stop');\n    _this.handleMouseLeave = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'MouseLeave', 'stop', function (event) {\n      if (_this.state.focusVisible) {\n        event.preventDefault();\n      }\n    });\n    _this.handleTouchStart = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'TouchStart', 'start');\n    _this.handleTouchEnd = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'TouchEnd', 'stop');\n    _this.handleTouchMove = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'TouchMove', 'stop');\n    _this.handleBlur = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'Blur', 'stop', function () {\n      clearTimeout(_this.focusVisibleTimeout);\n\n      if (_this.state.focusVisible) {\n        _this.setState({\n          focusVisible: false\n        });\n      }\n    });\n\n    _this.onRippleRef = function (node) {\n      _this.ripple = node;\n    };\n\n    _this.onFocusVisibleHandler = function (event) {\n      _this.keyDown = false;\n\n      _this.setState({\n        focusVisible: true\n      });\n\n      if (_this.props.onFocusVisible) {\n        _this.props.onFocusVisible(event);\n      }\n    };\n\n    _this.handleKeyDown = function (event) {\n      var _this$props = _this.props,\n          component = _this$props.component,\n          focusRipple = _this$props.focusRipple,\n          onKeyDown = _this$props.onKeyDown,\n          onClick = _this$props.onClick;\n      var key = (0, _keycode.default)(event); // Check if key is already down to avoid repeats being counted as multiple activations\n\n      if (focusRipple && !_this.keyDown && _this.state.focusVisible && _this.ripple && key === 'space') {\n        _this.keyDown = true;\n        event.persist();\n\n        _this.ripple.stop(event, function () {\n          _this.ripple.start(event);\n        });\n      }\n\n      if (onKeyDown) {\n        onKeyDown(event);\n      } // Keyboard accessibility for non interactive elements\n\n\n      if (event.target === event.currentTarget && component && component !== 'button' && (key === 'space' || key === 'enter') && !(_this.button.tagName === 'A' && _this.button.href)) {\n        event.preventDefault();\n\n        if (onClick) {\n          onClick(event);\n        }\n      }\n    };\n\n    _this.handleKeyUp = function (event) {\n      if (_this.props.focusRipple && (0, _keycode.default)(event) === 'space' && _this.ripple && _this.state.focusVisible) {\n        _this.keyDown = false;\n        event.persist();\n\n        _this.ripple.stop(event, function () {\n          _this.ripple.pulsate(event);\n        });\n      }\n\n      if (_this.props.onKeyUp) {\n        _this.props.onKeyUp(event);\n      }\n    };\n\n    _this.handleFocus = function (event) {\n      if (_this.props.disabled) {\n        return;\n      } // Fix for https://github.com/facebook/react/issues/7769\n\n\n      if (!_this.button) {\n        _this.button = event.currentTarget;\n      }\n\n      event.persist();\n      (0, _focusVisible.detectFocusVisible)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), _this.button, function () {\n        _this.onFocusVisibleHandler(event);\n      });\n\n      if (_this.props.onFocus) {\n        _this.props.onFocus(event);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(ButtonBase, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      this.button = _reactDom.default.findDOMNode(this);\n      (0, _focusVisible.listenForFocusKeys)((0, _ownerWindow.default)(this.button));\n\n      if (this.props.action) {\n        this.props.action({\n          focusVisible: function focusVisible() {\n            _this2.setState({\n              focusVisible: true\n            });\n\n            _this2.button.focus();\n          }\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      if (this.props.focusRipple && !this.props.disableRipple && !prevState.focusVisible && this.state.focusVisible) {\n        this.ripple.pulsate();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.focusVisibleTimeout);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props2 = this.props,\n          action = _this$props2.action,\n          buttonRef = _this$props2.buttonRef,\n          centerRipple = _this$props2.centerRipple,\n          children = _this$props2.children,\n          classes = _this$props2.classes,\n          classNameProp = _this$props2.className,\n          component = _this$props2.component,\n          disabled = _this$props2.disabled,\n          disableRipple = _this$props2.disableRipple,\n          disableTouchRipple = _this$props2.disableTouchRipple,\n          focusRipple = _this$props2.focusRipple,\n          focusVisibleClassName = _this$props2.focusVisibleClassName,\n          onBlur = _this$props2.onBlur,\n          onFocus = _this$props2.onFocus,\n          onFocusVisible = _this$props2.onFocusVisible,\n          onKeyDown = _this$props2.onKeyDown,\n          onKeyUp = _this$props2.onKeyUp,\n          onMouseDown = _this$props2.onMouseDown,\n          onMouseLeave = _this$props2.onMouseLeave,\n          onMouseUp = _this$props2.onMouseUp,\n          onTouchEnd = _this$props2.onTouchEnd,\n          onTouchMove = _this$props2.onTouchMove,\n          onTouchStart = _this$props2.onTouchStart,\n          tabIndex = _this$props2.tabIndex,\n          TouchRippleProps = _this$props2.TouchRippleProps,\n          type = _this$props2.type,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.focusVisible, this.state.focusVisible), (0, _defineProperty2.default)(_classNames, focusVisibleClassName, this.state.focusVisible), _classNames), classNameProp);\n      var buttonProps = {};\n      var ComponentProp = component;\n\n      if (ComponentProp === 'button' && other.href) {\n        ComponentProp = 'a';\n      }\n\n      if (ComponentProp === 'button') {\n        buttonProps.type = type || 'button';\n        buttonProps.disabled = disabled;\n      } else {\n        buttonProps.role = 'button';\n      }\n\n      return _react.default.createElement(ComponentProp, (0, _extends2.default)({\n        onBlur: this.handleBlur,\n        onFocus: this.handleFocus,\n        onKeyDown: this.handleKeyDown,\n        onKeyUp: this.handleKeyUp,\n        onMouseDown: this.handleMouseDown,\n        onMouseLeave: this.handleMouseLeave,\n        onMouseUp: this.handleMouseUp,\n        onTouchEnd: this.handleTouchEnd,\n        onTouchMove: this.handleTouchMove,\n        onTouchStart: this.handleTouchStart,\n        tabIndex: disabled ? '-1' : tabIndex,\n        className: className,\n        ref: buttonRef\n      }, buttonProps, other), children, !disableRipple && !disabled ? _react.default.createElement(_TouchRipple.default, (0, _extends2.default)({\n        innerRef: this.onRippleRef,\n        center: centerRipple\n      }, TouchRippleProps)) : null);\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (typeof prevState.focusVisible === 'undefined') {\n        return {\n          focusVisible: false,\n          lastDisabled: nextProps.disabled\n        };\n      } // The blur won't fire when the disabled state is set on a focused input.\n      // We need to book keep the focused state manually.\n\n\n      if (!prevState.prevState && nextProps.disabled && prevState.focusVisible) {\n        return {\n          focusVisible: false,\n          lastDisabled: nextProps.disabled\n        };\n      }\n\n      return {\n        lastDisabled: nextProps.disabled\n      };\n    }\n  }]);\n  return ButtonBase;\n}(_react.default.Component);\n\nButtonBase.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Callback fired when the component mounts.\n   * This is useful when you want to trigger an action programmatically.\n   * It currently only supports `focusVisible()` action.\n   *\n   * @param {object} actions This object contains all possible actions\n   * that can be triggered programmatically.\n   */\n  action: _propTypes.default.func,\n\n  /**\n   * Use that property to pass a ref callback to the native button component.\n   */\n  buttonRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the ripples will be centered.\n   * They won't start at the cursor interaction position.\n   */\n  centerRipple: _propTypes.default.bool,\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the base button will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * If `true`, the touch ripple effect will be disabled.\n   */\n  disableTouchRipple: _propTypes.default.bool,\n\n  /**\n   * If `true`, the base button will have a keyboard focus ripple.\n   * `disableRipple` must also be `false`.\n   */\n  focusRipple: _propTypes.default.bool,\n\n  /**\n   * This property can help a person know which element has the keyboard focus.\n   * The class name will be applied when the element gain the focus through a keyboard interaction.\n   * It's a polyfill for the [CSS :focus-visible feature](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n   * The rational for using this feature [is explain here](https://github.com/WICG/focus-visible/blob/master/explainer.md).\n   */\n  focusVisibleClassName: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component is focused with a keyboard.\n   * We trigger a `onFocus` callback too.\n   */\n  onFocusVisible: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onMouseDown: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onMouseLeave: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onMouseUp: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onTouchEnd: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onTouchMove: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onTouchStart: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  role: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n  /**\n   * Properties applied to the `TouchRipple` element.\n   */\n  TouchRippleProps: _propTypes.default.object,\n\n  /**\n   * Used to control the button's purpose.\n   * This property passes the value to the `type` attribute of the native button component.\n   * Valid property values include `button`, `submit`, and `reset`.\n   */\n  type: _propTypes.default.string\n} : {};\nButtonBase.defaultProps = {\n  centerRipple: false,\n  component: 'button',\n  disableRipple: false,\n  disableTouchRipple: false,\n  focusRipple: false,\n  tabIndex: '0',\n  type: 'button'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiButtonBase'\n})(ButtonBase);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ButtonBase.default;\n  }\n});\n\nvar _ButtonBase = _interopRequireDefault(require(\"./ButtonBase\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction unsupportedProp(props, propName, componentName, location, propFullName) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV === 'production') {\n    return null;\n  }\n\n  var propFullNameSafe = propFullName || propName;\n\n  if (typeof props[propName] !== 'undefined') {\n    return new Error(\"The property `\".concat(propFullNameSafe, \"` is not supported. Please remove it.\"));\n  }\n\n  return null;\n}\n\nvar _default = unsupportedProp;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _unsupportedProp = _interopRequireDefault(require(\"../utils/unsupportedProp\"));\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      transition: theme.transitions.create(['color', 'padding-top'], {\n        duration: theme.transitions.duration.short\n      }),\n      paddingTop: 8,\n      paddingBottom: 10,\n      paddingLeft: 12,\n      paddingRight: 12,\n      minWidth: 80,\n      maxWidth: 168,\n      color: theme.palette.text.secondary,\n      flex: '1',\n      '&$iconOnly': {\n        paddingTop: 16\n      },\n      '&$selected': {\n        paddingTop: 6,\n        color: theme.palette.primary.main\n      }\n    },\n\n    /* Styles applied to the root element if selected. */\n    selected: {},\n\n    /* Styles applied to the root element if `showLabel={false}` and not selected. */\n    iconOnly: {},\n\n    /* Styles applied to the span element that wraps the icon and label. */\n    wrapper: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      width: '100%',\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the label's span element. */\n    label: {\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(12),\n      opacity: 1,\n      transition: 'font-size 0.2s, opacity 0.2s',\n      transitionDelay: '0.1s',\n      '&$iconOnly': {\n        opacity: 0,\n        transitionDelay: '0s'\n      },\n      '&$selected': {\n        fontSize: theme.typography.pxToRem(14)\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar BottomNavigationAction =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(BottomNavigationAction, _React$Component);\n\n  function BottomNavigationAction() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, BottomNavigationAction);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(BottomNavigationAction)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleChange = function (event) {\n      var _this$props = _this.props,\n          onChange = _this$props.onChange,\n          value = _this$props.value,\n          onClick = _this$props.onClick;\n\n      if (onChange) {\n        onChange(event, value);\n      }\n\n      if (onClick) {\n        onClick(event);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(BottomNavigationAction, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames, _classNames2;\n\n      var _this$props2 = this.props,\n          classes = _this$props2.classes,\n          classNameProp = _this$props2.className,\n          icon = _this$props2.icon,\n          label = _this$props2.label,\n          onChange = _this$props2.onChange,\n          onClick = _this$props2.onClick,\n          selected = _this$props2.selected,\n          showLabelProp = _this$props2.showLabel,\n          value = _this$props2.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"classes\", \"className\", \"icon\", \"label\", \"onChange\", \"onClick\", \"selected\", \"showLabel\", \"value\"]);\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.selected, selected), (0, _defineProperty2.default)(_classNames, classes.iconOnly, !showLabelProp && !selected), _classNames), classNameProp);\n      var labelClassName = (0, _classnames.default)(classes.label, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.selected, selected), (0, _defineProperty2.default)(_classNames2, classes.iconOnly, !showLabelProp && !selected), _classNames2));\n      return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n        className: className,\n        focusRipple: true,\n        onClick: this.handleChange\n      }, other), _react.default.createElement(\"span\", {\n        className: classes.wrapper\n      }, icon, _react.default.createElement(\"span\", {\n        className: labelClassName\n      }, label)));\n    }\n  }]);\n  return BottomNavigationAction;\n}(_react.default.Component);\n\nBottomNavigationAction.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property isn't supported.\n   * Use the `component` property if you need to change the children structure.\n   */\n  children: _unsupportedProp.default,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The icon element.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * The label element.\n   */\n  label: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  selected: _propTypes.default.bool,\n\n  /**\n   * If `true`, the `BottomNavigationAction` will show its label.\n   * By default, only the selected `BottomNavigationAction`\n   * inside `BottomNavigation` will show its label.\n   */\n  showLabel: _propTypes.default.bool,\n\n  /**\n   * You can provide your own value. Otherwise, we fallback to the child position index.\n   */\n  value: _propTypes.default.any\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiBottomNavigationAction'\n})(BottomNavigationAction);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _BottomNavigationAction.default;\n  }\n});\n\nvar _BottomNavigationAction = _interopRequireDefault(require(\"./BottomNavigationAction\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: (0, _extends2.default)({}, theme.typography.button, {\n      lineHeight: '1.4em',\n      // Improve readability for multiline button.\n      boxSizing: 'border-box',\n      minWidth: 64,\n      minHeight: 36,\n      padding: '8px 16px',\n      borderRadius: theme.shape.borderRadius,\n      color: theme.palette.text.primary,\n      transition: theme.transitions.create(['background-color', 'box-shadow', 'border'], {\n        duration: theme.transitions.duration.short\n      }),\n      '&:hover': {\n        textDecoration: 'none',\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        },\n        '&$disabled': {\n          backgroundColor: 'transparent'\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }),\n\n    /* Styles applied to the span element that wraps the children. */\n    label: {\n      width: '100%',\n      // assure the correct width for iOS Safari\n      display: 'inherit',\n      alignItems: 'inherit',\n      justifyContent: 'inherit'\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"`. */\n    text: {},\n\n    /* Styles applied to the root element if `variant=\"text\"` and `color=\"primary\"`. */\n    textPrimary: {\n      color: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"` and `color=\"secondary\"`. */\n    textSecondary: {\n      color: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    flat: {},\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    flatPrimary: {},\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    flatSecondary: {},\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n    outlinedPrimary: {\n      border: \"1px solid \".concat((0, _colorManipulator.fade)(theme.palette.primary.main, 0.5)),\n      '&:hover': {\n        border: \"1px solid \".concat(theme.palette.primary.main)\n      },\n      '&$disabled': {\n        border: \"1px solid \".concat(theme.palette.action.disabled)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n    outlinedSecondary: {\n      border: \"1px solid \".concat((0, _colorManipulator.fade)(theme.palette.secondary.main, 0.5)),\n      '&:hover': {\n        border: \"1px solid \".concat(theme.palette.secondary.main)\n      },\n      '&$disabled': {\n        border: \"1px solid \".concat(theme.palette.action.disabled)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"[contained | fab]\"`. */\n    contained: {\n      color: theme.palette.getContrastText(theme.palette.grey[300]),\n      backgroundColor: theme.palette.grey[300],\n      boxShadow: theme.shadows[2],\n      '&$focusVisible': {\n        boxShadow: theme.shadows[6]\n      },\n      '&:active': {\n        boxShadow: theme.shadows[8]\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled,\n        boxShadow: theme.shadows[0],\n        backgroundColor: theme.palette.action.disabledBackground\n      },\n      '&:hover': {\n        backgroundColor: theme.palette.grey.A100,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.grey[300]\n        },\n        '&$disabled': {\n          backgroundColor: theme.palette.action.disabledBackground\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"[contained | fab]\"` and `color=\"primary\"`. */\n    containedPrimary: {\n      color: theme.palette.primary.contrastText,\n      backgroundColor: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.primary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.primary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"[contained | fab]\"` and `color=\"secondary\"`. */\n    containedSecondary: {\n      color: theme.palette.secondary.contrastText,\n      backgroundColor: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: theme.palette.secondary.dark,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: theme.palette.secondary.main\n        }\n      }\n    },\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    raised: {},\n    // legacy\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    raisedPrimary: {},\n    // legacy\n\n    /* Styles applied to the root element for backwards compatibility with legacy variant naming. */\n    raisedSecondary: {},\n    // legacy\n\n    /* Styles applied to the root element if `variant=\"[fab | extendedFab]\"`. */\n    fab: {\n      borderRadius: '50%',\n      padding: 0,\n      minWidth: 0,\n      width: 56,\n      height: 56,\n      boxShadow: theme.shadows[6],\n      '&:active': {\n        boxShadow: theme.shadows[12]\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"extendedFab\"`. */\n    extendedFab: {\n      borderRadius: 48 / 2,\n      padding: '0 16px',\n      width: 'auto',\n      minWidth: 48,\n      height: 48\n    },\n\n    /* Styles applied to the ButtonBase root element if the button is keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `size=\"mini\"` & `variant=\"[fab | extendedFab]\"`. */\n    mini: {\n      width: 40,\n      height: 40\n    },\n\n    /* Styles applied to the root element if `size=\"small\"`. */\n    sizeSmall: {\n      padding: '7px 8px',\n      minWidth: 64,\n      minHeight: 32,\n      fontSize: theme.typography.pxToRem(13)\n    },\n\n    /* Styles applied to the root element if `size=\"large\"`. */\n    sizeLarge: {\n      padding: '8px 24px',\n      minWidth: 112,\n      minHeight: 40,\n      fontSize: theme.typography.pxToRem(15)\n    },\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {\n      width: '100%'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Button(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      color = props.color,\n      disabled = props.disabled,\n      disableFocusRipple = props.disableFocusRipple,\n      fullWidth = props.fullWidth,\n      focusVisibleClassName = props.focusVisibleClassName,\n      mini = props.mini,\n      size = props.size,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"focusVisibleClassName\", \"mini\", \"size\", \"variant\"]);\n  var fab = variant === 'fab' || variant === 'extendedFab';\n  var contained = variant === 'contained' || variant === 'raised';\n  var text = variant === 'text' || variant === 'flat' || variant === 'outlined';\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.fab, fab), (0, _defineProperty2.default)(_classNames, classes.mini, fab && mini), (0, _defineProperty2.default)(_classNames, classes.extendedFab, variant === 'extendedFab'), (0, _defineProperty2.default)(_classNames, classes.text, text), (0, _defineProperty2.default)(_classNames, classes.textPrimary, text && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.textSecondary, text && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.flat, variant === 'text' || variant === 'flat'), (0, _defineProperty2.default)(_classNames, classes.flatPrimary, (variant === 'text' || variant === 'flat') && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.flatSecondary, (variant === 'text' || variant === 'flat') && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.contained, contained || fab), (0, _defineProperty2.default)(_classNames, classes.containedPrimary, (contained || fab) && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.containedSecondary, (contained || fab) && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.raised, contained || fab), (0, _defineProperty2.default)(_classNames, classes.raisedPrimary, (contained || fab) && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.raisedSecondary, (contained || fab) && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes.outlinedPrimary, variant === 'outlined' && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.outlinedSecondary, variant === 'outlined' && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes[\"size\".concat((0, _helpers.capitalize)(size))], size !== 'medium'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.fullWidth, fullWidth), (0, _defineProperty2.default)(_classNames, classes.colorInherit, color === 'inherit'), _classNames), classNameProp);\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    className: className,\n    disabled: disabled,\n    focusRipple: !disableFocusRipple,\n    focusVisibleClassName: (0, _classnames.default)(classes.focusVisible, focusVisibleClassName)\n  }, other), _react.default.createElement(\"span\", {\n    className: classes.label\n  }, children));\n}\n\nButton.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the button.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the button will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the  keyboard focus ripple will be disabled.\n   * `disableRipple` must also be true.\n   */\n  disableFocusRipple: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: _propTypes.default.string,\n\n  /**\n   * If `true`, the button will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The URL to link to when the button is clicked.\n   * If defined, an `a` element will be used as the root node.\n   */\n  href: _propTypes.default.string,\n\n  /**\n   * If `true`, and `variant` is `'fab'`, will use mini floating action button styling.\n   */\n  mini: _propTypes.default.bool,\n\n  /**\n   * The size of the button.\n   * `small` is equivalent to the dense button styling.\n   */\n  size: _propTypes.default.oneOf(['small', 'medium', 'large']),\n\n  /**\n   * @ignore\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['text', 'flat', 'outlined', 'contained', 'raised', 'fab', 'extendedFab'])\n} : {};\nButton.defaultProps = {\n  color: 'default',\n  component: 'button',\n  disabled: false,\n  disableFocusRipple: false,\n  fullWidth: false,\n  mini: false,\n  size: 'medium',\n  type: 'button',\n  variant: 'text'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiButton'\n})(Button);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Button.default;\n  }\n});\n\nvar _Button = _interopRequireDefault(require(\"./Button\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// @inheritedComponent Paper\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    overflow: 'hidden'\n  }\n};\nexports.styles = styles;\n\nfunction Card(props) {\n  var classes = props.classes,\n      className = props.className,\n      raised = props.raised,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"raised\"]);\n  return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className),\n    elevation: raised ? 8 : 1\n  }, other));\n}\n\nCard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the card will use raised styling.\n   */\n  raised: _propTypes.default.bool\n} : {};\nCard.defaultProps = {\n  raised: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCard'\n})(Card);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Card.default;\n  }\n});\n\nvar _Card = _interopRequireDefault(require(\"./Card\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      textAlign: 'inherit',\n      '&:hover $focusHighlight': {\n        opacity: theme.palette.action.hoverOpacity\n      },\n      '&$focusVisible $focusHighlight': {\n        opacity: 0.12\n      }\n    },\n\n    /* Styles applied to the ButtonBase root element if the action area is keyboard focused. */\n    focusVisible: {},\n\n    /* Styles applied to the overlay that covers the action area when it is keyboard focused. */\n    focusHighlight: {\n      pointerEvents: 'none',\n      position: 'absolute',\n      backgroundColor: 'currentcolor',\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      opacity: 0,\n      transition: theme.transitions.create('opacity', {\n        duration: theme.transitions.duration.short\n      })\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction CardActionArea(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      focusVisibleClassName = props.focusVisibleClassName,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"focusVisibleClassName\"]);\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className),\n    focusVisibleClassName: (0, _classnames.default)(focusVisibleClassName, classes.focusVisible)\n  }, other), children, _react.default.createElement(\"span\", {\n    className: classes.focusHighlight\n  }));\n}\n\nCardActionArea.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: _propTypes.default.string\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCardActionArea'\n})(CardActionArea);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CardActionArea.default;\n  }\n});\n\nvar _CardActionArea = _interopRequireDefault(require(\"./CardActionArea\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.cloneElementWithClassName = cloneElementWithClassName;\nexports.cloneChildrenWithClassName = cloneChildrenWithClassName;\nexports.isMuiElement = isMuiElement;\nexports.setRef = setRef;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\n/* eslint-disable import/prefer-default-export */\nfunction cloneElementWithClassName(child, className) {\n  return _react.default.cloneElement(child, {\n    className: (0, _classnames.default)(child.props.className, className)\n  });\n}\n\nfunction cloneChildrenWithClassName(children, className) {\n  return _react.default.Children.map(children, function (child) {\n    return _react.default.isValidElement(child) && cloneElementWithClassName(child, className);\n  });\n}\n\nfunction isMuiElement(element, muiNames) {\n  return _react.default.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}\n\nfunction setRef(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nrequire(\"../Button\");\n\n// So we don't have any override priority issue.\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: (0, _defineProperty2.default)({\n      display: 'flex',\n      alignItems: 'center',\n      boxSizing: 'border-box',\n      padding: '8px 4px'\n    }, theme.breakpoints.up('sm'), {\n      padding: '8px 12px'\n    }),\n\n    /* Styles applied to the children. */\n    action: {\n      margin: '0 4px'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction CardActions(props) {\n  var disableActionSpacing = props.disableActionSpacing,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"disableActionSpacing\", \"children\", \"classes\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), disableActionSpacing ? children : (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action));\n}\n\nCardActions.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the card actions do not have additional margin.\n   */\n  disableActionSpacing: _propTypes.default.bool\n} : {};\nCardActions.defaultProps = {\n  disableActionSpacing: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCardActions'\n})(CardActions);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CardActions.default;\n  }\n});\n\nvar _CardActions = _interopRequireDefault(require(\"./CardActions\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: theme.mixins.gutters({\n      paddingTop: 16,\n      paddingBottom: 16,\n      '&:last-child': {\n        paddingBottom: 24\n      }\n    })\n  };\n};\n\nexports.styles = styles;\n\nfunction CardContent(props) {\n  var classes = props.classes,\n      className = props.className,\n      Component = props.component,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other));\n}\n\nCardContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object])\n} : {};\nCardContent.defaultProps = {\n  component: 'div'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCardContent'\n})(CardContent);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CardContent.default;\n  }\n});\n\nvar _CardContent = _interopRequireDefault(require(\"./CardContent\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      margin: 0\n    },\n\n    /* Styles applied to the root element if `variant=\"display4\"`. */\n    display4: theme.typography.display4,\n\n    /* Styles applied to the root element if `variant=\"display3\"`. */\n    display3: theme.typography.display3,\n\n    /* Styles applied to the root element if `variant=\"display2\"`. */\n    display2: theme.typography.display2,\n\n    /* Styles applied to the root element if `variant=\"display1\"`. */\n    display1: theme.typography.display1,\n\n    /* Styles applied to the root element if `variant=\"headline\"`. */\n    headline: theme.typography.headline,\n\n    /* Styles applied to the root element if `variant=\"title\"`. */\n    title: theme.typography.title,\n\n    /* Styles applied to the root element if `variant=\"subheading\"`. */\n    subheading: theme.typography.subheading,\n\n    /* Styles applied to the root element if `variant=\"body2\"`. */\n    body2: theme.typography.body2,\n\n    /* Styles applied to the root element if `variant=\"body1\"`. */\n    body1: theme.typography.body1,\n\n    /* Styles applied to the root element if `variant=\"caption\"`. */\n    caption: theme.typography.caption,\n\n    /* Styles applied to the root element if `variant=\"button\"`. */\n    button: theme.typography.button,\n\n    /* Styles applied to the root element if `variant=\"srOnly\"`. Only accessible to screen readers. */\n    srOnly: {\n      position: 'absolute',\n      height: 1,\n      width: 1,\n      overflow: 'hidden'\n    },\n\n    /* Styles applied to the root element if `align=\"left\"`. */\n    alignLeft: {\n      textAlign: 'left'\n    },\n\n    /* Styles applied to the root element if `align=\"center\"`. */\n    alignCenter: {\n      textAlign: 'center'\n    },\n\n    /* Styles applied to the root element if `align=\"right\"`. */\n    alignRight: {\n      textAlign: 'right'\n    },\n\n    /* Styles applied to the root element if `align=\"justify\"`. */\n    alignJustify: {\n      textAlign: 'justify'\n    },\n\n    /* Styles applied to the root element if `align=\"nowrap\"`. */\n    noWrap: {\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the root element if `gutterBottom={true}`. */\n    gutterBottom: {\n      marginBottom: '0.35em'\n    },\n\n    /* Styles applied to the root element if `paragraph={true}`. */\n    paragraph: {\n      marginBottom: 16\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"textPrimary\"`. */\n    colorTextPrimary: {\n      color: theme.palette.text.primary\n    },\n\n    /* Styles applied to the root element if `color=\"textSecondary\"`. */\n    colorTextSecondary: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Typography(props) {\n  var _classNames;\n\n  var align = props.align,\n      classes = props.classes,\n      classNameProp = props.className,\n      color = props.color,\n      componentProp = props.component,\n      gutterBottom = props.gutterBottom,\n      headlineMapping = props.headlineMapping,\n      noWrap = props.noWrap,\n      paragraph = props.paragraph,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"align\", \"classes\", \"className\", \"color\", \"component\", \"gutterBottom\", \"headlineMapping\", \"noWrap\", \"paragraph\", \"variant\"]);\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[variant], variant !== 'inherit'), (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.noWrap, noWrap), (0, _defineProperty2.default)(_classNames, classes.gutterBottom, gutterBottom), (0, _defineProperty2.default)(_classNames, classes.paragraph, paragraph), (0, _defineProperty2.default)(_classNames, classes[\"align\".concat((0, _helpers.capitalize)(align))], align !== 'inherit'), _classNames), classNameProp);\n  var Component = componentProp || (paragraph ? 'p' : headlineMapping[variant]) || 'span';\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other));\n}\n\nTypography.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Set the text-align on the component.\n   */\n  align: _propTypes.default.oneOf(['inherit', 'left', 'center', 'right', 'justify']),\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'error', 'inherit', 'primary', 'secondary', 'textPrimary', 'textSecondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   * By default, it maps the variant to a good default headline component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the text will have a bottom margin.\n   */\n  gutterBottom: _propTypes.default.bool,\n\n  /**\n   * We are empirically mapping the variant property to a range of different DOM element types.\n   * For instance, h1 to h6. If you wish to change that mapping, you can provide your own.\n   * Alternatively, you can use the `component` property.\n   */\n  headlineMapping: _propTypes.default.object,\n\n  /**\n   * If `true`, the text will not wrap, but instead will truncate with an ellipsis.\n   */\n  noWrap: _propTypes.default.bool,\n\n  /**\n   * If `true`, the text will have a bottom margin.\n   */\n  paragraph: _propTypes.default.bool,\n\n  /**\n   * Applies the theme typography styles.\n   */\n  variant: _propTypes.default.oneOf(['display4', 'display3', 'display2', 'display1', 'headline', 'title', 'subheading', 'body2', 'body1', 'caption', 'button', 'srOnly', 'inherit'])\n} : {};\nTypography.defaultProps = {\n  align: 'inherit',\n  color: 'default',\n  gutterBottom: false,\n  headlineMapping: {\n    display4: 'h1',\n    display3: 'h1',\n    display2: 'h1',\n    display1: 'h1',\n    headline: 'h1',\n    title: 'h2',\n    subheading: 'h3',\n    body2: 'aside',\n    body1: 'p'\n  },\n  noWrap: false,\n  paragraph: false,\n  variant: 'body1'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTypography'\n})(Typography);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Typography.default;\n  }\n});\n\nvar _Typography = _interopRequireDefault(require(\"./Typography\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: theme.mixins.gutters({\n      display: 'flex',\n      alignItems: 'center',\n      paddingTop: 16,\n      paddingBottom: 16\n    }),\n\n    /* Styles applied to the avatar element. */\n    avatar: {\n      flex: '0 0 auto',\n      marginRight: 16\n    },\n\n    /* Styles applied to the action element. */\n    action: (0, _defineProperty2.default)({\n      flex: '0 0 auto',\n      alignSelf: 'flex-start',\n      marginTop: -8,\n      marginRight: -12\n    }, theme.breakpoints.up('sm'), {\n      marginRight: -20\n    }),\n\n    /* Styles applied to the content wrapper element. */\n    content: {\n      flex: '1 1 auto'\n    },\n\n    /* Styles applied to the title Typography element. */\n    title: {},\n\n    /* Styles applied to the subheader Typography element. */\n    subheader: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction CardHeader(props) {\n  var action = props.action,\n      avatar = props.avatar,\n      classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      disableTypography = props.disableTypography,\n      subheaderProp = props.subheader,\n      subheaderTypographyProps = props.subheaderTypographyProps,\n      titleProp = props.title,\n      titleTypographyProps = props.titleTypographyProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"action\", \"avatar\", \"classes\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"]);\n  var title = titleProp;\n\n  if (title != null && title.type !== _Typography.default && !disableTypography) {\n    title = _react.default.createElement(_Typography.default, (0, _extends2.default)({\n      variant: avatar ? 'body2' : 'headline',\n      className: classes.title,\n      component: \"span\"\n    }, titleTypographyProps), title);\n  }\n\n  var subheader = subheaderProp;\n\n  if (subheader != null && subheader.type !== _Typography.default && !disableTypography) {\n    subheader = _react.default.createElement(_Typography.default, (0, _extends2.default)({\n      variant: avatar ? 'body2' : 'body1',\n      className: classes.subheader,\n      color: \"textSecondary\",\n      component: \"span\"\n    }, subheaderTypographyProps), subheader);\n  }\n\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classNameProp)\n  }, other), avatar && _react.default.createElement(\"div\", {\n    className: classes.avatar\n  }, avatar), _react.default.createElement(\"div\", {\n    className: classes.content\n  }, title, subheader), action && _react.default.createElement(\"div\", {\n    className: classes.action\n  }, action));\n}\n\nCardHeader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The action to display in the card header.\n   */\n  action: _propTypes.default.node,\n\n  /**\n   * The Avatar for the Card Header.\n   */\n  avatar: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the children won't be wrapped by a Typography component.\n   * This can be useful to render an alternative Typography variant by wrapping\n   * the `title` text, and optional `subheader` text\n   * with the Typography component.\n   */\n  disableTypography: _propTypes.default.bool,\n\n  /**\n   * The content of the component.\n   */\n  subheader: _propTypes.default.node,\n\n  /**\n   * These props will be forwarded to the subheader\n   * (as long as disableTypography is not `true`).\n   */\n  subheaderTypographyProps: _propTypes.default.object,\n\n  /**\n   * The content of the Card Title.\n   */\n  title: _propTypes.default.node,\n\n  /**\n   * These props will be forwarded to the title\n   * (as long as disableTypography is not `true`).\n   */\n  titleTypographyProps: _propTypes.default.object\n} : {};\nCardHeader.defaultProps = {\n  component: 'div',\n  disableTypography: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCardHeader'\n})(CardHeader);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CardHeader.default;\n  }\n});\n\nvar _CardHeader = _interopRequireDefault(require(\"./CardHeader\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'block',\n    backgroundSize: 'cover',\n    backgroundRepeat: 'no-repeat',\n    backgroundPosition: 'center'\n  },\n\n  /* Styles applied to the root element if `component=\"video, audio, picture, iframe, or img\"`. */\n  media: {\n    width: '100%'\n  }\n};\nexports.styles = styles;\nvar MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\n\nfunction CardMedia(props) {\n  var classes = props.classes,\n      className = props.className,\n      Component = props.component,\n      image = props.image,\n      src = props.src,\n      style = props.style,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\", \"image\", \"src\", \"style\"]);\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(Boolean(image || src), 'Material-UI: either `image` or `src` property must be specified.') : void 0;\n  var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;\n  var composedStyle = !isMediaComponent && image ? (0, _extends2.default)({\n    backgroundImage: \"url(\\\"\".concat(image, \"\\\")\")\n  }, style) : style;\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.media, isMediaComponent), className),\n    style: composedStyle,\n    src: isMediaComponent ? image || src : undefined\n  }, other));\n}\n\nCardMedia.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Component for rendering image.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Image to be displayed as a background image.\n   * Either `image` or `src` prop must be specified.\n   * Note that caller must specify height otherwise the image will not be visible.\n   */\n  image: _propTypes.default.string,\n\n  /**\n   * An alias for `image` property.\n   * Available only with media components.\n   * Media components: `video`, `audio`, `picture`, `iframe`, `img`.\n   */\n  src: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object\n} : {};\nCardMedia.defaultProps = {\n  component: 'div'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCardMedia'\n})(CardMedia);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CardMedia.default;\n  }\n});\n\nvar _CardMedia = _interopRequireDefault(require(\"./CardMedia\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      textAlign: 'center',\n      flex: '0 0 auto',\n      fontSize: theme.typography.pxToRem(24),\n      padding: 12,\n      borderRadius: '50%',\n      overflow: 'visible',\n      // Explicitly set the default value to solve a bug on IE11.\n      color: theme.palette.action.active,\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&:hover': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.action.active, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        },\n        '&$disabled': {\n          backgroundColor: 'transparent'\n        }\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main,\n      '&:hover': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main,\n      '&:hover': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the children container element. */\n    label: {\n      width: '100%',\n      display: 'flex',\n      alignItems: 'inherit',\n      justifyContent: 'inherit'\n    }\n  };\n};\n/**\n * Refer to the [Icons](/style/icons) section of the documentation\n * regarding the available icon options.\n */\n\n\nexports.styles = styles;\n\nfunction IconButton(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      disabled = props.disabled,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"disabled\"]);\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), className),\n    centerRipple: true,\n    focusRipple: true,\n    disabled: disabled\n  }, other), _react.default.createElement(\"span\", {\n    className: classes.label\n  }, children));\n}\n\nIconButton.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The icon element.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n  /**\n   * If `true`, the button will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple will be disabled.\n   */\n  disableRipple: _propTypes.default.bool\n} : {};\nIconButton.defaultProps = {\n  color: 'default',\n  disabled: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiIconButton'\n})(IconButton);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _IconButton.default;\n  }\n});\n\nvar _IconButton = _interopRequireDefault(require(\"./IconButton\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _IconButton = _interopRequireDefault(require(\"../IconButton\"));\n\n// @inheritedComponent IconButton\nvar styles = {\n  root: {\n    display: 'inline-flex',\n    alignItems: 'center',\n    transition: 'none',\n    '&:hover': {\n      // Disable the hover effect for the IconButton.\n      backgroundColor: 'transparent'\n    }\n  },\n  checked: {},\n  disabled: {},\n  input: {\n    cursor: 'inherit',\n    position: 'absolute',\n    opacity: 0,\n    width: '100%',\n    height: '100%',\n    top: 0,\n    left: 0,\n    margin: 0,\n    padding: 0\n  }\n};\n/**\n * @ignore - internal component.\n */\n\nexports.styles = styles;\n\nvar SwitchBase =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(SwitchBase, _React$Component);\n\n  function SwitchBase(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, SwitchBase);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SwitchBase).call(this));\n\n    _this.handleFocus = function (event) {\n      if (_this.props.onFocus) {\n        _this.props.onFocus(event);\n      }\n\n      var muiFormControl = _this.context.muiFormControl;\n\n      if (muiFormControl && muiFormControl.onFocus) {\n        muiFormControl.onFocus(event);\n      }\n    };\n\n    _this.handleBlur = function (event) {\n      if (_this.props.onBlur) {\n        _this.props.onBlur(event);\n      }\n\n      var muiFormControl = _this.context.muiFormControl;\n\n      if (muiFormControl && muiFormControl.onBlur) {\n        muiFormControl.onBlur(event);\n      }\n    };\n\n    _this.handleInputChange = function (event) {\n      var checked = event.target.checked;\n\n      if (!_this.isControlled) {\n        _this.setState({\n          checked: checked\n        });\n      }\n\n      if (_this.props.onChange) {\n        _this.props.onChange(event, checked);\n      }\n    };\n\n    _this.isControlled = props.checked != null;\n    _this.state = {};\n\n    if (!_this.isControlled) {\n      // not controlled, use internal state\n      _this.state.checked = props.defaultChecked !== undefined ? props.defaultChecked : false;\n    }\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(SwitchBase, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props = this.props,\n          autoFocus = _this$props.autoFocus,\n          checkedProp = _this$props.checked,\n          checkedIcon = _this$props.checkedIcon,\n          classes = _this$props.classes,\n          classNameProp = _this$props.className,\n          disabledProp = _this$props.disabled,\n          icon = _this$props.icon,\n          id = _this$props.id,\n          inputProps = _this$props.inputProps,\n          inputRef = _this$props.inputRef,\n          name = _this$props.name,\n          onBlur = _this$props.onBlur,\n          onChange = _this$props.onChange,\n          onFocus = _this$props.onFocus,\n          readOnly = _this$props.readOnly,\n          required = _this$props.required,\n          tabIndex = _this$props.tabIndex,\n          type = _this$props.type,\n          value = _this$props.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"autoFocus\", \"checked\", \"checkedIcon\", \"classes\", \"className\", \"disabled\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"]);\n      var muiFormControl = this.context.muiFormControl;\n      var disabled = disabledProp;\n\n      if (muiFormControl) {\n        if (typeof disabled === 'undefined') {\n          disabled = muiFormControl.disabled;\n        }\n      }\n\n      var checked = this.isControlled ? checkedProp : this.state.checked;\n      var hasLabelFor = type === 'checkbox' || type === 'radio';\n      return _react.default.createElement(_IconButton.default, (0, _extends2.default)({\n        component: \"span\",\n        className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.checked, checked), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp),\n        disabled: disabled,\n        tabIndex: null,\n        role: undefined,\n        onFocus: this.handleFocus,\n        onBlur: this.handleBlur\n      }, other), checked ? checkedIcon : icon, _react.default.createElement(\"input\", (0, _extends2.default)({\n        autoFocus: autoFocus,\n        checked: checked,\n        className: classes.input,\n        disabled: disabled,\n        id: hasLabelFor && id,\n        name: name,\n        onChange: this.handleInputChange,\n        readOnly: readOnly,\n        ref: inputRef,\n        required: required,\n        tabIndex: tabIndex,\n        type: type,\n        value: value\n      }, inputProps)));\n    }\n  }]);\n  return SwitchBase;\n}(_react.default.Component); // NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\n\n\nSwitchBase.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  defaultChecked: _propTypes.default.bool,\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: _propTypes.default.node.isRequired,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /*\n   * @ignore\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.checked`.\n   * @param {boolean} checked The `checked` value of the switch\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n  /**\n   * The input component property `type`.\n   */\n  type: _propTypes.default.string.isRequired,\n\n  /**\n   * The value of the component.\n   */\n  value: _propTypes.default.string\n} : {};\nSwitchBase.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiSwitchBase'\n})(SwitchBase);\n\nexports.default = _default;","function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n  return function (BaseComponent) {\n    /* eslint-disable no-param-reassign */\n    BaseComponent[key] = value;\n    /* eslint-enable no-param-reassign */\n\n    return BaseComponent;\n  };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n  return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n  return function (BaseComponent) {\n    var factory = (0, _react.createFactory)(BaseComponent);\n\n    var ShouldUpdate =\n    /*#__PURE__*/\n    function (_Component) {\n      (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n      function ShouldUpdate() {\n        return _Component.apply(this, arguments) || this;\n      }\n\n      var _proto = ShouldUpdate.prototype;\n\n      _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n        return test(this.props, nextProps);\n      };\n\n      _proto.render = function render() {\n        return factory(this.props);\n      };\n\n      return ShouldUpdate;\n    }(_react.Component);\n\n    if (process.env.NODE_ENV !== 'production') {\n      return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n    }\n\n    return ShouldUpdate;\n  };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","/**\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 * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\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 */\nfunction 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    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(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  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n  var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n    return !(0, _shallowEqual.default)(props, nextProps);\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n  }\n\n  return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      userSelect: 'none',\n      width: '1em',\n      height: '1em',\n      display: 'inline-block',\n      fill: 'currentColor',\n      flexShrink: 0,\n      fontSize: 24,\n      transition: theme.transitions.create('fill', {\n        duration: theme.transitions.duration.shorter\n      })\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"action\"`. */\n    colorAction: {\n      color: theme.palette.action.active\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `color=\"disabled\"`. */\n    colorDisabled: {\n      color: theme.palette.action.disabled\n    },\n\n    /* Styles applied to the root element if `fontSize=\"inherit\"`. */\n    fontSizeInherit: {\n      fontSize: 'inherit'\n    },\n\n    /* Styles applied to the root element if `fontSize=\"small\"`. */\n    fontSizeSmall: {\n      fontSize: 20\n    },\n\n    /* Styles applied to the root element if `fontSize=\"large\"`. */\n    fontSizeLarge: {\n      fontSize: 36\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction SvgIcon(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      Component = props.component,\n      fontSize = props.fontSize,\n      nativeColor = props.nativeColor,\n      titleAccess = props.titleAccess,\n      viewBox = props.viewBox,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\", \"nativeColor\", \"titleAccess\", \"viewBox\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'inherit'), (0, _defineProperty2.default)(_classNames, classes[\"fontSize\".concat((0, _helpers.capitalize)(fontSize))], fontSize !== 'default'), _classNames), className),\n    focusable: \"false\",\n    viewBox: viewBox,\n    color: nativeColor,\n    \"aria-hidden\": titleAccess ? 'false' : 'true',\n    role: titleAccess ? 'img' : 'presentation'\n  }, other), children, titleAccess ? _react.default.createElement(\"title\", null, titleAccess) : null);\n}\n\nSvgIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Node passed into the SVG element.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   * You can use the `nativeColor` property to apply a color attribute to the SVG element.\n   */\n  color: _propTypes.default.oneOf(['inherit', 'primary', 'secondary', 'action', 'error', 'disabled']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n   */\n  fontSize: _propTypes.default.oneOf(['inherit', 'default', 'small', 'large']),\n\n  /**\n   * Applies a color attribute to the SVG element.\n   */\n  nativeColor: _propTypes.default.string,\n\n  /**\n   * Provides a human-readable title for the element that contains it.\n   * https://www.w3.org/TR/SVG-access/#Equivalent\n   */\n  titleAccess: _propTypes.default.string,\n\n  /**\n   * Allows you to redefine what the coordinates without units mean inside an SVG element.\n   * For example, if the SVG element is 500 (width) by 200 (height),\n   * and you pass viewBox=\"0 0 50 20\",\n   * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n   * to bottom right (50,20) and each unit will be worth 10px.\n   */\n  viewBox: _propTypes.default.string\n} : {};\nSvgIcon.defaultProps = {\n  color: 'inherit',\n  component: 'svg',\n  fontSize: 'default',\n  viewBox: '0 0 24 24'\n};\nSvgIcon.muiName = 'SvgIcon';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiSvgIcon'\n})(SvgIcon);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _SvgIcon.default;\n  }\n});\n\nvar _SvgIcon = _interopRequireDefault(require(\"./SvgIcon\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar CheckBoxOutlineBlank = function CheckBoxOutlineBlank(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nCheckBoxOutlineBlank = (0, _pure.default)(CheckBoxOutlineBlank);\nCheckBoxOutlineBlank.muiName = 'SvgIcon';\nvar _default = CheckBoxOutlineBlank;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar CheckBox = function CheckBox(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nCheckBox = (0, _pure.default)(CheckBox);\nCheckBox.muiName = 'SvgIcon';\nvar _default = CheckBox;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar IndeterminateCheckBox = function IndeterminateCheckBox(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nIndeterminateCheckBox = (0, _pure.default)(IndeterminateCheckBox);\nIndeterminateCheckBox.muiName = 'SvgIcon';\nvar _default = IndeterminateCheckBox;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _SwitchBase = _interopRequireDefault(require(\"../internal/SwitchBase\"));\n\nvar _CheckBoxOutlineBlank = _interopRequireDefault(require(\"../internal/svg-icons/CheckBoxOutlineBlank\"));\n\nvar _CheckBox = _interopRequireDefault(require(\"../internal/svg-icons/CheckBox\"));\n\nvar _IndeterminateCheckBox = _interopRequireDefault(require(\"../internal/svg-icons/IndeterminateCheckBox\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Styles applied to the root element if `checked={true}`. */\n    checked: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `indeterminate={true}`. */\n    indeterminate: {},\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Checkbox(props) {\n  var checkedIcon = props.checkedIcon,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      icon = props.icon,\n      indeterminate = props.indeterminate,\n      indeterminateIcon = props.indeterminateIcon,\n      inputProps = props.inputProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"checkedIcon\", \"classes\", \"className\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\"]);\n  return _react.default.createElement(_SwitchBase.default, (0, _extends2.default)({\n    type: \"checkbox\",\n    checkedIcon: indeterminate ? indeterminateIcon : checkedIcon,\n    className: (0, _classnames.default)((0, _defineProperty2.default)({}, classes.indeterminate, indeterminate), className),\n    classes: {\n      root: (0, _classnames.default)(classes.root, classes[\"color\".concat((0, _helpers.capitalize)(color))]),\n      checked: classes.checked,\n      disabled: classes.disabled\n    },\n    inputProps: (0, _extends2.default)({\n      'data-indeterminate': indeterminate\n    }, inputProps),\n    icon: indeterminate ? indeterminateIcon : icon\n  }, other));\n}\n\nCheckbox.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary', 'default']),\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * If `true`, the component appears indeterminate.\n   * This does not set the native input element to indeterminate due\n   * to inconsistent behavior across browsers.\n   * However, we set a `data-indeterminate` attribute on the input.\n   */\n  indeterminate: _propTypes.default.bool,\n\n  /**\n   * The icon to display when the component is indeterminate.\n   */\n  indeterminateIcon: _propTypes.default.node,\n\n  /**\n   * Properties applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.checked`.\n   * @param {boolean} checked The `checked` value of the switch\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The input component property `type`.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The value of the component.\n   */\n  value: _propTypes.default.string\n} : {};\nCheckbox.defaultProps = {\n  checkedIcon: _react.default.createElement(_CheckBox.default, null),\n  color: 'secondary',\n  icon: _react.default.createElement(_CheckBoxOutlineBlank.default, null),\n  indeterminate: false,\n  indeterminateIcon: _react.default.createElement(_IndeterminateCheckBox.default, null)\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCheckbox'\n})(Checkbox);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Checkbox.default;\n  }\n});\n\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar Cancel = function Cancel(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nCancel = (0, _pure.default)(Cancel);\nCancel.muiName = 'SvgIcon';\nvar _default = Cancel;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _Cancel = _interopRequireDefault(require(\"../internal/svg-icons/Cancel\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar _unsupportedProp = _interopRequireDefault(require(\"../utils/unsupportedProp\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nrequire(\"../Avatar/Avatar\");\n\n// So we don't have any override priority issue.\nvar styles = function styles(theme) {\n  var height = 32;\n  var backgroundColor = theme.palette.type === 'light' ? theme.palette.grey[300] : theme.palette.grey[700];\n  var deleteIconColor = (0, _colorManipulator.fade)(theme.palette.text.primary, 0.26);\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(13),\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      height: height,\n      color: theme.palette.getContrastText(backgroundColor),\n      backgroundColor: backgroundColor,\n      borderRadius: height / 2,\n      whiteSpace: 'nowrap',\n      transition: theme.transitions.create(['background-color', 'box-shadow']),\n      // label will inherit this from root, then `clickable` class overrides this for both\n      cursor: 'default',\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 'none',\n      textDecoration: 'none',\n      border: 'none',\n      // Remove `button` border\n      padding: 0,\n      // Remove `button` padding\n      verticalAlign: 'middle'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main,\n      color: theme.palette.primary.contrastText\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main,\n      color: theme.palette.secondary.contrastText\n    },\n\n    /* Styles applied to the root element if `onClick` is defined or `clickable={true}`. */\n    clickable: {\n      WebkitTapHighlightColor: 'transparent',\n      // Remove grey highlight\n      cursor: 'pointer',\n      '&:hover, &:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08)\n      },\n      '&:active': {\n        boxShadow: theme.shadows[1],\n        backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.12)\n      }\n    },\n\n    /**\n     * Styles applied to the root element if\n     * `onClick` and `color=\"primary\"` is defined or `clickable={true}`.\n     */\n    clickableColorPrimary: {\n      '&:hover, &:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.primary.main, 0.08)\n      },\n      '&:active': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.primary.main, 0.12)\n      }\n    },\n\n    /**\n     * Styles applied to the root element if\n     * `onClick` and `color=\"secondary\"` is defined or `clickable={true}`.\n     */\n    clickableColorSecondary: {\n      '&:hover, &:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.secondary.main, 0.08)\n      },\n      '&:active': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.secondary.main, 0.12)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` is defined. */\n    deletable: {\n      '&:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(backgroundColor, 0.08)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` and `color=\"primary\"` is defined. */\n    deletableColorPrimary: {\n      '&:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.primary.main, 0.2)\n      }\n    },\n\n    /* Styles applied to the root element if `onDelete` and `color=\"secondary\"` is defined. */\n    deletableColorSecondary: {\n      '&:focus': {\n        backgroundColor: (0, _colorManipulator.emphasize)(theme.palette.secondary.main, 0.2)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      backgroundColor: 'transparent',\n      border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, theme.palette.action.hoverOpacity)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"primary\"`. */\n    outlinedPrimary: {\n      color: theme.palette.primary.main,\n      border: \"1px solid \".concat(theme.palette.primary.main),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, theme.palette.action.hoverOpacity)\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"` and `color=\"secondary\"`. */\n    outlinedSecondary: {\n      color: theme.palette.secondary.main,\n      border: \"1px solid \".concat(theme.palette.secondary.main),\n      '$clickable&:hover, $clickable&:focus, $deletable&:focus': {\n        backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, theme.palette.action.hoverOpacity)\n      }\n    },\n\n    /* Styles applied to the `avatar` element. */\n    avatar: {\n      marginRight: -4,\n      width: height,\n      height: height,\n      color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n      fontSize: theme.typography.pxToRem(16)\n    },\n\n    /* Styles applied to the `avatar` element if `color=\"primary\"` */\n    avatarColorPrimary: {\n      color: theme.palette.primary.contrastText,\n      backgroundColor: theme.palette.primary.dark\n    },\n\n    /* Styles applied to the `avatar` element if `color=\"secondary\"` */\n    avatarColorSecondary: {\n      color: theme.palette.secondary.contrastText,\n      backgroundColor: theme.palette.secondary.dark\n    },\n\n    /* Styles applied to the `avatar` elements children. */\n    avatarChildren: {\n      width: 19,\n      height: 19\n    },\n\n    /* Styles applied to the `icon` element. */\n    icon: {\n      color: theme.palette.type === 'light' ? theme.palette.grey[700] : theme.palette.grey[300],\n      marginLeft: 4,\n      marginRight: -8\n    },\n\n    /* Styles applied to the `icon` element if `color=\"primary\"` */\n    iconColorPrimary: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the `icon` element if `color=\"secondary\"` */\n    iconColorSecondary: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the label `span` element`. */\n    label: {\n      display: 'flex',\n      alignItems: 'center',\n      paddingLeft: 12,\n      paddingRight: 12,\n      userSelect: 'none',\n      whiteSpace: 'nowrap',\n      cursor: 'inherit'\n    },\n\n    /* Styles applied to the `deleteIcon` element. */\n    deleteIcon: {\n      // Remove grey highlight\n      WebkitTapHighlightColor: 'transparent',\n      color: deleteIconColor,\n      cursor: 'pointer',\n      height: 'auto',\n      margin: '0 4px 0 -8px',\n      '&:hover': {\n        color: (0, _colorManipulator.fade)(deleteIconColor, 0.4)\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"primary\"` and `variant=\"default\"`. */\n    deleteIconColorPrimary: {\n      color: (0, _colorManipulator.fade)(theme.palette.primary.contrastText, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.primary.contrastText\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"secondary\"` and `variant=\"default\"`. */\n    deleteIconColorSecondary: {\n      color: (0, _colorManipulator.fade)(theme.palette.primary.contrastText, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.primary.contrastText\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"primary\"` and `variant=\"outlined\"`. */\n    deleteIconOutlinedColorPrimary: {\n      color: (0, _colorManipulator.fade)(theme.palette.primary.main, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.primary.main\n      }\n    },\n\n    /* Styles applied to the deleteIcon element if `color=\"secondary\"` and `variant=\"outlined\"`. */\n    deleteIconOutlinedColorSecondary: {\n      color: (0, _colorManipulator.fade)(theme.palette.secondary.main, 0.7),\n      '&:hover, &:active': {\n        color: theme.palette.secondary.main\n      }\n    }\n  };\n};\n/**\n * Chips represent complex entities in small blocks, such as a contact.\n */\n\n\nexports.styles = styles;\n\nvar Chip =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Chip, _React$Component);\n\n  function Chip() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Chip);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Chip)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleDeleteIconClick = function (event) {\n      // Stop the event from bubbling up to the `Chip`\n      event.stopPropagation();\n      var onDelete = _this.props.onDelete;\n\n      if (onDelete) {\n        onDelete(event);\n      }\n    };\n\n    _this.handleKeyDown = function (event) {\n      var onKeyDown = _this.props.onKeyDown;\n\n      if (onKeyDown) {\n        onKeyDown(event);\n      } // Ignore events from children of `Chip`.\n\n\n      if (event.currentTarget !== event.target) {\n        return;\n      }\n\n      var key = (0, _keycode.default)(event);\n\n      if (key === 'space' || key === 'enter' || key === 'backspace' || key === 'esc') {\n        event.preventDefault();\n      }\n    };\n\n    _this.handleKeyUp = function (event) {\n      var _this$props = _this.props,\n          onClick = _this$props.onClick,\n          onDelete = _this$props.onDelete,\n          onKeyUp = _this$props.onKeyUp;\n\n      if (onKeyUp) {\n        onKeyUp(event);\n      } // Ignore events from children of `Chip`.\n\n\n      if (event.currentTarget !== event.target) {\n        return;\n      }\n\n      var key = (0, _keycode.default)(event);\n\n      if (onClick && (key === 'space' || key === 'enter')) {\n        onClick(event);\n      } else if (onDelete && key === 'backspace') {\n        onDelete(event);\n      } else if (key === 'esc' && _this.chipRef) {\n        _this.chipRef.blur();\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Chip, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames,\n          _this2 = this;\n\n      var _this$props2 = this.props,\n          avatarProp = _this$props2.avatar,\n          classes = _this$props2.classes,\n          classNameProp = _this$props2.className,\n          clickable = _this$props2.clickable,\n          color = _this$props2.color,\n          Component = _this$props2.component,\n          deleteIconProp = _this$props2.deleteIcon,\n          iconProp = _this$props2.icon,\n          label = _this$props2.label,\n          onClick = _this$props2.onClick,\n          onDelete = _this$props2.onDelete,\n          onKeyDown = _this$props2.onKeyDown,\n          onKeyUp = _this$props2.onKeyUp,\n          tabIndexProp = _this$props2.tabIndex,\n          variant = _this$props2.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"avatar\", \"classes\", \"className\", \"clickable\", \"color\", \"component\", \"deleteIcon\", \"icon\", \"label\", \"onClick\", \"onDelete\", \"onKeyDown\", \"onKeyUp\", \"tabIndex\", \"variant\"]);\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.clickable, onClick || clickable), (0, _defineProperty2.default)(_classNames, classes[\"clickableColor\".concat((0, _helpers.capitalize)(color))], (onClick || clickable) && color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.deletable, onDelete), (0, _defineProperty2.default)(_classNames, classes[\"deletableColor\".concat((0, _helpers.capitalize)(color))], onDelete && color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes.outlinedPrimary, variant === 'outlined' && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.outlinedSecondary, variant === 'outlined' && color === 'secondary'), _classNames), classNameProp);\n      var deleteIcon = null;\n\n      if (onDelete) {\n        var _customClasses;\n\n        var customClasses = (_customClasses = {}, (0, _defineProperty2.default)(_customClasses, classes[\"deleteIconColor\".concat((0, _helpers.capitalize)(color))], color !== 'default' && variant !== 'outlined'), (0, _defineProperty2.default)(_customClasses, classes[\"deleteIconOutlinedColor\".concat((0, _helpers.capitalize)(color))], color !== 'default' && variant === 'outlined'), _customClasses);\n        deleteIcon = deleteIconProp && _react.default.isValidElement(deleteIconProp) ? _react.default.cloneElement(deleteIconProp, {\n          className: (0, _classnames.default)(deleteIconProp.props.className, classes.deleteIcon, customClasses),\n          onClick: this.handleDeleteIconClick\n        }) : _react.default.createElement(_Cancel.default, {\n          className: (0, _classnames.default)(classes.deleteIcon, customClasses),\n          onClick: this.handleDeleteIconClick\n        });\n      }\n\n      var avatar = null;\n\n      if (avatarProp && _react.default.isValidElement(avatarProp)) {\n        avatar = _react.default.cloneElement(avatarProp, {\n          className: (0, _classnames.default)(classes.avatar, avatarProp.props.className, (0, _defineProperty2.default)({}, classes[\"avatarColor\".concat((0, _helpers.capitalize)(color))], color !== 'default')),\n          childrenClassName: (0, _classnames.default)(classes.avatarChildren, avatarProp.props.childrenClassName)\n        });\n      }\n\n      var icon = null;\n\n      if (iconProp && _react.default.isValidElement(iconProp)) {\n        icon = _react.default.cloneElement(iconProp, {\n          className: (0, _classnames.default)(classes.icon, iconProp.props.className, (0, _defineProperty2.default)({}, classes[\"iconColor\".concat((0, _helpers.capitalize)(color))], color !== 'default'))\n        });\n      }\n\n      var tabIndex = tabIndexProp;\n\n      if (!tabIndex) {\n        tabIndex = onClick || onDelete || clickable ? 0 : -1;\n      }\n\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!avatar || !icon, 'Material-UI: the Chip component can not handle the avatar ' + 'and the icon property at the same time. Pick one.') : void 0;\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        role: \"button\",\n        className: className,\n        tabIndex: tabIndex,\n        onClick: onClick,\n        onKeyDown: this.handleKeyDown,\n        onKeyUp: this.handleKeyUp,\n        ref: function ref(_ref) {\n          _this2.chipRef = _ref;\n        }\n      }, other), avatar || icon, _react.default.createElement(\"span\", {\n        className: classes.label\n      }, label), deleteIcon);\n    }\n  }]);\n  return Chip;\n}(_react.default.Component);\n\nChip.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Avatar element.\n   */\n  avatar: _propTypes.default.element,\n\n  /**\n   * This property isn't supported.\n   * Use the `component` property if you need to change the children structure.\n   */\n  children: _unsupportedProp.default,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If true, the chip will appear clickable, and will raise when pressed,\n   * even if the onClick property is not defined. This can be used, for example,\n   * along with the component property to indicate an anchor Chip is clickable.\n   */\n  clickable: _propTypes.default.bool,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'primary', 'secondary']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Override the default delete icon element. Shown only if `onDelete` is set.\n   */\n  deleteIcon: _propTypes.default.element,\n\n  /**\n   * Icon element.\n   */\n  icon: _propTypes.default.element,\n\n  /**\n   * The content of the label.\n   */\n  label: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * Callback function fired when the delete icon is clicked.\n   * If set, the delete icon will be shown.\n   */\n  onDelete: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['default', 'outlined'])\n} : {};\nChip.defaultProps = {\n  clickable: false,\n  component: 'div',\n  color: 'default',\n  variant: 'default'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiChip'\n})(Chip);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Chip.default;\n  }\n});\n\nvar _Chip = _interopRequireDefault(require(\"./Chip\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar SIZE = 44;\n\nfunction getRelativeValue(value, min, max) {\n  var clampedValue = Math.min(Math.max(min, value), max);\n  return (clampedValue - min) / (max - min);\n}\n\nfunction easeOut(t) {\n  t = getRelativeValue(t, 0, 1); // https://gist.github.com/gre/1650294\n\n  t = (t -= 1) * t * t + 1;\n  return t;\n}\n\nfunction easeIn(t) {\n  return t * t;\n}\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-block',\n      lineHeight: 1 // Keep the progress centered\n\n    },\n\n    /* Styles applied to the root element if `variant=\"static\"`. */\n    static: {\n      transition: theme.transitions.create('transform')\n    },\n\n    /* Styles applied to the root element if `variant=\"indeterminate\"`. */\n    indeterminate: {\n      animation: 'mui-progress-circular-rotate 1.4s linear infinite'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the `svg` element. */\n    svg: {},\n\n    /* Styles applied to the `circle` svg path. */\n    circle: {\n      stroke: 'currentColor' // Use butt to follow the specification, by chance, it's already the default CSS value.\n      // strokeLinecap: 'butt',\n\n    },\n\n    /* Styles applied to the `circle` svg path if `variant=\"static\"`. */\n    circleStatic: {\n      transition: theme.transitions.create('stroke-dashoffset')\n    },\n\n    /* Styles applied to the `circle` svg path if `variant=\"indeterminate\"`. */\n    circleIndeterminate: {\n      animation: 'mui-progress-circular-dash 1.4s ease-in-out infinite',\n      // Some default value that looks fine waiting for the animation to kicks in.\n      strokeDasharray: '80px, 200px',\n      strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug.\n\n    },\n    '@keyframes mui-progress-circular-rotate': {\n      '100%': {\n        transform: 'rotate(360deg)'\n      }\n    },\n    '@keyframes mui-progress-circular-dash': {\n      '0%': {\n        strokeDasharray: '1px, 200px',\n        strokeDashoffset: '0px'\n      },\n      '50%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-15px'\n      },\n      '100%': {\n        strokeDasharray: '100px, 200px',\n        strokeDashoffset: '-120px'\n      }\n    }\n  };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\n\nexports.styles = styles;\n\nfunction CircularProgress(props) {\n  var _classNames, _classNames2;\n\n  var classes = props.classes,\n      className = props.className,\n      color = props.color,\n      size = props.size,\n      style = props.style,\n      thickness = props.thickness,\n      value = props.value,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"color\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"]);\n  var circleStyle = {};\n  var rootStyle = {};\n  var rootProps = {};\n\n  if (variant === 'determinate' || variant === 'static') {\n    var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n    circleStyle.strokeDasharray = circumference.toFixed(3);\n    rootProps['aria-valuenow'] = Math.round(value);\n\n    if (variant === 'static') {\n      circleStyle.strokeDashoffset = \"\".concat(((100 - value) / 100 * circumference).toFixed(3), \"px\");\n      rootStyle.transform = 'rotate(-90deg)';\n    } else {\n      circleStyle.strokeDashoffset = \"\".concat((easeIn((100 - value) / 100) * circumference).toFixed(3), \"px\");\n      rootStyle.transform = \"rotate(\".concat((easeOut(value / 70) * 270).toFixed(3), \"deg)\");\n    }\n  }\n\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'inherit'), (0, _defineProperty2.default)(_classNames, classes.indeterminate, variant === 'indeterminate'), (0, _defineProperty2.default)(_classNames, classes.static, variant === 'static'), _classNames), className),\n    style: (0, _extends2.default)({\n      width: size,\n      height: size\n    }, rootStyle, style),\n    role: \"progressbar\"\n  }, rootProps, other), _react.default.createElement(\"svg\", {\n    className: classes.svg,\n    viewBox: \"\".concat(SIZE / 2, \" \").concat(SIZE / 2, \" \").concat(SIZE, \" \").concat(SIZE)\n  }, _react.default.createElement(\"circle\", {\n    className: (0, _classnames.default)(classes.circle, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.circleIndeterminate, variant === 'indeterminate'), (0, _defineProperty2.default)(_classNames2, classes.circleStatic, variant === 'static'), _classNames2)),\n    style: circleStyle,\n    cx: SIZE,\n    cy: SIZE,\n    r: (SIZE - thickness) / 2,\n    fill: \"none\",\n    strokeWidth: thickness\n  })));\n}\n\nCircularProgress.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary', 'inherit']),\n\n  /**\n   * The size of the circle.\n   */\n  size: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * The thickness of the circle.\n   */\n  thickness: _propTypes.default.number,\n\n  /**\n   * The value of the progress indicator for the determinate and static variants.\n   * Value between 0 and 100.\n   */\n  value: _propTypes.default.number,\n\n  /**\n   * The variant to use.\n   * Use indeterminate when there is no progress value.\n   */\n  variant: _propTypes.default.oneOf(['determinate', 'indeterminate', 'static'])\n} : {};\nCircularProgress.defaultProps = {\n  color: 'primary',\n  size: 40,\n  thickness: 3.6,\n  value: 0,\n  variant: 'indeterminate'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiCircularProgress',\n  flip: false\n})(CircularProgress);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CircularProgress.default;\n  }\n});\n\nvar _CircularProgress = _interopRequireDefault(require(\"./CircularProgress\"));","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","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    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return _typeof2(obj);\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _extends() {\n  module.exports = _extends = 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\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck'));\nvar _createClass = _interopDefault(require('@babel/runtime/helpers/createClass'));\nvar _possibleConstructorReturn = _interopDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));\nvar _getPrototypeOf = _interopDefault(require('@babel/runtime/helpers/getPrototypeOf'));\nvar _inherits = _interopDefault(require('@babel/runtime/helpers/inherits'));\nvar _typeof = _interopDefault(require('@babel/runtime/helpers/typeof'));\nvar _objectWithoutProperties = _interopDefault(require('@babel/runtime/helpers/objectWithoutProperties'));\nvar _extends = _interopDefault(require('@babel/runtime/helpers/extends'));\nvar React = _interopDefault(require('react'));\nvar PropTypes = _interopDefault(require('prop-types'));\nvar warning = _interopDefault(require('warning'));\n\nfunction defineProperty(object, property, attr) {\n  return Object.defineProperty(object, property, attr);\n} // Passive options\n// Inspired by https://github.com/Modernizr/Modernizr/blob/master/feature-detects/dom/passiveeventlisteners.js\n\n\nvar passiveOption = function () {\n  var cache = null;\n  return function () {\n    if (cache !== null) {\n      return cache;\n    }\n\n    var supportsPassiveOption = false;\n\n    try {\n      window.addEventListener('test', null, defineProperty({}, 'passive', {\n        get: function get() {\n          supportsPassiveOption = true;\n        }\n      }));\n    } catch (err) {//\n    }\n\n    cache = supportsPassiveOption;\n    return supportsPassiveOption;\n  }();\n}();\n\nvar defaultEventOptions = {\n  capture: false,\n  passive: false\n};\n\nfunction mergeDefaultEventOptions(options) {\n  return _extends({}, defaultEventOptions, options);\n}\n\nfunction getEventListenerArgs(eventName, callback, options) {\n  var args = [eventName, callback];\n  args.push(passiveOption ? options : options.capture);\n  return args;\n}\n\nfunction on(target, eventName, callback, options) {\n  // eslint-disable-next-line prefer-spread\n  target.addEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction off(target, eventName, callback, options) {\n  // eslint-disable-next-line prefer-spread\n  target.removeEventListener.apply(target, getEventListenerArgs(eventName, callback, options));\n}\n\nfunction forEachListener(props, iteratee) {\n  var children = props.children,\n      target = props.target,\n      eventProps = _objectWithoutProperties(props, [\"children\", \"target\"]);\n\n  Object.keys(eventProps).forEach(function (name) {\n    if (name.substring(0, 2) !== 'on') {\n      return;\n    }\n\n    var prop = eventProps[name];\n\n    var type = _typeof(prop);\n\n    var isObject = type === 'object';\n    var isFunction = type === 'function';\n\n    if (!isObject && !isFunction) {\n      return;\n    }\n\n    var capture = name.substr(-7).toLowerCase() === 'capture';\n    var eventName = name.substring(2).toLowerCase();\n    eventName = capture ? eventName.substring(0, eventName.length - 7) : eventName;\n\n    if (isObject) {\n      iteratee(eventName, prop.handler, prop.options);\n    } else {\n      iteratee(eventName, prop, mergeDefaultEventOptions({\n        capture: capture\n      }));\n    }\n  });\n}\n\nfunction withOptions(handler, options) {\n  process.env.NODE_ENV !== \"production\" ? warning(options, 'react-event-listener: should be specified options in withOptions.') : void 0;\n  return {\n    handler: handler,\n    options: mergeDefaultEventOptions(options)\n  };\n}\n\nvar EventListener =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(EventListener, _React$PureComponent);\n\n  function EventListener() {\n    _classCallCheck(this, EventListener);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(EventListener).apply(this, arguments));\n  }\n\n  _createClass(EventListener, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.applyListeners(on);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      this.applyListeners(off, prevProps);\n      this.applyListeners(on);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.applyListeners(off);\n    }\n  }, {\n    key: \"applyListeners\",\n    value: function applyListeners(onOrOff) {\n      var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props;\n      var target = props.target;\n\n      if (target) {\n        var element = target;\n\n        if (typeof target === 'string') {\n          element = window[target];\n        }\n\n        forEachListener(props, onOrOff.bind(null, element));\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children || null;\n    }\n  }]);\n\n  return EventListener;\n}(React.PureComponent);\n\nEventListener.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * You can provide a single child too.\n   */\n  children: PropTypes.node,\n\n  /**\n   * The DOM target to listen to.\n   */\n  target: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired\n} : {};\n\nexports.withOptions = withOptions;\nexports.default = EventListener;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\n// @inheritedComponent EventListener\n\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n */\nvar ClickAwayListener =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ClickAwayListener, _React$Component);\n\n  function ClickAwayListener() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, ClickAwayListener);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ClickAwayListener)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.mounted = false;\n\n    _this.handleClickAway = function (event) {\n      // Ignore events that have been `event.preventDefault()` marked.\n      if (event.defaultPrevented) {\n        return;\n      } // IE11 support, which trigger the handleClickAway even after the unbind\n\n\n      if (!_this.mounted) {\n        return;\n      } // The child might render null.\n\n\n      if (!_this.node) {\n        return;\n      }\n\n      var doc = (0, _ownerDocument.default)(_this.node);\n\n      if (doc.documentElement && doc.documentElement.contains(event.target) && !_this.node.contains(event.target)) {\n        _this.props.onClickAway(event);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(ClickAwayListener, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // Finds the first child when a component returns a fragment.\n      // https://github.com/facebook/react/blob/036ae3c6e2f056adffc31dfb78d1b6f0c63272f0/packages/react-dom/src/__tests__/ReactDOMFiber-test.js#L105\n      this.node = _reactDom.default.findDOMNode(this);\n      this.mounted = true;\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.mounted = false;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          mouseEvent = _this$props.mouseEvent,\n          touchEvent = _this$props.touchEvent,\n          onClickAway = _this$props.onClickAway,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"mouseEvent\", \"touchEvent\", \"onClickAway\"]);\n      var listenerProps = {};\n\n      if (mouseEvent !== false) {\n        listenerProps[mouseEvent] = this.handleClickAway;\n      }\n\n      if (touchEvent !== false) {\n        listenerProps[touchEvent] = this.handleClickAway;\n      }\n\n      return _react.default.createElement(_react.default.Fragment, null, children, _react.default.createElement(_reactEventListener.default, (0, _extends2.default)({\n        target: \"document\"\n      }, listenerProps, other)));\n    }\n  }]);\n  return ClickAwayListener;\n}(_react.default.Component);\n\nClickAwayListener.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The wrapped element.\n   */\n  children: _propTypes.default.element.isRequired,\n\n  /**\n   * The mouse event to listen to. You can disable the listener by providing `false`.\n   */\n  mouseEvent: _propTypes.default.oneOf(['onClick', 'onMouseDown', 'onMouseUp', false]),\n\n  /**\n   * Callback fired when a \"click away\" event is detected.\n   */\n  onClickAway: _propTypes.default.func.isRequired,\n\n  /**\n   * The touch event to listen to. You can disable the listener by providing `false`.\n   */\n  touchEvent: _propTypes.default.oneOf(['onTouchStart', 'onTouchEnd', false])\n} : {};\nClickAwayListener.defaultProps = {\n  mouseEvent: 'onMouseUp',\n  touchEvent: 'onTouchEnd'\n};\nvar _default = ClickAwayListener;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ClickAwayListener.default;\n  }\n});\n\nvar _ClickAwayListener = _interopRequireDefault(require(\"./ClickAwayListener\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _utils = require(\"../transitions/utils\");\n\n// @inheritedComponent Transition\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the container element. */\n    container: {\n      height: 0,\n      overflow: 'hidden',\n      transition: theme.transitions.create('height')\n    },\n\n    /* Styles applied to the container element when the transition has entered. */\n    entered: {\n      height: 'auto'\n    },\n\n    /* Styles applied to the outer wrapper element. */\n    wrapper: {\n      // Hack to get children with a negative margin to not falsify the height computation.\n      display: 'flex'\n    },\n\n    /* Styles applied to the inner wrapper element. */\n    wrapperInner: {\n      width: '100%'\n    }\n  };\n};\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/demos/steppers#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\n\nexports.styles = styles;\n\nvar Collapse =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Collapse, _React$Component);\n\n  function Collapse() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Collapse);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Collapse)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleEnter = function (node) {\n      node.style.height = _this.props.collapsedHeight;\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.handleEntering = function (node) {\n      var _this$props = _this.props,\n          timeout = _this$props.timeout,\n          theme = _this$props.theme;\n      var wrapperHeight = _this.wrapperRef ? _this.wrapperRef.clientHeight : 0;\n\n      var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'enter'\n      }),\n          transitionDuration = _getTransitionProps.duration;\n\n      if (timeout === 'auto') {\n        var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n        node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n        _this.autoTransitionDuration = duration2;\n      } else {\n        node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n      }\n\n      node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n      if (_this.props.onEntering) {\n        _this.props.onEntering(node);\n      }\n    };\n\n    _this.handleEntered = function (node) {\n      node.style.height = 'auto';\n\n      if (_this.props.onEntered) {\n        _this.props.onEntered(node);\n      }\n    };\n\n    _this.handleExit = function (node) {\n      var wrapperHeight = _this.wrapperRef ? _this.wrapperRef.clientHeight : 0;\n      node.style.height = \"\".concat(wrapperHeight, \"px\");\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    _this.handleExiting = function (node) {\n      var _this$props2 = _this.props,\n          timeout = _this$props2.timeout,\n          theme = _this$props2.theme;\n      var wrapperHeight = _this.wrapperRef ? _this.wrapperRef.clientHeight : 0;\n\n      var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'exit'\n      }),\n          transitionDuration = _getTransitionProps2.duration;\n\n      if (timeout === 'auto') {\n        var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);\n        node.style.transitionDuration = \"\".concat(duration2, \"ms\");\n        _this.autoTransitionDuration = duration2;\n      } else {\n        node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : \"\".concat(transitionDuration, \"ms\");\n      }\n\n      node.style.height = _this.props.collapsedHeight;\n\n      if (_this.props.onExiting) {\n        _this.props.onExiting(node);\n      }\n    };\n\n    _this.addEndListener = function (_, next) {\n      if (_this.props.timeout === 'auto') {\n        _this.timer = setTimeout(next, _this.autoTransitionDuration || 0);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Collapse, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.timer);\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          classes = _this$props3.classes,\n          className = _this$props3.className,\n          collapsedHeight = _this$props3.collapsedHeight,\n          Component = _this$props3.component,\n          onEnter = _this$props3.onEnter,\n          onEntered = _this$props3.onEntered,\n          onEntering = _this$props3.onEntering,\n          onExit = _this$props3.onExit,\n          onExiting = _this$props3.onExiting,\n          style = _this$props3.style,\n          theme = _this$props3.theme,\n          timeout = _this$props3.timeout,\n          other = (0, _objectWithoutProperties2.default)(_this$props3, [\"children\", \"classes\", \"className\", \"collapsedHeight\", \"component\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExiting\", \"style\", \"theme\", \"timeout\"]);\n      return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        onEnter: this.handleEnter,\n        onEntered: this.handleEntered,\n        onEntering: this.handleEntering,\n        onExit: this.handleExit,\n        onExiting: this.handleExiting,\n        addEndListener: this.addEndListener,\n        timeout: timeout === 'auto' ? null : timeout\n      }, other), function (state, childProps) {\n        return _react.default.createElement(Component, (0, _extends2.default)({\n          className: (0, _classnames.default)(classes.container, (0, _defineProperty2.default)({}, classes.entered, state === 'entered'), className),\n          style: (0, _extends2.default)({}, style, {\n            minHeight: collapsedHeight\n          })\n        }, childProps), _react.default.createElement(\"div\", {\n          className: classes.wrapper,\n          ref: function ref(_ref) {\n            _this2.wrapperRef = _ref;\n          }\n        }, _react.default.createElement(\"div\", {\n          className: classes.wrapperInner\n        }, children)));\n      });\n    }\n  }]);\n  return Collapse;\n}(_react.default.Component);\n\nCollapse.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content node to be collapsed.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The height of the container when collapsed.\n   */\n  collapsedHeight: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onEntered: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExiting: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  timeout: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  }), _propTypes.default.oneOf(['auto'])])\n} : {};\nCollapse.defaultProps = {\n  collapsedHeight: '0px',\n  component: 'div',\n  timeout: _transitions.duration.standard\n};\nCollapse.muiSupportAuto = true;\n\nvar _default = (0, _withStyles.default)(styles, {\n  withTheme: true,\n  name: 'MuiCollapse'\n})(Collapse);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Collapse.default;\n  }\n});\n\nvar _Collapse = _interopRequireDefault(require(\"./Collapse\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styles = require(\"../styles\");\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\n/* eslint-disable react/no-unused-prop-types */\nvar styles = function styles(theme) {\n  return {\n    '@global': {\n      html: {\n        WebkitFontSmoothing: 'antialiased',\n        // Antialiasing.\n        MozOsxFontSmoothing: 'grayscale',\n        // Antialiasing.\n        // Change from `box-sizing: content-box` so that `width`\n        // is not affected by `padding` or `border`.\n        boxSizing: 'border-box'\n      },\n      '*, *::before, *::after': {\n        boxSizing: 'inherit'\n      },\n      body: {\n        margin: 0,\n        // Remove the margin in all browsers.\n        backgroundColor: theme.palette.background.default,\n        '@media print': {\n          // Save printer ink.\n          backgroundColor: theme.palette.common.white\n        }\n      }\n    }\n  };\n};\n/**\n * Kickstart an elegant, consistent, and simple baseline to build upon.\n */\n\n\nvar CssBaseline =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(CssBaseline, _React$Component);\n\n  function CssBaseline() {\n    (0, _classCallCheck2.default)(this, CssBaseline);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(CssBaseline).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(CssBaseline, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return CssBaseline;\n}(_react.default.Component);\n\nCssBaseline.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * You can wrap a node.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  classes: _propTypes.default.object.isRequired\n} : {};\nCssBaseline.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(CssBaseline.propTypes) : {};\nCssBaseline.defaultProps = {\n  children: null\n};\n\nvar _default = (0, _styles.withStyles)(styles, {\n  name: 'MuiCssBaseline'\n})(CssBaseline);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _CssBaseline.default;\n  }\n});\n\nvar _CssBaseline = _interopRequireDefault(require(\"./CssBaseline\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\n/**\n * Helper component to allow attaching a ref to a\n * wrapped element to access the underlying DOM element.\n *\n * It's highly inspired by https://github.com/facebook/react/issues/11401#issuecomment-340543801.\n * For example:\n * ```jsx\n * import React from 'react';\n * import RootRef from '@material-ui/core/RootRef';\n *\n * class MyComponent extends React.Component {\n *   constructor() {\n *     super();\n *     this.domRef = React.createRef();\n *   }\n *\n *   componentDidMount() {\n *     console.log(this.domRef.current); // DOM node\n *   }\n *\n *   render() {\n *     return (\n *       <RootRef rootRef={this.domRef}>\n *         <SomeChildComponent />\n *       </RootRef>\n *     );\n *   }\n * }\n * ```\n */\nvar RootRef =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(RootRef, _React$Component);\n\n  function RootRef() {\n    (0, _classCallCheck2.default)(this, RootRef);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(RootRef).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(RootRef, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.ref = _reactDom.default.findDOMNode(this);\n      (0, _reactHelpers.setRef)(this.props.rootRef, this.ref);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var ref = _reactDom.default.findDOMNode(this);\n\n      if (prevProps.rootRef !== this.props.rootRef || this.ref !== ref) {\n        if (prevProps.rootRef !== this.props.rootRef) {\n          (0, _reactHelpers.setRef)(prevProps.rootRef, null);\n        }\n\n        this.ref = ref;\n        (0, _reactHelpers.setRef)(this.props.rootRef, this.ref);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.ref = null;\n      (0, _reactHelpers.setRef)(this.props.rootRef, null);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return RootRef;\n}(_react.default.Component);\n\nRootRef.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The wrapped element.\n   */\n  children: _propTypes.default.element.isRequired,\n\n  /**\n   * Provide a way to access the DOM node of the wrapped element.\n   * You can provide a callback ref or a `React.createRef()` ref.\n   */\n  rootRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]).isRequired\n} : {};\nRootRef.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(RootRef.propTypes) : {};\nvar _default = RootRef;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _RootRef.default;\n  }\n});\n\nvar _RootRef = _interopRequireDefault(require(\"./RootRef\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\nfunction getContainer(container, defaultContainer) {\n  container = typeof container === 'function' ? container() : container;\n  return _reactDom.default.findDOMNode(container) || defaultContainer;\n}\n\nfunction getOwnerDocument(element) {\n  return (0, _ownerDocument.default)(_reactDom.default.findDOMNode(element));\n}\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\n\nvar Portal =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Portal, _React$Component);\n\n  function Portal() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Portal);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Portal)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.getMountNode = function () {\n      return _this.mountNode;\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Portal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.setMountNode(this.props.container); // Only rerender if needed\n\n      if (!this.props.disablePortal) {\n        this.forceUpdate(this.props.onRendered);\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.container !== this.props.container || prevProps.disablePortal !== this.props.disablePortal) {\n        this.setMountNode(this.props.container); // Only rerender if needed\n\n        if (!this.props.disablePortal) {\n          this.forceUpdate(this.props.onRendered);\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.mountNode = null;\n    }\n  }, {\n    key: \"setMountNode\",\n    value: function setMountNode(container) {\n      if (this.props.disablePortal) {\n        this.mountNode = _reactDom.default.findDOMNode(this).parentElement;\n        return;\n      }\n\n      this.mountNode = getContainer(container, getOwnerDocument(this).body);\n    }\n    /**\n     * @public\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          disablePortal = _this$props.disablePortal;\n\n      if (disablePortal) {\n        return children;\n      }\n\n      return this.mountNode ? _reactDom.default.createPortal(children, this.mountNode) : null;\n    }\n  }]);\n  return Portal;\n}(_react.default.Component);\n\nPortal.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The children to render into the `container`.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * A node, component instance, or function that returns either.\n   * The `container` will have the portal children appended to it.\n   * By default, it uses the body of the top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: _propTypes.default.bool,\n\n  /**\n   * Callback fired once the children has been mounted into the `container`.\n   */\n  onRendered: _propTypes.default.func\n} : {};\nPortal.defaultProps = {\n  disablePortal: false\n};\nPortal.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(Portal.propTypes) : {};\nvar _default = Portal;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Portal.default;\n  }\n});\n\nvar _Portal = _interopRequireDefault(require(\"./Portal\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = camelize;\nvar rHyphen = /-(.)/g;\n\nfunction camelize(string) {\n  return string.replace(rHyphen, function (_, chr) {\n    return chr.toUpperCase();\n  });\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = camelizeStyleName;\n\nvar _camelize = require('./camelize');\n\nvar _camelize2 = _interopRequireDefault(_camelize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar msPattern = /^-ms-/; /**\n                          * Copyright 2014-2015, Facebook, Inc.\n                          * All rights reserved.\n                          * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js\n                          */\nfunction camelizeStyleName(string) {\n  return (0, _camelize2.default)(string.replace(msPattern, 'ms-'));\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = hyphenate;\n\nvar rUpper = /([A-Z])/g;\n\nfunction hyphenate(string) {\n  return string.replace(rUpper, '-$1').toLowerCase();\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = hyphenateStyleName;\n\nvar _hyphenate = require('./hyphenate');\n\nvar _hyphenate2 = _interopRequireDefault(_hyphenate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar msPattern = /^ms-/; /**\n                         * Copyright 2013-2014, Facebook, Inc.\n                         * All rights reserved.\n                         * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n                         */\n\nfunction hyphenateStyleName(string) {\n  return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-');\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = _getComputedStyle;\n\nvar _camelizeStyle = require('../util/camelizeStyle');\n\nvar _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rposition = /^(top|right|bottom|left)$/;\nvar rnumnonpx = /^([+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|))(?!px)[a-z%]+$/i;\n\nfunction _getComputedStyle(node) {\n  if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');\n  var doc = node.ownerDocument;\n\n  return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {\n    //ie 8 \"magic\" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72\n    getPropertyValue: function getPropertyValue(prop) {\n      var style = node.style;\n\n      prop = (0, _camelizeStyle2.default)(prop);\n\n      if (prop == 'float') prop = 'styleFloat';\n\n      var current = node.currentStyle[prop] || null;\n\n      if (current == null && style && style[prop]) current = style[prop];\n\n      if (rnumnonpx.test(current) && !rposition.test(prop)) {\n        // Remember the original values\n        var left = style.left;\n        var runStyle = node.runtimeStyle;\n        var rsLeft = runStyle && runStyle.left;\n\n        // Put in the new values to get a computed value out\n        if (rsLeft) runStyle.left = node.currentStyle.left;\n\n        style.left = prop === 'fontSize' ? '1em' : current;\n        current = style.pixelLeft + 'px';\n\n        // Revert the changed values\n        style.left = left;\n        if (rsLeft) runStyle.left = rsLeft;\n      }\n\n      return current;\n    }\n  };\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = removeStyle;\nfunction removeStyle(node, key) {\n  return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined;\n\nvar _inDOM = require('../util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transform = 'transform';\nvar prefix = void 0,\n    transitionEnd = void 0,\n    animationEnd = void 0;\nvar transitionProperty = void 0,\n    transitionDuration = void 0,\n    transitionTiming = void 0,\n    transitionDelay = void 0;\nvar animationName = void 0,\n    animationDuration = void 0,\n    animationTiming = void 0,\n    animationDelay = void 0;\n\nif (_inDOM2.default) {\n  var _getTransitionPropert = getTransitionProperties();\n\n  prefix = _getTransitionPropert.prefix;\n  exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n  exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n\n\n  exports.transform = transform = prefix + '-' + transform;\n  exports.transitionProperty = transitionProperty = prefix + '-transition-property';\n  exports.transitionDuration = transitionDuration = prefix + '-transition-duration';\n  exports.transitionDelay = transitionDelay = prefix + '-transition-delay';\n  exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function';\n\n  exports.animationName = animationName = prefix + '-animation-name';\n  exports.animationDuration = animationDuration = prefix + '-animation-duration';\n  exports.animationTiming = animationTiming = prefix + '-animation-delay';\n  exports.animationDelay = animationDelay = prefix + '-animation-timing-function';\n}\n\nexports.transform = transform;\nexports.transitionProperty = transitionProperty;\nexports.transitionTiming = transitionTiming;\nexports.transitionDelay = transitionDelay;\nexports.transitionDuration = transitionDuration;\nexports.transitionEnd = transitionEnd;\nexports.animationName = animationName;\nexports.animationDuration = animationDuration;\nexports.animationTiming = animationTiming;\nexports.animationDelay = animationDelay;\nexports.animationEnd = animationEnd;\nexports.default = {\n  transform: transform,\n  end: transitionEnd,\n  property: transitionProperty,\n  timing: transitionTiming,\n  delay: transitionDelay,\n  duration: transitionDuration\n};\n\n\nfunction getTransitionProperties() {\n  var style = document.createElement('div').style;\n\n  var vendorMap = {\n    O: function O(e) {\n      return 'o' + e.toLowerCase();\n    },\n    Moz: function Moz(e) {\n      return e.toLowerCase();\n    },\n    Webkit: function Webkit(e) {\n      return 'webkit' + e;\n    },\n    ms: function ms(e) {\n      return 'MS' + e;\n    }\n  };\n\n  var vendors = Object.keys(vendorMap);\n\n  var transitionEnd = void 0,\n      animationEnd = void 0;\n  var prefix = '';\n\n  for (var i = 0; i < vendors.length; i++) {\n    var vendor = vendors[i];\n\n    if (vendor + 'TransitionProperty' in style) {\n      prefix = '-' + vendor.toLowerCase();\n      transitionEnd = vendorMap[vendor]('TransitionEnd');\n      animationEnd = vendorMap[vendor]('AnimationEnd');\n      break;\n    }\n  }\n\n  if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n\n  if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n\n  style = null;\n\n  return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isTransform;\nvar supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\n\nfunction isTransform(property) {\n  return !!(property && supportedTransforms.test(property));\n}\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = style;\n\nvar _camelizeStyle = require('../util/camelizeStyle');\n\nvar _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);\n\nvar _hyphenateStyle = require('../util/hyphenateStyle');\n\nvar _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle);\n\nvar _getComputedStyle2 = require('./getComputedStyle');\n\nvar _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2);\n\nvar _removeStyle = require('./removeStyle');\n\nvar _removeStyle2 = _interopRequireDefault(_removeStyle);\n\nvar _properties = require('../transition/properties');\n\nvar _isTransform = require('../transition/isTransform');\n\nvar _isTransform2 = _interopRequireDefault(_isTransform);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction style(node, property, value) {\n  var css = '';\n  var transforms = '';\n  var props = property;\n\n  if (typeof property === 'string') {\n    if (value === undefined) {\n      return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property));\n    } else {\n      (props = {})[property] = value;\n    }\n  }\n\n  Object.keys(props).forEach(function (key) {\n    var value = props[key];\n    if (!value && value !== 0) {\n      (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key));\n    } else if ((0, _isTransform2.default)(key)) {\n      transforms += key + '(' + value + ') ';\n    } else {\n      css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';';\n    }\n  });\n\n  if (transforms) {\n    css += _properties.transform + ': ' + transforms + ';';\n  }\n\n  node.style.cssText += ';' + css;\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (recalc) {\n  if (!size && size !== 0 || recalc) {\n    if (_inDOM2.default) {\n      var scrollDiv = document.createElement('div');\n\n      scrollDiv.style.position = 'absolute';\n      scrollDiv.style.top = '-9999px';\n      scrollDiv.style.width = '50px';\n      scrollDiv.style.height = '50px';\n      scrollDiv.style.overflow = 'scroll';\n\n      document.body.appendChild(scrollDiv);\n      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n    }\n  }\n\n  return size;\n};\n\nvar _inDOM = require('./inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar size = void 0;\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = getWindow;\nfunction getWindow(node) {\n  return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isBody = isBody;\nexports.default = isOverflowing;\n\nvar _isWindow = _interopRequireDefault(require(\"dom-helpers/query/isWindow\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _ownerWindow = _interopRequireDefault(require(\"../utils/ownerWindow\"));\n\nfunction isBody(node) {\n  return node && node.tagName.toLowerCase() === 'body';\n} // Do we have a vertical scroll bar?\n\n\nfunction isOverflowing(container) {\n  var doc = (0, _ownerDocument.default)(container);\n  var win = (0, _ownerWindow.default)(doc);\n  /* istanbul ignore next */\n\n  if (!(0, _isWindow.default)(doc) && !isBody(container)) {\n    return container.scrollHeight > container.clientHeight;\n  } // Takes in account potential non zero margin on the body.\n\n\n  var style = win.getComputedStyle(doc.body);\n  var marginLeft = parseInt(style.getPropertyValue('margin-left'), 10);\n  var marginRight = parseInt(style.getPropertyValue('margin-right'), 10);\n  return marginLeft + doc.body.clientWidth + marginRight < win.innerWidth;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ariaHidden = ariaHidden;\nexports.hideSiblings = hideSiblings;\nexports.showSiblings = showSiblings;\nvar BLACKLIST = ['template', 'script', 'style'];\n\nfunction isHidable(node) {\n  return node.nodeType === 1 && BLACKLIST.indexOf(node.tagName.toLowerCase()) === -1;\n}\n\nfunction siblings(container, mount, callback) {\n  mount = [].concat(mount); // eslint-disable-line no-param-reassign\n\n  [].forEach.call(container.children, function (node) {\n    if (mount.indexOf(node) === -1 && isHidable(node)) {\n      callback(node);\n    }\n  });\n}\n\nfunction ariaHidden(show, node) {\n  if (!node) {\n    return;\n  }\n\n  if (show) {\n    node.setAttribute('aria-hidden', 'true');\n  } else {\n    node.removeAttribute('aria-hidden');\n  }\n}\n\nfunction hideSiblings(container, mountNode) {\n  siblings(container, mountNode, function (node) {\n    return ariaHidden(true, node);\n  });\n}\n\nfunction showSiblings(container, mountNode) {\n  siblings(container, mountNode, function (node) {\n    return ariaHidden(false, node);\n  });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _style = _interopRequireDefault(require(\"dom-helpers/style\"));\n\nvar _scrollbarSize = _interopRequireDefault(require(\"dom-helpers/util/scrollbarSize\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _isOverflowing = _interopRequireDefault(require(\"./isOverflowing\"));\n\nvar _manageAriaHidden = require(\"./manageAriaHidden\");\n\nfunction findIndexOf(data, callback) {\n  var idx = -1;\n  data.some(function (item, index) {\n    if (callback(item)) {\n      idx = index;\n      return true;\n    }\n\n    return false;\n  });\n  return idx;\n}\n\nfunction getPaddingRight(node) {\n  return parseInt((0, _style.default)(node, 'paddingRight') || 0, 10);\n}\n\nfunction setContainerStyle(data, container) {\n  var style = {\n    overflow: 'hidden'\n  }; // We are only interested in the actual `style` here because we will override it.\n\n  data.style = {\n    overflow: container.style.overflow,\n    paddingRight: container.style.paddingRight\n  };\n\n  if (data.overflowing) {\n    var scrollbarSize = (0, _scrollbarSize.default)(); // Use computed style, here to get the real padding to add our scrollbar width.\n\n    style.paddingRight = \"\".concat(getPaddingRight(container) + scrollbarSize, \"px\"); // .mui-fixed is a global helper.\n\n    var fixedNodes = (0, _ownerDocument.default)(container).querySelectorAll('.mui-fixed');\n\n    for (var i = 0; i < fixedNodes.length; i += 1) {\n      var paddingRight = getPaddingRight(fixedNodes[i]);\n      data.prevPaddings.push(paddingRight);\n      fixedNodes[i].style.paddingRight = \"\".concat(paddingRight + scrollbarSize, \"px\");\n    }\n  }\n\n  Object.keys(style).forEach(function (key) {\n    container.style[key] = style[key];\n  });\n}\n\nfunction removeContainerStyle(data, container) {\n  Object.keys(data.style).forEach(function (key) {\n    container.style[key] = data.style[key];\n  });\n  var fixedNodes = (0, _ownerDocument.default)(container).querySelectorAll('.mui-fixed');\n\n  for (var i = 0; i < fixedNodes.length; i += 1) {\n    fixedNodes[i].style.paddingRight = \"\".concat(data.prevPaddings[i], \"px\");\n  }\n}\n/**\n * @ignore - do not document.\n *\n * Proper state managment for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\n\n\nvar ModalManager =\n/*#__PURE__*/\nfunction () {\n  function ModalManager() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    (0, _classCallCheck2.default)(this, ModalManager);\n    var _options$hideSiblingN = options.hideSiblingNodes,\n        hideSiblingNodes = _options$hideSiblingN === void 0 ? true : _options$hideSiblingN,\n        _options$handleContai = options.handleContainerOverflow,\n        handleContainerOverflow = _options$handleContai === void 0 ? true : _options$handleContai;\n    this.hideSiblingNodes = hideSiblingNodes;\n    this.handleContainerOverflow = handleContainerOverflow; // this.modals[modalIdx] = modal\n\n    this.modals = []; // this.containers[containerIdx] = container\n\n    this.containers = []; // this.data[containerIdx] = {\n    //   modals: [],\n    // }\n\n    this.data = [];\n  }\n\n  (0, _createClass2.default)(ModalManager, [{\n    key: \"add\",\n    value: function add(modal, container) {\n      var modalIdx = this.modals.indexOf(modal);\n\n      if (modalIdx !== -1) {\n        return modalIdx;\n      }\n\n      modalIdx = this.modals.length;\n      this.modals.push(modal);\n\n      if (this.hideSiblingNodes) {\n        (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode);\n      }\n\n      var containerIdx = this.containers.indexOf(container);\n\n      if (containerIdx !== -1) {\n        this.data[containerIdx].modals.push(modal);\n        return modalIdx;\n      }\n\n      var data = {\n        modals: [modal],\n        overflowing: (0, _isOverflowing.default)(container),\n        prevPaddings: []\n      };\n\n      if (this.handleContainerOverflow) {\n        setContainerStyle(data, container);\n      }\n\n      this.containers.push(container);\n      this.data.push(data);\n      return modalIdx;\n    }\n  }, {\n    key: \"remove\",\n    value: function remove(modal) {\n      var modalIdx = this.modals.indexOf(modal);\n\n      if (modalIdx === -1) {\n        return modalIdx;\n      }\n\n      var containerIdx = findIndexOf(this.data, function (item) {\n        return item.modals.indexOf(modal) !== -1;\n      });\n      var data = this.data[containerIdx];\n      var container = this.containers[containerIdx];\n      data.modals.splice(data.modals.indexOf(modal), 1);\n      this.modals.splice(modalIdx, 1); // If that was the last modal in a container, clean up the container.\n\n      if (data.modals.length === 0) {\n        if (this.handleContainerOverflow) {\n          removeContainerStyle(data, container);\n        }\n\n        if (this.hideSiblingNodes) {\n          (0, _manageAriaHidden.showSiblings)(container, modal.mountNode);\n        }\n\n        this.containers.splice(containerIdx, 1);\n        this.data.splice(containerIdx, 1);\n      } else if (this.hideSiblingNodes) {\n        // Otherwise make sure the next top modal is visible to a screan reader.\n        (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode);\n      }\n\n      return modalIdx;\n    }\n  }, {\n    key: \"isTopModal\",\n    value: function isTopModal(modal) {\n      return !!this.modals.length && this.modals[this.modals.length - 1] === modal;\n    }\n  }]);\n  return ModalManager;\n}();\n\nvar _default = ModalManager;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _RootRef = _interopRequireDefault(require(\"../RootRef\"));\n\nvar _Portal = _interopRequireDefault(require(\"../Portal\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ModalManager = _interopRequireDefault(require(\"./ModalManager\"));\n\nvar _Backdrop = _interopRequireDefault(require(\"../Backdrop\"));\n\nfunction getContainer(container, defaultContainer) {\n  container = typeof container === 'function' ? container() : container;\n  return _reactDom.default.findDOMNode(container) || defaultContainer;\n}\n\nfunction getHasTransition(props) {\n  return props.children ? props.children.props.hasOwnProperty('in') : false;\n}\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'fixed',\n      zIndex: theme.zIndex.modal,\n      right: 0,\n      bottom: 0,\n      top: 0,\n      left: 0\n    },\n\n    /* Styles applied to the root element if the `Modal` has exited. */\n    hidden: {\n      visibility: 'hidden'\n    }\n  };\n};\n/* istanbul ignore if */\n\n\nexports.styles = styles;\n\nif (process.env.NODE_ENV !== 'production' && !_react.default.createContext) {\n  throw new Error('Material-UI: react@16.3.0 or greater is required.');\n}\n/**\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\n\nvar Modal =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Modal, _React$Component);\n\n  function Modal(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Modal);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Modal).call(this));\n    _this.mounted = false;\n\n    _this.handleRendered = function () {\n      _this.autoFocus(); // Fix a bug on Chrome where the scroll isn't initially 0.\n\n\n      _this.modalRef.scrollTop = 0;\n\n      if (_this.props.onRendered) {\n        _this.props.onRendered();\n      }\n    };\n\n    _this.handleOpen = function () {\n      var doc = (0, _ownerDocument.default)(_this.mountNode);\n      var container = getContainer(_this.props.container, doc.body);\n\n      _this.props.manager.add((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), container);\n\n      doc.addEventListener('keydown', _this.handleDocumentKeyDown);\n      doc.addEventListener('focus', _this.enforceFocus, true);\n    };\n\n    _this.handleClose = function () {\n      _this.props.manager.remove((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n\n      var doc = (0, _ownerDocument.default)(_this.mountNode);\n      doc.removeEventListener('keydown', _this.handleDocumentKeyDown);\n      doc.removeEventListener('focus', _this.enforceFocus, true);\n\n      _this.restoreLastFocus();\n    };\n\n    _this.handleExited = function () {\n      _this.setState({\n        exited: true\n      });\n\n      _this.handleClose();\n    };\n\n    _this.handleBackdropClick = function (event) {\n      if (event.target !== event.currentTarget) {\n        return;\n      }\n\n      if (_this.props.onBackdropClick) {\n        _this.props.onBackdropClick(event);\n      }\n\n      if (!_this.props.disableBackdropClick && _this.props.onClose) {\n        _this.props.onClose(event, 'backdropClick');\n      }\n    };\n\n    _this.handleDocumentKeyDown = function (event) {\n      if (!_this.isTopModal() || (0, _keycode.default)(event) !== 'esc') {\n        return;\n      } // Ignore events that have been `event.preventDefault()` marked.\n\n\n      if (event.defaultPrevented) {\n        return;\n      }\n\n      if (_this.props.onEscapeKeyDown) {\n        _this.props.onEscapeKeyDown(event);\n      }\n\n      if (!_this.props.disableEscapeKeyDown && _this.props.onClose) {\n        _this.props.onClose(event, 'escapeKeyDown');\n      }\n    };\n\n    _this.checkForFocus = function () {\n      _this.lastFocus = (0, _ownerDocument.default)(_this.mountNode).activeElement;\n    };\n\n    _this.enforceFocus = function () {\n      if (_this.props.disableEnforceFocus || !_this.mounted || !_this.isTopModal()) {\n        return;\n      }\n\n      var currentActiveElement = (0, _ownerDocument.default)(_this.mountNode).activeElement;\n\n      if (_this.dialogRef && !_this.dialogRef.contains(currentActiveElement)) {\n        _this.dialogRef.focus();\n      }\n    };\n\n    _this.state = {\n      exited: !props.open\n    };\n    return _this;\n  }\n\n  (0, _createClass2.default)(Modal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.mounted = true;\n\n      if (this.props.open) {\n        this.handleOpen();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (!prevProps.open && this.props.open) {\n        this.checkForFocus();\n      }\n\n      if (prevProps.open && !this.props.open && !getHasTransition(this.props)) {\n        // Otherwise handleExited will call this.\n        this.handleClose();\n      } else if (!prevProps.open && this.props.open) {\n        this.handleOpen();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.mounted = false;\n\n      if (this.props.open || getHasTransition(this.props) && !this.state.exited) {\n        this.handleClose();\n      }\n    }\n  }, {\n    key: \"autoFocus\",\n    value: function autoFocus() {\n      if (this.props.disableAutoFocus) {\n        return;\n      }\n\n      var currentActiveElement = (0, _ownerDocument.default)(this.mountNode).activeElement;\n\n      if (this.dialogRef && !this.dialogRef.contains(currentActiveElement)) {\n        this.lastFocus = currentActiveElement;\n\n        if (!this.dialogRef.hasAttribute('tabIndex')) {\n          process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(false, ['Material-UI: the modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n')) : void 0;\n          this.dialogRef.setAttribute('tabIndex', -1);\n        }\n\n        this.dialogRef.focus();\n      }\n    }\n  }, {\n    key: \"restoreLastFocus\",\n    value: function restoreLastFocus() {\n      if (this.props.disableRestoreFocus) {\n        return;\n      }\n\n      if (this.lastFocus) {\n        // Not all elements in IE11 have a focus method.\n        // Because IE11 market share is low, we accept the restore focus being broken\n        // and we silent the issue.\n        if (this.lastFocus.focus) {\n          this.lastFocus.focus();\n        }\n\n        this.lastFocus = null;\n      }\n    }\n  }, {\n    key: \"isTopModal\",\n    value: function isTopModal() {\n      return this.props.manager.isTopModal(this);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          BackdropComponent = _this$props.BackdropComponent,\n          BackdropProps = _this$props.BackdropProps,\n          children = _this$props.children,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          container = _this$props.container,\n          disableAutoFocus = _this$props.disableAutoFocus,\n          disableBackdropClick = _this$props.disableBackdropClick,\n          disableEnforceFocus = _this$props.disableEnforceFocus,\n          disableEscapeKeyDown = _this$props.disableEscapeKeyDown,\n          disablePortal = _this$props.disablePortal,\n          disableRestoreFocus = _this$props.disableRestoreFocus,\n          hideBackdrop = _this$props.hideBackdrop,\n          keepMounted = _this$props.keepMounted,\n          manager = _this$props.manager,\n          onBackdropClick = _this$props.onBackdropClick,\n          onClose = _this$props.onClose,\n          onEscapeKeyDown = _this$props.onEscapeKeyDown,\n          onRendered = _this$props.onRendered,\n          open = _this$props.open,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"BackdropComponent\", \"BackdropProps\", \"children\", \"classes\", \"className\", \"container\", \"disableAutoFocus\", \"disableBackdropClick\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"hideBackdrop\", \"keepMounted\", \"manager\", \"onBackdropClick\", \"onClose\", \"onEscapeKeyDown\", \"onRendered\", \"open\"]);\n      var exited = this.state.exited;\n      var hasTransition = getHasTransition(this.props);\n      var childProps = {};\n\n      if (!keepMounted && !open && (!hasTransition || exited)) {\n        return null;\n      } // It's a Transition like component\n\n\n      if (hasTransition) {\n        childProps.onExited = (0, _helpers.createChainedFunction)(this.handleExited, children.props.onExited);\n      }\n\n      if (children.props.role === undefined) {\n        childProps.role = children.props.role || 'document';\n      }\n\n      if (children.props.tabIndex === undefined) {\n        childProps.tabIndex = children.props.tabIndex || '-1';\n      }\n\n      return _react.default.createElement(_Portal.default, {\n        ref: function ref(_ref2) {\n          _this2.mountNode = _ref2 ? _ref2.getMountNode() : _ref2;\n        },\n        container: container,\n        disablePortal: disablePortal,\n        onRendered: this.handleRendered\n      }, _react.default.createElement(\"div\", (0, _extends2.default)({\n        ref: function ref(_ref) {\n          _this2.modalRef = _ref;\n        },\n        className: (0, _classnames.default)(classes.root, className, (0, _defineProperty2.default)({}, classes.hidden, exited))\n      }, other), hideBackdrop ? null : _react.default.createElement(BackdropComponent, (0, _extends2.default)({\n        open: open,\n        onClick: this.handleBackdropClick\n      }, BackdropProps)), _react.default.createElement(_RootRef.default, {\n        rootRef: function rootRef(ref) {\n          _this2.dialogRef = ref;\n        }\n      }, _react.default.cloneElement(children, childProps))));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps) {\n      if (nextProps.open) {\n        return {\n          exited: false\n        };\n      }\n\n      if (!getHasTransition(nextProps)) {\n        // Otherwise let handleExited take care of marking exited.\n        return {\n          exited: true\n        };\n      }\n\n      return null;\n    }\n  }]);\n  return Modal;\n}(_react.default.Component);\n\nModal.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A backdrop component. This property enables custom backdrop rendering.\n   */\n  BackdropComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the [`Backdrop`](/api/backdrop) element.\n   */\n  BackdropProps: _propTypes.default.object,\n\n  /**\n   * A single child content element.\n   */\n  children: _propTypes.default.element,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * A node, component instance, or function that returns either.\n   * The `container` will have the portal children appended to it.\n   */\n  container: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * If `true`, the modal will not automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes.\n   * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n   *\n   * Generally this should never be set to `true` as it makes the modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableAutoFocus: _propTypes.default.bool,\n\n  /**\n   * If `true`, clicking the backdrop will not fire any callback.\n   */\n  disableBackdropClick: _propTypes.default.bool,\n\n  /**\n   * If `true`, the modal will not prevent focus from leaving the modal while open.\n   *\n   * Generally this should never be set to `true` as it makes the modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  disableEnforceFocus: _propTypes.default.bool,\n\n  /**\n   * If `true`, hitting escape will not fire any callback.\n   */\n  disableEscapeKeyDown: _propTypes.default.bool,\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: _propTypes.default.bool,\n\n  /**\n   * If `true`, the modal will not restore focus to previously focused element once\n   * modal is hidden.\n   */\n  disableRestoreFocus: _propTypes.default.bool,\n\n  /**\n   * If `true`, the backdrop is not rendered.\n   */\n  hideBackdrop: _propTypes.default.bool,\n\n  /**\n   * Always keep the children in the DOM.\n   * This property can be useful in SEO situation or\n   * when you want to maximize the responsiveness of the Modal.\n   */\n  keepMounted: _propTypes.default.bool,\n\n  /**\n   * A modal manager used to track and manage the state of open\n   * Modals. This enables customizing how modals interact within a container.\n   */\n  manager: _propTypes.default.object,\n\n  /**\n   * Callback fired when the backdrop is clicked.\n   */\n  onBackdropClick: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * The `reason` parameter can optionally be used to control the response to `onClose`.\n   *\n   * @param {object} event The event source of the callback\n   * @param {string} reason Can be:`\"escapeKeyDown\"`, `\"backdropClick\"`\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired when the escape key is pressed,\n   * `disableEscapeKeyDown` is false and the modal is in focus.\n   */\n  onEscapeKeyDown: _propTypes.default.func,\n\n  /**\n   * Callback fired once the children has been mounted into the `container`.\n   * It signals that the `open={true}` property took effect.\n   */\n  onRendered: _propTypes.default.func,\n\n  /**\n   * If `true`, the modal is open.\n   */\n  open: _propTypes.default.bool.isRequired\n} : {};\nModal.defaultProps = {\n  disableAutoFocus: false,\n  disableBackdropClick: false,\n  disableEnforceFocus: false,\n  disableEscapeKeyDown: false,\n  disablePortal: false,\n  disableRestoreFocus: false,\n  hideBackdrop: false,\n  keepMounted: false,\n  // Modals don't open on the server so this won't conflict with concurrent requests.\n  manager: new _ModalManager.default(),\n  BackdropComponent: _Backdrop.default\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  flip: false,\n  name: 'MuiModal'\n})(Modal);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Modal.default;\n  }\n});\nObject.defineProperty(exports, \"ModalManager\", {\n  enumerable: true,\n  get: function get() {\n    return _ModalManager.default;\n  }\n});\n\nvar _Modal = _interopRequireDefault(require(\"./Modal\"));\n\nvar _ModalManager = _interopRequireDefault(require(\"./ModalManager\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _Modal = _interopRequireDefault(require(\"../Modal\"));\n\nvar _Fade = _interopRequireDefault(require(\"../Fade\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\n// @inheritedComponent Modal\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {},\n\n    /* Styles applied to the root element if `scroll=\"paper\"`. */\n    scrollPaper: {\n      display: 'flex',\n      justifyContent: 'center',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `scroll=\"bodyr\"`. */\n    scrollBody: {\n      overflowY: 'auto',\n      overflowX: 'hidden'\n    },\n\n    /* Styles applied to the `Paper` component. */\n    paper: {\n      display: 'flex',\n      flexDirection: 'column',\n      margin: 48,\n      position: 'relative',\n      overflowY: 'auto',\n      // Fix IE11 issue, to remove at some point.\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 'none'\n    },\n\n    /* Styles applied to the `Paper` component if `scroll=\"paper\"`. */\n    paperScrollPaper: {\n      flex: '0 1 auto',\n      maxHeight: 'calc(100% - 96px)'\n    },\n\n    /* Styles applied to the `Paper` component if `scroll=\"body\"`. */\n    paperScrollBody: {\n      margin: '48px auto'\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"xs\"`. */\n    paperWidthXs: {\n      maxWidth: Math.max(theme.breakpoints.values.xs, 360),\n      '&$paperScrollBody': (0, _defineProperty2.default)({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 360) + 48 * 2), {\n        margin: 48\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"sm\"`. */\n    paperWidthSm: {\n      maxWidth: theme.breakpoints.values.sm,\n      '&$paperScrollBody': (0, _defineProperty2.default)({}, theme.breakpoints.down(theme.breakpoints.values.sm + 48 * 2), {\n        margin: 48\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"md\"`. */\n    paperWidthMd: {\n      maxWidth: theme.breakpoints.values.md,\n      '&$paperScrollBody': (0, _defineProperty2.default)({}, theme.breakpoints.down(theme.breakpoints.values.md + 48 * 2), {\n        margin: 48\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `maxWidth=\"lg\"`. */\n    paperWidthLg: {\n      maxWidth: theme.breakpoints.values.lg,\n      '&$paperScrollBody': (0, _defineProperty2.default)({}, theme.breakpoints.down(theme.breakpoints.values.lg + 48 * 2), {\n        margin: 48\n      })\n    },\n\n    /* Styles applied to the `Paper` component if `fullWidth={true}`. */\n    paperFullWidth: {\n      width: '100%'\n    },\n\n    /* Styles applied to the `Paper` component if `fullScreen={true}`. */\n    paperFullScreen: {\n      margin: 0,\n      width: '100%',\n      maxWidth: '100%',\n      height: '100%',\n      maxHeight: 'none',\n      borderRadius: 0,\n      '&$paperScrollBody': {\n        margin: 0\n      }\n    }\n  };\n};\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n\n\nexports.styles = styles;\n\nfunction Dialog(props) {\n  var _classNames;\n\n  var BackdropProps = props.BackdropProps,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      disableBackdropClick = props.disableBackdropClick,\n      disableEscapeKeyDown = props.disableEscapeKeyDown,\n      fullScreen = props.fullScreen,\n      fullWidth = props.fullWidth,\n      maxWidth = props.maxWidth,\n      onBackdropClick = props.onBackdropClick,\n      onClose = props.onClose,\n      onEnter = props.onEnter,\n      onEntered = props.onEntered,\n      onEntering = props.onEntering,\n      onEscapeKeyDown = props.onEscapeKeyDown,\n      onExit = props.onExit,\n      onExited = props.onExited,\n      onExiting = props.onExiting,\n      open = props.open,\n      PaperProps = props.PaperProps,\n      scroll = props.scroll,\n      TransitionComponent = props.TransitionComponent,\n      transitionDuration = props.transitionDuration,\n      TransitionProps = props.TransitionProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"BackdropProps\", \"children\", \"classes\", \"className\", \"disableBackdropClick\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onEscapeKeyDown\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n  return _react.default.createElement(_Modal.default, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classes[\"scroll\".concat((0, _helpers.capitalize)(scroll))], className),\n    BackdropProps: (0, _extends2.default)({\n      transitionDuration: transitionDuration\n    }, BackdropProps),\n    disableBackdropClick: disableBackdropClick,\n    disableEscapeKeyDown: disableEscapeKeyDown,\n    onBackdropClick: onBackdropClick,\n    onEscapeKeyDown: onEscapeKeyDown,\n    onClose: onClose,\n    open: open,\n    role: \"dialog\"\n  }, other), _react.default.createElement(TransitionComponent, (0, _extends2.default)({\n    appear: true,\n    in: open,\n    timeout: transitionDuration,\n    onEnter: onEnter,\n    onEntering: onEntering,\n    onEntered: onEntered,\n    onExit: onExit,\n    onExiting: onExiting,\n    onExited: onExited\n  }, TransitionProps), _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    elevation: 24,\n    className: (0, _classnames.default)(classes.paper, classes[\"paperScroll\".concat((0, _helpers.capitalize)(scroll))], (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"paperWidth\".concat(maxWidth ? (0, _helpers.capitalize)(maxWidth) : '')], maxWidth), (0, _defineProperty2.default)(_classNames, classes.paperFullScreen, fullScreen), (0, _defineProperty2.default)(_classNames, classes.paperFullWidth, fullWidth), _classNames))\n  }, PaperProps), children)));\n}\n\nDialog.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   */\n  BackdropProps: _propTypes.default.object,\n\n  /**\n   * Dialog children, usually the included sub-components.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, clicking the backdrop will not fire the `onClose` callback.\n   */\n  disableBackdropClick: _propTypes.default.bool,\n\n  /**\n   * If `true`, hitting escape will not fire the `onClose` callback.\n   */\n  disableEscapeKeyDown: _propTypes.default.bool,\n\n  /**\n   * If `true`, the dialog will be full-screen\n   */\n  fullScreen: _propTypes.default.bool,\n\n  /**\n   * If `true`, the dialog stretches to `maxWidth`.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * Determine the max width of the dialog.\n   * The dialog width grows with the size of the screen, this property is useful\n   * on the desktop where you might need some coherent different width size across your\n   * application. Set to `false` to disable `maxWidth`.\n   */\n  maxWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', false]),\n\n  /**\n   * Callback fired when the backdrop is clicked.\n   */\n  onBackdropClick: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired before the dialog enters.\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * Callback fired when the dialog has entered.\n   */\n  onEntered: _propTypes.default.func,\n\n  /**\n   * Callback fired when the dialog is entering.\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * Callback fired when the escape key is pressed,\n   * `disableKeyboard` is false and the modal is in focus.\n   */\n  onEscapeKeyDown: _propTypes.default.func,\n\n  /**\n   * Callback fired before the dialog exits.\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * Callback fired when the dialog has exited.\n   */\n  onExited: _propTypes.default.func,\n\n  /**\n   * Callback fired when the dialog is exiting.\n   */\n  onExiting: _propTypes.default.func,\n\n  /**\n   * If `true`, the Dialog is open.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * Properties applied to the [`Paper`](/api/paper) element.\n   */\n  PaperProps: _propTypes.default.object,\n\n  /**\n   * Determine the container for scrolling the dialog.\n   */\n  scroll: _propTypes.default.oneOf(['body', 'paper']),\n\n  /**\n   * Transition component.\n   */\n  TransitionComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })]),\n\n  /**\n   * Properties applied to the `Transition` element.\n   */\n  TransitionProps: _propTypes.default.object\n} : {};\nDialog.defaultProps = {\n  disableBackdropClick: false,\n  disableEscapeKeyDown: false,\n  fullScreen: false,\n  fullWidth: false,\n  maxWidth: 'sm',\n  scroll: 'paper',\n  TransitionComponent: _Fade.default,\n  transitionDuration: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  }\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDialog'\n})(Dialog);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Dialog.default;\n  }\n});\n\nvar _Dialog = _interopRequireDefault(require(\"./Dialog\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nrequire(\"../Button\");\n\n// So we don't have any override priority issue.\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'flex-end',\n    flex: '0 0 auto',\n    margin: '8px 4px'\n  },\n\n  /* Styles applied to the children. */\n  action: {\n    margin: '0 4px'\n  }\n};\nexports.styles = styles;\n\nfunction DialogActions(props) {\n  var disableActionSpacing = props.disableActionSpacing,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"disableActionSpacing\", \"children\", \"classes\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), disableActionSpacing ? children : (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action));\n}\n\nDialogActions.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the dialog actions do not have additional margin.\n   */\n  disableActionSpacing: _propTypes.default.bool\n} : {};\nDialogActions.defaultProps = {\n  disableActionSpacing: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDialogActions'\n})(DialogActions);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _DialogActions.default;\n  }\n});\n\nvar _DialogActions = _interopRequireDefault(require(\"./DialogActions\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    flex: '1 1 auto',\n    overflowY: 'auto',\n    WebkitOverflowScrolling: 'touch',\n    // Add iOS momentum scrolling.\n    padding: '0 24px 24px',\n    '&:first-child': {\n      paddingTop: 24\n    }\n  }\n};\nexports.styles = styles;\n\nfunction DialogContent(props) {\n  var classes = props.classes,\n      children = props.children,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"children\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), children);\n}\n\nDialogContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDialogContent'\n})(DialogContent);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _DialogContent.default;\n  }\n});\n\nvar _DialogContent = _interopRequireDefault(require(\"./DialogContent\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\n// @inheritedComponent Typography\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {}\n};\nexports.styles = styles;\n\nfunction DialogContentText(props) {\n  return _react.default.createElement(_Typography.default, (0, _extends2.default)({\n    component: \"p\",\n    variant: \"subheading\",\n    color: \"textSecondary\"\n  }, props));\n}\n\nDialogContentText.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDialogContentText'\n})(DialogContentText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _DialogContentText.default;\n  }\n});\n\nvar _DialogContentText = _interopRequireDefault(require(\"./DialogContentText\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    margin: 0,\n    padding: '24px 24px 20px',\n    flex: '0 0 auto'\n  }\n};\nexports.styles = styles;\n\nfunction DialogTitle(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      disableTypography = props.disableTypography,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), disableTypography ? children : _react.default.createElement(_Typography.default, {\n    variant: \"title\"\n  }, children));\n}\n\nDialogTitle.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the children won't be wrapped by a typography component.\n   * For instance, this can be useful to render an h4 instead of the default h2.\n   */\n  disableTypography: _propTypes.default.bool\n} : {};\nDialogTitle.defaultProps = {\n  disableTypography: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDialogTitle'\n})(DialogTitle);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _DialogTitle.default;\n  }\n});\n\nvar _DialogTitle = _interopRequireDefault(require(\"./DialogTitle\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      height: 1,\n      margin: 0,\n      // Reset browser default style.\n      border: 'none',\n      flexShrink: 0,\n      backgroundColor: theme.palette.divider\n    },\n\n    /* Styles applied to the root element if `absolute={true}`. */\n    absolute: {\n      position: 'absolute',\n      bottom: 0,\n      left: 0,\n      width: '100%'\n    },\n\n    /* Styles applied to the root element if `inset={true}`. */\n    inset: {\n      marginLeft: 72\n    },\n\n    /* Styles applied to the root element if `light={true}`. */\n    light: {\n      backgroundColor: (0, _colorManipulator.fade)(theme.palette.divider, 0.08)\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Divider(props) {\n  var _classNames;\n\n  var absolute = props.absolute,\n      classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      inset = props.inset,\n      light = props.light,\n      other = (0, _objectWithoutProperties2.default)(props, [\"absolute\", \"classes\", \"className\", \"component\", \"inset\", \"light\"]);\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.absolute, absolute), (0, _defineProperty2.default)(_classNames, classes.inset, inset), (0, _defineProperty2.default)(_classNames, classes.light, light), _classNames), classNameProp);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other));\n}\n\nDivider.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  absolute: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the divider will be indented.\n   */\n  inset: _propTypes.default.bool,\n\n  /**\n   * If `true`, the divider will have a lighter color.\n   */\n  light: _propTypes.default.bool\n} : {};\nDivider.defaultProps = {\n  absolute: false,\n  component: 'hr',\n  inset: false,\n  light: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDivider'\n})(Divider);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Divider.default;\n  }\n});\n\nvar _Divider = _interopRequireDefault(require(\"./Divider\"));","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n  var timeout, args, context, timestamp, result;\n  if (null == wait) wait = 100;\n\n  function later() {\n    var last = Date.now() - timestamp;\n\n    if (last < wait && last >= 0) {\n      timeout = setTimeout(later, wait - last);\n    } else {\n      timeout = null;\n      if (!immediate) {\n        result = func.apply(context, args);\n        context = args = null;\n      }\n    }\n  };\n\n  var debounced = function(){\n    context = this;\n    args = arguments;\n    timestamp = Date.now();\n    var callNow = immediate && !timeout;\n    if (!timeout) timeout = setTimeout(later, wait);\n    if (callNow) {\n      result = func.apply(context, args);\n      context = args = null;\n    }\n\n    return result;\n  };\n\n  debounced.clear = function() {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = null;\n    }\n  };\n  \n  debounced.flush = function() {\n    if (timeout) {\n      result = func.apply(context, args);\n      context = args = null;\n      \n      clearTimeout(timeout);\n      timeout = null;\n    }\n  };\n\n  return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.setTranslateValue = setTranslateValue;\nexports.default = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nvar _ownerWindow = _interopRequireDefault(require(\"../utils/ownerWindow\"));\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _utils = require(\"../transitions/utils\");\n\n// @inheritedComponent Transition\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nvar GUTTER = 24; // Translate the node so he can't be seen on the screen.\n// Later, we gonna translate back the node to his original location\n// with `translate3d(0, 0, 0)`.`\n\nfunction getTranslateValue(props, node) {\n  var direction = props.direction;\n  var rect = node.getBoundingClientRect();\n  var transform;\n\n  if (node.fakeTransform) {\n    transform = node.fakeTransform;\n  } else {\n    var computedStyle = (0, _ownerWindow.default)(node).getComputedStyle(node);\n    transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n  }\n\n  var offsetX = 0;\n  var offsetY = 0;\n\n  if (transform && transform !== 'none' && typeof transform === 'string') {\n    var transformValues = transform.split('(')[1].split(')')[0].split(',');\n    offsetX = parseInt(transformValues[4], 10);\n    offsetY = parseInt(transformValues[5], 10);\n  }\n\n  if (direction === 'left') {\n    return \"translateX(100vw) translateX(-\".concat(rect.left - offsetX, \"px)\");\n  }\n\n  if (direction === 'right') {\n    return \"translateX(-\".concat(rect.left + rect.width + GUTTER - offsetX, \"px)\");\n  }\n\n  if (direction === 'up') {\n    return \"translateY(100vh) translateY(-\".concat(rect.top - offsetY, \"px)\");\n  } // direction === 'down'\n\n\n  return \"translateY(-\".concat(rect.top + rect.height + GUTTER - offsetY, \"px)\");\n}\n\nfunction setTranslateValue(props, node) {\n  var transform = getTranslateValue(props, node);\n\n  if (transform) {\n    node.style.webkitTransform = transform;\n    node.style.transform = transform;\n  }\n}\n/**\n * The Slide transition is used by the [Snackbar](/demos/snackbars) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\n\nvar Slide =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Slide, _React$Component);\n\n  function Slide() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Slide);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Slide)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.mounted = false;\n    _this.handleResize = (0, _debounce.default)(function () {\n      // Skip configuration where the position is screen size invariant.\n      if (_this.props.in || _this.props.direction === 'down' || _this.props.direction === 'right') {\n        return;\n      }\n\n      if (_this.transitionRef) {\n        setTranslateValue(_this.props, _this.transitionRef);\n      }\n    }, 166);\n\n    _this.handleEnter = function (node) {\n      setTranslateValue(_this.props, node);\n      (0, _utils.reflow)(node);\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.handleEntering = function (node) {\n      var theme = _this.props.theme;\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'enter'\n      });\n      node.style.webkitTransition = theme.transitions.create('-webkit-transform', (0, _extends2.default)({}, transitionProps, {\n        easing: theme.transitions.easing.easeOut\n      }));\n      node.style.transition = theme.transitions.create('transform', (0, _extends2.default)({}, transitionProps, {\n        easing: theme.transitions.easing.easeOut\n      }));\n      node.style.webkitTransform = 'translate(0, 0)';\n      node.style.transform = 'translate(0, 0)';\n\n      if (_this.props.onEntering) {\n        _this.props.onEntering(node);\n      }\n    };\n\n    _this.handleExit = function (node) {\n      var theme = _this.props.theme;\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'exit'\n      });\n      node.style.webkitTransition = theme.transitions.create('-webkit-transform', (0, _extends2.default)({}, transitionProps, {\n        easing: theme.transitions.easing.sharp\n      }));\n      node.style.transition = theme.transitions.create('transform', (0, _extends2.default)({}, transitionProps, {\n        easing: theme.transitions.easing.sharp\n      }));\n      setTranslateValue(_this.props, node);\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    _this.handleExited = function (node) {\n      // No need for transitions when the component is hidden\n      node.style.webkitTransition = '';\n      node.style.transition = '';\n\n      if (_this.props.onExited) {\n        _this.props.onExited(node);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Slide, [{\n    key: \"componentDidMount\",\n    // Corresponds to 10 frames at 60 Hz.\n    value: function componentDidMount() {\n      this.mounted = true; // state.mounted handle SSR, once the component is mounted, we need\n      // to properly hide it.\n\n      if (!this.props.in) {\n        // We need to set initial translate values of transition element\n        // otherwise component will be shown when in=false.\n        this.updatePosition();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.direction !== this.props.direction && !this.props.in) {\n        // We need to update the position of the drawer when the direction change and\n        // when it's hidden.\n        this.updatePosition();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleResize.clear();\n    }\n  }, {\n    key: \"updatePosition\",\n    value: function updatePosition() {\n      if (this.transitionRef) {\n        this.transitionRef.style.visibility = 'inherit';\n        setTranslateValue(this.props, this.transitionRef);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          onEnter = _this$props.onEnter,\n          onEntering = _this$props.onEntering,\n          onExit = _this$props.onExit,\n          onExited = _this$props.onExited,\n          styleProp = _this$props.style,\n          theme = _this$props.theme,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"onEnter\", \"onEntering\", \"onExit\", \"onExited\", \"style\", \"theme\"]);\n      var style = {}; // We use this state to handle the server-side rendering.\n      // We don't know the width of the children ahead of time.\n      // We need to render it.\n\n      if (!this.props.in && !this.mounted) {\n        style.visibility = 'hidden';\n      }\n\n      style = (0, _extends2.default)({}, style, styleProp, _react.default.isValidElement(children) ? children.props.style : {});\n      return _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }, _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        onEnter: this.handleEnter,\n        onEntering: this.handleEntering,\n        onExit: this.handleExit,\n        onExited: this.handleExited,\n        appear: true,\n        style: style,\n        ref: function ref(_ref) {\n          _this2.transitionRef = _reactDom.default.findDOMNode(_ref);\n        }\n      }, other), children));\n    }\n  }]);\n  return Slide;\n}(_react.default.Component);\n\nSlide.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A single child content element.\n   */\n  children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),\n\n  /**\n   * Direction the child node will enter from.\n   */\n  direction: _propTypes.default.oneOf(['left', 'right', 'up', 'down']),\n\n  /**\n   * If `true`, show the component; triggers the enter or exit animation.\n   */\n  in: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExited: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })])\n} : {};\nSlide.defaultProps = {\n  direction: 'down',\n  timeout: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  }\n};\n\nvar _default = (0, _withTheme.default)()(Slide);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Slide.default;\n  }\n});\n\nvar _Slide = _interopRequireDefault(require(\"./Slide\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isHorizontal = isHorizontal;\nexports.getAnchor = getAnchor;\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Modal = _interopRequireDefault(require(\"../Modal\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Slide = _interopRequireDefault(require(\"../Slide\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar oppositeDirection = {\n  left: 'right',\n  right: 'left',\n  top: 'down',\n  bottom: 'up'\n};\n\nfunction isHorizontal(props) {\n  return ['left', 'right'].indexOf(props.anchor) !== -1;\n}\n\nfunction getAnchor(props) {\n  return props.theme.direction === 'rtl' && isHorizontal(props) ? oppositeDirection[props.anchor] : props.anchor;\n}\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element if `variant=\"permanent or persistent\"`. */\n    docked: {\n      flex: '0 0 auto'\n    },\n\n    /* Styles applied to the `Paper` component. */\n    paper: {\n      overflowY: 'auto',\n      display: 'flex',\n      flexDirection: 'column',\n      height: '100%',\n      flex: '1 0 auto',\n      zIndex: theme.zIndex.drawer,\n      WebkitOverflowScrolling: 'touch',\n      // Add iOS momentum scrolling.\n      // temporary style\n      position: 'fixed',\n      top: 0,\n      // We disable the focus ring for mouse, touch and keyboard users.\n      // At some point, it would be better to keep it for keyboard users.\n      // :focus-ring CSS pseudo-class will help.\n      outline: 'none'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"left\"`. */\n    paperAnchorLeft: {\n      left: 0,\n      right: 'auto'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"right\"`. */\n    paperAnchorRight: {\n      left: 'auto',\n      right: 0\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"top\"`. */\n    paperAnchorTop: {\n      top: 0,\n      left: 0,\n      bottom: 'auto',\n      right: 0,\n      height: 'auto',\n      maxHeight: '100%'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"bottom\"`. */\n    paperAnchorBottom: {\n      top: 'auto',\n      left: 0,\n      bottom: 0,\n      right: 0,\n      height: 'auto',\n      maxHeight: '100%'\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"left\"` & `variant` is not \"temporary\". */\n    paperAnchorDockedLeft: {\n      borderRight: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"top\"` & `variant` is not \"temporary\". */\n    paperAnchorDockedTop: {\n      borderBottom: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"right\"` & `variant` is not \"temporary\". */\n    paperAnchorDockedRight: {\n      borderLeft: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Paper` component if `anchor=\"bottom\"` & `variant` is not \"temporary\". */\n    paperAnchorDockedBottom: {\n      borderTop: \"1px solid \".concat(theme.palette.divider)\n    },\n\n    /* Styles applied to the `Modal` component. */\n    modal: {}\n  };\n};\n/**\n * The properties of the [Modal](/api/modal) component are available\n * when `variant=\"temporary\"` is set.\n */\n\n\nexports.styles = styles;\n\nvar Drawer =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Drawer, _React$Component);\n\n  function Drawer() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Drawer);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Drawer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.mounted = false;\n    return _this;\n  }\n\n  (0, _createClass2.default)(Drawer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.mounted = true;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          anchorProp = _this$props.anchor,\n          BackdropProps = _this$props.BackdropProps,\n          children = _this$props.children,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          elevation = _this$props.elevation,\n          _this$props$ModalProp = _this$props.ModalProps;\n      _this$props$ModalProp = _this$props$ModalProp === void 0 ? {} : _this$props$ModalProp;\n      var BackdropPropsProp = _this$props$ModalProp.BackdropProps,\n          ModalProps = (0, _objectWithoutProperties2.default)(_this$props$ModalProp, [\"BackdropProps\"]),\n          onClose = _this$props.onClose,\n          open = _this$props.open,\n          PaperProps = _this$props.PaperProps,\n          SlideProps = _this$props.SlideProps,\n          theme = _this$props.theme,\n          transitionDuration = _this$props.transitionDuration,\n          variant = _this$props.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"anchor\", \"BackdropProps\", \"children\", \"classes\", \"className\", \"elevation\", \"ModalProps\", \"onClose\", \"open\", \"PaperProps\", \"SlideProps\", \"theme\", \"transitionDuration\", \"variant\"]);\n      var anchor = getAnchor(this.props);\n\n      var drawer = _react.default.createElement(_Paper.default, (0, _extends2.default)({\n        elevation: variant === 'temporary' ? elevation : 0,\n        square: true,\n        className: (0, _classnames.default)(classes.paper, classes[\"paperAnchor\".concat((0, _helpers.capitalize)(anchor))], (0, _defineProperty2.default)({}, classes[\"paperAnchorDocked\".concat((0, _helpers.capitalize)(anchor))], variant !== 'temporary'))\n      }, PaperProps), children);\n\n      if (variant === 'permanent') {\n        return _react.default.createElement(\"div\", (0, _extends2.default)({\n          className: (0, _classnames.default)(classes.docked, className)\n        }, other), drawer);\n      }\n\n      var slidingDrawer = _react.default.createElement(_Slide.default, (0, _extends2.default)({\n        in: open,\n        direction: oppositeDirection[anchor],\n        timeout: transitionDuration,\n        appear: this.mounted\n      }, SlideProps), drawer);\n\n      if (variant === 'persistent') {\n        return _react.default.createElement(\"div\", (0, _extends2.default)({\n          className: (0, _classnames.default)(classes.docked, className)\n        }, other), slidingDrawer);\n      } // variant === temporary\n\n\n      return _react.default.createElement(_Modal.default, (0, _extends2.default)({\n        BackdropProps: (0, _extends2.default)({}, BackdropProps, BackdropPropsProp, {\n          transitionDuration: transitionDuration\n        }),\n        className: (0, _classnames.default)(classes.modal, className),\n        open: open,\n        onClose: onClose\n      }, other, ModalProps), slidingDrawer);\n    }\n  }]);\n  return Drawer;\n}(_react.default.Component);\n\nDrawer.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Side from which the drawer will appear.\n   */\n  anchor: _propTypes.default.oneOf(['left', 'top', 'right', 'bottom']),\n\n  /**\n   * The contents of the drawer.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The elevation of the drawer.\n   */\n  elevation: _propTypes.default.number,\n\n  /**\n   * Properties applied to the [`Modal`](/api/modal) element.\n   */\n  ModalProps: _propTypes.default.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * If `true`, the drawer is open.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * Properties applied to the [`Paper`](/api/paper) element.\n   */\n  PaperProps: _propTypes.default.object,\n\n  /**\n   * Properties applied to the [`Slide`](/api/slide) element.\n   */\n  SlideProps: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['permanent', 'persistent', 'temporary'])\n} : {};\nDrawer.defaultProps = {\n  anchor: 'left',\n  elevation: 16,\n  open: false,\n  transitionDuration: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  },\n  variant: 'temporary' // Mobile first.\n\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiDrawer',\n  flip: false,\n  withTheme: true\n})(Drawer);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Drawer.default;\n  }\n});\n\nvar _Drawer = _interopRequireDefault(require(\"./Drawer\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _Collapse = _interopRequireDefault(require(\"../Collapse\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\n// @inheritedComponent Paper\n// Workaround https://github.com/jsdom/jsdom/issues/2026\nvar edgeFix = typeof window !== 'undefined' && /jsdom/.test(window.navigator.userAgent) ? {} : {\n  // Fix a rendering issue on Edge\n  '@supports (-ms-ime-align: auto)': {\n    borderBottomLeftRadius: 0,\n    borderBottomRightRadius: 0\n  }\n};\n\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      transition: theme.transitions.create(['margin'], transition),\n      '&:before': {\n        position: 'absolute',\n        left: 0,\n        top: -1,\n        right: 0,\n        height: 1,\n        content: '\"\"',\n        opacity: 1,\n        backgroundColor: theme.palette.divider,\n        transition: theme.transitions.create(['opacity', 'background-color'], transition)\n      },\n      '&:first-child': {\n        borderTopLeftRadius: 2,\n        borderTopRightRadius: 2,\n        '&:before': {\n          display: 'none'\n        }\n      },\n      '&:last-child': (0, _extends2.default)({\n        borderBottomLeftRadius: 2,\n        borderBottomRightRadius: 2\n      }, edgeFix),\n      '&$expanded + &': {\n        '&:before': {\n          display: 'none'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `expanded={true}`. */\n    expanded: {\n      margin: '16px 0',\n      '&:first-child': {\n        marginTop: 0\n      },\n      '&:last-child': {\n        marginBottom: 0\n      },\n      '&:before': {\n        opacity: 0\n      }\n    },\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {\n      backgroundColor: theme.palette.action.disabledBackground\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar ExpansionPanel =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ExpansionPanel, _React$Component);\n\n  function ExpansionPanel(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, ExpansionPanel);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ExpansionPanel).call(this));\n\n    _this.handleChange = function (event) {\n      var expanded = _this.isControlled ? _this.props.expanded : _this.state.expanded;\n\n      if (!_this.isControlled) {\n        _this.setState({\n          expanded: !expanded\n        });\n      }\n\n      if (_this.props.onChange) {\n        _this.props.onChange(event, !expanded);\n      }\n    };\n\n    _this.isControlled = props.expanded != null;\n    _this.state = {};\n\n    if (!_this.isControlled) {\n      // not controlled, use internal state\n      _this.state.expanded = props.defaultExpanded !== undefined ? props.defaultExpanded : false;\n    }\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(ExpansionPanel, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames,\n          _this2 = this;\n\n      var _this$props = this.props,\n          childrenProp = _this$props.children,\n          classes = _this$props.classes,\n          classNameProp = _this$props.className,\n          CollapsePropsProp = _this$props.CollapseProps,\n          defaultExpanded = _this$props.defaultExpanded,\n          disabled = _this$props.disabled,\n          expandedProp = _this$props.expanded,\n          onChange = _this$props.onChange,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"classes\", \"className\", \"CollapseProps\", \"defaultExpanded\", \"disabled\", \"expanded\", \"onChange\"]);\n      var expanded = this.isControlled ? expandedProp : this.state.expanded;\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.expanded, expanded), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp);\n      var summary = null;\n\n      var children = _react.default.Children.map(childrenProp, function (child) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the ExpansionPanel component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n\n        if ((0, _reactHelpers.isMuiElement)(child, ['ExpansionPanelSummary'])) {\n          summary = _react.default.cloneElement(child, {\n            disabled: disabled,\n            expanded: expanded,\n            onChange: _this2.handleChange\n          });\n          return null;\n        }\n\n        return child;\n      });\n\n      var CollapseProps = !expanded ? {\n        'aria-hidden': 'true'\n      } : null;\n      return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n        className: className,\n        elevation: 1,\n        square: true\n      }, other), summary, _react.default.createElement(_Collapse.default, (0, _extends2.default)({\n        in: expanded,\n        timeout: \"auto\"\n      }, CollapseProps, CollapsePropsProp), children));\n    }\n  }]);\n  return ExpansionPanel;\n}(_react.default.Component);\n\nExpansionPanel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the expansion panel.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Properties applied to the [`Collapse`](/api/collapse) element.\n   */\n  CollapseProps: _propTypes.default.object,\n\n  /**\n   * If `true`, expands the panel by default.\n   */\n  defaultExpanded: _propTypes.default.bool,\n\n  /**\n   * If `true`, the panel will be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, expands the panel, otherwise collapse it.\n   * Setting this prop enables control over the panel.\n   */\n  expanded: _propTypes.default.bool,\n\n  /**\n   * Callback fired when the expand/collapse state is changed.\n   *\n   * @param {object} event The event source of the callback\n   * @param {boolean} expanded The `expanded` state of the panel\n   */\n  onChange: _propTypes.default.func\n} : {};\nExpansionPanel.defaultProps = {\n  defaultExpanded: false,\n  disabled: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiExpansionPanel'\n})(ExpansionPanel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ExpansionPanel.default;\n  }\n});\n\nvar _ExpansionPanel = _interopRequireDefault(require(\"./ExpansionPanel\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nrequire(\"../Button\");\n\n// So we don't have any override priority issue.\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'flex-end',\n    padding: '16px 8px'\n  },\n\n  /* Styles applied to the children. */\n  action: {\n    marginLeft: 8\n  }\n};\nexports.styles = styles;\n\nfunction ExpansionPanelActions(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), (0, _reactHelpers.cloneChildrenWithClassName)(children, classes.action));\n}\n\nExpansionPanelActions.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiExpansionPanelActions'\n})(ExpansionPanelActions);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ExpansionPanelActions.default;\n  }\n});\n\nvar _ExpansionPanelActions = _interopRequireDefault(require(\"./ExpansionPanelActions\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    padding: '8px 24px 24px'\n  }\n};\nexports.styles = styles;\n\nfunction ExpansionPanelDetails(props) {\n  var classes = props.classes,\n      children = props.children,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"children\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), children);\n}\n\nExpansionPanelDetails.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the expansion panel details.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiExpansionPanelDetails'\n})(ExpansionPanelDetails);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ExpansionPanelDetails.default;\n  }\n});\n\nvar _ExpansionPanelDetails = _interopRequireDefault(require(\"./ExpansionPanelDetails\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _IconButton = _interopRequireDefault(require(\"../IconButton\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  var transition = {\n    duration: theme.transitions.duration.shortest\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      minHeight: 8 * 6,\n      transition: theme.transitions.create(['min-height', 'background-color'], transition),\n      padding: '0 24px 0 24px',\n      '&:hover:not($disabled)': {\n        cursor: 'pointer'\n      },\n      '&$expanded': {\n        minHeight: 64\n      },\n      '&$focused': {\n        backgroundColor: theme.palette.grey[300]\n      },\n      '&$disabled': {\n        opacity: 0.38\n      }\n    },\n\n    /* Styles applied to the root element if `expanded={true}`. */\n    expanded: {},\n\n    /* Styles applied to the root and children wrapper elements when focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the children wrapper element. */\n    content: {\n      display: 'flex',\n      flexGrow: 1,\n      transition: theme.transitions.create(['margin'], transition),\n      margin: '12px 0',\n      '& > :last-child': {\n        paddingRight: 32\n      },\n      '&$expanded': {\n        margin: '20px 0'\n      }\n    },\n\n    /* Styles applied to the `IconButton` component when `expandIcon` is supplied. */\n    expandIcon: {\n      position: 'absolute',\n      top: '50%',\n      right: 8,\n      transform: 'translateY(-50%) rotate(0deg)',\n      transition: theme.transitions.create('transform', transition),\n      '&:hover': {\n        // Disable the hover effect for the IconButton,\n        // because a hover effect should apply to the entire Expand button and\n        // not only to the IconButton.\n        backgroundColor: 'transparent'\n      },\n      '&$expanded': {\n        transform: 'translateY(-50%) rotate(180deg)'\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar ExpansionPanelSummary =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ExpansionPanelSummary, _React$Component);\n\n  function ExpansionPanelSummary() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, ExpansionPanelSummary);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ExpansionPanelSummary)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {\n      focused: false\n    };\n\n    _this.handleFocus = function () {\n      _this.setState({\n        focused: true\n      });\n    };\n\n    _this.handleBlur = function () {\n      _this.setState({\n        focused: false\n      });\n    };\n\n    _this.handleChange = function (event) {\n      var _this$props = _this.props,\n          onChange = _this$props.onChange,\n          onClick = _this$props.onClick;\n\n      if (onChange) {\n        onChange(event);\n      }\n\n      if (onClick) {\n        onClick(event);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(ExpansionPanelSummary, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          classes = _this$props2.classes,\n          className = _this$props2.className,\n          disabled = _this$props2.disabled,\n          expanded = _this$props2.expanded,\n          expandIcon = _this$props2.expandIcon,\n          IconButtonProps = _this$props2.IconButtonProps,\n          onChange = _this$props2.onChange,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"children\", \"classes\", \"className\", \"disabled\", \"expanded\", \"expandIcon\", \"IconButtonProps\", \"onChange\"]);\n      var focused = this.state.focused;\n      return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n        focusRipple: false,\n        disableRipple: true,\n        disabled: disabled,\n        component: \"div\",\n        \"aria-expanded\": expanded,\n        className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.expanded, expanded), (0, _defineProperty2.default)(_classNames, classes.focused, focused), _classNames), className)\n      }, other, {\n        onFocusVisible: this.handleFocus,\n        onBlur: this.handleBlur,\n        onClick: this.handleChange\n      }), _react.default.createElement(\"div\", {\n        className: (0, _classnames.default)(classes.content, (0, _defineProperty2.default)({}, classes.expanded, expanded))\n      }, children), expandIcon && _react.default.createElement(_IconButton.default, (0, _extends2.default)({\n        disabled: disabled,\n        className: (0, _classnames.default)(classes.expandIcon, (0, _defineProperty2.default)({}, classes.expanded, expanded)),\n        component: \"div\",\n        tabIndex: -1,\n        \"aria-hidden\": \"true\"\n      }, IconButtonProps), expandIcon));\n    }\n  }]);\n  return ExpansionPanelSummary;\n}(_react.default.Component);\n\nExpansionPanelSummary.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the expansion panel summary.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   * If `true`, the summary will be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * If `true`, expands the summary, otherwise collapse it.\n   */\n  expanded: _propTypes.default.bool,\n\n  /**\n   * The icon to display as the expand indicator.\n   */\n  expandIcon: _propTypes.default.node,\n\n  /**\n   * Properties applied to the `TouchRipple` element wrapping the expand icon.\n   */\n  IconButtonProps: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onClick: _propTypes.default.func\n} : {};\nExpansionPanelSummary.defaultProps = {\n  disabled: false\n};\nExpansionPanelSummary.muiName = 'ExpansionPanelSummary';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiExpansionPanelSummary'\n})(ExpansionPanelSummary);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ExpansionPanelSummary.default;\n  }\n});\n\nvar _ExpansionPanelSummary = _interopRequireDefault(require(\"./ExpansionPanelSummary\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nvar ROWS_HEIGHT = 19;\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    position: 'relative',\n    // because the shadow has position: 'absolute',\n    width: '100%'\n  },\n  textarea: {\n    width: '100%',\n    height: '100%',\n    resize: 'none',\n    font: 'inherit',\n    padding: 0,\n    cursor: 'inherit',\n    boxSizing: 'border-box',\n    lineHeight: 'inherit',\n    border: 'none',\n    outline: 'none',\n    background: 'transparent'\n  },\n  shadow: {\n    // Overflow also needed to here to remove the extra row\n    // added to textareas in Firefox.\n    overflow: 'hidden',\n    // Visibility needed to hide the extra text area on ipads\n    visibility: 'hidden',\n    position: 'absolute',\n    height: 'auto',\n    whiteSpace: 'pre-wrap'\n  }\n};\n/**\n * @ignore - internal component.\n */\n\nexports.styles = styles;\n\nvar Textarea =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Textarea, _React$Component);\n\n  // Corresponds to 10 frames at 60 Hz.\n  function Textarea(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Textarea);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Textarea).call(this));\n    _this.handleResize = (0, _debounce.default)(function () {\n      _this.syncHeightWithShadow();\n    }, 166);\n\n    _this.handleRefInput = function (ref) {\n      _this.inputRef = ref;\n      (0, _reactHelpers.setRef)(_this.props.textareaRef, ref);\n    };\n\n    _this.handleRefSinglelineShadow = function (ref) {\n      _this.singlelineShadowRef = ref;\n    };\n\n    _this.handleRefShadow = function (ref) {\n      _this.shadowRef = ref;\n    };\n\n    _this.handleChange = function (event) {\n      _this.value = event.target.value;\n\n      if (!_this.isControlled) {\n        // The component is not controlled, we need to update the shallow value.\n        _this.shadowRef.value = _this.value;\n\n        _this.syncHeightWithShadow();\n      }\n\n      if (_this.props.onChange) {\n        _this.props.onChange(event);\n      }\n    };\n\n    _this.isControlled = props.value != null; // <Input> expects the components it renders to respond to 'value'\n    // so that it can check whether they are filled.\n\n    _this.value = props.value || props.defaultValue || '';\n    _this.state = {\n      height: Number(props.rows) * ROWS_HEIGHT\n    };\n    return _this;\n  }\n\n  (0, _createClass2.default)(Textarea, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.syncHeightWithShadow();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.syncHeightWithShadow();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleResize.clear();\n    }\n  }, {\n    key: \"syncHeightWithShadow\",\n    value: function syncHeightWithShadow() {\n      var props = this.props; // Guarding for **broken** shallow rendering method that call componentDidMount\n      // but doesn't handle refs correctly.\n      // To remove once the shallow rendering has been fixed.\n\n      if (!this.shadowRef) {\n        return;\n      }\n\n      if (this.isControlled) {\n        // The component is controlled, we need to update the shallow value.\n        this.shadowRef.value = props.value == null ? '' : String(props.value);\n      }\n\n      var lineHeight = this.singlelineShadowRef.scrollHeight;\n      var newHeight = this.shadowRef.scrollHeight; // Guarding for jsdom, where scrollHeight isn't present.\n      // See https://github.com/tmpvar/jsdom/issues/1013\n\n      if (newHeight === undefined) {\n        return;\n      }\n\n      if (Number(props.rowsMax) >= Number(props.rows)) {\n        newHeight = Math.min(Number(props.rowsMax) * lineHeight, newHeight);\n      }\n\n      newHeight = Math.max(newHeight, lineHeight); // Need a large enough different to update the height.\n      // This prevents infinite rendering loop.\n\n      if (Math.abs(this.state.height - newHeight) > 1) {\n        this.setState({\n          height: newHeight\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          defaultValue = _this$props.defaultValue,\n          onChange = _this$props.onChange,\n          rows = _this$props.rows,\n          rowsMax = _this$props.rowsMax,\n          textareaRef = _this$props.textareaRef,\n          value = _this$props.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"defaultValue\", \"onChange\", \"rows\", \"rowsMax\", \"textareaRef\", \"value\"]);\n      return _react.default.createElement(\"div\", {\n        className: classes.root\n      }, _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }), _react.default.createElement(\"textarea\", {\n        \"aria-hidden\": \"true\",\n        className: (0, _classnames.default)(classes.textarea, classes.shadow),\n        readOnly: true,\n        ref: this.handleRefSinglelineShadow,\n        rows: \"1\",\n        tabIndex: -1,\n        value: \"\"\n      }), _react.default.createElement(\"textarea\", {\n        \"aria-hidden\": \"true\",\n        className: (0, _classnames.default)(classes.textarea, classes.shadow),\n        defaultValue: defaultValue,\n        readOnly: true,\n        ref: this.handleRefShadow,\n        rows: rows,\n        tabIndex: -1,\n        value: value\n      }), _react.default.createElement(\"textarea\", (0, _extends2.default)({\n        rows: rows,\n        className: (0, _classnames.default)(classes.textarea, className),\n        defaultValue: defaultValue,\n        value: value,\n        onChange: this.handleChange,\n        ref: this.handleRefInput,\n        style: {\n          height: this.state.height\n        }\n      }, other)));\n    }\n  }]);\n  return Textarea;\n}(_react.default.Component);\n\nTextarea.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * @ignore\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Use that property to pass a ref callback to the native textarea element.\n   */\n  textareaRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * @ignore\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])\n} : {};\nTextarea.defaultProps = {\n  rows: 1\n};\n\nvar _default = (0, _withStyles.default)(styles)(Textarea);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.hasValue = hasValue;\nexports.isFilled = isFilled;\nexports.isAdornedStart = isAdornedStart;\n\n// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nfunction hasValue(value) {\n  return value != null && !(Array.isArray(value) && value.length === 0);\n} // Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n//                    True when any number or string with length.\n\n\nfunction isFilled(obj) {\n  var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n} // Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n//                    True when adorned at the start.\n\n\nfunction isAdornedStart(obj) {\n  return obj.startAdornment;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.formControlState = formControlState;\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nvar _Textarea = _interopRequireDefault(require(\"./Textarea\"));\n\nvar _utils = require(\"./utils\");\n\n/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var placeholder = {\n    color: 'currentColor',\n    opacity: light ? 0.42 : 0.5,\n    transition: theme.transitions.create('opacity', {\n      duration: theme.transitions.duration.shorter\n    })\n  };\n  var placeholderHidden = {\n    opacity: 0\n  };\n  var placeholderVisible = {\n    opacity: light ? 0.42 : 0.5\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      // Mimics the default input display property used by browsers for an input.\n      fontFamily: theme.typography.fontFamily,\n      color: theme.palette.text.primary,\n      fontSize: theme.typography.pxToRem(16),\n      lineHeight: '1.1875em',\n      // Reset (19px), match the native input line-height\n      cursor: 'text',\n      display: 'inline-flex',\n      alignItems: 'center',\n      '&$disabled': {\n        color: theme.palette.text.disabled,\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {},\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {},\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {},\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    marginDense: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\")\n    },\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {\n      width: '100%'\n    },\n\n    /* Styles applied to the `input` element. */\n    input: {\n      font: 'inherit',\n      color: 'currentColor',\n      padding: \"\".concat(8 - 2, \"px 0 \").concat(8 - 1, \"px\"),\n      border: 0,\n      boxSizing: 'content-box',\n      background: 'none',\n      margin: 0,\n      // Reset for Safari\n      // Remove grey highlight\n      WebkitTapHighlightColor: 'transparent',\n      display: 'block',\n      // Make the flex item shrink with Firefox\n      minWidth: 0,\n      width: '100%',\n      // Fix IE11 width issue\n      '&::-webkit-input-placeholder': placeholder,\n      '&::-moz-placeholder': placeholder,\n      // Firefox 19+\n      '&:-ms-input-placeholder': placeholder,\n      // IE 11\n      '&::-ms-input-placeholder': placeholder,\n      // Edge\n      '&:focus': {\n        outline: 0\n      },\n      // Reset Firefox invalid required input style\n      '&:invalid': {\n        boxShadow: 'none'\n      },\n      '&::-webkit-search-decoration': {\n        // Remove the padding when type=search.\n        '-webkit-appearance': 'none'\n      },\n      // Show and hide the placeholder logic\n      'label[data-shrink=false] + $formControl &': {\n        '&::-webkit-input-placeholder': placeholderHidden,\n        '&::-moz-placeholder': placeholderHidden,\n        // Firefox 19+\n        '&:-ms-input-placeholder': placeholderHidden,\n        // IE 11\n        '&::-ms-input-placeholder': placeholderHidden,\n        // Edge\n        '&:focus::-webkit-input-placeholder': placeholderVisible,\n        '&:focus::-moz-placeholder': placeholderVisible,\n        // Firefox 19+\n        '&:focus:-ms-input-placeholder': placeholderVisible,\n        // IE 11\n        '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n\n      },\n      '&$disabled': {\n        opacity: 1 // Reset iOS opacity\n\n      }\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 4 - 1\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      resize: 'none',\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `type` is not \"text\"`. */\n    inputType: {\n      // type=\"date\" or type=\"time\", etc. have specific styles we need to reset.\n      height: '1.1875em' // Reset (19px), match the native input line-height\n\n    },\n\n    /* Styles applied to the `input` element if `type=\"search\"`. */\n    inputTypeSearch: {\n      // Improve type search style.\n      '-moz-appearance': 'textfield',\n      '-webkit-appearance': 'textfield'\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {},\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction formControlState(_ref) {\n  var props = _ref.props,\n      states = _ref.states,\n      context = _ref.context;\n  return states.reduce(function (acc, state) {\n    acc[state] = props[state];\n\n    if (context && context.muiFormControl) {\n      if (typeof props[state] === 'undefined') {\n        acc[state] = context.muiFormControl[state];\n      }\n    }\n\n    return acc;\n  }, {});\n}\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\n\n\nvar InputBase =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(InputBase, _React$Component);\n\n  function InputBase(props, context) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, InputBase);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(InputBase).call(this, props, context));\n    _this.state = {\n      focused: false\n    };\n\n    _this.handleFocus = function (event) {\n      // Fix a bug with IE11 where the focus/blur events are triggered\n      // while the input is disabled.\n      if (formControlState({\n        props: _this.props,\n        context: _this.context,\n        states: ['disabled']\n      }).disabled) {\n        event.stopPropagation();\n        return;\n      }\n\n      _this.setState({\n        focused: true\n      });\n\n      if (_this.props.onFocus) {\n        _this.props.onFocus(event);\n      }\n\n      var muiFormControl = _this.context.muiFormControl;\n\n      if (muiFormControl && muiFormControl.onFocus) {\n        muiFormControl.onFocus(event);\n      }\n    };\n\n    _this.handleBlur = function (event) {\n      _this.setState({\n        focused: false\n      });\n\n      if (_this.props.onBlur) {\n        _this.props.onBlur(event);\n      }\n\n      var muiFormControl = _this.context.muiFormControl;\n\n      if (muiFormControl && muiFormControl.onBlur) {\n        muiFormControl.onBlur(event);\n      }\n    };\n\n    _this.handleChange = function () {\n      if (!_this.isControlled) {\n        _this.checkDirty(_this.inputRef);\n      } // Perform in the willUpdate\n\n\n      if (_this.props.onChange) {\n        var _this$props;\n\n        (_this$props = _this.props).onChange.apply(_this$props, arguments);\n      }\n    };\n\n    _this.handleRefInput = function (ref) {\n      _this.inputRef = ref;\n      var refProp;\n\n      if (_this.props.inputRef) {\n        refProp = _this.props.inputRef;\n      } else if (_this.props.inputProps && _this.props.inputProps.ref) {\n        refProp = _this.props.inputProps.ref;\n      }\n\n      (0, _reactHelpers.setRef)(refProp, ref);\n    };\n\n    _this.handleClick = function (event) {\n      if (_this.inputRef && event.currentTarget === event.target) {\n        _this.inputRef.focus();\n      }\n\n      if (_this.props.onClick) {\n        _this.props.onClick(event);\n      }\n    };\n\n    _this.isControlled = props.value != null;\n\n    if (_this.isControlled) {\n      _this.checkDirty(props);\n    }\n\n    var componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {\n      // The blur won't fire when the disabled state is set on a focused input.\n      // We need to book keep the focused state manually.\n      if (!formControlState({\n        props: _this.props,\n        context: _this.context,\n        states: ['disabled']\n      }).disabled && formControlState({\n        props: nextProps,\n        context: nextContext,\n        states: ['disabled']\n      }).disabled) {\n        _this.setState({\n          focused: false\n        });\n      }\n    };\n\n    var componentWillUpdate = function componentWillUpdate(nextProps, nextState, nextContext) {\n      // Book keep the focused state.\n      if (!formControlState({\n        props: _this.props,\n        context: _this.context,\n        states: ['disabled']\n      }).disabled && formControlState({\n        props: nextProps,\n        context: nextContext,\n        states: ['disabled']\n      }).disabled) {\n        var muiFormControl = _this.context.muiFormControl;\n\n        if (muiFormControl && muiFormControl.onBlur) {\n          muiFormControl.onBlur();\n        }\n      }\n    };\n    /* eslint-disable no-underscore-dangle */\n\n\n    _this.componentWillReceiveProps = componentWillReceiveProps;\n    _this.componentWillReceiveProps.__suppressDeprecationWarning = true;\n    _this.componentWillUpdate = componentWillUpdate;\n    _this.componentWillUpdate.__suppressDeprecationWarning = true;\n    /* eslint-enable no-underscore-dangle */\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(InputBase, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      // We are consuming the parent muiFormControl context.\n      // We don't want a child to consume it a second time.\n      return {\n        muiFormControl: null\n      };\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (!this.isControlled) {\n        this.checkDirty(this.inputRef);\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      if (this.isControlled) {\n        this.checkDirty(this.props);\n      } // else performed in the onChange\n\n    }\n  }, {\n    key: \"checkDirty\",\n    value: function checkDirty(obj) {\n      var muiFormControl = this.context.muiFormControl;\n\n      if ((0, _utils.isFilled)(obj)) {\n        if (muiFormControl && muiFormControl.onFilled) {\n          muiFormControl.onFilled();\n        }\n\n        if (this.props.onFilled) {\n          this.props.onFilled();\n        }\n\n        return;\n      }\n\n      if (muiFormControl && muiFormControl.onEmpty) {\n        muiFormControl.onEmpty();\n      }\n\n      if (this.props.onEmpty) {\n        this.props.onEmpty();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames, _classNames2;\n\n      var _this$props2 = this.props,\n          autoComplete = _this$props2.autoComplete,\n          autoFocus = _this$props2.autoFocus,\n          classes = _this$props2.classes,\n          classNameProp = _this$props2.className,\n          defaultValue = _this$props2.defaultValue,\n          disabled = _this$props2.disabled,\n          endAdornment = _this$props2.endAdornment,\n          error = _this$props2.error,\n          fullWidth = _this$props2.fullWidth,\n          id = _this$props2.id,\n          inputComponent = _this$props2.inputComponent,\n          _this$props2$inputPro = _this$props2.inputProps;\n      _this$props2$inputPro = _this$props2$inputPro === void 0 ? {} : _this$props2$inputPro;\n      var inputPropsClassName = _this$props2$inputPro.className,\n          inputPropsProp = (0, _objectWithoutProperties2.default)(_this$props2$inputPro, [\"className\"]),\n          inputRef = _this$props2.inputRef,\n          margin = _this$props2.margin,\n          multiline = _this$props2.multiline,\n          name = _this$props2.name,\n          onBlur = _this$props2.onBlur,\n          onChange = _this$props2.onChange,\n          onClick = _this$props2.onClick,\n          onEmpty = _this$props2.onEmpty,\n          onFilled = _this$props2.onFilled,\n          onFocus = _this$props2.onFocus,\n          onKeyDown = _this$props2.onKeyDown,\n          onKeyUp = _this$props2.onKeyUp,\n          placeholder = _this$props2.placeholder,\n          readOnly = _this$props2.readOnly,\n          renderPrefix = _this$props2.renderPrefix,\n          rows = _this$props2.rows,\n          rowsMax = _this$props2.rowsMax,\n          startAdornment = _this$props2.startAdornment,\n          type = _this$props2.type,\n          value = _this$props2.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"autoComplete\", \"autoFocus\", \"classes\", \"className\", \"defaultValue\", \"disabled\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onEmpty\", \"onFilled\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderPrefix\", \"rows\", \"rowsMax\", \"startAdornment\", \"type\", \"value\"]);\n      var muiFormControl = this.context.muiFormControl;\n      var fcs = formControlState({\n        props: this.props,\n        context: this.context,\n        states: ['disabled', 'error', 'margin', 'required', 'filled']\n      });\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, fcs.disabled), (0, _defineProperty2.default)(_classNames, classes.error, fcs.error), (0, _defineProperty2.default)(_classNames, classes.fullWidth, fullWidth), (0, _defineProperty2.default)(_classNames, classes.focused, this.state.focused), (0, _defineProperty2.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty2.default)(_classNames, classes.marginDense, fcs.margin === 'dense'), (0, _defineProperty2.default)(_classNames, classes.multiline, multiline), (0, _defineProperty2.default)(_classNames, classes.adornedStart, startAdornment), (0, _defineProperty2.default)(_classNames, classes.adornedEnd, endAdornment), _classNames), classNameProp);\n      var inputClassName = (0, _classnames.default)(classes.input, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.disabled, fcs.disabled), (0, _defineProperty2.default)(_classNames2, classes.inputType, type !== 'text'), (0, _defineProperty2.default)(_classNames2, classes.inputTypeSearch, type === 'search'), (0, _defineProperty2.default)(_classNames2, classes.inputMultiline, multiline), (0, _defineProperty2.default)(_classNames2, classes.inputMarginDense, fcs.margin === 'dense'), (0, _defineProperty2.default)(_classNames2, classes.inputAdornedStart, startAdornment), (0, _defineProperty2.default)(_classNames2, classes.inputAdornedEnd, endAdornment), _classNames2), inputPropsClassName);\n      var InputComponent = inputComponent;\n      var inputProps = (0, _extends2.default)({}, inputPropsProp, {\n        ref: this.handleRefInput\n      });\n\n      if (typeof InputComponent !== 'string') {\n        inputProps = (0, _extends2.default)({\n          // Rename ref to inputRef as we don't know the\n          // provided `inputComponent` structure.\n          inputRef: this.handleRefInput,\n          type: type\n        }, inputProps, {\n          ref: null\n        });\n      } else if (multiline) {\n        if (rows && !rowsMax) {\n          InputComponent = 'textarea';\n        } else {\n          inputProps = (0, _extends2.default)({\n            rowsMax: rowsMax,\n            textareaRef: this.handleRefInput\n          }, inputProps, {\n            ref: null\n          });\n          InputComponent = _Textarea.default;\n        }\n      } else {\n        inputProps = (0, _extends2.default)({\n          type: type\n        }, inputProps);\n      }\n\n      return _react.default.createElement(\"div\", (0, _extends2.default)({\n        className: className,\n        onClick: this.handleClick\n      }, other), renderPrefix ? renderPrefix((0, _extends2.default)({}, fcs, {\n        startAdornment: startAdornment,\n        focused: this.state.focused\n      })) : null, startAdornment, _react.default.createElement(InputComponent, (0, _extends2.default)({\n        \"aria-invalid\": fcs.error,\n        autoComplete: autoComplete,\n        autoFocus: autoFocus,\n        className: inputClassName,\n        defaultValue: defaultValue,\n        disabled: fcs.disabled,\n        id: id,\n        name: name,\n        onBlur: this.handleBlur,\n        onChange: this.handleChange,\n        onFocus: this.handleFocus,\n        onKeyDown: onKeyDown,\n        onKeyUp: onKeyUp,\n        placeholder: placeholder,\n        readOnly: readOnly,\n        required: fcs.required,\n        rows: rows,\n        value: value\n      }, inputProps)), endAdornment);\n    }\n  }]);\n  return InputBase;\n}(_react.default.Component);\n\nInputBase.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it here:\n   * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill\n   */\n  autoComplete: _propTypes.default.string,\n\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the wrapper element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The default input value, useful when not controlling the component.\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * If `true`, the input will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: _propTypes.default.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The component used for the native input.\n   * Either a string to use a DOM element or a component.\n   */\n  inputComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onEmpty: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFilled: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyUp: _propTypes.default.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: _propTypes.default.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  renderPrefix: _propTypes.default.func,\n\n  /**\n   * If `true`, the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: _propTypes.default.node,\n\n  /**\n   * Type of the input element. It should be a valid HTML5 input type.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The input value, required for a controlled component.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))])\n} : {};\nInputBase.defaultProps = {\n  fullWidth: false,\n  inputComponent: 'input',\n  multiline: false,\n  type: 'text'\n};\nInputBase.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\nInputBase.childContextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiInputBase'\n})(InputBase);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _InputBase.default;\n  }\n});\n\nvar _InputBase = _interopRequireDefault(require(\"./InputBase\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _InputBase = _interopRequireDefault(require(\"../InputBase\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// @inheritedComponent InputBase\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)',\n      borderTopLeftRadius: theme.shape.borderRadius,\n      borderTopRightRadius: theme.shape.borderRadius,\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      }),\n      '&:hover': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)'\n      },\n      '&$focused': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)'\n      },\n      '&$disabled': {\n        backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'\n      }\n    },\n\n    /* Styles applied to the root element. */\n    underline: {\n      '&:after': {\n        borderBottom: \"2px solid \".concat(theme.palette.primary[light ? 'dark' : 'light']),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\"',\n        position: 'absolute',\n        right: 0,\n        transform: 'scaleX(0)',\n        transition: theme.transitions.create('transform', {\n          duration: theme.transitions.duration.shorter,\n          easing: theme.transitions.easing.easeOut\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&$focused:after': {\n        transform: 'scaleX(1)'\n      },\n      '&$error:after': {\n        borderBottomColor: theme.palette.error.main,\n        transform: 'scaleX(1)' // error is always underlined in red\n\n      },\n      '&:before': {\n        borderBottom: \"1px solid \".concat(bottomLineColor),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\\\\00a0\"',\n        position: 'absolute',\n        right: 0,\n        transition: theme.transitions.create('border-bottom-color', {\n          duration: theme.transitions.duration.shorter\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&:hover:not($disabled):not($focused):not($error):before': {\n        borderBottom: \"1px solid \".concat(theme.palette.text.primary)\n      },\n      '&$disabled:before': {\n        borderBottom: \"1px dotted \".concat(bottomLineColor)\n      }\n    },\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {\n      paddingLeft: 12\n    },\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {\n      paddingRight: 12\n    },\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: '27px 12px 10px',\n      boxSizing: 'border-box' // Prevent padding issue with fullWidth.\n\n    },\n\n    /* Styles applied to the `input` element. */\n    input: {\n      padding: '27px 12px 10px'\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 24,\n      paddingBottom: 6\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {\n      paddingLeft: 0\n    },\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {\n      paddingRight: 0\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction FilledInput(props) {\n  var classes = props.classes,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\"]);\n  return _react.default.createElement(_InputBase.default, (0, _extends2.default)({\n    classes: (0, _extends2.default)({}, classes, {\n      root: (0, _classnames.default)(classes.root, classes.underline, {}),\n      underline: null\n    })\n  }, other));\n}\n\nFilledInput.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it here:\n   * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill\n   */\n  autoComplete: _propTypes.default.string,\n\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the wrapper element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The default input value, useful when not controlling the component.\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * If `true`, the input will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: _propTypes.default.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The component used for the native input.\n   * Either a string to use a DOM element or a component.\n   */\n  inputComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: _propTypes.default.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: _propTypes.default.node,\n\n  /**\n   * Type of the input element. It should be a valid HTML5 input type.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The input value, required for a controlled component.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))])\n} : {};\n_InputBase.default.defaultProps = {\n  fullWidth: false,\n  inputComponent: 'input',\n  multiline: false,\n  type: 'text'\n};\nFilledInput.muiName = 'Input';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFilledInput'\n})(FilledInput);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FilledInput.default;\n  }\n});\n\nvar _FilledInput = _interopRequireDefault(require(\"./FilledInput\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _utils = require(\"../InputBase/utils\");\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'inline-flex',\n    flexDirection: 'column',\n    position: 'relative',\n    // Reset fieldset default style.\n    minWidth: 0,\n    padding: 0,\n    margin: 0,\n    border: 0,\n    verticalAlign: 'top' // Fix alignment issue on Safari.\n\n  },\n\n  /* Styles applied to the root element if `margin=\"normal\"`. */\n  marginNormal: {\n    marginTop: 16,\n    marginBottom: 8\n  },\n\n  /* Styles applied to the root element if `margin=\"dense\"`. */\n  marginDense: {\n    marginTop: 8,\n    marginBottom: 4\n  },\n\n  /* Styles applied to the root element if `fullWidth={true}`. */\n  fullWidth: {\n    width: '100%'\n  }\n};\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibilty and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *  - FormLabel\n *  - FormHelperText\n *  - Input\n *  - InputLabel\n */\n\nexports.styles = styles;\n\nvar FormControl =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(FormControl, _React$Component);\n\n  function FormControl(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, FormControl);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(FormControl).call(this));\n\n    _this.handleFocus = function () {\n      _this.setState(function (state) {\n        return !state.focused ? {\n          focused: true\n        } : null;\n      });\n    };\n\n    _this.handleBlur = function () {\n      _this.setState(function (state) {\n        return state.focused ? {\n          focused: false\n        } : null;\n      });\n    };\n\n    _this.handleDirty = function () {\n      if (!_this.state.filled) {\n        _this.setState({\n          filled: true\n        });\n      }\n    };\n\n    _this.handleClean = function () {\n      if (_this.state.filled) {\n        _this.setState({\n          filled: false\n        });\n      }\n    };\n\n    _this.state = {\n      adornedStart: false,\n      filled: false,\n      focused: false\n    }; // We need to iterate through the children and find the Input in order\n    // to fully support server side rendering.\n\n    var children = props.children;\n\n    if (children) {\n      _react.default.Children.forEach(children, function (child) {\n        if (!(0, _reactHelpers.isMuiElement)(child, ['Input', 'Select'])) {\n          return;\n        }\n\n        if ((0, _utils.isFilled)(child.props, true)) {\n          _this.state.filled = true;\n        }\n\n        var input = (0, _reactHelpers.isMuiElement)(child, ['Select']) ? child.props.input : child;\n\n        if (input && (0, _utils.isAdornedStart)(input.props)) {\n          _this.state.adornedStart = true;\n        }\n      });\n    }\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(FormControl, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      var _this$props = this.props,\n          disabled = _this$props.disabled,\n          error = _this$props.error,\n          required = _this$props.required,\n          margin = _this$props.margin,\n          variant = _this$props.variant;\n      var _this$state = this.state,\n          adornedStart = _this$state.adornedStart,\n          filled = _this$state.filled,\n          focused = _this$state.focused;\n      return {\n        muiFormControl: {\n          adornedStart: adornedStart,\n          disabled: disabled,\n          error: error,\n          filled: filled,\n          focused: focused,\n          margin: margin,\n          onBlur: this.handleBlur,\n          onEmpty: this.handleClean,\n          onFilled: this.handleDirty,\n          onFocus: this.handleFocus,\n          required: required,\n          variant: variant\n        }\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props2 = this.props,\n          classes = _this$props2.classes,\n          className = _this$props2.className,\n          Component = _this$props2.component,\n          disabled = _this$props2.disabled,\n          error = _this$props2.error,\n          fullWidth = _this$props2.fullWidth,\n          margin = _this$props2.margin,\n          required = _this$props2.required,\n          variant = _this$props2.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"classes\", \"className\", \"component\", \"disabled\", \"error\", \"fullWidth\", \"margin\", \"required\", \"variant\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"margin\".concat((0, _helpers.capitalize)(margin))], margin !== 'none'), (0, _defineProperty2.default)(_classNames, classes.fullWidth, fullWidth), _classNames), className)\n      }, other));\n    }\n  }]);\n  return FormControl;\n}(_react.default.Component);\n\nFormControl.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The contents of the form control.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the label, input and helper text should be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label should be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the component will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n   */\n  margin: _propTypes.default.oneOf(['none', 'dense', 'normal']),\n\n  /**\n   * If `true`, the label will indicate that the input is required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nFormControl.defaultProps = {\n  component: 'div',\n  disabled: false,\n  error: false,\n  fullWidth: false,\n  margin: 'none',\n  required: false,\n  variant: 'standard'\n};\nFormControl.childContextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFormControl'\n})(FormControl);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FormControl.default;\n  }\n});\n\nvar _FormControl = _interopRequireDefault(require(\"./FormControl\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\n/* eslint-disable jsx-a11y/label-has-for */\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      cursor: 'pointer',\n      // For correct alignment with the text.\n      verticalAlign: 'middle',\n      // Remove grey highlight\n      WebkitTapHighlightColor: 'transparent',\n      marginLeft: -14,\n      marginRight: 16,\n      // used for row presentation of radio/checkbox\n      '&$disabled': {\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the root element if `labelPlacement=\"start\"`. */\n    labelPlacementStart: {\n      flexDirection: 'row-reverse',\n      marginLeft: 16,\n      // used for row presentation of radio/checkbox\n      marginRight: -14\n    },\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the label's Typography component. */\n    label: {\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    }\n  };\n};\n/**\n * Drop in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\n\n\nexports.styles = styles;\n\nfunction FormControlLabel(props, context) {\n  var _classNames;\n\n  var checked = props.checked,\n      classes = props.classes,\n      classNameProp = props.className,\n      control = props.control,\n      disabledProp = props.disabled,\n      inputRef = props.inputRef,\n      label = props.label,\n      labelPlacement = props.labelPlacement,\n      name = props.name,\n      onChange = props.onChange,\n      value = props.value,\n      other = (0, _objectWithoutProperties2.default)(props, [\"checked\", \"classes\", \"className\", \"control\", \"disabled\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"value\"]);\n  var muiFormControl = context.muiFormControl;\n  var disabled = disabledProp;\n\n  if (typeof disabled === 'undefined' && typeof control.props.disabled !== 'undefined') {\n    disabled = control.props.disabled;\n  }\n\n  if (typeof disabled === 'undefined' && muiFormControl) {\n    disabled = muiFormControl.disabled;\n  }\n\n  var controlProps = {\n    disabled: disabled\n  };\n  ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(function (key) {\n    if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n      controlProps[key] = props[key];\n    }\n  });\n  return _react.default.createElement(\"label\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.labelPlacementStart, labelPlacement === 'start'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp)\n  }, other), _react.default.cloneElement(control, controlProps), _react.default.createElement(_Typography.default, {\n    component: \"span\",\n    className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.disabled, disabled))\n  }, label));\n}\n\nFormControlLabel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the component appears selected.\n   */\n  checked: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * A control element. For instance, it can be be a `Radio`, a `Switch` or a `Checkbox`.\n   */\n  control: _propTypes.default.element,\n\n  /**\n   * If `true`, the control will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The text to be used in an enclosing label element.\n   */\n  label: _propTypes.default.node,\n\n  /**\n   * The position of the label.\n   */\n  labelPlacement: _propTypes.default.oneOf(['end', 'start']),\n\n  /*\n   * @ignore\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.checked`.\n   * @param {boolean} checked The `checked` value of the switch\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The value of the component.\n   */\n  value: _propTypes.default.string\n} : {};\nFormControlLabel.defaultProps = {\n  labelPlacement: 'end'\n};\nFormControlLabel.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFormControlLabel'\n})(FormControlLabel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FormControlLabel.default;\n  }\n});\n\nvar _FormControlLabel = _interopRequireDefault(require(\"./FormControlLabel\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    flexDirection: 'column',\n    flexWrap: 'wrap'\n  },\n\n  /* Styles applied to the root element if `row={true}`. */\n  row: {\n    flexDirection: 'row'\n  }\n};\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\n\nexports.styles = styles;\n\nfunction FormGroup(props) {\n  var classes = props.classes,\n      className = props.className,\n      children = props.children,\n      row = props.row,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"children\", \"row\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.row, row), className)\n  }, other), children);\n}\n\nFormGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Display group of elements in a compact row.\n   */\n  row: _propTypes.default.bool\n} : {};\nFormGroup.defaultProps = {\n  row: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFormGroup'\n})(FormGroup);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FormGroup.default;\n  }\n});\n\nvar _FormGroup = _interopRequireDefault(require(\"./FormGroup\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _InputBase = require(\"../InputBase/InputBase\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.secondary,\n      fontFamily: theme.typography.fontFamily,\n      fontSize: theme.typography.pxToRem(12),\n      textAlign: 'left',\n      marginTop: 8,\n      lineHeight: '1em',\n      minHeight: '1em',\n      margin: 0,\n      '&$error': {\n        color: theme.palette.error.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `margin=\"dense\"`. */\n    marginDense: {\n      marginTop: 4\n    },\n\n    /* Styles applied to the root element if `variant=\"filled\"` or `variant=\"outlined\"`. */\n    contained: {\n      margin: '8px 12px 0'\n    },\n\n    /* Styles applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Styles applied to the root element if `filled={true}`. */\n    filled: {},\n\n    /* Styles applied to the root element if `required={true}`. */\n    required: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction FormHelperText(props, context) {\n  var _classNames;\n\n  var classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      disabled = props.disabled,\n      error = props.error,\n      filled = props.filled,\n      focused = props.focused,\n      margin = props.margin,\n      required = props.required,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"]);\n  var fcs = (0, _InputBase.formControlState)({\n    props: props,\n    context: context,\n    states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']\n  });\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.contained, fcs.variant === 'filled' || fcs.variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes.marginDense, fcs.margin === 'dense'), (0, _defineProperty2.default)(_classNames, classes.disabled, fcs.disabled), (0, _defineProperty2.default)(_classNames, classes.error, fcs.error), (0, _defineProperty2.default)(_classNames, classes.filled, fcs.filled), (0, _defineProperty2.default)(_classNames, classes.focused, fcs.focused), (0, _defineProperty2.default)(_classNames, classes.required, fcs.required), _classNames), classNameProp)\n  }, other));\n}\n\nFormHelperText.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the helper text should be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, helper text should be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the helper text should use filled classes key.\n   */\n  filled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the helper text should use focused classes key.\n   */\n  focused: _propTypes.default.bool,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense']),\n\n  /**\n   * If `true`, the helper text should use required classes key.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nFormHelperText.defaultProps = {\n  component: 'p'\n};\nFormHelperText.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFormHelperText'\n})(FormHelperText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FormHelperText.default;\n  }\n});\n\nvar _FormHelperText = _interopRequireDefault(require(\"./FormHelperText\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _InputBase = require(\"../InputBase/InputBase\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      fontFamily: theme.typography.fontFamily,\n      color: theme.palette.text.secondary,\n      fontSize: theme.typography.pxToRem(16),\n      lineHeight: 1,\n      padding: 0,\n      '&$focused': {\n        color: theme.palette.primary[theme.palette.type === 'light' ? 'dark' : 'light']\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    },\n\n    /* Styles applied to the root element if `focused={true}`. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element if `filled={true}`. */\n    filled: {},\n\n    /* Styles applied to the root element if `required={true}`. */\n    required: {},\n    asterisk: {\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction FormLabel(props, context) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      disabled = props.disabled,\n      error = props.error,\n      filled = props.filled,\n      focused = props.focused,\n      required = props.required,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"]);\n  var fcs = (0, _InputBase.formControlState)({\n    props: props,\n    context: context,\n    states: ['required', 'focused', 'disabled', 'error', 'filled']\n  });\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, fcs.disabled), (0, _defineProperty2.default)(_classNames, classes.error, fcs.error), (0, _defineProperty2.default)(_classNames, classes.filled, fcs.filled), (0, _defineProperty2.default)(_classNames, classes.focused, fcs.focused), (0, _defineProperty2.default)(_classNames, classes.required, fcs.required), _classNames), classNameProp)\n  }, other), children, fcs.required && _react.default.createElement(\"span\", {\n    className: (0, _classnames.default)(classes.asterisk, (0, _defineProperty2.default)({}, classes.error, fcs.error))\n  }, \"\\u2009*\"));\n}\n\nFormLabel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the label should be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label should be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label should use filled classes key.\n   */\n  filled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input of this label is focused (used by `FormGroup` components).\n   */\n  focused: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label will indicate that the input is required.\n   */\n  required: _propTypes.default.bool\n} : {};\nFormLabel.defaultProps = {\n  component: 'label'\n};\nFormLabel.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiFormLabel'\n})(FormLabel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _FormLabel.default;\n  }\n});\n\nvar _FormLabel = _interopRequireDefault(require(\"./FormLabel\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction requirePropFactory(componentNameInError) {\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV === 'production') {\n    return function () {\n      return null;\n    };\n  }\n\n  var requireProp = function requireProp(requiredProp) {\n    return function (props, propName, componentName, location, propFullName) {\n      var propFullNameSafe = propFullName || propName;\n\n      if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n        return new Error(\"The property `\".concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameInError, \"` must be used on `\").concat(requiredProp, \"`.\"));\n      }\n\n      return null;\n    };\n  };\n\n  return requireProp;\n}\n\nvar _default = requirePropFactory;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _createBreakpoints = require(\"../styles/createBreakpoints\");\n\nvar _requirePropFactory = _interopRequireDefault(require(\"../utils/requirePropFactory\"));\n\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - http://v4-alpha.getbootstrap.com/layout/flexbox-grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nvar GUTTERS = [0, 8, 16, 24, 32, 40];\nvar GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nfunction generateGrid(globalStyles, theme, breakpoint) {\n  var styles = {};\n  GRID_SIZES.forEach(function (size) {\n    var key = \"grid-\".concat(breakpoint, \"-\").concat(size);\n\n    if (size === true) {\n      // For the auto layouting\n      styles[key] = {\n        flexBasis: 0,\n        flexGrow: 1,\n        maxWidth: '100%'\n      };\n      return;\n    }\n\n    if (size === 'auto') {\n      styles[key] = {\n        flexBasis: 'auto',\n        flexGrow: 0,\n        maxWidth: 'none'\n      };\n      return;\n    } // Keep 7 significant numbers.\n\n\n    var width = \"\".concat(Math.round(size / 12 * 10e7) / 10e5, \"%\"); // Close to the bootstrap implementation:\n    // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n\n    styles[key] = {\n      flexBasis: width,\n      flexGrow: 0,\n      maxWidth: width\n    };\n  }); // No need for a media query for the first size.\n\n  if (breakpoint === 'xs') {\n    (0, _extends2.default)(globalStyles, styles);\n  } else {\n    globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n  }\n}\n\nfunction generateGutter(theme, breakpoint) {\n  var styles = {};\n  GUTTERS.forEach(function (spacing, index) {\n    if (index === 0) {\n      // Skip the default style.\n      return;\n    }\n\n    styles[\"spacing-\".concat(breakpoint, \"-\").concat(spacing)] = {\n      margin: -spacing / 2,\n      width: \"calc(100% + \".concat(spacing, \"px)\"),\n      '& > $item': {\n        padding: spacing / 2\n      }\n    };\n  });\n  return styles;\n} // Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\n\n\nvar styles = function styles(theme) {\n  return (0, _extends2.default)({\n    /* Styles applied to the root element if `container={true}`. */\n    container: {\n      boxSizing: 'border-box',\n      display: 'flex',\n      flexWrap: 'wrap',\n      width: '100%'\n    },\n\n    /* Styles applied to the root element if `item={true}`. */\n    item: {\n      boxSizing: 'border-box',\n      margin: '0' // For instance, it's useful when used with a `figure` element.\n\n    },\n\n    /* Styles applied to the root element if `zeroMinWidth={true}`. */\n    zeroMinWidth: {\n      minWidth: 0\n    },\n\n    /* Styles applied to the root element if `direction=\"column\"`. */\n    'direction-xs-column': {\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the root element if `direction=\"column-reverse\"`. */\n    'direction-xs-column-reverse': {\n      flexDirection: 'column-reverse'\n    },\n\n    /* Styles applied to the root element if `direction=\"rwo-reverse\"`. */\n    'direction-xs-row-reverse': {\n      flexDirection: 'row-reverse'\n    },\n\n    /* Styles applied to the root element if `wrap=\"nowrap\"`. */\n    'wrap-xs-nowrap': {\n      flexWrap: 'nowrap'\n    },\n\n    /* Styles applied to the root element if `wrap=\"reverse\"`. */\n    'wrap-xs-wrap-reverse': {\n      flexWrap: 'wrap-reverse'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"center\"`. */\n    'align-items-xs-center': {\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"flex-start\"`. */\n    'align-items-xs-flex-start': {\n      alignItems: 'flex-start'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"flex-end\"`. */\n    'align-items-xs-flex-end': {\n      alignItems: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `alignItems=\"baseline\"`. */\n    'align-items-xs-baseline': {\n      alignItems: 'baseline'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"center\"`. */\n    'align-content-xs-center': {\n      alignContent: 'center'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"flex-start\"`. */\n    'align-content-xs-flex-start': {\n      alignContent: 'flex-start'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"flex-end\"`. */\n    'align-content-xs-flex-end': {\n      alignContent: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"space-between\"`. */\n    'align-content-xs-space-between': {\n      alignContent: 'space-between'\n    },\n\n    /* Styles applied to the root element if `alignContent=\"space-around\"`. */\n    'align-content-xs-space-around': {\n      alignContent: 'space-around'\n    },\n\n    /* Styles applied to the root element if `justify=\"center\"`. */\n    'justify-xs-center': {\n      justifyContent: 'center'\n    },\n\n    /* Styles applied to the root element if `justify=\"flex-end\"`. */\n    'justify-xs-flex-end': {\n      justifyContent: 'flex-end'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-between\"`. */\n    'justify-xs-space-between': {\n      justifyContent: 'space-between'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-around\"`. */\n    'justify-xs-space-around': {\n      justifyContent: 'space-around'\n    },\n\n    /* Styles applied to the root element if `justify=\"space-evenly\"`. */\n    'justify-xs-space-evenly': {\n      justifyContent: 'space-evenly'\n    }\n  }, generateGutter(theme, 'xs'), _createBreakpoints.keys.reduce(function (accumulator, key) {\n    // Use side effect over immutability for better performance.\n    generateGrid(accumulator, theme, key);\n    return accumulator;\n  }, {}));\n};\n\nexports.styles = styles;\n\nfunction Grid(props) {\n  var _classNames;\n\n  var alignContent = props.alignContent,\n      alignItems = props.alignItems,\n      classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      container = props.container,\n      direction = props.direction,\n      item = props.item,\n      justify = props.justify,\n      lg = props.lg,\n      md = props.md,\n      sm = props.sm,\n      spacing = props.spacing,\n      wrap = props.wrap,\n      xl = props.xl,\n      xs = props.xs,\n      zeroMinWidth = props.zeroMinWidth,\n      other = (0, _objectWithoutProperties2.default)(props, [\"alignContent\", \"alignItems\", \"classes\", \"className\", \"component\", \"container\", \"direction\", \"item\", \"justify\", \"lg\", \"md\", \"sm\", \"spacing\", \"wrap\", \"xl\", \"xs\", \"zeroMinWidth\"]);\n  var className = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.container, container), (0, _defineProperty2.default)(_classNames, classes.item, item), (0, _defineProperty2.default)(_classNames, classes.zeroMinWidth, zeroMinWidth), (0, _defineProperty2.default)(_classNames, classes[\"spacing-xs-\".concat(String(spacing))], container && spacing !== 0), (0, _defineProperty2.default)(_classNames, classes[\"direction-xs-\".concat(String(direction))], direction !== Grid.defaultProps.direction), (0, _defineProperty2.default)(_classNames, classes[\"wrap-xs-\".concat(String(wrap))], wrap !== Grid.defaultProps.wrap), (0, _defineProperty2.default)(_classNames, classes[\"align-items-xs-\".concat(String(alignItems))], alignItems !== Grid.defaultProps.alignItems), (0, _defineProperty2.default)(_classNames, classes[\"align-content-xs-\".concat(String(alignContent))], alignContent !== Grid.defaultProps.alignContent), (0, _defineProperty2.default)(_classNames, classes[\"justify-xs-\".concat(String(justify))], justify !== Grid.defaultProps.justify), (0, _defineProperty2.default)(_classNames, classes[\"grid-xs-\".concat(String(xs))], xs !== false), (0, _defineProperty2.default)(_classNames, classes[\"grid-sm-\".concat(String(sm))], sm !== false), (0, _defineProperty2.default)(_classNames, classes[\"grid-md-\".concat(String(md))], md !== false), (0, _defineProperty2.default)(_classNames, classes[\"grid-lg-\".concat(String(lg))], lg !== false), (0, _defineProperty2.default)(_classNames, classes[\"grid-xl-\".concat(String(xl))], xl !== false), _classNames), classNameProp);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other));\n}\n\nGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Defines the `align-content` style property.\n   * It's applied for all screen sizes.\n   */\n  alignContent: _propTypes.default.oneOf(['stretch', 'center', 'flex-start', 'flex-end', 'space-between', 'space-around']),\n\n  /**\n   * Defines the `align-items` style property.\n   * It's applied for all screen sizes.\n   */\n  alignItems: _propTypes.default.oneOf(['flex-start', 'center', 'flex-end', 'stretch', 'baseline']),\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the component will have the flex *container* behavior.\n   * You should be wrapping *items* with a *container*.\n   */\n  container: _propTypes.default.bool,\n\n  /**\n   * Defines the `flex-direction` style property.\n   * It is applied for all screen sizes.\n   */\n  direction: _propTypes.default.oneOf(['row', 'row-reverse', 'column', 'column-reverse']),\n\n  /**\n   * If `true`, the component will have the flex *item* behavior.\n   * You should be wrapping *items* with a *container*.\n   */\n  item: _propTypes.default.bool,\n\n  /**\n   * Defines the `justify-content` style property.\n   * It is applied for all screen sizes.\n   */\n  justify: _propTypes.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around', 'space-evenly']),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `lg` breakpoint and wider screens if not overridden.\n   */\n  lg: _propTypes.default.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `md` breakpoint and wider screens if not overridden.\n   */\n  md: _propTypes.default.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `sm` breakpoint and wider screens if not overridden.\n   */\n  sm: _propTypes.default.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the space between the type `item` component.\n   * It can only be used on a type `container` component.\n   */\n  spacing: _propTypes.default.oneOf(GUTTERS),\n\n  /**\n   * Defines the `flex-wrap` style property.\n   * It's applied for all screen sizes.\n   */\n  wrap: _propTypes.default.oneOf(['nowrap', 'wrap', 'wrap-reverse']),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for the `xl` breakpoint and wider screens.\n   */\n  xl: _propTypes.default.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * Defines the number of grids the component is going to use.\n   * It's applied for all the screen sizes with the lowest priority.\n   */\n  xs: _propTypes.default.oneOf([false, 'auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]),\n\n  /**\n   * If `true`, it sets `min-width: 0` on the item.\n   * Refer to the limitations section of the documentation to better understand the use case.\n   */\n  zeroMinWidth: _propTypes.default.bool\n} : {};\nGrid.defaultProps = {\n  alignContent: 'stretch',\n  alignItems: 'stretch',\n  component: 'div',\n  container: false,\n  direction: 'row',\n  item: false,\n  justify: 'flex-start',\n  lg: false,\n  md: false,\n  sm: false,\n  spacing: 0,\n  wrap: 'wrap',\n  xl: false,\n  xs: false,\n  zeroMinWidth: false\n};\nvar StyledGrid = (0, _withStyles.default)(styles, {\n  name: 'MuiGrid'\n})(Grid);\n\nif (process.env.NODE_ENV !== 'production') {\n  var requireProp = (0, _requirePropFactory.default)('Grid');\n  StyledGrid.propTypes = (0, _extends2.default)({}, StyledGrid.propTypes, {\n    alignContent: requireProp('container'),\n    alignItems: requireProp('container'),\n    direction: requireProp('container'),\n    justify: requireProp('container'),\n    lg: requireProp('item'),\n    md: requireProp('item'),\n    sm: requireProp('item'),\n    spacing: requireProp('container'),\n    wrap: requireProp('container'),\n    xs: requireProp('item'),\n    zeroMinWidth: requireProp('zeroMinWidth')\n  });\n}\n\nvar _default = StyledGrid;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Grid.default;\n  }\n});\n\nvar _Grid = _interopRequireDefault(require(\"./Grid\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    flexWrap: 'wrap',\n    overflowY: 'auto',\n    listStyle: 'none',\n    padding: 0,\n    WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling.\n\n  }\n};\nexports.styles = styles;\n\nfunction GridList(props) {\n  var cellHeight = props.cellHeight,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      cols = props.cols,\n      Component = props.component,\n      spacing = props.spacing,\n      style = props.style,\n      other = (0, _objectWithoutProperties2.default)(props, [\"cellHeight\", \"children\", \"classes\", \"className\", \"cols\", \"component\", \"spacing\", \"style\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classNameProp),\n    style: (0, _extends2.default)({\n      margin: -spacing / 2\n    }, style)\n  }, other), _react.default.Children.map(children, function (child) {\n    if (!_react.default.isValidElement(child)) {\n      return null;\n    }\n\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the GridList component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n    var childCols = child.props.cols || 1;\n    var childRows = child.props.rows || 1;\n    return _react.default.cloneElement(child, {\n      style: (0, _extends2.default)({\n        width: \"\".concat(100 / cols * childCols, \"%\"),\n        height: cellHeight === 'auto' ? 'auto' : cellHeight * childRows + spacing,\n        padding: spacing / 2\n      }, child.props.style)\n    });\n  }));\n}\n\nGridList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Number of px for one cell height.\n   * You can set `'auto'` if you want to let the children determine the height.\n   */\n  cellHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['auto'])]),\n\n  /**\n   * Grid Tiles that will be in Grid List.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Number of columns.\n   */\n  cols: _propTypes.default.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Number of px for the spacing between tiles.\n   */\n  spacing: _propTypes.default.number,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object\n} : {};\nGridList.defaultProps = {\n  cellHeight: 180,\n  cols: 2,\n  component: 'ul',\n  spacing: 4\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiGridList'\n})(GridList);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _GridList.default;\n  }\n});\n\nvar _GridList = _interopRequireDefault(require(\"./GridList\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    boxSizing: 'border-box',\n    flexShrink: 0\n  },\n\n  /* Styles applied to the `div` element that wraps the children. */\n  tile: {\n    position: 'relative',\n    display: 'block',\n    // In case it's not rendered with a div.\n    height: '100%',\n    overflow: 'hidden'\n  },\n\n  /* Styles applied to an `ing` element child, if if needed to ensure it covers the tile. */\n  imgFullHeight: {\n    height: '100%',\n    transform: 'translateX(-50%)',\n    position: 'relative',\n    left: '50%'\n  },\n\n  /* Styles applied to an `ing` element child, if if needed to ensure it covers the tile. */\n  imgFullWidth: {\n    width: '100%',\n    position: 'relative',\n    transform: 'translateY(-50%)',\n    top: '50%'\n  }\n};\nexports.styles = styles;\n\nvar GridListTile =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(GridListTile, _React$Component);\n\n  function GridListTile() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, GridListTile);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(GridListTile)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.handleResize = (0, _debounce.default)(function () {\n      _this.fit();\n    }, 166);\n\n    _this.fit = function () {\n      var imgElement = _this.imgElement;\n\n      if (!imgElement || !imgElement.complete) {\n        return;\n      }\n\n      if (imgElement.width / imgElement.height > imgElement.parentNode.offsetWidth / imgElement.parentNode.offsetHeight) {\n        var _imgElement$classList, _imgElement$classList2;\n\n        (_imgElement$classList = imgElement.classList).remove.apply(_imgElement$classList, (0, _toConsumableArray2.default)(_this.props.classes.imgFullWidth.split(' ')));\n\n        (_imgElement$classList2 = imgElement.classList).add.apply(_imgElement$classList2, (0, _toConsumableArray2.default)(_this.props.classes.imgFullHeight.split(' ')));\n      } else {\n        var _imgElement$classList3, _imgElement$classList4;\n\n        (_imgElement$classList3 = imgElement.classList).remove.apply(_imgElement$classList3, (0, _toConsumableArray2.default)(_this.props.classes.imgFullHeight.split(' ')));\n\n        (_imgElement$classList4 = imgElement.classList).add.apply(_imgElement$classList4, (0, _toConsumableArray2.default)(_this.props.classes.imgFullWidth.split(' ')));\n      }\n\n      imgElement.removeEventListener('load', _this.fit);\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(GridListTile, [{\n    key: \"componentDidMount\",\n    // Corresponds to 10 frames at 60 Hz.\n    value: function componentDidMount() {\n      this.ensureImageCover();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.ensureImageCover();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleResize.clear();\n    }\n  }, {\n    key: \"ensureImageCover\",\n    value: function ensureImageCover() {\n      if (!this.imgElement) {\n        return;\n      }\n\n      if (this.imgElement.complete) {\n        this.fit();\n      } else {\n        this.imgElement.addEventListener('load', this.fit);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          cols = _this$props.cols,\n          Component = _this$props.component,\n          rows = _this$props.rows,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"classes\", \"className\", \"cols\", \"component\", \"rows\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, className)\n      }, other), _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }), _react.default.createElement(\"div\", {\n        className: classes.tile\n      }, _react.default.Children.map(children, function (child) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        if (child.type === 'img') {\n          return _react.default.cloneElement(child, {\n            ref: function ref(node) {\n              _this2.imgElement = node;\n            }\n          });\n        }\n\n        return child;\n      })));\n    }\n  }]);\n  return GridListTile;\n}(_react.default.Component);\n\nGridListTile.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Theoretically you can pass any node as children, but the main use case is to pass an img,\n   * in which case GridListTile takes care of making the image \"cover\" available space\n   * (similar to `background-size: cover` or to `object-fit: cover`).\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Width of the tile in number of grid cells.\n   */\n  cols: _propTypes.default.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Height of the tile in number of grid cells.\n   */\n  rows: _propTypes.default.number\n} : {};\nGridListTile.defaultProps = {\n  cols: 1,\n  component: 'li',\n  rows: 1\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiGridListTile'\n})(GridListTile);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _GridListTile.default;\n  }\n});\n\nvar _GridListTile = _interopRequireDefault(require(\"./GridListTile\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'absolute',\n      left: 0,\n      right: 0,\n      height: 48,\n      background: 'rgba(0, 0, 0, 0.5)',\n      display: 'flex',\n      alignItems: 'center',\n      fontFamily: theme.typography.fontFamily\n    },\n\n    /* Styles applied to the root element if `titlePosition=\"bottom\"`. */\n    titlePositionBottom: {\n      bottom: 0\n    },\n\n    /* Styles applied to the root element if `titlePosition=\"top\"`. */\n    titlePositionTop: {\n      top: 0\n    },\n\n    /* Styles applied to the root element if a `subtitle` is provided. */\n    rootSubtitle: {\n      height: 68\n    },\n\n    /* Styles applied to the title and subtitle container element. */\n    titleWrap: {\n      flexGrow: 1,\n      marginLeft: theme.mixins.gutters().paddingLeft,\n      marginRight: theme.mixins.gutters().paddingRight,\n      color: theme.palette.common.white,\n      overflow: 'hidden'\n    },\n\n    /* Styles applied to the container element if `actionPosition=\"left\"`. */\n    titleWrapActionPosLeft: {\n      marginLeft: 0\n    },\n\n    /* Styles applied to the container element if `actionPosition=\"right\"`. */\n    titleWrapActionPosRight: {\n      marginRight: 0\n    },\n\n    /* Styles applied to the title container element. */\n    title: {\n      fontSize: theme.typography.pxToRem(16),\n      lineHeight: '24px',\n      textOverflow: 'ellipsis',\n      overflow: 'hidden',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the subtitle container element. */\n    subtitle: {\n      fontSize: theme.typography.pxToRem(12),\n      lineHeight: 1,\n      textOverflow: 'ellipsis',\n      overflow: 'hidden',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the actionIcon if supplied. */\n    actionIcon: {},\n\n    /* Styles applied to the actionIcon if `actionPosition=\"left\". */\n    actionIconActionPosLeft: {\n      order: -1\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction GridListTileBar(props) {\n  var _classNames, _classNames2;\n\n  var actionIcon = props.actionIcon,\n      actionPosition = props.actionPosition,\n      classes = props.classes,\n      classNameProp = props.className,\n      subtitle = props.subtitle,\n      title = props.title,\n      titlePosition = props.titlePosition,\n      other = (0, _objectWithoutProperties2.default)(props, [\"actionIcon\", \"actionPosition\", \"classes\", \"className\", \"subtitle\", \"title\", \"titlePosition\"]);\n  var actionPos = actionIcon && actionPosition;\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.titlePositionBottom, titlePosition === 'bottom'), (0, _defineProperty2.default)(_classNames, classes.titlePositionTop, titlePosition === 'top'), (0, _defineProperty2.default)(_classNames, classes.rootSubtitle, subtitle), _classNames), classNameProp); // Remove the margin between the title / subtitle wrapper, and the Action Icon\n\n  var titleWrapClassName = (0, _classnames.default)(classes.titleWrap, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.titleWrapActionPosLeft, actionPos === 'left'), (0, _defineProperty2.default)(_classNames2, classes.titleWrapActionPosRight, actionPos === 'right'), _classNames2));\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: className\n  }, other), _react.default.createElement(\"div\", {\n    className: titleWrapClassName\n  }, _react.default.createElement(\"div\", {\n    className: classes.title\n  }, title), subtitle ? _react.default.createElement(\"div\", {\n    className: classes.subtitle\n  }, subtitle) : null), actionIcon ? _react.default.createElement(\"div\", {\n    className: (0, _classnames.default)(classes.actionIcon, (0, _defineProperty2.default)({}, classes.actionIconActionPosLeft, actionPos === 'left'))\n  }, actionIcon) : null);\n}\n\nGridListTileBar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * An IconButton element to be used as secondary action target\n   * (primary action target is the tile itself).\n   */\n  actionIcon: _propTypes.default.node,\n\n  /**\n   * Position of secondary action IconButton.\n   */\n  actionPosition: _propTypes.default.oneOf(['left', 'right']),\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * String or element serving as subtitle (support text).\n   */\n  subtitle: _propTypes.default.node,\n\n  /**\n   * Title to be displayed on tile.\n   */\n  title: _propTypes.default.node,\n\n  /**\n   * Position of the title bar.\n   */\n  titlePosition: _propTypes.default.oneOf(['top', 'bottom'])\n} : {};\nGridListTileBar.defaultProps = {\n  actionPosition: 'right',\n  titlePosition: 'bottom'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiGridListTileBar'\n})(GridListTileBar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _GridListTileBar.default;\n  }\n});\n\nvar _GridListTileBar = _interopRequireDefault(require(\"./GridListTileBar\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _utils = require(\"../transitions/utils\");\n\n// @inheritedComponent Transition\nfunction getScale(value) {\n  return \"scale(\".concat(value, \", \").concat(Math.pow(value, 2), \")\");\n}\n\nvar styles = {\n  entering: {\n    opacity: 1,\n    transform: getScale(1)\n  },\n  entered: {\n    opacity: 1,\n    // Use translateZ to scrolling issue on Chrome.\n    transform: \"\".concat(getScale(1), \" translateZ(0)\")\n  }\n};\n/**\n * The Grow transition is used by the [Tooltip](/demos/tooltips) and\n * [Popover](/utils/popover) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Grow =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Grow, _React$Component);\n\n  function Grow() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Grow);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Grow)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleEnter = function (node) {\n      var _this$props = _this.props,\n          theme = _this$props.theme,\n          timeout = _this$props.timeout;\n      (0, _utils.reflow)(node); // So the animation always start from the start.\n\n      var _getTransitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'enter'\n      }),\n          transitionDuration = _getTransitionProps.duration,\n          delay = _getTransitionProps.delay;\n\n      var duration = 0;\n\n      if (timeout === 'auto') {\n        duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n        _this.autoTimeout = duration;\n      } else {\n        duration = transitionDuration;\n      }\n\n      node.style.transition = [theme.transitions.create('opacity', {\n        duration: duration,\n        delay: delay\n      }), theme.transitions.create('transform', {\n        duration: duration * 0.666,\n        delay: delay\n      })].join(',');\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.handleExit = function (node) {\n      var _this$props2 = _this.props,\n          theme = _this$props2.theme,\n          timeout = _this$props2.timeout;\n      var duration = 0;\n\n      var _getTransitionProps2 = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'exit'\n      }),\n          transitionDuration = _getTransitionProps2.duration,\n          delay = _getTransitionProps2.delay;\n\n      if (timeout === 'auto') {\n        duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n        _this.autoTimeout = duration;\n      } else {\n        duration = transitionDuration;\n      }\n\n      node.style.transition = [theme.transitions.create('opacity', {\n        duration: duration,\n        delay: delay\n      }), theme.transitions.create('transform', {\n        duration: duration * 0.666,\n        delay: delay || duration * 0.333\n      })].join(',');\n      node.style.opacity = '0';\n      node.style.transform = getScale(0.75);\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    _this.addEndListener = function (_, next) {\n      if (_this.props.timeout === 'auto') {\n        _this.timer = setTimeout(next, _this.autoTimeout || 0);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Grow, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.timer);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          children = _this$props3.children,\n          onEnter = _this$props3.onEnter,\n          onExit = _this$props3.onExit,\n          styleProp = _this$props3.style,\n          theme = _this$props3.theme,\n          timeout = _this$props3.timeout,\n          other = (0, _objectWithoutProperties2.default)(_this$props3, [\"children\", \"onEnter\", \"onExit\", \"style\", \"theme\", \"timeout\"]);\n      var style = (0, _extends2.default)({}, styleProp, _react.default.isValidElement(children) ? children.props.style : {});\n      return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        appear: true,\n        onEnter: this.handleEnter,\n        onExit: this.handleExit,\n        addEndListener: this.addEndListener,\n        timeout: timeout === 'auto' ? null : timeout\n      }, other), function (state, childProps) {\n        return _react.default.cloneElement(children, (0, _extends2.default)({\n          style: (0, _extends2.default)({\n            opacity: 0,\n            transform: getScale(0.75)\n          }, styles[state], style)\n        }, childProps));\n      });\n    }\n  }]);\n  return Grow;\n}(_react.default.Component);\n\nGrow.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A single child content element.\n   */\n  children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),\n\n  /**\n   * If `true`, show the component; triggers the enter or exit animation.\n   */\n  in: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  timeout: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  }), _propTypes.default.oneOf(['auto'])])\n} : {};\nGrow.defaultProps = {\n  timeout: 'auto'\n};\nGrow.muiSupportAuto = true;\n\nvar _default = (0, _withTheme.default)()(Grow);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Grow.default;\n  }\n});\n\nvar _Grow = _interopRequireDefault(require(\"./Grow\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.isWidthDown = exports.isWidthUp = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"recompose/wrapDisplayName\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _createBreakpoints = require(\"../styles/createBreakpoints\");\n\nvar _getThemeProps2 = _interopRequireDefault(require(\"../styles/getThemeProps\"));\n\n/* eslint-disable react/no-did-mount-set-state */\n// < 1kb payload overhead when lodash/debounce is > 3kb.\n// By default, returns true if screen width is the same or greater than the given breakpoint.\nvar isWidthUp = function isWidthUp(breakpoint, width) {\n  var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (inclusive) {\n    return _createBreakpoints.keys.indexOf(breakpoint) <= _createBreakpoints.keys.indexOf(width);\n  }\n\n  return _createBreakpoints.keys.indexOf(breakpoint) < _createBreakpoints.keys.indexOf(width);\n}; // By default, returns true if screen width is the same or less than the given breakpoint.\n\n\nexports.isWidthUp = isWidthUp;\n\nvar isWidthDown = function isWidthDown(breakpoint, width) {\n  var inclusive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (inclusive) {\n    return _createBreakpoints.keys.indexOf(width) <= _createBreakpoints.keys.indexOf(breakpoint);\n  }\n\n  return _createBreakpoints.keys.indexOf(width) < _createBreakpoints.keys.indexOf(breakpoint);\n};\n\nexports.isWidthDown = isWidthDown;\n\nvar withWidth = function withWidth() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (Component) {\n    var _options$withTheme = options.withTheme,\n        withThemeOption = _options$withTheme === void 0 ? false : _options$withTheme,\n        _options$noSSR = options.noSSR,\n        noSSR = _options$noSSR === void 0 ? false : _options$noSSR,\n        initialWidthOption = options.initialWidth,\n        _options$resizeInterv = options.resizeInterval,\n        resizeInterval = _options$resizeInterv === void 0 ? 166 : _options$resizeInterv;\n\n    var WithWidth =\n    /*#__PURE__*/\n    function (_React$Component) {\n      (0, _inherits2.default)(WithWidth, _React$Component);\n\n      function WithWidth(props) {\n        var _this;\n\n        (0, _classCallCheck2.default)(this, WithWidth);\n        _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(WithWidth).call(this, props));\n        _this.handleResize = (0, _debounce.default)(function () {\n          var width = _this.getWidth();\n\n          if (width !== _this.state.width) {\n            _this.setState({\n              width: width\n            });\n          }\n        }, resizeInterval);\n        _this.state = {\n          width: noSSR ? _this.getWidth() : undefined\n        };\n        return _this;\n      }\n\n      (0, _createClass2.default)(WithWidth, [{\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          var width = this.getWidth();\n\n          if (width !== this.state.width) {\n            this.setState({\n              width: width\n            });\n          }\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          this.handleResize.clear();\n        }\n      }, {\n        key: \"getWidth\",\n        value: function getWidth() {\n          var innerWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.innerWidth;\n          var breakpoints = this.props.theme.breakpoints;\n          var width = null;\n          /**\n           * Start with the slowest value as low end devices often have a small screen.\n           *\n           * innerWidth |xs      sm      md      lg      xl\n           *            |-------|-------|-------|-------|------>\n           * width      |  xs   |  sm   |  md   |  lg   |  xl\n           */\n\n          var index = 1;\n\n          while (width === null && index < _createBreakpoints.keys.length) {\n            var currentWidth = _createBreakpoints.keys[index]; // @media are inclusive, so reproduce the behavior here.\n\n            if (innerWidth < breakpoints.values[currentWidth]) {\n              width = _createBreakpoints.keys[index - 1];\n              break;\n            }\n\n            index += 1;\n          }\n\n          width = width || 'xl';\n          return width;\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          var _getThemeProps = (0, _getThemeProps2.default)({\n            theme: this.props.theme,\n            name: 'MuiWithWidth',\n            props: (0, _extends2.default)({}, this.props)\n          }),\n              initialWidth = _getThemeProps.initialWidth,\n              theme = _getThemeProps.theme,\n              width = _getThemeProps.width,\n              other = (0, _objectWithoutProperties2.default)(_getThemeProps, [\"initialWidth\", \"theme\", \"width\"]);\n\n          var more = (0, _extends2.default)({\n            width: width || this.state.width || initialWidth || initialWidthOption\n          }, other); // When rendering the component on the server,\n          // we have no idea about the client browser screen width.\n          // In order to prevent blinks and help the reconciliation of the React tree\n          // we are not rendering the child component.\n          //\n          // An alternative is to use the `initialWidth` property.\n\n          if (more.width === undefined) {\n            return null;\n          }\n\n          if (withThemeOption) {\n            more.theme = theme;\n          }\n\n          return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(Component, more), _react.default.createElement(_reactEventListener.default, {\n            target: \"window\",\n            onResize: this.handleResize\n          }));\n        }\n      }]);\n      return WithWidth;\n    }(_react.default.Component);\n\n    WithWidth.propTypes = process.env.NODE_ENV !== \"production\" ? {\n      /**\n       * As `window.innerWidth` is unavailable on the server,\n       * we default to rendering an empty component during the first mount.\n       * In some situation, you might want to use an heuristic to approximate\n       * the screen width of the client browser screen width.\n       *\n       * For instance, you could be using the user-agent or the client-hints.\n       * http://caniuse.com/#search=client%20hint\n       */\n      initialWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n      /**\n       * @ignore\n       */\n      theme: _propTypes.default.object.isRequired,\n\n      /**\n       * Bypass the width calculation logic.\n       */\n      width: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl'])\n    } : {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      WithWidth.displayName = (0, _wrapDisplayName.default)(Component, 'WithWidth');\n    }\n\n    (0, _hoistNonReactStatics.default)(WithWidth, Component);\n    return (0, _withTheme.default)()(WithWidth);\n  };\n};\n\nvar _default = withWidth;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar _exportNames = {};\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _withWidth.default;\n  }\n});\n\nvar _withWidth = _interopRequireWildcard(require(\"./withWidth\"));\n\nObject.keys(_withWidth).forEach(function (key) {\n  if (key === \"default\" || key === \"__esModule\") return;\n  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _withWidth[key];\n    }\n  });\n});","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _createBreakpoints = require(\"../styles/createBreakpoints\");\n\nvar _withWidth = _interopRequireWildcard(require(\"../withWidth\"));\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\n/**\n * @ignore - internal component.\n */\nfunction HiddenJs(props) {\n  var children = props.children,\n      only = props.only,\n      width = props.width;\n  var visible = true; // `only` check is faster to get out sooner if used.\n\n  if (only) {\n    if (Array.isArray(only)) {\n      for (var i = 0; i < only.length; i += 1) {\n        var breakpoint = only[i];\n\n        if (width === breakpoint) {\n          visible = false;\n          break;\n        }\n      }\n    } else if (only && width === only) {\n      visible = false;\n    }\n  } // Allow `only` to be combined with other props. If already hidden, no need to check others.\n\n\n  if (visible) {\n    // determine visibility based on the smallest size up\n    for (var _i = 0; _i < _createBreakpoints.keys.length; _i += 1) {\n      var _breakpoint = _createBreakpoints.keys[_i];\n      var breakpointUp = props[\"\".concat(_breakpoint, \"Up\")];\n      var breakpointDown = props[\"\".concat(_breakpoint, \"Down\")];\n\n      if (breakpointUp && (0, _withWidth.isWidthUp)(_breakpoint, width) || breakpointDown && (0, _withWidth.isWidthDown)(_breakpoint, width)) {\n        visible = false;\n        break;\n      }\n    }\n  }\n\n  if (!visible) {\n    return null;\n  }\n\n  return children;\n}\n\nHiddenJs.propTypes = {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for server\n   * side rendering.\n   */\n  implementation: _propTypes.default.oneOf(['js', 'css']),\n\n  /**\n   * You can use this property when choosing the `js` implementation with server side rendering.\n   *\n   * As `window.innerWidth` is unavailable on the server,\n   * we default to rendering an empty componenent during the first mount.\n   * In some situation you might want to use an heristic to approximate\n   * the screen width of the client browser screen width.\n   *\n   * For instance, you could be using the user-agent or the client-hints.\n   * http://caniuse.com/#search=client%20hint\n   */\n  initialWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  lgDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  lgUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  mdDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  mdUp: _propTypes.default.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: _propTypes.default.oneOfType([_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  smDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  smUp: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * width prop provided by withWidth decorator.\n   */\n  width: _propTypes.default.string.isRequired,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xlDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xlUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xsDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xsUp: _propTypes.default.bool\n};\nHiddenJs.propTypes = (0, _exactProp.default)(HiddenJs.propTypes);\n\nvar _default = (0, _withWidth.default)()(HiddenJs);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _createBreakpoints = require(\"../styles/createBreakpoints\");\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  var hidden = {\n    display: 'none'\n  };\n  return _createBreakpoints.keys.reduce(function (acc, key) {\n    acc[\"only\".concat((0, _helpers.capitalize)(key))] = (0, _defineProperty2.default)({}, theme.breakpoints.only(key), hidden);\n    acc[\"\".concat(key, \"Up\")] = (0, _defineProperty2.default)({}, theme.breakpoints.up(key), hidden);\n    acc[\"\".concat(key, \"Down\")] = (0, _defineProperty2.default)({}, theme.breakpoints.down(key), hidden);\n    return acc;\n  }, {});\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction HiddenCss(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      lgDown = props.lgDown,\n      lgUp = props.lgUp,\n      mdDown = props.mdDown,\n      mdUp = props.mdUp,\n      only = props.only,\n      smDown = props.smDown,\n      smUp = props.smUp,\n      xlDown = props.xlDown,\n      xlUp = props.xlUp,\n      xsDown = props.xsDown,\n      xsUp = props.xsUp,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"lgDown\", \"lgUp\", \"mdDown\", \"mdUp\", \"only\", \"smDown\", \"smUp\", \"xlDown\", \"xlUp\", \"xsDown\", \"xsUp\"]);\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(Object.keys(other).length === 0 || Object.keys(other).length === 1 && other.hasOwnProperty('ref'), \"Material-UI: unsupported properties received \".concat(Object.keys(other).join(', '), \" by `<Hidden />`.\")) : void 0;\n  var classNames = [];\n\n  if (className) {\n    classNames.push(className);\n  }\n\n  for (var i = 0; i < _createBreakpoints.keys.length; i += 1) {\n    var breakpoint = _createBreakpoints.keys[i];\n    var breakpointUp = props[\"\".concat(breakpoint, \"Up\")];\n    var breakpointDown = props[\"\".concat(breakpoint, \"Down\")];\n\n    if (breakpointUp) {\n      classNames.push(classes[\"\".concat(breakpoint, \"Up\")]);\n    }\n\n    if (breakpointDown) {\n      classNames.push(classes[\"\".concat(breakpoint, \"Down\")]);\n    }\n  }\n\n  if (only) {\n    var onlyBreakpoints = Array.isArray(only) ? only : [only];\n    onlyBreakpoints.forEach(function (breakpoint) {\n      classNames.push(classes[\"only\".concat((0, _helpers.capitalize)(breakpoint))]);\n    });\n  }\n\n  return _react.default.createElement(\"div\", {\n    className: classNames.join(' ')\n  }, children);\n}\n\nHiddenCss.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for server\n   * side rendering.\n   */\n  implementation: _propTypes.default.oneOf(['js', 'css']),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  lgDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  lgUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  mdDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  mdUp: _propTypes.default.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: _propTypes.default.oneOfType([_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  smDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  smUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xlDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xlUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xsDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xsUp: _propTypes.default.bool\n} : {};\n\nvar _default = (0, _withStyles.default)(styles)(HiddenCss);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _HiddenJs = _interopRequireDefault(require(\"./HiddenJs\"));\n\nvar _HiddenCss = _interopRequireDefault(require(\"./HiddenCss\"));\n\n/**\n * Responsively hides children based on the selected implementation.\n */\nfunction Hidden(props) {\n  var implementation = props.implementation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"implementation\"]);\n\n  if (implementation === 'js') {\n    return _react.default.createElement(_HiddenJs.default, other);\n  }\n\n  return _react.default.createElement(_HiddenCss.default, other);\n}\n\nHidden.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Specify which implementation to use.  'js' is the default, 'css' works better for server\n   * side rendering.\n   */\n  implementation: _propTypes.default.oneOf(['js', 'css']),\n\n  /**\n   * You can use this property when choosing the `js` implementation with server side rendering.\n   *\n   * As `window.innerWidth` is unavailable on the server,\n   * we default to rendering an empty componenent during the first mount.\n   * In some situation you might want to use an heristic to approximate\n   * the screen width of the client browser screen width.\n   *\n   * For instance, you could be using the user-agent or the client-hints.\n   * http://caniuse.com/#search=client%20hint\n   */\n  initialWidth: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  lgDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  lgUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  mdDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  mdUp: _propTypes.default.bool,\n\n  /**\n   * Hide the given breakpoint(s).\n   */\n  only: _propTypes.default.oneOfType([_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']))]),\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  smDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  smUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xlDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xlUp: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and down will be hidden.\n   */\n  xsDown: _propTypes.default.bool,\n\n  /**\n   * If true, screens this size and up will be hidden.\n   */\n  xsUp: _propTypes.default.bool\n} : {};\nHidden.defaultProps = {\n  implementation: 'js',\n  lgDown: false,\n  lgUp: false,\n  mdDown: false,\n  mdUp: false,\n  smDown: false,\n  smUp: false,\n  xlDown: false,\n  xlUp: false,\n  xsDown: false,\n  xsUp: false\n};\nvar _default = Hidden;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Hidden.default;\n  }\n});\n\nvar _Hidden = _interopRequireDefault(require(\"./Hidden\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      userSelect: 'none',\n      fontSize: 24,\n      width: '1em',\n      height: '1em',\n      // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541\n      // To remove at some point.\n      overflow: 'hidden',\n      flexShrink: 0\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      color: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the root element if `color=\"action\"`. */\n    colorAction: {\n      color: theme.palette.action.active\n    },\n\n    /* Styles applied to the root element if `color=\"error\"`. */\n    colorError: {\n      color: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `color=\"disabled\"`. */\n    colorDisabled: {\n      color: theme.palette.action.disabled\n    },\n    fontSizeInherit: {\n      fontSize: 'inherit'\n    },\n\n    /* Styles applied to the root element if `fontSize=\"small\"`. */\n    fontSizeSmall: {\n      fontSize: 20\n    },\n\n    /* Styles applied to the root element if `fontSize=\"large\"`. */\n    fontSizeLarge: {\n      fontSize: 36\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Icon(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      color = props.color,\n      Component = props.component,\n      fontSize = props.fontSize,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"component\", \"fontSize\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)('material-icons', classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'inherit'), (0, _defineProperty2.default)(_classNames, classes[\"fontSize\".concat((0, _helpers.capitalize)(fontSize))], fontSize !== 'default'), _classNames), className),\n    \"aria-hidden\": \"true\"\n  }, other), children);\n}\n\nIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The name of the icon font ligature.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['inherit', 'primary', 'secondary', 'action', 'error', 'disabled']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n   */\n  fontSize: _propTypes.default.oneOf(['inherit', 'default', 'small', 'large'])\n} : {};\nIcon.defaultProps = {\n  color: 'inherit',\n  component: 'span',\n  fontSize: 'default'\n};\nIcon.muiName = 'Icon';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiIcon'\n})(Icon);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Icon.default;\n  }\n});\n\nvar _Icon = _interopRequireDefault(require(\"./Icon\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _InputBase = _interopRequireDefault(require(\"../InputBase\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// @inheritedComponent InputBase\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative'\n    },\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {\n      'label + &': {\n        marginTop: 16\n      }\n    },\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `disableUnderline={false}`. */\n    underline: {\n      '&:after': {\n        borderBottom: \"2px solid \".concat(theme.palette.primary[light ? 'dark' : 'light']),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\"',\n        position: 'absolute',\n        right: 0,\n        transform: 'scaleX(0)',\n        transition: theme.transitions.create('transform', {\n          duration: theme.transitions.duration.shorter,\n          easing: theme.transitions.easing.easeOut\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&$focused:after': {\n        transform: 'scaleX(1)'\n      },\n      '&$error:after': {\n        borderBottomColor: theme.palette.error.main,\n        transform: 'scaleX(1)' // error is always underlined in red\n\n      },\n      '&:before': {\n        borderBottom: \"1px solid \".concat(bottomLineColor),\n        left: 0,\n        bottom: 0,\n        // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n        content: '\"\\\\00a0\"',\n        position: 'absolute',\n        right: 0,\n        transition: theme.transitions.create('border-bottom-color', {\n          duration: theme.transitions.duration.shorter\n        }),\n        pointerEvents: 'none' // Transparent to the hover style.\n\n      },\n      '&:hover:not($disabled):not($focused):not($error):before': {\n        borderBottom: \"2px solid \".concat(theme.palette.text.primary)\n      },\n      '&$disabled:before': {\n        borderBottom: \"1px dotted \".concat(bottomLineColor)\n      }\n    },\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {},\n\n    /* Styles applied to the root element if `fullWidth={true}`. */\n    fullWidth: {},\n\n    /* Styles applied to the `input` element. */\n    input: {},\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {},\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {},\n\n    /* Styles applied to the `input` element if `type` is not \"text\"`. */\n    inputType: {},\n\n    /* Styles applied to the `input` element if `type=\"search\"`. */\n    inputTypeSearch: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction Input(props) {\n  var disableUnderline = props.disableUnderline,\n      classes = props.classes,\n      other = (0, _objectWithoutProperties2.default)(props, [\"disableUnderline\", \"classes\"]);\n  return _react.default.createElement(_InputBase.default, (0, _extends2.default)({\n    classes: (0, _extends2.default)({}, classes, {\n      root: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.underline, !disableUnderline)),\n      underline: null\n    })\n  }, other));\n}\n\nInput.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it here:\n   * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill\n   */\n  autoComplete: _propTypes.default.string,\n\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the wrapper element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The default input value, useful when not controlling the component.\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * If `true`, the input will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will not have an underline.\n   */\n  disableUnderline: _propTypes.default.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: _propTypes.default.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The component used for the native input.\n   * Either a string to use a DOM element or a component.\n   */\n  inputComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: _propTypes.default.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: _propTypes.default.node,\n\n  /**\n   * Type of the input element. It should be a valid HTML5 input type.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The input value, required for a controlled component.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))])\n} : {};\n_InputBase.default.defaultProps = {\n  fullWidth: false,\n  inputComponent: 'input',\n  multiline: false,\n  type: 'text'\n};\nInput.muiName = 'Input';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiInput'\n})(Input);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Input.default;\n  }\n});\n\nvar _Input = _interopRequireDefault(require(\"./Input\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    height: '0.01em',\n    // Fix IE 11 flexbox alignment. To remove at some point.\n    maxHeight: '2em',\n    alignItems: 'center'\n  },\n\n  /* Styles applied to the root element if `variant=\"filled\"` */\n  filled: {\n    '&$positionStart': {\n      marginTop: 16\n    }\n  },\n\n  /* Styles applied to the root element if `position=\"start\"`. */\n  positionStart: {\n    marginRight: 8\n  },\n\n  /* Styles applied to the root element if `position=\"end\"`. */\n  positionEnd: {\n    marginLeft: 8\n  }\n};\nexports.styles = styles;\n\nfunction InputAdornment(props) {\n  var _classNames;\n\n  var children = props.children,\n      Component = props.component,\n      classes = props.classes,\n      className = props.className,\n      disableTypography = props.disableTypography,\n      position = props.position,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"component\", \"classes\", \"className\", \"disableTypography\", \"position\", \"variant\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.filled, variant === 'filled'), (0, _defineProperty2.default)(_classNames, classes.positionStart, position === 'start'), (0, _defineProperty2.default)(_classNames, classes.positionEnd, position === 'end'), _classNames), className)\n  }, other), typeof children === 'string' && !disableTypography ? _react.default.createElement(_Typography.default, {\n    color: \"textSecondary\"\n  }, children) : children);\n}\n\nInputAdornment.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally an `IconButton` or string.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If children is a string then disable wrapping in a Typography component.\n   */\n  disableTypography: _propTypes.default.bool,\n\n  /**\n   * The position this adornment should appear relative to the `Input`.\n   */\n  position: _propTypes.default.oneOf(['start', 'end']),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nInputAdornment.defaultProps = {\n  component: 'div',\n  disableTypography: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiInputAdornment'\n})(InputAdornment);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _InputAdornment.default;\n  }\n});\n\nvar _InputAdornment = _interopRequireDefault(require(\"./InputAdornment\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _FormLabel = _interopRequireDefault(require(\"../FormLabel\"));\n\nvar _InputBase = require(\"../InputBase/InputBase\");\n\n// @inheritedComponent FormLabel\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      transformOrigin: 'top left'\n    },\n\n    /* Styles applied to the root element if the component is a descendant of `FormControl`. */\n    formControl: {\n      position: 'absolute',\n      left: 0,\n      top: 0,\n      // slight alteration to spec spacing to match visual spec result\n      transform: 'translate(0, 24px) scale(1)'\n    },\n\n    /* Styles applied to the root element if `margin=\"dense\"`. */\n    marginDense: {\n      // Compensation for the `Input.inputDense` style.\n      transform: 'translate(0, 21px) scale(1)'\n    },\n\n    /* Styles applied to the `input` element if `shrink={true}`. */\n    shrink: {\n      transform: 'translate(0, 1.5px) scale(0.75)',\n      transformOrigin: 'top left'\n    },\n\n    /* Styles applied to the `input` element if `disableAnimation={false}`. */\n    animated: {\n      transition: theme.transitions.create(['color', 'transform'], {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      })\n    },\n\n    /* Styles applied to the root element if `variant=\"filled\"`. */\n    filled: {\n      // Chrome's autofill feature gives the input field a yellow background.\n      // Since the input field is behind the label in the HTML tree,\n      // the input field is drawn last and hides the label with an opaque background color.\n      // zIndex: 1 will raise the label above opaque background-colors of input.\n      zIndex: 1,\n      pointerEvents: 'none',\n      transform: 'translate(12px, 22px) scale(1)',\n      '&$marginDense': {\n        transform: 'translate(12px, 19px) scale(1)'\n      },\n      '&$shrink': {\n        transform: 'translate(12px, 10px) scale(0.75)',\n        '&$marginDense': {\n          transform: 'translate(12px, 7px) scale(0.75)'\n        }\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"outlined\"`. */\n    outlined: {\n      // see comment above on filled.zIndex\n      zIndex: 1,\n      pointerEvents: 'none',\n      transform: 'translate(14px, 22px) scale(1)',\n      '&$marginDense': {\n        transform: 'translate(14px, 17.5px) scale(1)'\n      },\n      '&$shrink': {\n        transform: 'translate(14px, -6px) scale(0.75)'\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction InputLabel(props, context) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      disableAnimation = props.disableAnimation,\n      FormLabelClasses = props.FormLabelClasses,\n      marginProp = props.margin,\n      shrinkProp = props.shrink,\n      variantProp = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disableAnimation\", \"FormLabelClasses\", \"margin\", \"shrink\", \"variant\"]);\n  var muiFormControl = context.muiFormControl;\n  var shrink = shrinkProp;\n\n  if (typeof shrink === 'undefined' && muiFormControl) {\n    shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n  }\n\n  var fcs = (0, _InputBase.formControlState)({\n    props: props,\n    context: context,\n    states: ['margin', 'variant']\n  });\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.formControl, muiFormControl), (0, _defineProperty2.default)(_classNames, classes.animated, !disableAnimation), (0, _defineProperty2.default)(_classNames, classes.shrink, shrink), (0, _defineProperty2.default)(_classNames, classes.marginDense, fcs.margin === 'dense'), (0, _defineProperty2.default)(_classNames, classes.filled, fcs.variant === 'filled'), (0, _defineProperty2.default)(_classNames, classes.outlined, fcs.variant === 'outlined'), _classNames), classNameProp);\n  return _react.default.createElement(_FormLabel.default, (0, _extends2.default)({\n    \"data-shrink\": shrink,\n    className: className,\n    classes: FormLabelClasses\n  }, other), children);\n}\n\nInputLabel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The contents of the `InputLabel`.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the transition animation is disabled.\n   */\n  disableAnimation: _propTypes.default.bool,\n\n  /**\n   * If `true`, apply disabled class.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label will be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input of this label is focused.\n   */\n  focused: _propTypes.default.bool,\n\n  /**\n   * `classes` property applied to the [`FormLabel`](/api/form-label) element.\n   */\n  FormLabelClasses: _propTypes.default.object,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense']),\n\n  /**\n   * if `true`, the label will indicate that the input is required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label is shrunk.\n   */\n  shrink: _propTypes.default.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nInputLabel.defaultProps = {\n  disableAnimation: false\n};\nInputLabel.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiInputLabel'\n})(InputLabel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _InputLabel.default;\n  }\n});\n\nvar _InputLabel = _interopRequireDefault(require(\"./InputLabel\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar TRANSITION_DURATION = 4; // seconds\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      overflow: 'hidden',\n      height: 5\n    },\n\n    /* Styles applied to the root & bar2 element if `color=\"primary\"`; bar2 if `variant-\"buffer\"`. */\n    colorPrimary: {\n      backgroundColor: (0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6)\n    },\n    // eslint-disable-next-line max-len\n\n    /* Styles applied to the root & bar2 elements if `color=\"secondary\"`; bar2 if `variant=\"buffer\"`. */\n    colorSecondary: {\n      backgroundColor: (0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4)\n    },\n\n    /* Styles applied to the root element if `variant=\"buffer\"`. */\n    buffer: {\n      backgroundColor: 'transparent'\n    },\n\n    /* Styles applied to the root element if `variant=\"query\"`. */\n    query: {\n      transform: 'rotate(180deg)'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"`. */\n    dashed: {\n      position: 'absolute',\n      marginTop: 0,\n      height: '100%',\n      width: '100%',\n      animation: 'buffer 3s infinite linear'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"` & `color=\"primary\"`. */\n    dashedColorPrimary: {\n      backgroundImage: \"radial-gradient(\".concat((0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6), \" 0%, \").concat((0, _colorManipulator.lighten)(theme.palette.primary.light, 0.6), \" 16%, transparent 42%)\"),\n      backgroundSize: '10px 10px',\n      backgroundPosition: '0px -23px'\n    },\n\n    /* Styles applied to the additional bar element if `variant=\"buffer\"` & `color=\"secondary\"`. */\n    dashedColorSecondary: {\n      backgroundImage: \"radial-gradient(\".concat((0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.4), \" 0%, \").concat((0, _colorManipulator.lighten)(theme.palette.secondary.light, 0.6), \" 16%, transparent 42%)\"),\n      backgroundSize: '10px 10px',\n      backgroundPosition: '0px -23px'\n    },\n\n    /* Styles applied to the layered bar1 & bar2 elements. */\n    bar: {\n      width: '100%',\n      position: 'absolute',\n      left: 0,\n      bottom: 0,\n      top: 0,\n      transition: 'transform 0.2s linear',\n      transformOrigin: 'left'\n    },\n\n    /* Styles applied to the bar elements if `color=\"primary\"`; bar2 if `variant` not \"buffer\". */\n    barColorPrimary: {\n      backgroundColor: theme.palette.primary.main\n    },\n\n    /* Styles applied to the bar elements if `color=\"secondary\"`; bar2 if `variant` not \"buffer\". */\n    barColorSecondary: {\n      backgroundColor: theme.palette.secondary.main\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"indeterminate or query\"`. */\n    bar1Indeterminate: {\n      width: 'auto',\n      willChange: 'left, right',\n      animation: 'mui-indeterminate1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite'\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"determinate\"`. */\n    bar1Determinate: {\n      willChange: 'transform',\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n\n    /* Styles applied to the bar1 element if `variant=\"buffer\"`. */\n    bar1Buffer: {\n      zIndex: 1,\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n\n    /* Styles applied to the bar2 element if `variant=\"indeterminate or query\"`. */\n    bar2Indeterminate: {\n      width: 'auto',\n      willChange: 'left, right',\n      animation: 'mui-indeterminate2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite',\n      animationDelay: '1.15s'\n    },\n\n    /* Styles applied to the bar2 element if `variant=\"determinate\"`. */\n    bar2Determinate: {},\n\n    /* Styles applied to the bar2 element if `variant=\"buffer\"`. */\n    bar2Buffer: {\n      transition: \"transform .\".concat(TRANSITION_DURATION, \"s linear\")\n    },\n    // Legends:\n    // || represents the viewport\n    // -  represents a light background\n    // x  represents a dark background\n    '@keyframes mui-indeterminate1': {\n      //  |-----|---x-||-----||-----|\n      '0%': {\n        left: '-35%',\n        right: '100%'\n      },\n      //  |-----|-----||-----||xxxx-|\n      '60%': {\n        left: '100%',\n        right: '-90%'\n      },\n      '100%': {\n        left: '100%',\n        right: '-90%'\n      }\n    },\n    '@keyframes mui-indeterminate2': {\n      //  |xxxxx|xxxxx||-----||-----|\n      '0%': {\n        left: '-200%',\n        right: '100%'\n      },\n      //  |-----|-----||-----||-x----|\n      '60%': {\n        left: '107%',\n        right: '-8%'\n      },\n      '100%': {\n        left: '107%',\n        right: '-8%'\n      }\n    },\n    '@keyframes buffer': {\n      '0%': {\n        opacity: 1,\n        backgroundPosition: '0px -23px'\n      },\n      '50%': {\n        opacity: 0,\n        backgroundPosition: '0px -23px'\n      },\n      '100%': {\n        opacity: 1,\n        backgroundPosition: '-200px -23px'\n      }\n    }\n  };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\n\nexports.styles = styles;\n\nfunction LinearProgress(props) {\n  var _classNames, _classNames2, _classNames3, _classNames4;\n\n  var classes = props.classes,\n      classNameProp = props.className,\n      color = props.color,\n      value = props.value,\n      valueBuffer = props.valueBuffer,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"color\", \"value\", \"valueBuffer\", \"variant\"]);\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.colorPrimary, color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.colorSecondary, color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.buffer, variant === 'buffer'), (0, _defineProperty2.default)(_classNames, classes.query, variant === 'query'), _classNames), classNameProp);\n  var dashedClass = (0, _classnames.default)(classes.dashed, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.dashedColorPrimary, color === 'primary'), (0, _defineProperty2.default)(_classNames2, classes.dashedColorSecondary, color === 'secondary'), _classNames2));\n  var bar1ClassName = (0, _classnames.default)(classes.bar, (_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, classes.barColorPrimary, color === 'primary'), (0, _defineProperty2.default)(_classNames3, classes.barColorSecondary, color === 'secondary'), (0, _defineProperty2.default)(_classNames3, classes.bar1Indeterminate, variant === 'indeterminate' || variant === 'query'), (0, _defineProperty2.default)(_classNames3, classes.bar1Determinate, variant === 'determinate'), (0, _defineProperty2.default)(_classNames3, classes.bar1Buffer, variant === 'buffer'), _classNames3));\n  var bar2ClassName = (0, _classnames.default)(classes.bar, (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, classes.barColorPrimary, color === 'primary' && variant !== 'buffer'), (0, _defineProperty2.default)(_classNames4, classes.colorPrimary, color === 'primary' && variant === 'buffer'), (0, _defineProperty2.default)(_classNames4, classes.barColorSecondary, color === 'secondary' && variant !== 'buffer'), (0, _defineProperty2.default)(_classNames4, classes.colorSecondary, color === 'secondary' && variant === 'buffer'), (0, _defineProperty2.default)(_classNames4, classes.bar2Indeterminate, variant === 'indeterminate' || variant === 'query'), (0, _defineProperty2.default)(_classNames4, classes.bar2Determinate, variant === 'determinate'), (0, _defineProperty2.default)(_classNames4, classes.bar2Buffer, variant === 'buffer'), _classNames4));\n  var rootProps = {};\n  var inlineStyles = {\n    bar1: {},\n    bar2: {}\n  };\n\n  if (variant === 'determinate' || variant === 'buffer') {\n    if (value !== undefined) {\n      rootProps['aria-valuenow'] = Math.round(value);\n      inlineStyles.bar1.transform = \"scaleX(\".concat(value / 100, \")\");\n    } else {\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(false, 'Material-UI: you need to provide a value property ' + 'when using the determinate or buffer variant of LinearProgress .') : void 0;\n    }\n  }\n\n  if (variant === 'buffer') {\n    if (valueBuffer !== undefined) {\n      inlineStyles.bar2.transform = \"scaleX(\".concat((valueBuffer || 0) / 100, \")\");\n    } else {\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(false, 'Material-UI: you need to provide a valueBuffer property ' + 'when using the buffer variant of LinearProgress.') : void 0;\n    }\n  }\n\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: className,\n    role: \"progressbar\"\n  }, rootProps, other), variant === 'buffer' ? _react.default.createElement(\"div\", {\n    className: dashedClass\n  }) : null, _react.default.createElement(\"div\", {\n    className: bar1ClassName,\n    style: inlineStyles.bar1\n  }), variant === 'determinate' ? null : _react.default.createElement(\"div\", {\n    className: bar2ClassName,\n    style: inlineStyles.bar2\n  }));\n}\n\nLinearProgress.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary']),\n\n  /**\n   * The value of the progress indicator for the determinate and buffer variants.\n   * Value between 0 and 100.\n   */\n  value: _propTypes.default.number,\n\n  /**\n   * The value for the buffer variant.\n   * Value between 0 and 100.\n   */\n  valueBuffer: _propTypes.default.number,\n\n  /**\n   * The variant to use.\n   * Use indeterminate or query when there is no progress value.\n   */\n  variant: _propTypes.default.oneOf(['determinate', 'indeterminate', 'buffer', 'query'])\n} : {};\nLinearProgress.defaultProps = {\n  color: 'primary',\n  variant: 'indeterminate'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiLinearProgress'\n})(LinearProgress);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _LinearProgress.default;\n  }\n});\n\nvar _LinearProgress = _interopRequireDefault(require(\"./LinearProgress\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    listStyle: 'none',\n    margin: 0,\n    padding: 0,\n    position: 'relative'\n  },\n\n  /* Styles applied to the root element if `disablePadding={false}`. */\n  padding: {\n    paddingTop: 8,\n    paddingBottom: 8\n  },\n\n  /* Styles applied to the root element if `dense={true}` & `disablePadding={false}`. */\n  dense: {\n    paddingTop: 4,\n    paddingBottom: 4\n  },\n\n  /* Styles applied to the root element if a `subheader` is provided. */\n  subheader: {\n    paddingTop: 0\n  }\n};\nexports.styles = styles;\n\nvar List =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(List, _React$Component);\n\n  function List() {\n    (0, _classCallCheck2.default)(this, List);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(List).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(List, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      return {\n        dense: this.props.dense\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          classes = _this$props.classes,\n          classNameProp = _this$props.className,\n          Component = _this$props.component,\n          dense = _this$props.dense,\n          disablePadding = _this$props.disablePadding,\n          subheader = _this$props.subheader,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"classes\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"]);\n      var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.dense, dense && !disablePadding), (0, _defineProperty2.default)(_classNames, classes.padding, !disablePadding), (0, _defineProperty2.default)(_classNames, classes.subheader, subheader), _classNames), classNameProp);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: className\n      }, other), subheader, children);\n    }\n  }]);\n  return List;\n}(_react.default.Component);\n\nList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input will be used for\n   * the list and list items. The property is available to descendant components as the\n   * `dense` context.\n   */\n  dense: _propTypes.default.bool,\n\n  /**\n   * If `true`, vertical padding will be removed from the list.\n   */\n  disablePadding: _propTypes.default.bool,\n\n  /**\n   * The content of the subheader, normally `ListSubheader`.\n   */\n  subheader: _propTypes.default.node\n} : {};\nList.defaultProps = {\n  component: 'ul',\n  dense: false,\n  disablePadding: false\n};\nList.childContextTypes = {\n  dense: _propTypes.default.bool\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiList'\n})(List);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _List.default;\n  }\n});\n\nvar _List = _interopRequireDefault(require(\"./List\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */\n    root: {\n      display: 'flex',\n      justifyContent: 'flex-start',\n      alignItems: 'center',\n      position: 'relative',\n      textDecoration: 'none',\n      width: '100%',\n      boxSizing: 'border-box',\n      textAlign: 'left',\n      paddingTop: 12,\n      paddingBottom: 12,\n      '&$selected, &$selected:hover': {\n        backgroundColor: theme.palette.action.selected\n      }\n    },\n\n    /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */\n    container: {\n      position: 'relative'\n    },\n    // TODO: Sanity check this - why is focusVisibleClassName prop apparently applied to a div?\n\n    /* Styles applied to the `component`'s `focusVisibleClassName` property if `button={true}`. */\n    focusVisible: {\n      backgroundColor: theme.palette.action.hover\n    },\n\n    /* Legacy styles applied to the root element. Use `root` instead. */\n    default: {},\n\n    /* Styles applied to the `component` element if `dense={true}` or `children` includes `Avatar`. */\n    dense: {\n      paddingTop: 8,\n      paddingBottom: 8\n    },\n\n    /* Styles applied to the inner `component` element if `disabled={true}`. */\n    disabled: {\n      opacity: 0.5\n    },\n\n    /* Styles applied to the inner `component` element if `divider={true}`. */\n    divider: {\n      borderBottom: \"1px solid \".concat(theme.palette.divider),\n      backgroundClip: 'padding-box'\n    },\n\n    /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n    gutters: theme.mixins.gutters(),\n\n    /* Styles applied to the inner `component` element if `button={true}`. */\n    button: {\n      transition: theme.transitions.create('background-color', {\n        duration: theme.transitions.duration.shortest\n      }),\n      '&:hover': {\n        textDecoration: 'none',\n        backgroundColor: theme.palette.action.hover,\n        // Reset on touch devices, it doesn't add specificity\n        '@media (hover: none)': {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n\n    /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */\n    secondaryAction: {\n      // Add some space to avoid collision as `ListItemSecondaryAction`\n      // is absolutely positionned.\n      paddingRight: 32\n    },\n\n    /* Styles applied to the root element if `selected={true}`. */\n    selected: {}\n  };\n};\n\nexports.styles = styles;\n\nvar ListItem =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ListItem, _React$Component);\n\n  function ListItem() {\n    (0, _classCallCheck2.default)(this, ListItem);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ListItem).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(ListItem, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      return {\n        dense: this.props.dense || this.context.dense || false\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props = this.props,\n          button = _this$props.button,\n          childrenProp = _this$props.children,\n          classes = _this$props.classes,\n          classNameProp = _this$props.className,\n          componentProp = _this$props.component,\n          ContainerComponent = _this$props.ContainerComponent,\n          _this$props$Container = _this$props.ContainerProps;\n      _this$props$Container = _this$props$Container === void 0 ? {} : _this$props$Container;\n      var ContainerClassName = _this$props$Container.className,\n          ContainerProps = (0, _objectWithoutProperties2.default)(_this$props$Container, [\"className\"]),\n          dense = _this$props.dense,\n          disabled = _this$props.disabled,\n          disableGutters = _this$props.disableGutters,\n          divider = _this$props.divider,\n          focusVisibleClassName = _this$props.focusVisibleClassName,\n          selected = _this$props.selected,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"button\", \"children\", \"classes\", \"className\", \"component\", \"ContainerComponent\", \"ContainerProps\", \"dense\", \"disabled\", \"disableGutters\", \"divider\", \"focusVisibleClassName\", \"selected\"]);\n      var isDense = dense || this.context.dense || false;\n\n      var children = _react.default.Children.toArray(childrenProp);\n\n      var hasAvatar = children.some(function (value) {\n        return (0, _reactHelpers.isMuiElement)(value, ['ListItemAvatar']);\n      });\n      var hasSecondaryAction = children.length && (0, _reactHelpers.isMuiElement)(children[children.length - 1], ['ListItemSecondaryAction']);\n      var className = (0, _classnames.default)(classes.root, classes.default, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.dense, isDense || hasAvatar), (0, _defineProperty2.default)(_classNames, classes.gutters, !disableGutters), (0, _defineProperty2.default)(_classNames, classes.divider, divider), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.button, button), (0, _defineProperty2.default)(_classNames, classes.secondaryAction, hasSecondaryAction), (0, _defineProperty2.default)(_classNames, classes.selected, selected), _classNames), classNameProp);\n      var componentProps = (0, _extends2.default)({\n        className: className,\n        disabled: disabled\n      }, other);\n      var Component = componentProp || 'li';\n\n      if (button) {\n        componentProps.component = componentProp || 'div';\n        componentProps.focusVisibleClassName = (0, _classnames.default)(classes.focusVisible, focusVisibleClassName);\n        Component = _ButtonBase.default;\n      }\n\n      if (hasSecondaryAction) {\n        // Use div by default.\n        Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.\n\n        if (ContainerComponent === 'li') {\n          if (Component === 'li') {\n            Component = 'div';\n          } else if (componentProps.component === 'li') {\n            componentProps.component = 'div';\n          }\n        }\n\n        return _react.default.createElement(ContainerComponent, (0, _extends2.default)({\n          className: (0, _classnames.default)(classes.container, ContainerClassName)\n        }, ContainerProps), _react.default.createElement(Component, componentProps, children), children.pop());\n      }\n\n      return _react.default.createElement(Component, componentProps, children);\n    }\n  }]);\n  return ListItem;\n}(_react.default.Component);\n\nListItem.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the list item will be a button (using `ButtonBase`).\n   */\n  button: _propTypes.default.bool,\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   * By default, it's a `li` when `button` is `false` and a `div` when `button` is `true`.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The container component used when a `ListItemSecondaryAction` is rendered.\n   */\n  ContainerComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the container element when the component\n   * is used to display a `ListItemSecondaryAction`.\n   */\n  ContainerProps: _propTypes.default.object,\n\n  /**\n   * If `true`, compact vertical padding designed for keyboard and mouse input will be used.\n   */\n  dense: _propTypes.default.bool,\n\n  /**\n   * If `true`, the list item will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the left and right padding is removed.\n   */\n  disableGutters: _propTypes.default.bool,\n\n  /**\n   * If `true`, a 1px light border is added to the bottom of the list item.\n   */\n  divider: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  focusVisibleClassName: _propTypes.default.string,\n\n  /**\n   * Use to apply selected styling.\n   */\n  selected: _propTypes.default.bool\n} : {};\nListItem.defaultProps = {\n  button: false,\n  ContainerComponent: 'li',\n  dense: false,\n  disabled: false,\n  disableGutters: false,\n  divider: false,\n  selected: false\n};\nListItem.contextTypes = {\n  dense: _propTypes.default.bool\n};\nListItem.childContextTypes = {\n  dense: _propTypes.default.bool\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListItem'\n})(ListItem);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListItem.default;\n  }\n});\n\nvar _ListItem = _interopRequireDefault(require(\"./ListItem\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      width: 36,\n      height: 36,\n      fontSize: theme.typography.pxToRem(18),\n      marginRight: 4\n    },\n\n    /* Styles applied to the children – typically the `Avatar` component. */\n    icon: {\n      width: 20,\n      height: 20,\n      fontSize: theme.typography.pxToRem(20)\n    }\n  };\n};\n/**\n * This is a simple wrapper to apply the `dense` mode styles to `Avatar`.\n */\n\n\nexports.styles = styles;\n\nfunction ListItemAvatar(props, context) {\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\"]);\n\n  if (context.dense === undefined) {\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(false, \"Material-UI: <ListItemAvatar> is a simple wrapper to apply the dense styles\\n      to <Avatar>. You do not need it unless you are controlling the <List> dense property.\") : void 0;\n    return props.children;\n  }\n\n  return _react.default.cloneElement(children, (0, _extends2.default)({\n    className: (0, _classnames.default)((0, _defineProperty2.default)({}, classes.root, context.dense), classNameProp, children.props.className),\n    childrenClassName: (0, _classnames.default)((0, _defineProperty2.default)({}, classes.icon, context.dense), children.props.childrenClassName)\n  }, other));\n}\n\nListItemAvatar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component – normally `Avatar`.\n   */\n  children: _propTypes.default.element.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\nListItemAvatar.contextTypes = {\n  dense: _propTypes.default.bool\n};\nListItemAvatar.muiName = 'ListItemAvatar';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListItemAvatar'\n})(ListItemAvatar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListItemAvatar.default;\n  }\n});\n\nvar _ListItemAvatar = _interopRequireDefault(require(\"./ListItemAvatar\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      marginRight: 16,\n      color: theme.palette.action.active,\n      flexShrink: 0\n    }\n  };\n};\n/**\n * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.\n */\n\n\nexports.styles = styles;\n\nfunction ListItemIcon(props) {\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\"]);\n  return _react.default.cloneElement(children, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classNameProp, children.props.className)\n  }, other));\n}\n\nListItemIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally `Icon`, `SvgIcon`,\n   * or a `@material-ui/icons` SVG icon element.\n   */\n  children: _propTypes.default.element.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListItemIcon'\n})(ListItemIcon);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListItemIcon.default;\n  }\n});\n\nvar _ListItemIcon = _interopRequireDefault(require(\"./ListItemIcon\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    position: 'absolute',\n    right: 4,\n    top: '50%',\n    transform: 'translateY(-50%)'\n  }\n};\nexports.styles = styles;\n\nfunction ListItemSecondaryAction(props) {\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), children);\n}\n\nListItemSecondaryAction.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally an `IconButton` or selection control.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string\n} : {};\nListItemSecondaryAction.muiName = 'ListItemSecondaryAction';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListItemSecondaryAction'\n})(ListItemSecondaryAction);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListItemSecondaryAction.default;\n  }\n});\n\nvar _ListItemSecondaryAction = _interopRequireDefault(require(\"./ListItemSecondaryAction\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      flex: '1 1 auto',\n      minWidth: 0,\n      padding: '0 16px',\n      '&:first-child': {\n        paddingLeft: 0\n      }\n    },\n\n    /* Styles applied to the root element if `inset={true}`. */\n    inset: {\n      '&:first-child': {\n        paddingLeft: 56\n      }\n    },\n\n    /* Styles applied to the root element if `context.dense` is `true`. */\n    dense: {\n      fontSize: theme.typography.pxToRem(13)\n    },\n\n    /* Styles applied to the primary `Typography` component. */\n    primary: {\n      '&$textDense': {\n        fontSize: 'inherit'\n      }\n    },\n\n    /* Styles applied to the secondary `Typography` component. */\n    secondary: {\n      '&$textDense': {\n        fontSize: 'inherit'\n      }\n    },\n\n    /* Styles applied to the `Typography` components if `context.dense` is `true`. */\n    textDense: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction ListItemText(props, context) {\n  var _classNames3;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      disableTypography = props.disableTypography,\n      inset = props.inset,\n      primaryProp = props.primary,\n      primaryTypographyProps = props.primaryTypographyProps,\n      secondaryProp = props.secondary,\n      secondaryTypographyProps = props.secondaryTypographyProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disableTypography\", \"inset\", \"primary\", \"primaryTypographyProps\", \"secondary\", \"secondaryTypographyProps\"]);\n  var dense = context.dense;\n  var primary = primaryProp != null ? primaryProp : children;\n\n  if (primary != null && primary.type !== _Typography.default && !disableTypography) {\n    primary = _react.default.createElement(_Typography.default, (0, _extends2.default)({\n      variant: \"subheading\",\n      className: (0, _classnames.default)(classes.primary, (0, _defineProperty2.default)({}, classes.textDense, dense)),\n      component: \"span\"\n    }, primaryTypographyProps), primary);\n  }\n\n  var secondary = secondaryProp;\n\n  if (secondary != null && secondary.type !== _Typography.default && !disableTypography) {\n    secondary = _react.default.createElement(_Typography.default, (0, _extends2.default)({\n      variant: \"body1\",\n      className: (0, _classnames.default)(classes.secondary, (0, _defineProperty2.default)({}, classes.textDense, dense)),\n      color: \"textSecondary\"\n    }, secondaryTypographyProps), secondary);\n  }\n\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, classes.dense, dense), (0, _defineProperty2.default)(_classNames3, classes.inset, inset), _classNames3), classNameProp)\n  }, other), primary, secondary);\n}\n\nListItemText.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Alias for the `primary` property.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the children won't be wrapped by a Typography component.\n   * This can be useful to render an alternative Typography variant by wrapping\n   * the `children` (or `primary`) text, and optional `secondary` text\n   * with the Typography component.\n   */\n  disableTypography: _propTypes.default.bool,\n\n  /**\n   * If `true`, the children will be indented.\n   * This should be used if there is no left avatar or left icon.\n   */\n  inset: _propTypes.default.bool,\n\n  /**\n   * The main content element.\n   */\n  primary: _propTypes.default.node,\n\n  /**\n   * These props will be forwarded to the primary typography component\n   * (as long as disableTypography is not `true`).\n   */\n  primaryTypographyProps: _propTypes.default.object,\n\n  /**\n   * The secondary content element.\n   */\n  secondary: _propTypes.default.node,\n\n  /**\n   * These props will be forwarded to the secondary typography component\n   * (as long as disableTypography is not `true`).\n   */\n  secondaryTypographyProps: _propTypes.default.object\n} : {};\nListItemText.defaultProps = {\n  disableTypography: false,\n  inset: false\n};\nListItemText.contextTypes = {\n  dense: _propTypes.default.bool\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListItemText'\n})(ListItemText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListItemText.default;\n  }\n});\n\nvar _ListItemText = _interopRequireDefault(require(\"./ListItemText\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      boxSizing: 'border-box',\n      lineHeight: '48px',\n      listStyle: 'none',\n      color: theme.palette.text.secondary,\n      fontFamily: theme.typography.fontFamily,\n      fontWeight: theme.typography.fontWeightMedium,\n      fontSize: theme.typography.pxToRem(14)\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      color: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"inherit\"`. */\n    colorInherit: {\n      color: 'inherit'\n    },\n\n    /* Styles applied to the inner `component` element if `disableGutters={false}`. */\n    gutters: theme.mixins.gutters(),\n\n    /* Styles applied to the root element if `inset={true}`. */\n    inset: {\n      paddingLeft: 72\n    },\n\n    /* Styles applied to the root element if `disableSticky={false}`. */\n    sticky: {\n      position: 'sticky',\n      top: 0,\n      zIndex: 1,\n      backgroundColor: 'inherit'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction ListSubheader(props) {\n  var _classNames;\n\n  var classes = props.classes,\n      className = props.className,\n      color = props.color,\n      Component = props.component,\n      disableGutters = props.disableGutters,\n      disableSticky = props.disableSticky,\n      inset = props.inset,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"]);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes[\"color\".concat((0, _helpers.capitalize)(color))], color !== 'default'), (0, _defineProperty2.default)(_classNames, classes.inset, inset), (0, _defineProperty2.default)(_classNames, classes.sticky, !disableSticky), (0, _defineProperty2.default)(_classNames, classes.gutters, !disableGutters), _classNames), className)\n  }, other));\n}\n\nListSubheader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['default', 'primary', 'inherit']),\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the List Subheader will not have gutters.\n   */\n  disableGutters: _propTypes.default.bool,\n\n  /**\n   * If `true`, the List Subheader will not stick to the top during scroll.\n   */\n  disableSticky: _propTypes.default.bool,\n\n  /**\n   * If `true`, the List Subheader will be indented.\n   */\n  inset: _propTypes.default.bool\n} : {};\nListSubheader.defaultProps = {\n  color: 'default',\n  component: 'li',\n  disableGutters: false,\n  disableSticky: false,\n  inset: false\n};\nListSubheader.muiName = 'ListSubheader';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiListSubheader'\n})(ListSubheader);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _ListSubheader.default;\n  }\n});\n\nvar _ListSubheader = _interopRequireDefault(require(\"./ListSubheader\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _ownerWindow = _interopRequireDefault(require(\"../utils/ownerWindow\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Modal = _interopRequireDefault(require(\"../Modal\"));\n\nvar _Grow = _interopRequireDefault(require(\"../Grow\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\n// @inheritedComponent Modal\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nfunction getOffsetTop(rect, vertical) {\n  var offset = 0;\n\n  if (typeof vertical === 'number') {\n    offset = vertical;\n  } else if (vertical === 'center') {\n    offset = rect.height / 2;\n  } else if (vertical === 'bottom') {\n    offset = rect.height;\n  }\n\n  return offset;\n}\n\nfunction getOffsetLeft(rect, horizontal) {\n  var offset = 0;\n\n  if (typeof horizontal === 'number') {\n    offset = horizontal;\n  } else if (horizontal === 'center') {\n    offset = rect.width / 2;\n  } else if (horizontal === 'right') {\n    offset = rect.width;\n  }\n\n  return offset;\n}\n\nfunction getTransformOriginValue(transformOrigin) {\n  return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {\n    return typeof n === 'number' ? \"\".concat(n, \"px\") : n;\n  }).join(' ');\n} // Sum the scrollTop between two elements.\n\n\nfunction getScrollParent(parent, child) {\n  var element = child;\n  var scrollTop = 0;\n\n  while (element && element !== parent) {\n    element = element.parentNode;\n    scrollTop += element.scrollTop;\n  }\n\n  return scrollTop;\n}\n\nfunction getAnchorEl(anchorEl) {\n  return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n\nvar styles = {\n  /* Styles applied to the `Paper` component. */\n  paper: {\n    position: 'absolute',\n    overflowY: 'auto',\n    overflowX: 'hidden',\n    // So we see the popover when it's empty.\n    // It's most likely on issue on userland.\n    minWidth: 16,\n    minHeight: 16,\n    maxWidth: 'calc(100% - 32px)',\n    maxHeight: 'calc(100% - 32px)',\n    // We disable the focus ring for mouse, touch and keyboard users.\n    outline: 'none'\n  }\n};\nexports.styles = styles;\n\nvar Popover =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Popover, _React$Component);\n\n  function Popover() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Popover);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Popover)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.handleGetOffsetTop = getOffsetTop;\n    _this.handleGetOffsetLeft = getOffsetLeft;\n    _this.handleResize = (0, _debounce.default)(function () {\n      _this.setPositioningStyles(_this.paperRef);\n    }, 166);\n\n    _this.componentWillUnmount = function () {\n      _this.handleResize.clear();\n    };\n\n    _this.setPositioningStyles = function (element) {\n      if (element && element.style) {\n        var positioning = _this.getPositioningStyle(element);\n\n        if (positioning.top !== null) {\n          element.style.top = positioning.top;\n        }\n\n        if (positioning.left !== null) {\n          element.style.left = positioning.left;\n        }\n\n        element.style.transformOrigin = positioning.transformOrigin;\n      }\n    };\n\n    _this.getPositioningStyle = function (element) {\n      var _this$props = _this.props,\n          anchorEl = _this$props.anchorEl,\n          anchorReference = _this$props.anchorReference,\n          marginThreshold = _this$props.marginThreshold; // Check if the parent has requested anchoring on an inner content node\n\n      var contentAnchorOffset = _this.getContentAnchorOffset(element);\n\n      var elemRect = {\n        width: element.offsetWidth,\n        height: element.offsetHeight\n      }; // Get the transform origin point on the element itself\n\n      var transformOrigin = _this.getTransformOrigin(elemRect, contentAnchorOffset);\n\n      if (anchorReference === 'none') {\n        return {\n          top: null,\n          left: null,\n          transformOrigin: getTransformOriginValue(transformOrigin)\n        };\n      } // Get the offset of of the anchoring element\n\n\n      var anchorOffset = _this.getAnchorOffset(contentAnchorOffset); // Calculate element positioning\n\n\n      var top = anchorOffset.top - transformOrigin.vertical;\n      var left = anchorOffset.left - transformOrigin.horizontal;\n      var bottom = top + elemRect.height;\n      var right = left + elemRect.width; // Use the parent window of the anchorEl if provided\n\n      var containerWindow = (0, _ownerWindow.default)(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account\n\n      var heightThreshold = containerWindow.innerHeight - marginThreshold;\n      var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting\n\n      if (top < marginThreshold) {\n        var diff = top - marginThreshold;\n        top -= diff;\n        transformOrigin.vertical += diff;\n      } else if (bottom > heightThreshold) {\n        var _diff = bottom - heightThreshold;\n\n        top -= _diff;\n        transformOrigin.vertical += _diff;\n      }\n\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(elemRect.height < heightThreshold || !elemRect.height || !heightThreshold, ['Material-UI: the popover component is too tall.', \"Some part of it can not be seen on the screen (\".concat(elemRect.height - heightThreshold, \"px).\"), 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n')) : void 0; // Check if the horizontal axis needs shifting\n\n      if (left < marginThreshold) {\n        var _diff2 = left - marginThreshold;\n\n        left -= _diff2;\n        transformOrigin.horizontal += _diff2;\n      } else if (right > widthThreshold) {\n        var _diff3 = right - widthThreshold;\n\n        left -= _diff3;\n        transformOrigin.horizontal += _diff3;\n      }\n\n      return {\n        top: \"\".concat(top, \"px\"),\n        left: \"\".concat(left, \"px\"),\n        transformOrigin: getTransformOriginValue(transformOrigin)\n      };\n    };\n\n    _this.handleEnter = function (element) {\n      if (_this.props.onEnter) {\n        _this.props.onEnter(element);\n      }\n\n      _this.setPositioningStyles(element);\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Popover, [{\n    key: \"componentDidMount\",\n    // Corresponds to 10 frames at 60 Hz.\n    value: function componentDidMount() {\n      if (this.props.action) {\n        this.props.action({\n          updatePosition: this.handleResize\n        });\n      }\n    }\n  }, {\n    key: \"getAnchorOffset\",\n    // Returns the top/left offset of the position\n    // to attach to on the anchor element (or body if none is provided)\n    value: function getAnchorOffset(contentAnchorOffset) {\n      var _this$props2 = this.props,\n          anchorEl = _this$props2.anchorEl,\n          anchorOrigin = _this$props2.anchorOrigin,\n          anchorReference = _this$props2.anchorReference,\n          anchorPosition = _this$props2.anchorPosition;\n\n      if (anchorReference === 'anchorPosition') {\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(anchorPosition, 'Material-UI: you need to provide a `anchorPosition` property when using ' + '<Popover anchorReference=\"anchorPosition\" />.') : void 0;\n        return anchorPosition;\n      } // If an anchor element wasn't provided, just use the parent body element of this Popover\n\n\n      var anchorElement = getAnchorEl(anchorEl) || (0, _ownerDocument.default)(this.paperRef).body;\n      var anchorRect = anchorElement.getBoundingClientRect();\n      var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';\n      return {\n        top: anchorRect.top + this.handleGetOffsetTop(anchorRect, anchorVertical),\n        left: anchorRect.left + this.handleGetOffsetLeft(anchorRect, anchorOrigin.horizontal)\n      };\n    } // Returns the vertical offset of inner content to anchor the transform on if provided\n\n  }, {\n    key: \"getContentAnchorOffset\",\n    value: function getContentAnchorOffset(element) {\n      var _this$props3 = this.props,\n          getContentAnchorEl = _this$props3.getContentAnchorEl,\n          anchorReference = _this$props3.anchorReference;\n      var contentAnchorOffset = 0;\n\n      if (getContentAnchorEl && anchorReference === 'anchorEl') {\n        var contentAnchorEl = getContentAnchorEl(element);\n\n        if (contentAnchorEl && element.contains(contentAnchorEl)) {\n          var scrollTop = getScrollParent(element, contentAnchorEl);\n          contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;\n        } // != the default value\n\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(this.props.anchorOrigin.vertical === 'top', ['Material-UI: you can not change the default `anchorOrigin.vertical` value ', 'when also providing the `getContentAnchorEl` property to the popover component.', 'Only use one of the two properties.', 'Set `getContentAnchorEl` to `null | undefined`' + ' or leave `anchorOrigin.vertical` unchanged.'].join('\\n')) : void 0;\n      }\n\n      return contentAnchorOffset;\n    } // Return the base transform origin using the element\n    // and taking the content anchor offset into account if in use\n\n  }, {\n    key: \"getTransformOrigin\",\n    value: function getTransformOrigin(elemRect) {\n      var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      var transformOrigin = this.props.transformOrigin;\n      return {\n        vertical: this.handleGetOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,\n        horizontal: this.handleGetOffsetLeft(elemRect, transformOrigin.horizontal)\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props4 = this.props,\n          action = _this$props4.action,\n          anchorEl = _this$props4.anchorEl,\n          anchorOrigin = _this$props4.anchorOrigin,\n          anchorPosition = _this$props4.anchorPosition,\n          anchorReference = _this$props4.anchorReference,\n          children = _this$props4.children,\n          classes = _this$props4.classes,\n          containerProp = _this$props4.container,\n          elevation = _this$props4.elevation,\n          getContentAnchorEl = _this$props4.getContentAnchorEl,\n          marginThreshold = _this$props4.marginThreshold,\n          ModalClasses = _this$props4.ModalClasses,\n          onEnter = _this$props4.onEnter,\n          onEntered = _this$props4.onEntered,\n          onEntering = _this$props4.onEntering,\n          onExit = _this$props4.onExit,\n          onExited = _this$props4.onExited,\n          onExiting = _this$props4.onExiting,\n          open = _this$props4.open,\n          PaperProps = _this$props4.PaperProps,\n          role = _this$props4.role,\n          transformOrigin = _this$props4.transformOrigin,\n          TransitionComponent = _this$props4.TransitionComponent,\n          transitionDurationProp = _this$props4.transitionDuration,\n          TransitionProps = _this$props4.TransitionProps,\n          other = (0, _objectWithoutProperties2.default)(_this$props4, [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"classes\", \"container\", \"elevation\", \"getContentAnchorEl\", \"marginThreshold\", \"ModalClasses\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"open\", \"PaperProps\", \"role\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n      var transitionDuration = transitionDurationProp;\n\n      if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n        transitionDuration = undefined;\n      } // If the container prop is provided, use that\n      // If the anchorEl prop is provided, use its parent body element as the container\n      // If neither are provided let the Modal take care of choosing the container\n\n\n      var container = containerProp || (anchorEl ? (0, _ownerDocument.default)(getAnchorEl(anchorEl)).body : undefined);\n      return _react.default.createElement(_Modal.default, (0, _extends2.default)({\n        classes: ModalClasses,\n        container: container,\n        open: open,\n        BackdropProps: {\n          invisible: true\n        }\n      }, other), _react.default.createElement(TransitionComponent, (0, _extends2.default)({\n        appear: true,\n        in: open,\n        onEnter: this.handleEnter,\n        onEntered: onEntered,\n        onEntering: onEntering,\n        onExit: onExit,\n        onExited: onExited,\n        onExiting: onExiting,\n        role: role,\n        timeout: transitionDuration\n      }, TransitionProps), _react.default.createElement(_Paper.default, (0, _extends2.default)({\n        className: classes.paper,\n        elevation: elevation,\n        ref: function ref(_ref) {\n          _this2.paperRef = _reactDom.default.findDOMNode(_ref);\n        }\n      }, PaperProps), _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }), children)));\n    }\n  }]);\n  return Popover;\n}(_react.default.Component);\n\nPopover.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This is callback property. It's called by the component on mount.\n   * This is useful when you want to trigger an action programmatically.\n   * It currently only supports updatePosition() action.\n   *\n   * @param {object} actions This object contains all posible actions\n   * that can be triggered programmatically.\n   */\n  action: _propTypes.default.func,\n\n  /**\n   * This is the DOM element, or a function that returns the DOM element,\n   * that may be used to set the position of the popover.\n   */\n  anchorEl: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * This is the point on the anchor where the popover's\n   * `anchorEl` will attach to. This is not used when the\n   * anchorReference is 'anchorPosition'.\n   *\n   * Options:\n   * vertical: [top, center, bottom];\n   * horizontal: [left, center, right].\n   */\n  anchorOrigin: _propTypes.default.shape({\n    horizontal: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['left', 'center', 'right'])]).isRequired,\n    vertical: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['top', 'center', 'bottom'])]).isRequired\n  }),\n\n  /**\n   * This is the position that may be used\n   * to set the position of the popover.\n   * The coordinates are relative to\n   * the application's client area.\n   */\n  anchorPosition: _propTypes.default.shape({\n    left: _propTypes.default.number.isRequired,\n    top: _propTypes.default.number.isRequired\n  }),\n\n  /*\n   * This determines which anchor prop to refer to to set\n   * the position of the popover.\n   */\n  anchorReference: _propTypes.default.oneOf(['anchorEl', 'anchorPosition', 'none']),\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * A node, component instance, or function that returns either.\n   * The `container` will passed to the Modal component.\n   * By default, it uses the body of the anchorEl's top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * The elevation of the popover.\n   */\n  elevation: _propTypes.default.number,\n\n  /**\n   * This function is called in order to retrieve the content anchor element.\n   * It's the opposite of the `anchorEl` property.\n   * The content anchor element should be an element inside the popover.\n   * It's used to correctly scroll and set the position of the popover.\n   * The positioning strategy tries to make the content anchor element just above the\n   * anchor element.\n   */\n  getContentAnchorEl: _propTypes.default.func,\n\n  /**\n   * Specifies how close to the edge of the window the popover can appear.\n   */\n  marginThreshold: _propTypes.default.number,\n\n  /**\n   * `classes` property applied to the [`Modal`](/api/modal) element.\n   */\n  ModalClasses: _propTypes.default.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired before the component is entering.\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component has entered.\n   */\n  onEntered: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component is entering.\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * Callback fired before the component is exiting.\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component has exited.\n   */\n  onExited: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component is exiting.\n   */\n  onExiting: _propTypes.default.func,\n\n  /**\n   * If `true`, the popover is visible.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * Properties applied to the [`Paper`](/api/paper) element.\n   */\n  PaperProps: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  role: _propTypes.default.string,\n\n  /**\n   * This is the point on the popover which\n   * will attach to the anchor's origin.\n   *\n   * Options:\n   * vertical: [top, center, bottom, x(px)];\n   * horizontal: [left, center, right, x(px)].\n   */\n  transformOrigin: _propTypes.default.shape({\n    horizontal: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['left', 'center', 'right'])]).isRequired,\n    vertical: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['top', 'center', 'bottom'])]).isRequired\n  }),\n\n  /**\n   * Transition component.\n   */\n  TransitionComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  }), _propTypes.default.oneOf(['auto'])]),\n\n  /**\n   * Properties applied to the `Transition` element.\n   */\n  TransitionProps: _propTypes.default.object\n} : {};\nPopover.defaultProps = {\n  anchorReference: 'anchorEl',\n  anchorOrigin: {\n    vertical: 'top',\n    horizontal: 'left'\n  },\n  elevation: 8,\n  marginThreshold: 16,\n  transformOrigin: {\n    vertical: 'top',\n    horizontal: 'left'\n  },\n  TransitionComponent: _Grow.default,\n  transitionDuration: 'auto'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiPopover'\n})(Popover);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Popover.default;\n  }\n});\n\nvar _Popover = _interopRequireDefault(require(\"./Popover\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../utils/ownerDocument\"));\n\nvar _List = _interopRequireDefault(require(\"../List\"));\n\n// @inheritedComponent List\nvar MenuList =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(MenuList, _React$Component);\n\n  function MenuList() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, MenuList);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(MenuList)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {\n      currentTabIndex: null\n    };\n\n    _this.handleBlur = function (event) {\n      _this.blurTimer = setTimeout(function () {\n        if (_this.listRef) {\n          var list = _this.listRef;\n          var currentFocus = (0, _ownerDocument.default)(list).activeElement;\n\n          if (!list.contains(currentFocus)) {\n            _this.resetTabIndex();\n          }\n        }\n      }, 30);\n\n      if (_this.props.onBlur) {\n        _this.props.onBlur(event);\n      }\n    };\n\n    _this.handleKeyDown = function (event) {\n      var list = _this.listRef;\n      var key = (0, _keycode.default)(event);\n      var currentFocus = (0, _ownerDocument.default)(list).activeElement;\n\n      if ((key === 'up' || key === 'down') && (!currentFocus || currentFocus && !list.contains(currentFocus))) {\n        if (_this.selectedItemRef) {\n          _this.selectedItemRef.focus();\n        } else {\n          list.firstChild.focus();\n        }\n      } else if (key === 'down') {\n        event.preventDefault();\n\n        if (currentFocus.nextElementSibling) {\n          currentFocus.nextElementSibling.focus();\n        }\n      } else if (key === 'up') {\n        event.preventDefault();\n\n        if (currentFocus.previousElementSibling) {\n          currentFocus.previousElementSibling.focus();\n        }\n      }\n\n      if (_this.props.onKeyDown) {\n        _this.props.onKeyDown(event, key);\n      }\n    };\n\n    _this.handleItemFocus = function (event) {\n      var list = _this.listRef;\n\n      if (list) {\n        for (var i = 0; i < list.children.length; i += 1) {\n          if (list.children[i] === event.currentTarget) {\n            _this.setTabIndex(i);\n\n            break;\n          }\n        }\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(MenuList, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.resetTabIndex();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.blurTimer);\n    }\n  }, {\n    key: \"setTabIndex\",\n    value: function setTabIndex(index) {\n      this.setState({\n        currentTabIndex: index\n      });\n    }\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      var currentTabIndex = this.state.currentTabIndex;\n      var list = this.listRef;\n\n      if (!list || !list.children || !list.firstChild) {\n        return;\n      }\n\n      if (currentTabIndex && currentTabIndex >= 0) {\n        list.children[currentTabIndex].focus();\n      } else {\n        list.firstChild.focus();\n      }\n    }\n  }, {\n    key: \"resetTabIndex\",\n    value: function resetTabIndex() {\n      var list = this.listRef;\n      var currentFocus = (0, _ownerDocument.default)(list).activeElement;\n      var items = [];\n\n      for (var i = 0; i < list.children.length; i += 1) {\n        items.push(list.children[i]);\n      }\n\n      var currentFocusIndex = items.indexOf(currentFocus);\n\n      if (currentFocusIndex !== -1) {\n        return this.setTabIndex(currentFocusIndex);\n      }\n\n      if (this.selectedItemRef) {\n        return this.setTabIndex(items.indexOf(this.selectedItemRef));\n      }\n\n      return this.setTabIndex(0);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          className = _this$props.className,\n          onBlur = _this$props.onBlur,\n          onKeyDown = _this$props.onKeyDown,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"className\", \"onBlur\", \"onKeyDown\"]);\n      return _react.default.createElement(_List.default, (0, _extends2.default)({\n        role: \"menu\",\n        ref: function ref(_ref) {\n          _this2.listRef = _reactDom.default.findDOMNode(_ref);\n        },\n        className: className,\n        onKeyDown: this.handleKeyDown,\n        onBlur: this.handleBlur\n      }, other), _react.default.Children.map(children, function (child, index) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the MenuList component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n        return _react.default.cloneElement(child, {\n          tabIndex: index === _this2.state.currentTabIndex ? 0 : -1,\n          ref: child.props.selected ? function (ref) {\n            _this2.selectedItemRef = _reactDom.default.findDOMNode(ref);\n          } : undefined,\n          onFocus: _this2.handleItemFocus\n        });\n      }));\n    }\n  }]);\n  return MenuList;\n}(_react.default.Component);\n\nMenuList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * MenuList contents, normally `MenuItem`s.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: _propTypes.default.func\n} : {};\nvar _default = MenuList;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _MenuList.default;\n  }\n});\n\nvar _MenuList = _interopRequireDefault(require(\"./MenuList\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _scrollbarSize = _interopRequireDefault(require(\"dom-helpers/util/scrollbarSize\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Popover = _interopRequireDefault(require(\"../Popover\"));\n\nvar _MenuList = _interopRequireDefault(require(\"../MenuList\"));\n\n// @inheritedComponent Popover\nvar RTL_ORIGIN = {\n  vertical: 'top',\n  horizontal: 'right'\n};\nvar LTR_ORIGIN = {\n  vertical: 'top',\n  horizontal: 'left'\n};\nvar styles = {\n  /* Styles applied to the `Paper` component. */\n  paper: {\n    // specZ: The maximum height of a simple menu should be one or more rows less than the view\n    // height. This ensures a tapable area outside of the simple menu with which to dismiss\n    // the menu.\n    maxHeight: 'calc(100% - 96px)',\n    // Add iOS momentum scrolling.\n    WebkitOverflowScrolling: 'touch'\n  }\n};\nexports.styles = styles;\n\nvar Menu =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Menu, _React$Component);\n\n  function Menu() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Menu);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Menu)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.getContentAnchorEl = function () {\n      if (!_this.menuListRef || !_this.menuListRef.selectedItemRef) {\n        return _reactDom.default.findDOMNode(_this.menuListRef).firstChild;\n      }\n\n      return _reactDom.default.findDOMNode(_this.menuListRef.selectedItemRef);\n    };\n\n    _this.focus = function () {\n      if (_this.menuListRef && _this.menuListRef.selectedItemRef) {\n        _reactDom.default.findDOMNode(_this.menuListRef.selectedItemRef).focus();\n\n        return;\n      }\n\n      var menuList = _reactDom.default.findDOMNode(_this.menuListRef);\n\n      if (menuList && menuList.firstChild) {\n        menuList.firstChild.focus();\n      }\n    };\n\n    _this.handleEnter = function (element) {\n      var _this$props = _this.props,\n          disableAutoFocusItem = _this$props.disableAutoFocusItem,\n          theme = _this$props.theme;\n\n      var menuList = _reactDom.default.findDOMNode(_this.menuListRef); // Focus so the scroll computation of the Popover works as expected.\n\n\n      if (disableAutoFocusItem !== true) {\n        _this.focus();\n      } // Let's ignore that piece of logic if users are already overriding the width\n      // of the menu.\n\n\n      if (menuList && element.clientHeight < menuList.clientHeight && !menuList.style.width) {\n        var size = \"\".concat((0, _scrollbarSize.default)(), \"px\");\n        menuList.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = size;\n        menuList.style.width = \"calc(100% + \".concat(size, \")\");\n      }\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(element);\n      }\n    };\n\n    _this.handleListKeyDown = function (event, key) {\n      if (key === 'tab') {\n        event.preventDefault();\n\n        if (_this.props.onClose) {\n          _this.props.onClose(event);\n        }\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Menu, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.open && this.props.disableAutoFocusItem !== true) {\n        this.focus();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          classes = _this$props2.classes,\n          disableAutoFocusItem = _this$props2.disableAutoFocusItem,\n          MenuListProps = _this$props2.MenuListProps,\n          onEnter = _this$props2.onEnter,\n          _this$props2$PaperPro = _this$props2.PaperProps,\n          PaperProps = _this$props2$PaperPro === void 0 ? {} : _this$props2$PaperPro,\n          PopoverClasses = _this$props2.PopoverClasses,\n          theme = _this$props2.theme,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"children\", \"classes\", \"disableAutoFocusItem\", \"MenuListProps\", \"onEnter\", \"PaperProps\", \"PopoverClasses\", \"theme\"]);\n      return _react.default.createElement(_Popover.default, (0, _extends2.default)({\n        getContentAnchorEl: this.getContentAnchorEl,\n        classes: PopoverClasses,\n        onEnter: this.handleEnter,\n        anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n        transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,\n        PaperProps: (0, _extends2.default)({}, PaperProps, {\n          classes: (0, _extends2.default)({}, PaperProps.classes, {\n            root: classes.paper\n          })\n        })\n      }, other), _react.default.createElement(_MenuList.default, (0, _extends2.default)({\n        onKeyDown: this.handleListKeyDown\n      }, MenuListProps, {\n        ref: function ref(_ref) {\n          _this2.menuListRef = _ref;\n        }\n      }), children));\n    }\n  }]);\n  return Menu;\n}(_react.default.Component);\n\nMenu.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The DOM element used to set the position of the menu.\n   */\n  anchorEl: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * Menu contents, normally `MenuItem`s.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * If `true`, the selected / first menu item will not be auto focused.\n   */\n  disableAutoFocusItem: _propTypes.default.bool,\n\n  /**\n   * Properties applied to the [`MenuList`](/api/menu-list) element.\n   */\n  MenuListProps: _propTypes.default.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired before the Menu enters.\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * Callback fired when the Menu has entered.\n   */\n  onEntered: _propTypes.default.func,\n\n  /**\n   * Callback fired when the Menu is entering.\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * Callback fired before the Menu exits.\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * Callback fired when the Menu has exited.\n   */\n  onExited: _propTypes.default.func,\n\n  /**\n   * Callback fired when the Menu is exiting.\n   */\n  onExiting: _propTypes.default.func,\n\n  /**\n   * If `true`, the menu is visible.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  PaperProps: _propTypes.default.object,\n\n  /**\n   * `classes` property applied to the [`Popover`](/api/popover) element.\n   */\n  PopoverClasses: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The length of the transition in `ms`, or 'auto'\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  }), _propTypes.default.oneOf(['auto'])])\n} : {};\nMenu.defaultProps = {\n  disableAutoFocusItem: false,\n  transitionDuration: 'auto'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiMenu',\n  withTheme: true\n})(Menu);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Menu.default;\n  }\n});\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ListItem = _interopRequireDefault(require(\"../ListItem\"));\n\n// @inheritedComponent ListItem\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: (0, _extends2.default)({}, theme.typography.subheading, {\n      height: 24,\n      boxSizing: 'content-box',\n      width: 'auto',\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      whiteSpace: 'nowrap',\n      paddingLeft: 16,\n      paddingRight: 16,\n      '&$selected': {}\n    }),\n\n    /* Styles applied to the root element if `selected={true}`. */\n    selected: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction MenuItem(props) {\n  var classes = props.classes,\n      className = props.className,\n      component = props.component,\n      selected = props.selected,\n      role = props.role,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\", \"selected\", \"role\"]);\n  return _react.default.createElement(_ListItem.default, (0, _extends2.default)({\n    button: true,\n    role: role,\n    tabIndex: -1,\n    selected: selected,\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.selected, selected), className),\n    component: component\n  }, other));\n}\n\nMenuItem.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Menu item contents.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * @ignore\n   */\n  role: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  selected: _propTypes.default.bool\n} : {};\nMenuItem.defaultProps = {\n  component: 'li',\n  role: 'menuitem'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiMenuItem'\n})(MenuItem);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _MenuItem.default;\n  }\n});\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _LinearProgress = _interopRequireDefault(require(\"../LinearProgress\"));\n\n// @inheritedComponent Paper\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      flexDirection: 'row',\n      justifyContent: 'space-between',\n      alignItems: 'center',\n      background: theme.palette.background.default,\n      padding: 8\n    },\n\n    /* Styles applied to the root element if `position=\"bottom\"`. */\n    positionBottom: {\n      position: 'fixed',\n      bottom: 0,\n      left: 0,\n      right: 0,\n      zIndex: theme.zIndex.mobileStepper\n    },\n\n    /* Styles applied to the root element if `position=\"top\"`. */\n    positionTop: {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      right: 0,\n      zIndex: theme.zIndex.mobileStepper\n    },\n\n    /* Styles applied to the root element if `position=\"static\"`. */\n    positionStatic: {},\n\n    /* Styles applied to the dots container if `variant=\"dots\"`. */\n    dots: {\n      display: 'flex',\n      flexDirection: 'row'\n    },\n\n    /* Styles applied to each dot if `variant=\"dots\"`. */\n    dot: {\n      backgroundColor: theme.palette.action.disabled,\n      borderRadius: '50%',\n      width: 8,\n      height: 8,\n      margin: '0 2px'\n    },\n\n    /* Styles applied to a dot if `variant=\"dots\"` and this is the active step. */\n    dotActive: {\n      backgroundColor: theme.palette.primary.main\n    },\n\n    /* Styles applied to the Linear Progress component if `variant=\"progress\"`. */\n    progress: {\n      width: '50%'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction MobileStepper(props) {\n  var activeStep = props.activeStep,\n      backButton = props.backButton,\n      classes = props.classes,\n      classNameProp = props.className,\n      LinearProgressProps = props.LinearProgressProps,\n      nextButton = props.nextButton,\n      position = props.position,\n      steps = props.steps,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"activeStep\", \"backButton\", \"classes\", \"className\", \"LinearProgressProps\", \"nextButton\", \"position\", \"steps\", \"variant\"]);\n  var className = (0, _classnames.default)(classes.root, classes[\"position\".concat((0, _helpers.capitalize)(position))], classNameProp);\n  return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    square: true,\n    elevation: 0,\n    className: className\n  }, other), backButton, variant === 'dots' && _react.default.createElement(\"div\", {\n    className: classes.dots\n  }, (0, _toConsumableArray2.default)(new Array(steps)).map(function (_, step) {\n    var dotClassName = (0, _classnames.default)(classes.dot, (0, _defineProperty2.default)({}, classes.dotActive, step === activeStep)); // eslint-disable-next-line react/no-array-index-key\n\n    return _react.default.createElement(\"div\", {\n      key: step,\n      className: dotClassName\n    });\n  })), variant === 'progress' && _react.default.createElement(_LinearProgress.default, (0, _extends2.default)({\n    className: classes.progress,\n    variant: \"determinate\",\n    value: Math.ceil(activeStep / (steps - 1) * 100)\n  }, LinearProgressProps)), nextButton);\n}\n\nMobileStepper.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Set the active step (zero based index).\n   * Defines which dot is highlighted when the variant is 'dots'.\n   */\n  activeStep: _propTypes.default.number,\n\n  /**\n   * A back button element. For instance, it can be be a `Button` or a `IconButton`.\n   */\n  backButton: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Properties applied to the `LinearProgress` element.\n   */\n  LinearProgressProps: _propTypes.default.object,\n\n  /**\n   * A next button element. For instance, it can be be a `Button` or a `IconButton`.\n   */\n  nextButton: _propTypes.default.node,\n\n  /**\n   * Set the positioning type.\n   */\n  position: _propTypes.default.oneOf(['bottom', 'top', 'static']),\n\n  /**\n   * The total steps.\n   */\n  steps: _propTypes.default.number.isRequired,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['text', 'dots', 'progress'])\n} : {};\nMobileStepper.defaultProps = {\n  activeStep: 0,\n  position: 'bottom',\n  variant: 'dots'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiMobileStepper'\n})(MobileStepper);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _MobileStepper.default;\n  }\n});\n\nvar _MobileStepper = _interopRequireDefault(require(\"./MobileStepper\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\n/**\n * @ignore - internal component.\n */\nfunction NativeSelectInput(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      disabled = props.disabled,\n      IconComponent = props.IconComponent,\n      inputRef = props.inputRef,\n      name = props.name,\n      onChange = props.onChange,\n      value = props.value,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disabled\", \"IconComponent\", \"inputRef\", \"name\", \"onChange\", \"value\", \"variant\"]);\n  return _react.default.createElement(\"div\", {\n    className: classes.root\n  }, _react.default.createElement(\"select\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.select, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.filled, variant === 'filled'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), className),\n    name: name,\n    disabled: disabled,\n    onChange: onChange,\n    value: value,\n    ref: inputRef\n  }, other), children), _react.default.createElement(IconComponent, {\n    className: classes.icon\n  }));\n}\n\nNativeSelectInput.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<option>` elements.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the select element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the select will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Use that property to pass a ref callback to the native select element.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The input value.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nvar _default = NativeSelectInput;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M7 10l5 5 5-5z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar ArrowDropDown = function ArrowDropDown(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nArrowDropDown = (0, _pure.default)(ArrowDropDown);\nArrowDropDown.muiName = 'SvgIcon';\nvar _default = ArrowDropDown;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _NativeSelectInput = _interopRequireDefault(require(\"./NativeSelectInput\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _InputBase = require(\"../InputBase/InputBase\");\n\nvar _ArrowDropDown = _interopRequireDefault(require(\"../internal/svg-icons/ArrowDropDown\"));\n\nvar _Input = _interopRequireDefault(require(\"../Input\"));\n\n// @inheritedComponent Input\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the `Input` component `root` class. */\n    root: {\n      position: 'relative',\n      width: '100%'\n    },\n\n    /* Styles applied to the `Input` component `select` class. */\n    select: {\n      '-moz-appearance': 'none',\n      // Reset\n      '-webkit-appearance': 'none',\n      // Reset\n      // When interacting quickly, the text can end up selected.\n      // Native select can't be selected either.\n      userSelect: 'none',\n      paddingRight: 32,\n      borderRadius: 0,\n      // Reset\n      width: 'calc(100% - 32px)',\n      minWidth: 16,\n      // So it doesn't collapse.\n      cursor: 'pointer',\n      '&:focus': {\n        // Show that it's not an text input\n        background: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)',\n        borderRadius: 0 // Reset Chrome style\n\n      },\n      // Remove Firefox focus border\n      '&:-moz-focusring': {\n        color: 'transparent',\n        textShadow: '0 0 0 #000'\n      },\n      // Remove IE11 arrow\n      '&::-ms-expand': {\n        display: 'none'\n      },\n      '&$disabled': {\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the `Input` component if `variant=\"filled\"`. */\n    filled: {\n      width: 'calc(100% - 44px)'\n    },\n\n    /* Styles applied to the `Input` component if `variant=\"outlined\"`. */\n    outlined: {\n      width: 'calc(100% - 46px)',\n      borderRadius: theme.shape.borderRadius\n    },\n\n    /* Styles applied to the `Input` component `selectMenu` class. */\n    selectMenu: {\n      width: 'auto',\n      // Fix Safari textOverflow\n      textOverflow: 'ellipsis',\n      whiteSpace: 'nowrap',\n      overflow: 'hidden',\n      minHeight: '1.1875em' // Reset (19px), match the native input line-height\n\n    },\n\n    /* Styles applied to the `Input` component `disabled` class. */\n    disabled: {},\n\n    /* Styles applied to the `Input` component `icon` class. */\n    icon: {\n      // We use a position absolute over a flexbox in order to forward the pointer events\n      // to the input.\n      position: 'absolute',\n      right: 0,\n      top: 'calc(50% - 12px)',\n      // Center vertically\n      color: theme.palette.action.active,\n      'pointer-events': 'none' // Don't block pointer events on the select under the icon.\n\n    }\n  };\n};\n/**\n * An alternative to `<Select native />` with a much smaller bundle size footprint.\n */\n\n\nexports.styles = styles;\n\nfunction NativeSelect(props, context) {\n  var children = props.children,\n      classes = props.classes,\n      IconComponent = props.IconComponent,\n      input = props.input,\n      inputProps = props.inputProps,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"IconComponent\", \"input\", \"inputProps\", \"variant\"]);\n  var fcs = (0, _InputBase.formControlState)({\n    props: props,\n    context: context,\n    states: ['variant']\n  });\n  return _react.default.cloneElement(input, (0, _extends2.default)({\n    // Most of the logic is implemented in `NativeSelectInput`.\n    // The `Select` component is a simple API wrapper to expose something better to play with.\n    inputComponent: _NativeSelectInput.default,\n    inputProps: (0, _extends2.default)({\n      children: children,\n      classes: classes,\n      IconComponent: IconComponent,\n      variant: fcs.variant,\n      type: undefined\n    }, inputProps, input ? input.props.inputProps : {})\n  }, other));\n}\n\nNativeSelect.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<option>` elements.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * An `Input` element; does not have to be a material-ui specific `Input`.\n   */\n  input: _propTypes.default.element,\n\n  /**\n   * Attributes applied to the `select` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The input value.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nNativeSelect.defaultProps = {\n  IconComponent: _ArrowDropDown.default,\n  input: _react.default.createElement(_Input.default, null)\n};\nNativeSelect.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\nNativeSelect.muiName = 'Select';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiNativeSelect'\n})(NativeSelect);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _NativeSelect.default;\n  }\n});\n\nvar _NativeSelect = _interopRequireDefault(require(\"./NativeSelect\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n * - Escape hatch for broken dependencies not supporting SSR.\n * - Improve the time-to-first paint on the client by only rendering above the fold.\n * - Reduce the rendering time on the server.\n * - Under too heavy server load, you can turn on service degradation.\n */\nvar NoSsr =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(NoSsr, _React$Component);\n\n  function NoSsr() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, NoSsr);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(NoSsr)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.mounted = false;\n    _this.state = {\n      mounted: false\n    };\n    return _this;\n  }\n\n  (0, _createClass2.default)(NoSsr, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      this.mounted = true;\n\n      if (this.props.defer) {\n        // Wondering why we use two raf? Check this video out:\n        // https://www.youtube.com/watch?v=cCOL7MC4Pl0\n        requestAnimationFrame(function () {\n          // The browser should be about to render the DOM that React commited at this point.\n          // We don't want to interrupt. Let's wait the next raf.\n          requestAnimationFrame(function () {\n            if (_this2.mounted) {\n              _this2.setState({\n                mounted: true\n              });\n            }\n          });\n        });\n      } else {\n        this.setState({\n          mounted: true\n        }); // eslint-disable-line react/no-did-mount-set-state\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.mounted = false;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          fallback = _this$props.fallback;\n      return this.state.mounted ? children : fallback;\n    }\n  }]);\n  return NoSsr;\n}(_react.default.Component);\n\nNoSsr.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * If `true`, the component will not only prevent server side rendering.\n   * It will also defer the rendering of the children into a different screen frame.\n   */\n  defer: _propTypes.default.bool,\n\n  /**\n   * The fallback content to display.\n   */\n  fallback: _propTypes.default.node\n} : {};\nNoSsr.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(NoSsr.propTypes) : {};\nNoSsr.defaultProps = {\n  defer: false,\n  fallback: null\n};\nvar _default = NoSsr;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _NoSsr.default;\n  }\n});\n\nvar _NoSsr = _interopRequireDefault(require(\"./NoSsr\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _styles = require(\"../styles\");\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  var light = theme.palette.type === 'light';\n  var align = theme.direction === 'rtl' ? 'right' : 'left';\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'absolute',\n      width: '100%',\n      height: '100%',\n      boxSizing: 'border-box',\n      top: 0,\n      left: 0,\n      margin: 0,\n      padding: 0,\n      pointerEvents: 'none',\n      borderRadius: theme.shape.borderRadius,\n      borderStyle: 'solid',\n      borderWidth: 1,\n      borderColor: light ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)',\n      // Match the Input Label\n      transition: theme.transitions.create([\"padding-\".concat(align), 'border-color', 'border-width'], {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      })\n    },\n\n    /* Styles applied to the legend element. */\n    legend: {\n      textAlign: 'left',\n      padding: 0,\n      transition: theme.transitions.create('width', {\n        duration: theme.transitions.duration.shorter,\n        easing: theme.transitions.easing.easeOut\n      }),\n      // Firefox workaround. Firefox will only obscure the\n      // rendered height of the legend and, unlike other browsers,\n      // will not push fieldset contents.\n      '@supports (-moz-appearance:none)': {\n        height: 2\n      }\n    },\n\n    /* Styles applied to the root element if the control is focused. */\n    focused: {\n      borderColor: theme.palette.primary.main,\n      borderWidth: 2\n    },\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {\n      borderColor: theme.palette.error.main\n    },\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {\n      borderColor: theme.palette.action.disabled\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\n\nexports.styles = styles;\n\nfunction NotchedOutline(props) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      className = props.className,\n      disabled = props.disabled,\n      error = props.error,\n      focused = props.focused,\n      labelWidthProp = props.labelWidth,\n      notched = props.notched,\n      style = props.style,\n      theme = props.theme,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disabled\", \"error\", \"focused\", \"labelWidth\", \"notched\", \"style\", \"theme\"]);\n  var align = theme.direction === 'rtl' ? 'right' : 'left';\n  var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0;\n  return _react.default.createElement(\"fieldset\", (0, _extends3.default)({\n    \"aria-hidden\": true,\n    style: (0, _extends3.default)((0, _defineProperty2.default)({}, \"padding\".concat((0, _helpers.capitalize)(align)), 8 + (notched ? 0 : labelWidth / 2)), style),\n    className: (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.focused, focused), (0, _defineProperty2.default)(_classNames, classes.error, error), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), className)\n  }, other), _react.default.createElement(\"legend\", {\n    className: classes.legend,\n    style: {\n      // IE 11: fieldset with legend does not render\n      // a border radius. This maintains consistency\n      // by always having a legend rendered\n      width: notched ? labelWidth : 0.01\n    }\n  }));\n}\n\nNotchedOutline.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the outline should be displayed in a disabled state.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the outline should be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the outline should be displayed in a focused state.\n   */\n  focused: _propTypes.default.bool,\n\n  /**\n   * The width of the legend.\n   */\n  labelWidth: _propTypes.default.number.isRequired,\n\n  /**\n   * If `true`, the outline is notched to accommodate the label.\n   */\n  notched: _propTypes.default.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object\n} : {};\n\nvar _default = (0, _styles.withStyles)(styles, {\n  name: 'MuiNotchedOutline',\n  withTheme: true\n})(NotchedOutline);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _InputBase = _interopRequireDefault(require(\"../InputBase\"));\n\nvar _NotchedOutline = _interopRequireDefault(require(\"./NotchedOutline\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\n// @inheritedComponent InputBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      '&:hover:not($disabled):not($focused):not($error) $notchedOutline': {\n        borderColor: theme.palette.text.primary\n      }\n    },\n\n    /* Styles applied to the root element if the component is focused. */\n    focused: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `startAdornment` is provided. */\n    adornedStart: {\n      paddingLeft: 14\n    },\n\n    /* Styles applied to the root element if `endAdornment` is provided. */\n    adornedEnd: {\n      paddingRight: 14\n    },\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element if `multiline={true}`. */\n    multiline: {\n      padding: '18.5px 14px',\n      boxSizing: 'border-box' // Prevent padding issue with fullWidth.\n\n    },\n\n    /* Styles applied to the `NotchedOutline` element. */\n    notchedOutline: {},\n\n    /* Styles applied to the `input` element. */\n    input: {\n      padding: '18.5px 14px'\n    },\n\n    /* Styles applied to the `input` element if `margin=\"dense\"`. */\n    inputMarginDense: {\n      paddingTop: 15,\n      paddingBottom: 15\n    },\n\n    /* Styles applied to the `input` element if `multiline={true}`. */\n    inputMultiline: {\n      padding: 0\n    },\n\n    /* Styles applied to the `input` element if `startAdornment` is provided. */\n    inputAdornedStart: {\n      paddingLeft: 0\n    },\n\n    /* Styles applied to the `input` element if `endAdornment` is provided. */\n    inputAdornedEnd: {\n      paddingRight: 0\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction OutlinedInput(props) {\n  var classes = props.classes,\n      labelWidth = props.labelWidth,\n      notched = props.notched,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"labelWidth\", \"notched\"]);\n  return _react.default.createElement(_InputBase.default, (0, _extends2.default)({\n    renderPrefix: function renderPrefix(state) {\n      return _react.default.createElement(_NotchedOutline.default, {\n        className: classes.notchedOutline,\n        disabled: state.disabled,\n        error: state.error,\n        focused: state.focused,\n        labelWidth: labelWidth,\n        notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n      });\n    },\n    classes: (0, _extends2.default)({}, classes, {\n      root: (0, _classnames.default)(classes.root, classes.underline, {}),\n      notchedOutline: null\n    })\n  }, other));\n}\n\nOutlinedInput.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it here:\n   * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill\n   */\n  autoComplete: _propTypes.default.string,\n\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the wrapper element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The default input value, useful when not controlling the component.\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * If `true`, the input will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * End `InputAdornment` for this component.\n   */\n  endAdornment: _propTypes.default.node,\n\n  /**\n   * If `true`, the input will indicate an error. This is normally obtained via context from\n   * FormControl.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The component used for the native input.\n   * Either a string to use a DOM element or a component.\n   */\n  inputComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The width of the legend.\n   */\n  labelWidth: _propTypes.default.number.isRequired,\n\n  /**\n   * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n   * FormControl.\n   */\n  margin: _propTypes.default.oneOf(['dense', 'none']),\n\n  /**\n   * If `true`, a textarea element will be rendered.\n   */\n  multiline: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * If `true`, the outline is notched to accommodate the label.\n   */\n  notched: _propTypes.default.bool,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: _propTypes.default.string,\n\n  /**\n   * It prevents the user from changing the value of the field\n   * (not from interacting with the field).\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * If `true`, the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Start `InputAdornment` for this component.\n   */\n  startAdornment: _propTypes.default.node,\n\n  /**\n   * Type of the input element. It should be a valid HTML5 input type.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The input value, required for a controlled component.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))])\n} : {};\n_InputBase.default.defaultProps = {\n  fullWidth: false,\n  inputComponent: 'input',\n  multiline: false,\n  type: 'text'\n};\nOutlinedInput.muiName = 'Input';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiOutlinedInput'\n})(OutlinedInput);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _OutlinedInput.default;\n  }\n});\n\nvar _OutlinedInput = _interopRequireDefault(require(\"./OutlinedInput\"));","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nexport function microtaskDebounce(fn) {\n  let called = false\n  return () => {\n    if (called) {\n      return\n    }\n    called = true\n    window.Promise.resolve().then(() => {\n      called = false\n      fn()\n    })\n  }\n}\n\nexport function taskDebounce(fn) {\n  let scheduled = false;\n  return () => {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(() => {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n  ? microtaskDebounce\n  : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n  const getType = {};\n  return (\n    functionToCheck &&\n    getType.toString.call(functionToCheck) === '[object Function]'\n  );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  const css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body\n    case '#document':\n      return element.body\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n  const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n  if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n  if (version === 11) {\n    return isIE11;\n  }\n  if (version === 10) {\n    return isIE10;\n  }\n  return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n  if (!element) {\n    return document.documentElement;\n  }\n\n  const noOffsetParent = isIE(10) ? document.body : null;\n\n  // NOTE: 1 DOM access here\n  let offsetParent = element.offsetParent;\n  // Skip hidden elements which don't have an offsetParent\n  while (offsetParent === noOffsetParent && element.nextElementSibling) {\n    offsetParent = (element = element.nextElementSibling).offsetParent;\n  }\n\n  const nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return element ? element.ownerDocument.documentElement : document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (\n    ['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n    getStyleComputedProperty(offsetParent, 'position') === 'static'\n  ) {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n  const { nodeName } = element;\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return (\n    nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n  );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  const order =\n    element1.compareDocumentPosition(element2) &\n    Node.DOCUMENT_POSITION_FOLLOWING;\n  const start = order ? element1 : element2;\n  const end = order ? element2 : element1;\n\n  // Get common ancestor container\n  const range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  const { commonAncestorContainer } = range;\n\n  // Both nodes are inside #document\n  if (\n    (element1 !== commonAncestorContainer &&\n      element2 !== commonAncestorContainer) ||\n    start.contains(end)\n  ) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  const element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n  const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  const nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    const html = element.ownerDocument.documentElement;\n    const scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n  const scrollTop = getScroll(element, 'top');\n  const scrollLeft = getScroll(element, 'left');\n  const modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n  const sideA = axis === 'x' ? 'Left' : 'Top';\n  const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return (\n    parseFloat(styles[`border${sideA}Width`], 10) +\n    parseFloat(styles[`border${sideB}Width`], 10)\n  );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(\n    body[`offset${axis}`],\n    body[`scroll${axis}`],\n    html[`client${axis}`],\n    html[`offset${axis}`],\n    html[`scroll${axis}`],\n    isIE(10)\n      ? (parseInt(html[`offset${axis}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n      parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n    : 0 \n  );\n}\n\nexport default function getWindowSizes(document) {\n  const body = document.body;\n  const html = document.documentElement;\n  const computedStyle = isIE(10) && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle),\n  };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n  return {\n    ...offsets,\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height,\n  };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n  let rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  try {\n    if (isIE(10)) {\n      rect = element.getBoundingClientRect();\n      const scrollTop = getScroll(element, 'top');\n      const scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    }\n    else {\n      rect = element.getBoundingClientRect();\n    }\n  }\n  catch(e){}\n\n  const result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top,\n  };\n\n  // subtract scrollbar size from sizes\n  const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n  const width =\n    sizes.width || element.clientWidth || result.right - result.left;\n  const height =\n    sizes.height || element.clientHeight || result.bottom - result.top;\n\n  let horizScrollbar = element.offsetWidth - width;\n  let vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    const styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n  const isIE10 = runIsIE(10);\n  const isHTML = parent.nodeName === 'HTML';\n  const childrenRect = getBoundingClientRect(children);\n  const parentRect = getBoundingClientRect(parent);\n  const scrollParent = getScrollParent(children);\n\n  const styles = getStyleComputedProperty(parent);\n  const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n  if(fixedPosition && isHTML) {\n    parentRect.top = Math.max(parentRect.top, 0);\n    parentRect.left = Math.max(parentRect.left, 0);\n  }\n  let offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height,\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    const marginTop = parseFloat(styles.marginTop, 10);\n    const marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (\n    isIE10 && !fixedPosition\n      ? parent.contains(scrollParent)\n      : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n  ) {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n  const html = element.ownerDocument.documentElement;\n  const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  const width = Math.max(html.clientWidth, window.innerWidth || 0);\n  const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  const scrollTop = !excludeScroll ? getScroll(html) : 0;\n  const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n  const offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width,\n    height,\n  };\n\n  return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n  const nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n   if (!element || !element.parentElement || isIE()) {\n    return document.documentElement;\n  }\n  let el = element.parentElement;\n  while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n    el = el.parentElement;\n  }\n  return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n  popper,\n  reference,\n  padding,\n  boundariesElement,\n  fixedPosition = false\n) {\n  // NOTE: 1 DOM access here\n\n  let boundaries = { top: 0, left: 0 };\n  const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport' ) {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n  }\n\n  else {\n    // Handle other cases based on DOM element used as boundaries\n    let boundariesNode;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    const offsets = getOffsetRectRelativeToArbitraryNode(\n      boundariesNode,\n      offsetParent,\n      fixedPosition\n    );\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      const { height, width } = getWindowSizes(popper.ownerDocument);\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  padding = padding || 0;\n  const isPaddingNumber = typeof padding === 'number';\n  boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n  boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n  boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n  boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n  return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n  placement,\n  refRect,\n  popper,\n  reference,\n  boundariesElement,\n  padding = 0\n) {\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  const boundaries = getBoundaries(\n    popper,\n    reference,\n    padding,\n    boundariesElement\n  );\n\n  const rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top,\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height,\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom,\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height,\n    },\n  };\n\n  const sortedAreas = Object.keys(rects)\n    .map(key => ({\n      key,\n      ...rects[key],\n      area: getArea(rects[key]),\n    }))\n    .sort((a, b) => b.area - a.area);\n\n  const filteredAreas = sortedAreas.filter(\n    ({ width, height }) =>\n      width >= popper.clientWidth && height >= popper.clientHeight\n  );\n\n  const computedPlacement = filteredAreas.length > 0\n    ? filteredAreas[0].key\n    : sortedAreas[0].key;\n\n  const variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n  const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n  const styles = getComputedStyle(element);\n  const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  const result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x,\n  };\n  return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n  const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  const popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  const popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height,\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  const mainSide = isHoriz ? 'top' : 'left';\n  const secondarySide = isHoriz ? 'left' : 'top';\n  const measurement = isHoriz ? 'height' : 'width';\n  const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] =\n    referenceOffsets[mainSide] +\n    referenceOffsets[measurement] / 2 -\n    popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] =\n      referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] =\n      referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(cur => cur[prop] === value);\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  const match = find(arr, obj => obj[prop] === value);\n  return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n  const modifiersToRun = ends === undefined\n    ? modifiers\n    : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(modifier => {\n    if (modifier['function']) { // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  let data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {},\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(\n    this.state,\n    this.popper,\n    this.reference,\n    this.options.positionFixed\n  );\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(\n    this.options.placement,\n    data.offsets.reference,\n    this.popper,\n    this.reference,\n    this.options.modifiers.flip.boundariesElement,\n    this.options.modifiers.flip.padding\n  );\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  data.positionFixed = this.options.positionFixed;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(\n    this.popper,\n    data.offsets.reference,\n    data.placement\n  );\n\n  data.offsets.popper.position = this.options.positionFixed\n    ? 'fixed'\n    : 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(\n    ({ name, enabled }) => enabled && name === modifierName\n  );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n  const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (let i = 0; i < prefixes.length; i++) {\n    const prefix = prefixes[i];\n    const toCheck = prefix ? `${prefix}${upperProp}` : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style.left = '';\n    this.popper.style.right = '';\n    this.popper.style.bottom = '';\n    this.popper.style.willChange = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n  const ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  const isBody = scrollParent.nodeName === 'BODY';\n  const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(\n      getScrollParent(target.parentNode),\n      event,\n      callback,\n      scrollParents\n    );\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n  reference,\n  options,\n  state,\n  updateBound\n) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  const scrollElement = getScrollParent(reference);\n  attachToScrollParents(\n    scrollElement,\n    'scroll',\n    state.updateBound,\n    state.scrollParents\n  );\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(\n      this.reference,\n      this.options,\n      this.state,\n      this.scheduleUpdate\n    );\n  }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(target => {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n  Object.keys(styles).forEach(prop => {\n    let unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (\n      ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n        -1 &&\n      isNumeric(styles[prop])\n    ) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function(prop) {\n    const value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n  reference,\n  popper,\n  options,\n  modifierOptions,\n  state\n) {\n  // compute reference element offsets\n  const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  const placement = computeAutoPlacement(\n    options.placement,\n    referenceOffsets,\n    popper,\n    reference,\n    options.modifiers.flip.boundariesElement,\n    options.modifiers.flip.padding\n  );\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n  return options;\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n  const { x, y } = options;\n  const { popper } = data.offsets;\n\n  // Remove this legacy support in Popper.js v2\n  const legacyGpuAccelerationOption = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'applyStyle'\n  ).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn(\n      'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n    );\n  }\n  const gpuAcceleration =\n    legacyGpuAccelerationOption !== undefined\n      ? legacyGpuAccelerationOption\n      : options.gpuAcceleration;\n\n  const offsetParent = getOffsetParent(data.instance.popper);\n  const offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  const styles = {\n    position: popper.position,\n  };\n\n  // Avoid blurry text by using full pixel integers.\n  // For pixel-perfect positioning, top/bottom prefers rounded\n  // values, while left/right prefers floored values.\n  const offsets = {\n    left: Math.floor(popper.left),\n    top: Math.round(popper.top),\n    bottom: Math.round(popper.bottom),\n    right: Math.floor(popper.right),\n  };\n\n  const sideA = x === 'bottom' ? 'top' : 'bottom';\n  const sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  const prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  let left, top;\n  if (sideA === 'bottom') {\n    // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n    // and not the bottom of the html element\n    if (offsetParent.nodeName === 'HTML') {\n      top = -offsetParent.clientHeight + offsets.bottom;\n    } else {\n      top = -offsetParentRect.height + offsets.bottom;\n    }\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    if (offsetParent.nodeName === 'HTML') {\n      left = -offsetParent.clientWidth + offsets.right;\n    } else {\n      left = -offsetParentRect.width + offsets.right;\n    }\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    const invertTop = sideA === 'bottom' ? -1 : 1;\n    const invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = `${sideA}, ${sideB}`;\n  }\n\n  // Attributes\n  const attributes = {\n    'x-placement': data.placement,\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = { ...attributes, ...data.attributes };\n  data.styles = { ...styles, ...data.styles };\n  data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n  return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n  modifiers,\n  requestingName,\n  requestedName\n) {\n  const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n  const isRequired =\n    !!requesting &&\n    modifiers.some(modifier => {\n      return (\n        modifier.name === requestedName &&\n        modifier.enabled &&\n        modifier.order < requesting.order\n      );\n    });\n\n  if (!isRequired) {\n    const requesting = `\\`${requestingName}\\``;\n    const requested = `\\`${requestedName}\\``;\n    console.warn(\n      `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n    );\n  }\n  return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  let arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn(\n        'WARNING: `arrow.element` must be child of its popper element!'\n      );\n      return data;\n    }\n  }\n\n  const placement = data.placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  const len = isVertical ? 'height' : 'width';\n  const sideCapitalized = isVertical ? 'Top' : 'Left';\n  const side = sideCapitalized.toLowerCase();\n  const altSide = isVertical ? 'left' : 'top';\n  const opSide = isVertical ? 'bottom' : 'right';\n  const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjunction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -=\n      popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] +=\n      reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  const css = getStyleComputedProperty(data.instance.popper);\n  const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n  const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n  let sideValue =\n    center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {\n    [side]: Math.round(sideValue),\n    [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n  };\n\n  return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n  'auto-start',\n  'auto',\n  'auto-end',\n  'top-start',\n  'top',\n  'top-end',\n  'right-start',\n  'right',\n  'right-end',\n  'bottom-end',\n  'bottom',\n  'bottom-start',\n  'left-end',\n  'left',\n  'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n  const index = validPlacements.indexOf(placement);\n  const arr = validPlacements\n    .slice(index + 1)\n    .concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    options.boundariesElement,\n    data.positionFixed\n  );\n\n  let placement = data.placement.split('-')[0];\n  let placementOpposite = getOppositePlacement(placement);\n  let variation = data.placement.split('-')[1] || '';\n\n  let flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach((step, index) => {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    const popperOffsets = data.offsets.popper;\n    const refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    const floor = Math.floor;\n    const overlapsRef =\n      (placement === 'left' &&\n        floor(popperOffsets.right) > floor(refOffsets.left)) ||\n      (placement === 'right' &&\n        floor(popperOffsets.left) < floor(refOffsets.right)) ||\n      (placement === 'top' &&\n        floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n      (placement === 'bottom' &&\n        floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n    const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    const overflowsBottom =\n      floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    const overflowsBoundaries =\n      (placement === 'left' && overflowsLeft) ||\n      (placement === 'right' && overflowsRight) ||\n      (placement === 'top' && overflowsTop) ||\n      (placement === 'bottom' && overflowsBottom);\n\n    // flip the variation if required\n    const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    const flippedVariation =\n      !!options.flipVariations &&\n      ((isVertical && variation === 'start' && overflowsLeft) ||\n        (isVertical && variation === 'end' && overflowsRight) ||\n        (!isVertical && variation === 'start' && overflowsTop) ||\n        (!isVertical && variation === 'end' && overflowsBottom));\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = {\n        ...data.offsets.popper,\n        ...getPopperOffsets(\n          data.instance.popper,\n          data.offsets.reference,\n          data.placement\n        ),\n      };\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n  const { popper, reference } = data.offsets;\n  const placement = data.placement.split('-')[0];\n  const floor = Math.floor;\n  const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  const side = isVertical ? 'right' : 'bottom';\n  const opSide = isVertical ? 'left' : 'top';\n  const measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] =\n      floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  const value = +split[1];\n  const unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    let element;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    const rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    let size;\n    if (unit === 'vh') {\n      size = Math.max(\n        document.documentElement.clientHeight,\n        window.innerHeight || 0\n      );\n    } else {\n      size = Math.max(\n        document.documentElement.clientWidth,\n        window.innerWidth || 0\n      );\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n  offset,\n  popperOffsets,\n  referenceOffsets,\n  basePlacement\n) {\n  const offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  const divider = fragments.indexOf(\n    find(fragments, frag => frag.search(/,|\\s/) !== -1)\n  );\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn(\n      'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n    );\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  const splitRegex = /\\s*,\\s*|\\s+/;\n  let ops = divider !== -1\n    ? [\n        fragments\n          .slice(0, divider)\n          .concat([fragments[divider].split(splitRegex)[0]]),\n        [fragments[divider].split(splitRegex)[1]].concat(\n          fragments.slice(divider + 1)\n        ),\n      ]\n    : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map((op, index) => {\n    // Most of the units rely on the orientation of the popper\n    const measurement = (index === 1 ? !useHeight : useHeight)\n      ? 'height'\n      : 'width';\n    let mergeWithPrevious = false;\n    return (\n      op\n        // This aggregates any `+` or `-` sign that aren't considered operators\n        // e.g.: 10 + +5 => [10, +, +5]\n        .reduce((a, b) => {\n          if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n            a[a.length - 1] = b;\n            mergeWithPrevious = true;\n            return a;\n          } else if (mergeWithPrevious) {\n            a[a.length - 1] += b;\n            mergeWithPrevious = false;\n            return a;\n          } else {\n            return a.concat(b);\n          }\n        }, [])\n        // Here we convert the string values into number values (in px)\n        .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n    );\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach((op, index) => {\n    op.forEach((frag, index2) => {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n  const { placement, offsets: { popper, reference } } = data;\n  const basePlacement = placement.split('-')[0];\n\n  let offsets;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n  let boundariesElement =\n    options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  // NOTE: DOM access here\n  // resets the popper's position so that the document size can be calculated excluding\n  // the size of the popper element itself\n  const transformProp = getSupportedPropertyName('transform');\n  const popperStyles = data.instance.popper.style; // assignment to help minification\n  const { top, left, [transformProp]: transform } = popperStyles;\n  popperStyles.top = '';\n  popperStyles.left = '';\n  popperStyles[transformProp] = '';\n\n  const boundaries = getBoundaries(\n    data.instance.popper,\n    data.instance.reference,\n    options.padding,\n    boundariesElement,\n    data.positionFixed\n  );\n\n  // NOTE: DOM access here\n  // restores the original style properties after the offsets have been computed\n  popperStyles.top = top;\n  popperStyles.left = left;\n  popperStyles[transformProp] = transform;\n\n  options.boundaries = boundaries;\n\n  const order = options.priority;\n  let popper = data.offsets.popper;\n\n  const check = {\n    primary(placement) {\n      let value = popper[placement];\n      if (\n        popper[placement] < boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return { [placement]: value };\n    },\n    secondary(placement) {\n      const mainSide = placement === 'right' ? 'left' : 'top';\n      let value = popper[mainSide];\n      if (\n        popper[placement] > boundaries[placement] &&\n        !options.escapeWithReference\n      ) {\n        value = Math.min(\n          popper[mainSide],\n          boundaries[placement] -\n            (placement === 'right' ? popper.width : popper.height)\n        );\n      }\n      return { [mainSide]: value };\n    },\n  };\n\n  order.forEach(placement => {\n    const side =\n      ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = { ...popper, ...check[side](placement) };\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    const { reference, popper } = data.offsets;\n    const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    const side = isVertical ? 'left' : 'top';\n    const measurement = isVertical ? 'width' : 'height';\n\n    const shiftOffsets = {\n      start: { [side]: reference[side] },\n      end: {\n        [side]: reference[side] + reference[measurement] - popper[measurement],\n      },\n    };\n\n    data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n  }\n\n  return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  const refRect = data.offsets.reference;\n  const bound = find(\n    data.instance.modifiers,\n    modifier => modifier.name === 'preventOverflow'\n  ).boundaries;\n\n  if (\n    refRect.bottom < bound.top ||\n    refRect.left > bound.right ||\n    refRect.top > bound.bottom ||\n    refRect.right < bound.left\n  ) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n  const placement = data.placement;\n  const basePlacement = placement.split('-')[0];\n  const { popper, reference } = data.offsets;\n  const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] =\n    reference[basePlacement] -\n    (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift,\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unit-less, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the `height`.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0,\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * A scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper. This makes sure the popper always has a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent',\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near each other\n   * without leaving any gap between the two. Especially useful when the arrow is\n   * enabled and you want to ensure that it points to its reference element.\n   * It cares only about the first axis. You can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether,\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjunction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]',\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations)\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position.\n     * The popper will never be placed outside of the defined boundaries\n     * (except if `keepTogether` is enabled)\n     */\n    boundariesElement: 'viewport',\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner,\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide,\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right',\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define your own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3D transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties\n     */\n    gpuAcceleration: undefined,\n  },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n  /**\n   * Popper's placement.\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Set this to true if you want popper to position it self in 'fixed' mode\n   * @prop {Boolean} positionFixed=false\n   */\n  positionFixed: false,\n\n  /**\n   * Whether events (resize, scroll) are initially enabled.\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: () => {},\n\n  /**\n   * Callback called when the popper is updated. This callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, it is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: () => {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js.\n   * @prop {modifiers}\n   */\n  modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n  /**\n   * Creates a new Popper.js instance.\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as the popper\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  constructor(reference, popper, options = {}) {\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = { ...Popper.Defaults, ...options };\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: [],\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys({\n      ...Popper.Defaults.modifiers,\n      ...options.modifiers,\n    }).forEach(name => {\n      this.options.modifiers[name] = {\n        // If it's a built-in modifier, use it as base\n        ...(Popper.Defaults.modifiers[name] || {}),\n        // If there are custom options, override and merge with default ones\n        ...(options.modifiers ? options.modifiers[name] : {}),\n      };\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers)\n      .map(name => ({\n        name,\n        ...this.options.modifiers[name],\n      }))\n      // sort the modifiers by order\n      .sort((a, b) => a.order - b.order);\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(modifierOptions => {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(\n          this.reference,\n          this.popper,\n          this.options,\n          modifierOptions,\n          this.state\n        );\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    const eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n  update() {\n    return update.call(this);\n  }\n  destroy() {\n    return destroy.call(this);\n  }\n  enableEventListeners() {\n    return enableEventListeners.call(this);\n  }\n  disableEventListeners() {\n    return disableEventListeners.call(this);\n  }\n\n  /**\n   * Schedules an update. It will run on the next UI update available.\n   * @method scheduleUpdate\n   * @memberof Popper\n   */\n  scheduleUpdate = () => requestAnimationFrame(this.update);\n\n  /**\n   * Collection of utilities useful when writing custom modifiers.\n   * Starting from version 1.7, this method is available only if you\n   * include `popper-utils.js` before `popper.js`.\n   *\n   * **DEPRECATION**: This way to access PopperUtils is deprecated\n   * and will be removed in v2! Use the PopperUtils module directly instead.\n   * Due to the high instability of the methods contained in Utils, we can't\n   * guarantee them to follow semver. Use them at your own risk!\n   * @static\n   * @private\n   * @type {Object}\n   * @deprecated since version 1.8\n   * @member Utils\n   * @memberof Popper\n   */\n  static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n  static placements = placements;\n\n  static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _popper = _interopRequireDefault(require(\"popper.js\"));\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _Portal = _interopRequireDefault(require(\"../Portal\"));\n\nfunction flipPlacement(theme, placement) {\n  if (theme.direction !== 'rtl') {\n    return placement;\n  }\n\n  switch (placement) {\n    case 'bottom-end':\n      return 'bottom-start';\n\n    case 'bottom-start':\n      return 'bottom-end';\n\n    case 'top-end':\n      return 'top-start';\n\n    case 'top-start':\n      return 'top-end';\n\n    default:\n      return placement;\n  }\n}\n\nfunction getAnchorEl(anchorEl) {\n  return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://github.com/FezVrasta/popper.js) for positioning.\n */\n\n\nvar Popper =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Popper, _React$Component);\n\n  function Popper(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Popper);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Popper).call(this));\n\n    _this.handleOpen = function () {\n      var _this$props = _this.props,\n          anchorEl = _this$props.anchorEl,\n          modifiers = _this$props.modifiers,\n          open = _this$props.open,\n          placement = _this$props.placement,\n          _this$props$popperOpt = _this$props.popperOptions,\n          popperOptions = _this$props$popperOpt === void 0 ? {} : _this$props$popperOpt,\n          theme = _this$props.theme,\n          disablePortal = _this$props.disablePortal;\n\n      var popperNode = _reactDom.default.findDOMNode((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));\n\n      if (!popperNode || !anchorEl || !open) {\n        return;\n      }\n\n      if (_this.popper) {\n        _this.popper.destroy();\n\n        _this.popper = null;\n      }\n\n      _this.popper = new _popper.default(getAnchorEl(anchorEl), popperNode, (0, _extends2.default)({\n        placement: flipPlacement(theme, placement)\n      }, popperOptions, {\n        modifiers: (0, _extends2.default)({}, disablePortal ? {} : {\n          // It's using scrollParent by default, we can use the viewport when using a portal.\n          preventOverflow: {\n            boundariesElement: 'window'\n          }\n        }, modifiers, popperOptions.modifiers),\n        // We could have been using a custom modifier like react-popper is doing.\n        // But it seems this is the best public API for this use case.\n        onCreate: _this.handlePopperUpdate,\n        onUpdate: _this.handlePopperUpdate\n      }));\n    };\n\n    _this.handlePopperUpdate = function (data) {\n      if (data.placement !== _this.state.placement) {\n        _this.setState({\n          placement: data.placement\n        });\n      }\n    };\n\n    _this.handleExited = function () {\n      _this.setState({\n        exited: true\n      });\n\n      _this.handleClose();\n    };\n\n    _this.handleClose = function () {\n      if (!_this.popper) {\n        return;\n      }\n\n      _this.popper.destroy();\n\n      _this.popper = null;\n    };\n\n    _this.state = {\n      exited: !props.open\n    };\n    return _this;\n  }\n\n  (0, _createClass2.default)(Popper, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.open !== this.props.open && !this.props.open && !this.props.transition) {\n        // Otherwise handleExited will call this.\n        this.handleClose();\n      } // Let's update the popper position.\n\n\n      if (prevProps.open !== this.props.open || prevProps.anchorEl !== this.props.anchorEl || prevProps.popperOptions !== this.props.popperOptions || prevProps.modifiers !== this.props.modifiers || prevProps.disablePortal !== this.props.disablePortal || prevProps.placement !== this.props.placement) {\n        this.handleOpen();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleClose();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          anchorEl = _this$props2.anchorEl,\n          children = _this$props2.children,\n          container = _this$props2.container,\n          disablePortal = _this$props2.disablePortal,\n          keepMounted = _this$props2.keepMounted,\n          modifiers = _this$props2.modifiers,\n          open = _this$props2.open,\n          placementProps = _this$props2.placement,\n          popperOptions = _this$props2.popperOptions,\n          theme = _this$props2.theme,\n          transition = _this$props2.transition,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"anchorEl\", \"children\", \"container\", \"disablePortal\", \"keepMounted\", \"modifiers\", \"open\", \"placement\", \"popperOptions\", \"theme\", \"transition\"]);\n      var _this$state = this.state,\n          exited = _this$state.exited,\n          placement = _this$state.placement;\n\n      if (!keepMounted && !open && (!transition || exited)) {\n        return null;\n      }\n\n      var childProps = {\n        placement: placement || flipPlacement(theme, placementProps)\n      };\n\n      if (transition) {\n        childProps.TransitionProps = {\n          in: open,\n          onExited: this.handleExited\n        };\n      }\n\n      return _react.default.createElement(_Portal.default, {\n        onRendered: this.handleOpen,\n        disablePortal: disablePortal,\n        container: container\n      }, _react.default.createElement(\"div\", (0, _extends2.default)({\n        role: \"tooltip\",\n        style: {\n          // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n          position: 'absolute'\n        }\n      }, other), typeof children === 'function' ? children(childProps) : children));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps) {\n      if (nextProps.open) {\n        return {\n          exited: false\n        };\n      }\n\n      if (!nextProps.transition) {\n        // Otherwise let handleExited take care of marking exited.\n        return {\n          exited: true\n        };\n      }\n\n      return null;\n    }\n  }]);\n  return Popper;\n}(_react.default.Component);\n\nPopper.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This is the DOM element, or a function that returns the DOM element,\n   * that may be used to set the position of the popover.\n   * The return value will passed as the reference object of the Popper\n   * instance.\n   */\n  anchorEl: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * Popper render function or node.\n   */\n  children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]).isRequired,\n\n  /**\n   * A node, component instance, or function that returns either.\n   * The `container` will passed to the Modal component.\n   * By default, it uses the body of the anchorEl's top-level document object,\n   * so it's simply `document.body` most of the time.\n   */\n  container: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]),\n\n  /**\n   * Disable the portal behavior.\n   * The children stay within it's parent DOM hierarchy.\n   */\n  disablePortal: _propTypes.default.bool,\n\n  /**\n   * Always keep the children in the DOM.\n   * This property can be useful in SEO situation or\n   * when you want to maximize the responsiveness of the Popper.\n   */\n  keepMounted: _propTypes.default.bool,\n\n  /**\n   * Popper.js is based on a \"plugin-like\" architecture,\n   * most of its features are fully encapsulated \"modifiers\".\n   *\n   * A modifier is a function that is called each time Popper.js needs to\n   * compute the position of the popper.\n   * For this reason, modifiers should be very performant to avoid bottlenecks.\n   * To learn how to create a modifier, [read the modifiers documentation](https://github.com/FezVrasta/popper.js/blob/master/docs/_includes/popper-documentation.md#modifiers--object).\n   */\n  modifiers: _propTypes.default.object,\n\n  /**\n   * If `true`, the popper is visible.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * Popper placement.\n   */\n  placement: _propTypes.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n  /**\n   * Options provided to the [`popper.js`](https://github.com/FezVrasta/popper.js) instance.\n   */\n  popperOptions: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * Help supporting a react-transition-group/Transition component.\n   */\n  transition: _propTypes.default.bool\n} : {};\nPopper.defaultProps = {\n  disablePortal: false,\n  placement: 'bottom',\n  transition: false\n};\n\nvar _default = (0, _withTheme.default)()(Popper);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Popper.default;\n  }\n});\n\nvar _Popper = _interopRequireDefault(require(\"./Popper\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar RadioButtonUnchecked = function RadioButtonUnchecked(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nRadioButtonUnchecked = (0, _pure.default)(RadioButtonUnchecked);\nRadioButtonUnchecked.muiName = 'SvgIcon';\nvar _default = RadioButtonUnchecked;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar RadioButtonChecked = function RadioButtonChecked(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nRadioButtonChecked = (0, _pure.default)(RadioButtonChecked);\nRadioButtonChecked.muiName = 'SvgIcon';\nvar _default = RadioButtonChecked;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _SwitchBase = _interopRequireDefault(require(\"../internal/SwitchBase\"));\n\nvar _RadioButtonUnchecked = _interopRequireDefault(require(\"../internal/svg-icons/RadioButtonUnchecked\"));\n\nvar _RadioButtonChecked = _interopRequireDefault(require(\"../internal/svg-icons/RadioButtonChecked\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: theme.palette.text.secondary\n    },\n\n    /* Styles applied to the root element if `checked={true}`. */\n    checked: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main\n      },\n      '&$disabled': {\n        color: theme.palette.action.disabled\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar _ref = _react.default.createElement(_RadioButtonUnchecked.default, null);\n\nvar _ref2 = _react.default.createElement(_RadioButtonChecked.default, null);\n\nfunction Radio(props) {\n  var classes = props.classes,\n      color = props.color,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"color\"]);\n  return _react.default.createElement(_SwitchBase.default, (0, _extends2.default)({\n    type: \"radio\",\n    icon: _ref,\n    checkedIcon: _ref2,\n    classes: {\n      root: (0, _classnames.default)(classes.root, classes[\"color\".concat((0, _helpers.capitalize)(color))]),\n      checked: classes.checked,\n      disabled: classes.disabled\n    }\n  }, other));\n}\n\nRadio.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary', 'default']),\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   * @param {boolean} checked The `checked` value of the switch\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The input component property `type`.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The value of the component.\n   */\n  value: _propTypes.default.string\n} : {};\nRadio.defaultProps = {\n  color: 'secondary'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiRadio'\n})(Radio);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Radio.default;\n  }\n});\n\nvar _Radio = _interopRequireDefault(require(\"./Radio\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _FormGroup = _interopRequireDefault(require(\"../FormGroup\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\n// @inheritedComponent FormGroup\nvar RadioGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(RadioGroup, _React$Component);\n\n  function RadioGroup() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, RadioGroup);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(RadioGroup)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.radios = [];\n\n    _this.focus = function () {\n      if (!_this.radios || !_this.radios.length) {\n        return;\n      }\n\n      var focusRadios = _this.radios.filter(function (n) {\n        return !n.disabled;\n      });\n\n      if (!focusRadios.length) {\n        return;\n      }\n\n      var selectedRadio = (0, _helpers.find)(focusRadios, function (n) {\n        return n.checked;\n      });\n\n      if (selectedRadio) {\n        selectedRadio.focus();\n        return;\n      }\n\n      focusRadios[0].focus();\n    };\n\n    _this.handleRadioChange = function (event, checked) {\n      if (checked && _this.props.onChange) {\n        _this.props.onChange(event, event.target.value);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(RadioGroup, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          name = _this$props.name,\n          value = _this$props.value,\n          onChange = _this$props.onChange,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"name\", \"value\", \"onChange\"]);\n      this.radios = [];\n      return _react.default.createElement(_FormGroup.default, (0, _extends2.default)({\n        role: \"radiogroup\"\n      }, other), _react.default.Children.map(children, function (child) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the RadioGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n        return _react.default.cloneElement(child, {\n          name: name,\n          inputRef: function inputRef(node) {\n            if (node) {\n              _this2.radios.push(node);\n            }\n          },\n          checked: value === child.props.value,\n          onChange: (0, _helpers.createChainedFunction)(child.props.onChange, _this2.handleRadioChange)\n        });\n      }));\n    }\n  }]);\n  return RadioGroup;\n}(_react.default.Component);\n\nRadioGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * The name used to reference the value of the control.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback fired when a radio button is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   * @param {string} value The `value` of the selected radio button\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onKeyDown: _propTypes.default.func,\n\n  /**\n   * Value of the selected radio button.\n   */\n  value: _propTypes.default.string\n} : {};\nvar _default = RadioGroup;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _RadioGroup.default;\n  }\n});\n\nvar _RadioGroup = _interopRequireDefault(require(\"./RadioGroup\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _keycode = _interopRequireDefault(require(\"keycode\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _Menu = _interopRequireDefault(require(\"../Menu/Menu\"));\n\nvar _utils = require(\"../InputBase/utils\");\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\n/**\n * @ignore - internal component.\n */\nvar SelectInput =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(SelectInput, _React$Component);\n\n  function SelectInput(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, SelectInput);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SelectInput).call(this));\n    _this.ignoreNextBlur = false;\n\n    _this.update = function (_ref) {\n      var event = _ref.event,\n          open = _ref.open;\n\n      if (_this.isOpenControlled) {\n        if (open) {\n          _this.props.onOpen(event);\n        } else {\n          _this.props.onClose(event);\n        }\n\n        return;\n      }\n\n      _this.setState({\n        // Perfom the layout computation outside of the render method.\n        menuMinWidth: _this.props.autoWidth ? null : _this.displayRef.clientWidth,\n        open: open\n      });\n    };\n\n    _this.handleClick = function (event) {\n      // Opening the menu is going to blur the. It will be focused back when closed.\n      _this.ignoreNextBlur = true;\n\n      _this.update({\n        open: true,\n        event: event\n      });\n    };\n\n    _this.handleClose = function (event) {\n      _this.update({\n        open: false,\n        event: event\n      });\n    };\n\n    _this.handleItemClick = function (child) {\n      return function (event) {\n        if (!_this.props.multiple) {\n          _this.update({\n            open: false,\n            event: event\n          });\n        }\n\n        var _this$props = _this.props,\n            onChange = _this$props.onChange,\n            name = _this$props.name;\n\n        if (onChange) {\n          var value;\n\n          if (_this.props.multiple) {\n            value = Array.isArray(_this.props.value) ? (0, _toConsumableArray2.default)(_this.props.value) : [];\n            var itemIndex = value.indexOf(child.props.value);\n\n            if (itemIndex === -1) {\n              value.push(child.props.value);\n            } else {\n              value.splice(itemIndex, 1);\n            }\n          } else {\n            value = child.props.value;\n          }\n\n          event.persist();\n          event.target = {\n            value: value,\n            name: name\n          };\n          onChange(event, child);\n        }\n      };\n    };\n\n    _this.handleBlur = function (event) {\n      if (_this.ignoreNextBlur === true) {\n        // The parent components are relying on the bubbling of the event.\n        event.stopPropagation();\n        _this.ignoreNextBlur = false;\n        return;\n      }\n\n      if (_this.props.onBlur) {\n        var _this$props2 = _this.props,\n            value = _this$props2.value,\n            name = _this$props2.name;\n        event.persist();\n        event.target = {\n          value: value,\n          name: name\n        };\n\n        _this.props.onBlur(event);\n      }\n    };\n\n    _this.handleKeyDown = function (event) {\n      if (_this.props.readOnly) {\n        return;\n      }\n\n      if (['space', 'up', 'down'].indexOf((0, _keycode.default)(event)) !== -1) {\n        event.preventDefault(); // Opening the menu is going to blur the. It will be focused back when closed.\n\n        _this.ignoreNextBlur = true;\n\n        _this.update({\n          open: true,\n          event: event\n        });\n      }\n    };\n\n    _this.handleDisplayRef = function (ref) {\n      _this.displayRef = ref;\n    };\n\n    _this.handleInputRef = function (ref) {\n      var inputRef = _this.props.inputRef;\n\n      if (!inputRef) {\n        return;\n      }\n\n      var nodeProxy = {\n        node: ref,\n        // By pass the native input as we expose a rich object (array).\n        value: _this.props.value\n      };\n      (0, _reactHelpers.setRef)(inputRef, nodeProxy);\n    };\n\n    _this.isOpenControlled = props.open !== undefined;\n    _this.state = {\n      menuMinWidth: null,\n      open: false\n    };\n    return _this;\n  }\n\n  (0, _createClass2.default)(SelectInput, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.isOpenControlled && this.props.open) {\n        // Focus the display node so the focus is restored on this element once\n        // the menu is closed.\n        this.displayRef.focus(); // Rerender with the resolve `displayRef` reference.\n\n        this.forceUpdate();\n      }\n\n      if (this.props.autoFocus) {\n        this.displayRef.focus();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this,\n          _classNames;\n\n      var _this$props3 = this.props,\n          autoWidth = _this$props3.autoWidth,\n          children = _this$props3.children,\n          classes = _this$props3.classes,\n          className = _this$props3.className,\n          disabled = _this$props3.disabled,\n          displayEmpty = _this$props3.displayEmpty,\n          IconComponent = _this$props3.IconComponent,\n          inputRef = _this$props3.inputRef,\n          _this$props3$MenuProp = _this$props3.MenuProps,\n          MenuProps = _this$props3$MenuProp === void 0 ? {} : _this$props3$MenuProp,\n          multiple = _this$props3.multiple,\n          name = _this$props3.name,\n          onBlur = _this$props3.onBlur,\n          onChange = _this$props3.onChange,\n          onClose = _this$props3.onClose,\n          onFocus = _this$props3.onFocus,\n          onOpen = _this$props3.onOpen,\n          openProp = _this$props3.open,\n          readOnly = _this$props3.readOnly,\n          renderValue = _this$props3.renderValue,\n          required = _this$props3.required,\n          SelectDisplayProps = _this$props3.SelectDisplayProps,\n          tabIndexProp = _this$props3.tabIndex,\n          _this$props3$type = _this$props3.type,\n          type = _this$props3$type === void 0 ? 'hidden' : _this$props3$type,\n          value = _this$props3.value,\n          variant = _this$props3.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props3, [\"autoWidth\", \"children\", \"classes\", \"className\", \"disabled\", \"displayEmpty\", \"IconComponent\", \"inputRef\", \"MenuProps\", \"multiple\", \"name\", \"onBlur\", \"onChange\", \"onClose\", \"onFocus\", \"onOpen\", \"open\", \"readOnly\", \"renderValue\", \"required\", \"SelectDisplayProps\", \"tabIndex\", \"type\", \"value\", \"variant\"]);\n      var open = this.isOpenControlled && this.displayRef ? openProp : this.state.open;\n      delete other['aria-invalid'];\n      var display;\n      var displaySingle = '';\n      var displayMultiple = [];\n      var computeDisplay = false; // No need to display any value if the field is empty.\n\n      if ((0, _utils.isFilled)(this.props) || displayEmpty) {\n        if (renderValue) {\n          display = renderValue(value);\n        } else {\n          computeDisplay = true;\n        }\n      }\n\n      var items = _react.default.Children.map(children, function (child) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n        var selected;\n\n        if (multiple) {\n          if (!Array.isArray(value)) {\n            throw new Error('Material-UI: the `value` property must be an array ' + 'when using the `Select` component with `multiple`.');\n          }\n\n          selected = value.indexOf(child.props.value) !== -1;\n\n          if (selected && computeDisplay) {\n            displayMultiple.push(child.props.children);\n          }\n        } else {\n          selected = value === child.props.value;\n\n          if (selected && computeDisplay) {\n            displaySingle = child.props.children;\n          }\n        }\n\n        return _react.default.cloneElement(child, {\n          onClick: _this2.handleItemClick(child),\n          role: 'option',\n          selected: selected,\n          value: undefined,\n          // The value is most likely not a valid HTML attribute.\n          'data-value': child.props.value // Instead, we provide it as a data attribute.\n\n        });\n      });\n\n      if (computeDisplay) {\n        display = multiple ? displayMultiple.join(', ') : displaySingle;\n      } // Avoid performing a layout computation in the render method.\n\n\n      var menuMinWidth = this.state.menuMinWidth;\n\n      if (!autoWidth && this.isOpenControlled && this.displayRef) {\n        menuMinWidth = this.displayRef.clientWidth;\n      }\n\n      var tabIndex;\n\n      if (typeof tabIndexProp !== 'undefined') {\n        tabIndex = tabIndexProp;\n      } else {\n        tabIndex = disabled ? null : 0;\n      }\n\n      return _react.default.createElement(\"div\", {\n        className: classes.root\n      }, _react.default.createElement(\"div\", (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.select, classes.selectMenu, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.filled, variant === 'filled'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), _classNames), className),\n        ref: this.handleDisplayRef,\n        \"aria-pressed\": open ? 'true' : 'false',\n        tabIndex: tabIndex,\n        role: \"button\",\n        \"aria-owns\": open ? \"menu-\".concat(name || '') : null,\n        \"aria-haspopup\": \"true\",\n        onKeyDown: this.handleKeyDown,\n        onBlur: this.handleBlur,\n        onClick: disabled || readOnly ? null : this.handleClick,\n        onFocus: onFocus\n      }, SelectDisplayProps), display || _react.default.createElement(\"span\", {\n        dangerouslySetInnerHTML: {\n          __html: '&#8203;'\n        }\n      })), _react.default.createElement(\"input\", (0, _extends2.default)({\n        value: Array.isArray(value) ? value.join(',') : value,\n        name: name,\n        ref: this.handleInputRef,\n        type: type\n      }, other)), _react.default.createElement(IconComponent, {\n        className: classes.icon\n      }), _react.default.createElement(_Menu.default, (0, _extends2.default)({\n        id: \"menu-\".concat(name || ''),\n        anchorEl: this.displayRef,\n        open: open,\n        onClose: this.handleClose\n      }, MenuProps, {\n        MenuListProps: (0, _extends2.default)({\n          role: 'listbox'\n        }, MenuProps.MenuListProps),\n        PaperProps: (0, _extends2.default)({}, MenuProps.PaperProps, {\n          style: (0, _extends2.default)({\n            minWidth: menuMinWidth\n          }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)\n        })\n      }), items));\n    }\n  }]);\n  return SelectInput;\n}(_react.default.Component);\n\nSelectInput.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * If true, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: _propTypes.default.bool,\n\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<MenuItem>` elements.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The CSS class name of the select element.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the select will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   */\n  displayEmpty: _propTypes.default.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Use that property to pass a ref callback to the native select element.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the [`Menu`](/api/menu) element.\n   */\n  MenuProps: _propTypes.default.object,\n\n  /**\n   * If true, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   * @param {object} [child] The react element that was selected.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback\n   */\n  onOpen: _propTypes.default.func,\n\n  /**\n   * Control `select` open state.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * Render the selected value.\n   *\n   * @param {*} value The `value` provided to the component.\n   * @returns {ReactElement}\n   */\n  renderValue: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Properties applied to the clickable div element.\n   */\n  SelectDisplayProps: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n  /**\n   * @ignore\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The input value.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))]).isRequired,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nvar _default = SelectInput;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _SelectInput = _interopRequireDefault(require(\"./SelectInput\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _mergeClasses = _interopRequireDefault(require(\"../styles/mergeClasses\"));\n\nvar _ArrowDropDown = _interopRequireDefault(require(\"../internal/svg-icons/ArrowDropDown\"));\n\nvar _Input = _interopRequireDefault(require(\"../Input\"));\n\nvar _InputBase = require(\"../InputBase/InputBase\");\n\nvar _NativeSelect = require(\"../NativeSelect/NativeSelect\");\n\nvar _NativeSelectInput = _interopRequireDefault(require(\"../NativeSelect/NativeSelectInput\"));\n\n// @inheritedComponent Input\n// To replace with InputBase in v4.0.0\nvar styles = _NativeSelect.styles;\nexports.styles = styles;\n\nfunction Select(props, context) {\n  var autoWidth = props.autoWidth,\n      children = props.children,\n      classes = props.classes,\n      displayEmpty = props.displayEmpty,\n      IconComponent = props.IconComponent,\n      input = props.input,\n      inputProps = props.inputProps,\n      MenuProps = props.MenuProps,\n      multiple = props.multiple,\n      native = props.native,\n      onClose = props.onClose,\n      onOpen = props.onOpen,\n      open = props.open,\n      renderValue = props.renderValue,\n      SelectDisplayProps = props.SelectDisplayProps,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"autoWidth\", \"children\", \"classes\", \"displayEmpty\", \"IconComponent\", \"input\", \"inputProps\", \"MenuProps\", \"multiple\", \"native\", \"onClose\", \"onOpen\", \"open\", \"renderValue\", \"SelectDisplayProps\", \"variant\"]);\n  var inputComponent = native ? _NativeSelectInput.default : _SelectInput.default;\n  var fcs = (0, _InputBase.formControlState)({\n    props: props,\n    context: context,\n    states: ['variant']\n  });\n  return _react.default.cloneElement(input, (0, _extends2.default)({\n    // Most of the logic is implemented in `SelectInput`.\n    // The `Select` component is a simple API wrapper to expose something better to play with.\n    inputComponent: inputComponent,\n    inputProps: (0, _extends2.default)({\n      children: children,\n      IconComponent: IconComponent,\n      variant: fcs.variant,\n      type: undefined\n    }, native ? {} : {\n      autoWidth: autoWidth,\n      displayEmpty: displayEmpty,\n      MenuProps: MenuProps,\n      multiple: multiple,\n      onClose: onClose,\n      onOpen: onOpen,\n      open: open,\n      renderValue: renderValue,\n      SelectDisplayProps: SelectDisplayProps\n    }, inputProps, {\n      classes: inputProps ? (0, _mergeClasses.default)({\n        baseClasses: classes,\n        newClasses: inputProps.classes,\n        Component: Select\n      }) : classes\n    }, input ? input.props.inputProps : {})\n  }, other));\n}\n\nSelect.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If true, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: _propTypes.default.bool,\n\n  /**\n   * The option elements to populate the select with.\n   * Can be some `MenuItem` when `native` is false and `option` when `native` is true.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   * You can only use it when the `native` property is `false` (default).\n   */\n  displayEmpty: _propTypes.default.bool,\n\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * An `Input` element; does not have to be a material-ui specific `Input`.\n   */\n  input: _propTypes.default.element,\n\n  /**\n   * Attributes applied to the `input` element.\n   * When `native` is `true`, the attributes are applied on the `select` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Properties applied to the [`Menu`](/api/menu) element.\n   */\n  MenuProps: _propTypes.default.object,\n\n  /**\n   * If true, `value` must be an array and the menu will support multiple selections.\n   * You can only use it when the `native` property is `false` (default).\n   */\n  multiple: _propTypes.default.bool,\n\n  /**\n   * If `true`, the component will be using a native `select` element.\n   */\n  native: _propTypes.default.bool,\n\n  /**\n   * Callback function fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   * @param {object} [child] The react element that was selected when `native` is `false` (default).\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback\n   */\n  onOpen: _propTypes.default.func,\n\n  /**\n   * Control `select` open state.\n   * You can only use it when the `native` property is `false` (default).\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * Render the selected value.\n   * You can only use it when the `native` property is `false` (default).\n   *\n   * @param {*} value The `value` provided to the component.\n   * @returns {ReactElement}\n   */\n  renderValue: _propTypes.default.func,\n\n  /**\n   * Properties applied to the clickable div element.\n   */\n  SelectDisplayProps: _propTypes.default.object,\n\n  /**\n   * The input value.\n   * This property is required when the `native` property is `false` (default).\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nSelect.defaultProps = {\n  autoWidth: false,\n  displayEmpty: false,\n  IconComponent: _ArrowDropDown.default,\n  input: _react.default.createElement(_Input.default, null),\n  multiple: false,\n  native: false\n};\nSelect.contextTypes = {\n  muiFormControl: _propTypes.default.object\n};\nSelect.muiName = 'Select';\n\nvar _default = (0, _withStyles.default)(_NativeSelect.styles, {\n  name: 'MuiSelect'\n})(Select);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Select.default;\n  }\n});\n\nvar _Select = _interopRequireDefault(require(\"./Select\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\n// @inheritedComponent Paper\nvar styles = function styles(theme) {\n  var _root;\n\n  var emphasis = theme.palette.type === 'light' ? 0.8 : 0.98;\n  var backgroundColor = (0, _colorManipulator.emphasize)(theme.palette.background.default, emphasis);\n  return {\n    /* Styles applied to the root element. */\n    root: (_root = {\n      color: theme.palette.getContrastText(backgroundColor),\n      backgroundColor: backgroundColor,\n      display: 'flex',\n      alignItems: 'center',\n      flexWrap: 'wrap',\n      padding: '6px 24px'\n    }, (0, _defineProperty2.default)(_root, theme.breakpoints.up('md'), {\n      minWidth: 288,\n      maxWidth: 568,\n      borderRadius: theme.shape.borderRadius\n    }), (0, _defineProperty2.default)(_root, theme.breakpoints.down('sm'), {\n      flexGrow: 1\n    }), _root),\n\n    /* Styles applied to the message wrapper element. */\n    message: {\n      padding: '8px 0'\n    },\n\n    /* Styles applied to the action wrapper element if `action` is provided. */\n    action: {\n      display: 'flex',\n      alignItems: 'center',\n      marginLeft: 'auto',\n      paddingLeft: 24,\n      marginRight: -8\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction SnackbarContent(props) {\n  var action = props.action,\n      classes = props.classes,\n      className = props.className,\n      message = props.message,\n      other = (0, _objectWithoutProperties2.default)(props, [\"action\", \"classes\", \"className\", \"message\"]);\n  return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    component: _Typography.default,\n    headlineMapping: {\n      body1: 'div'\n    },\n    role: \"alertdialog\",\n    square: true,\n    elevation: 6,\n    className: (0, _classnames.default)(classes.root, className)\n  }, other), _react.default.createElement(\"div\", {\n    className: classes.message\n  }, message), action ? _react.default.createElement(\"div\", {\n    className: classes.action\n  }, action) : null);\n}\n\nSnackbarContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The action to display.\n   */\n  action: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The message to display.\n   */\n  message: _propTypes.default.node\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiSnackbarContent'\n})(SnackbarContent);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _SnackbarContent.default;\n  }\n});\n\nvar _SnackbarContent = _interopRequireDefault(require(\"./SnackbarContent\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends8 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _ClickAwayListener = _interopRequireDefault(require(\"../ClickAwayListener\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _Slide = _interopRequireDefault(require(\"../Slide\"));\n\nvar _SnackbarContent = _interopRequireDefault(require(\"../SnackbarContent\"));\n\nvar styles = function styles(theme) {\n  var gutter = 24;\n  var top = {\n    top: 0\n  };\n  var bottom = {\n    bottom: 0\n  };\n  var right = {\n    justifyContent: 'flex-end'\n  };\n  var left = {\n    justifyContent: 'flex-start'\n  };\n  var topSpace = {\n    top: gutter\n  };\n  var bottomSpace = {\n    bottom: gutter\n  };\n  var rightSpace = {\n    right: gutter\n  };\n  var leftSpace = {\n    left: gutter\n  };\n  var center = {\n    left: '50%',\n    right: 'auto',\n    transform: 'translateX(-50%)'\n  };\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      zIndex: theme.zIndex.snackbar,\n      position: 'fixed',\n      display: 'flex',\n      left: 0,\n      right: 0,\n      justifyContent: 'center',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'center' }}`. */\n    anchorOriginTopCenter: (0, _extends8.default)({}, top, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({}, center))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'center' }}`. */\n    anchorOriginBottomCenter: (0, _extends8.default)({}, bottom, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({}, center))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'right' }}`. */\n    anchorOriginTopRight: (0, _extends8.default)({}, top, right, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({\n      left: 'auto'\n    }, topSpace, rightSpace))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'right' }}`. */\n    anchorOriginBottomRight: (0, _extends8.default)({}, bottom, right, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({\n      left: 'auto'\n    }, bottomSpace, rightSpace))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'top', 'left' }}`. */\n    anchorOriginTopLeft: (0, _extends8.default)({}, top, left, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({\n      right: 'auto'\n    }, topSpace, leftSpace))),\n\n    /* Styles applied to the root element if `anchorOrigin={{ 'bottom', 'left' }}`. */\n    anchorOriginBottomLeft: (0, _extends8.default)({}, bottom, left, (0, _defineProperty2.default)({}, theme.breakpoints.up('md'), (0, _extends8.default)({\n      right: 'auto'\n    }, bottomSpace, leftSpace)))\n  };\n};\n/* istanbul ignore if */\n\n\nexports.styles = styles;\n\nif (process.env.NODE_ENV !== 'production' && !_react.default.createContext) {\n  throw new Error('Material-UI: react@16.3.0 or greater is required.');\n}\n\nvar Snackbar =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Snackbar, _React$Component);\n\n  function Snackbar() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Snackbar);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Snackbar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {};\n\n    _this.handleMouseEnter = function (event) {\n      if (_this.props.onMouseEnter) {\n        _this.props.onMouseEnter(event);\n      }\n\n      _this.handlePause();\n    };\n\n    _this.handleMouseLeave = function (event) {\n      if (_this.props.onMouseLeave) {\n        _this.props.onMouseLeave(event);\n      }\n\n      _this.handleResume();\n    };\n\n    _this.handleClickAway = function (event) {\n      if (_this.props.onClose) {\n        _this.props.onClose(event, 'clickaway');\n      }\n    };\n\n    _this.handlePause = function () {\n      clearTimeout(_this.timerAutoHide);\n    };\n\n    _this.handleResume = function () {\n      if (_this.props.autoHideDuration != null) {\n        if (_this.props.resumeHideDuration != null) {\n          _this.setAutoHideTimer(_this.props.resumeHideDuration);\n\n          return;\n        }\n\n        _this.setAutoHideTimer(_this.props.autoHideDuration * 0.5);\n      }\n    };\n\n    _this.handleExited = function () {\n      _this.setState({\n        exited: true\n      });\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Snackbar, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.open) {\n        this.setAutoHideTimer();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.open !== this.props.open) {\n        if (this.props.open) {\n          this.setAutoHideTimer();\n        } else {\n          clearTimeout(this.timerAutoHide);\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.timerAutoHide);\n    }\n  }, {\n    key: \"setAutoHideTimer\",\n    // Timer that controls delay before snackbar auto hides\n    value: function setAutoHideTimer(autoHideDuration) {\n      var _this2 = this;\n\n      var autoHideDurationBefore = autoHideDuration != null ? autoHideDuration : this.props.autoHideDuration;\n\n      if (!this.props.onClose || autoHideDurationBefore == null) {\n        return;\n      }\n\n      clearTimeout(this.timerAutoHide);\n      this.timerAutoHide = setTimeout(function () {\n        var autoHideDurationAfter = autoHideDuration != null ? autoHideDuration : _this2.props.autoHideDuration;\n\n        if (!_this2.props.onClose || autoHideDurationAfter == null) {\n          return;\n        }\n\n        _this2.props.onClose(null, 'timeout');\n      }, autoHideDurationBefore);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          action = _this$props.action,\n          _this$props$anchorOri = _this$props.anchorOrigin,\n          vertical = _this$props$anchorOri.vertical,\n          horizontal = _this$props$anchorOri.horizontal,\n          autoHideDuration = _this$props.autoHideDuration,\n          children = _this$props.children,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          ClickAwayListenerProps = _this$props.ClickAwayListenerProps,\n          ContentProps = _this$props.ContentProps,\n          disableWindowBlurListener = _this$props.disableWindowBlurListener,\n          message = _this$props.message,\n          onClose = _this$props.onClose,\n          onEnter = _this$props.onEnter,\n          onEntered = _this$props.onEntered,\n          onEntering = _this$props.onEntering,\n          onExit = _this$props.onExit,\n          onExited = _this$props.onExited,\n          onExiting = _this$props.onExiting,\n          onMouseEnter = _this$props.onMouseEnter,\n          onMouseLeave = _this$props.onMouseLeave,\n          open = _this$props.open,\n          resumeHideDuration = _this$props.resumeHideDuration,\n          TransitionComponent = _this$props.TransitionComponent,\n          transitionDuration = _this$props.transitionDuration,\n          TransitionProps = _this$props.TransitionProps,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"classes\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onClose\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]); // So we only render active snackbars.\n\n      if (!open && this.state.exited) {\n        return null;\n      }\n\n      return _react.default.createElement(_ClickAwayListener.default, (0, _extends8.default)({\n        onClickAway: this.handleClickAway\n      }, ClickAwayListenerProps), _react.default.createElement(\"div\", (0, _extends8.default)({\n        className: (0, _classnames.default)(classes.root, classes[\"anchorOrigin\".concat((0, _helpers.capitalize)(vertical)).concat((0, _helpers.capitalize)(horizontal))], className),\n        onMouseEnter: this.handleMouseEnter,\n        onMouseLeave: this.handleMouseLeave\n      }, other), _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onFocus: disableWindowBlurListener ? undefined : this.handleResume,\n        onBlur: disableWindowBlurListener ? undefined : this.handlePause\n      }), _react.default.createElement(TransitionComponent, (0, _extends8.default)({\n        appear: true,\n        in: open,\n        onEnter: onEnter,\n        onEntered: onEntered,\n        onEntering: onEntering,\n        onExit: onExit,\n        onExited: (0, _helpers.createChainedFunction)(this.handleExited, onExited),\n        onExiting: onExiting,\n        timeout: transitionDuration,\n        direction: vertical === 'top' ? 'down' : 'up'\n      }, TransitionProps), children || _react.default.createElement(_SnackbarContent.default, (0, _extends8.default)({\n        message: message,\n        action: action\n      }, ContentProps)))));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (typeof prevState.exited === 'undefined') {\n        return {\n          exited: !nextProps.open\n        };\n      }\n\n      if (nextProps.open) {\n        return {\n          exited: false\n        };\n      }\n\n      return null;\n    }\n  }]);\n  return Snackbar;\n}(_react.default.Component);\n\nSnackbar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The action to display.\n   */\n  action: _propTypes.default.node,\n\n  /**\n   * The anchor of the `Snackbar`.\n   */\n  anchorOrigin: _propTypes.default.shape({\n    horizontal: _propTypes.default.oneOf(['left', 'center', 'right']).isRequired,\n    vertical: _propTypes.default.oneOf(['top', 'center', 'bottom']).isRequired\n  }),\n\n  /**\n   * The number of milliseconds to wait before automatically calling the\n   * `onClose` function. `onClose` should then set the state of the `open`\n   * prop to hide the Snackbar. This behavior is disabled by default with\n   * the `null` value.\n   */\n  autoHideDuration: _propTypes.default.number,\n\n  /**\n   * If you wish the take control over the children of the component you can use this property.\n   * When used, you replace the `SnackbarContent` component with the children.\n   */\n  children: _propTypes.default.element,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Properties applied to the `ClickAwayListener` element.\n   */\n  ClickAwayListenerProps: _propTypes.default.object,\n\n  /**\n   * Properties applied to the [`SnackbarContent`](/api/snackbar-content) element.\n   */\n  ContentProps: _propTypes.default.object,\n\n  /**\n   * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n   */\n  disableWindowBlurListener: _propTypes.default.bool,\n\n  /**\n   * When displaying multiple consecutive Snackbars from a parent rendering a single\n   * <Snackbar/>, add the key property to ensure independent treatment of each message.\n   * e.g. <Snackbar key={message} />, otherwise, the message may update-in-place and\n   * features such as autoHideDuration may be canceled.\n   */\n  key: _propTypes.default.any,\n\n  /**\n   * The message to display.\n   */\n  message: _propTypes.default.node,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   * Typically `onClose` is used to set state in the parent component,\n   * which is used to control the `Snackbar` `open` prop.\n   * The `reason` parameter can optionally be used to control the response to `onClose`,\n   * for example ignoring `clickaway`.\n   *\n   * @param {object} event The event source of the callback\n   * @param {string} reason Can be:`\"timeout\"` (`autoHideDuration` expired) or: `\"clickaway\"`\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired before the transition is entering.\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * Callback fired when the transition has entered.\n   */\n  onEntered: _propTypes.default.func,\n\n  /**\n   * Callback fired when the transition is entering.\n   */\n  onEntering: _propTypes.default.func,\n\n  /**\n   * Callback fired before the transition is exiting.\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * Callback fired when the transition has exited.\n   */\n  onExited: _propTypes.default.func,\n\n  /**\n   * Callback fired when the transition is exiting.\n   */\n  onExiting: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onMouseEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onMouseLeave: _propTypes.default.func,\n\n  /**\n   * If true, `Snackbar` is open.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * The number of milliseconds to wait before dismissing after user interaction.\n   * If `autoHideDuration` property isn't specified, it does nothing.\n   * If `autoHideDuration` property is specified but `resumeHideDuration` isn't,\n   * we default to `autoHideDuration / 2` ms.\n   */\n  resumeHideDuration: _propTypes.default.number,\n\n  /**\n   * Transition component.\n   */\n  TransitionComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })]),\n\n  /**\n   * Properties applied to the `Transition` element.\n   */\n  TransitionProps: _propTypes.default.object\n} : {};\nSnackbar.defaultProps = {\n  anchorOrigin: {\n    vertical: 'bottom',\n    horizontal: 'center'\n  },\n  disableWindowBlurListener: false,\n  TransitionComponent: _Slide.default,\n  transitionDuration: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  }\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  flip: false,\n  name: 'MuiSnackbar'\n})(Snackbar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Snackbar.default;\n  }\n});\n\nvar _Snackbar = _interopRequireDefault(require(\"./Snackbar\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {},\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {\n    paddingLeft: 8,\n    paddingRight: 8,\n    '&:first-child': {\n      paddingLeft: 0\n    },\n    '&:last-child': {\n      paddingRight: 0\n    }\n  },\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {},\n\n  /* Styles applied to the root element if `alternativeLabel={true}`. */\n  alternativeLabel: {\n    flex: 1,\n    position: 'relative'\n  },\n\n  /* Styles applied to the root element if `completed={true}`. */\n  completed: {}\n};\nexports.styles = styles;\n\nfunction Step(props) {\n  var _classNames;\n\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      completed = props.completed,\n      connector = props.connector,\n      disabled = props.disabled,\n      index = props.index,\n      last = props.last,\n      orientation = props.orientation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"connector\", \"disabled\", \"index\", \"last\", \"orientation\"]);\n  var className = (0, _classnames.default)(classes.root, classes[orientation], (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.alternativeLabel, alternativeLabel), (0, _defineProperty2.default)(_classNames, classes.completed, completed), _classNames), classNameProp);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: className\n  }, other), _react.default.Children.map(children, function (child) {\n    if (!_react.default.isValidElement(child)) {\n      return null;\n    }\n\n    process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the Step component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n    return _react.default.cloneElement(child, (0, _extends2.default)({\n      active: active,\n      alternativeLabel: alternativeLabel,\n      completed: completed,\n      disabled: disabled,\n      icon: index + 1,\n      last: last,\n      orientation: orientation\n    }, child.props));\n  }), connector && alternativeLabel && !last && _react.default.cloneElement(connector, {\n    orientation: orientation,\n    alternativeLabel: alternativeLabel\n  }));\n}\n\nStep.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Sets the step as active. Is passed to child components.\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Stepper when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * Should be `Step` sub-components such as `StepLabel`, `StepContent`.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Mark the step as completed. Is passed to child components.\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Passed down from Stepper if alternativeLabel is also set.\n   */\n  connector: _propTypes.default.element,\n\n  /**\n   * Mark the step as disabled, will also disable the button if\n   * `StepButton` is a child of `Step`. Is passed to child components.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Used internally for numbering.\n   */\n  index: _propTypes.default.number,\n\n  /**\n   * @ignore\n   */\n  last: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical'])\n} : {};\nStep.defaultProps = {\n  active: false,\n  completed: false,\n  disabled: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStep'\n})(Step);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Step.default;\n  }\n});\n\nvar _Step = _interopRequireDefault(require(\"./Step\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar CheckCircle = function CheckCircle(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nCheckCircle = (0, _pure.default)(CheckCircle);\nCheckCircle.muiName = 'SvgIcon';\nvar _default = CheckCircle;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar Warning = function Warning(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nWarning = (0, _pure.default)(Warning);\nWarning.muiName = 'SvgIcon';\nvar _default = Warning;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CheckCircle = _interopRequireDefault(require(\"../internal/svg-icons/CheckCircle\"));\n\nvar _Warning = _interopRequireDefault(require(\"../internal/svg-icons/Warning\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../SvgIcon\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      color: theme.palette.text.disabled,\n      '&$active': {\n        color: theme.palette.primary.main\n      },\n      '&$completed': {\n        color: theme.palette.primary.main\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    },\n\n    /* Styles applied to the SVG text element. */\n    text: {\n      fill: theme.palette.primary.contrastText,\n      fontSize: theme.typography.caption.fontSize,\n      fontFamily: theme.typography.fontFamily\n    },\n\n    /* Styles applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Styles applied to the root element if `completed={true}`. */\n    completed: {},\n\n    /* Styles applied to the root element if `error={true}`. */\n    error: {}\n  };\n};\n\nexports.styles = styles;\n\nvar _ref = _react.default.createElement(\"circle\", {\n  cx: \"12\",\n  cy: \"12\",\n  r: \"12\"\n});\n\nfunction StepIcon(props) {\n  var completed = props.completed,\n      icon = props.icon,\n      active = props.active,\n      error = props.error,\n      classes = props.classes;\n\n  if (typeof icon === 'number' || typeof icon === 'string') {\n    if (error) {\n      return _react.default.createElement(_Warning.default, {\n        className: (0, _classnames.default)(classes.root, classes.error)\n      });\n    }\n\n    if (completed) {\n      return _react.default.createElement(_CheckCircle.default, {\n        className: (0, _classnames.default)(classes.root, classes.completed)\n      });\n    }\n\n    return _react.default.createElement(_SvgIcon.default, {\n      className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.active, active))\n    }, _ref, _react.default.createElement(\"text\", {\n      className: classes.text,\n      x: \"12\",\n      y: \"16\",\n      textAnchor: \"middle\"\n    }, icon));\n  }\n\n  return icon;\n}\n\nStepIcon.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Whether this step is active.\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * Mark the step as completed. Is passed to child components.\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * Mark the step as failed.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * The icon displayed by the step label.\n   */\n  icon: _propTypes.default.node.isRequired\n} : {};\nStepIcon.defaultProps = {\n  active: false,\n  completed: false,\n  error: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepIcon'\n})(StepIcon);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _StepIcon.default;\n  }\n});\n\nvar _StepIcon = _interopRequireDefault(require(\"./StepIcon\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar _StepIcon = _interopRequireDefault(require(\"../StepIcon\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'flex',\n      alignItems: 'center',\n      '&$alternativeLabel': {\n        flexDirection: 'column'\n      },\n      '&$disabled': {\n        cursor: 'default'\n      }\n    },\n\n    /* Styles applied to the root element if `orientation=\"horiizontal\". */\n    horizontal: {},\n\n    /* Styles applied to the root element if `orientation=\"vertical\". */\n    vertical: {},\n\n    /* Styles applied to the `Typography` component which wraps `children`. */\n    label: {\n      color: theme.palette.text.secondary,\n      '&$active': {\n        color: theme.palette.text.primary,\n        fontWeight: 500\n      },\n      '&$completed': {\n        color: theme.palette.text.primary,\n        fontWeight: 500\n      },\n      '&$alternativeLabel': {\n        textAlign: 'center',\n        marginTop: 16\n      },\n      '&$error': {\n        color: theme.palette.error.main\n      }\n    },\n\n    /* Styles applied to the `Typography` component if `active={true}`. */\n    active: {},\n\n    /* Styles applied to the `Typography` component if `completed={true}`. */\n    completed: {},\n\n    /* Styles applied to the root element and `Typography` component if `error={true}`. */\n    error: {},\n\n    /* Styles applied to the root element and `Typography` component if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the `icon` container element. */\n    iconContainer: {\n      display: 'flex',\n      paddingRight: 8,\n      '&$alternativeLabel': {\n        paddingRight: 0\n      }\n    },\n\n    /* Styles applied to the root & icon container and `Typography` if `alternativeLabel={true}`. */\n    alternativeLabel: {},\n\n    /* Styles applied to the container element which wraps `Typography` and `optional`. */\n    labelContainer: {\n      width: '100%'\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction StepLabel(props) {\n  var _classNames, _classNames3;\n\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      completed = props.completed,\n      disabled = props.disabled,\n      error = props.error,\n      icon = props.icon,\n      last = props.last,\n      optional = props.optional,\n      orientation = props.orientation,\n      StepIconComponentProp = props.StepIconComponent,\n      StepIconProps = props.StepIconProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"disabled\", \"error\", \"icon\", \"last\", \"optional\", \"orientation\", \"StepIconComponent\", \"StepIconProps\"]);\n  var StepIconComponent = StepIconComponentProp;\n\n  if (icon && !StepIconComponent) {\n    StepIconComponent = _StepIcon.default;\n  }\n\n  return _react.default.createElement(\"span\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classes[orientation], (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.alternativeLabel, alternativeLabel), (0, _defineProperty2.default)(_classNames, classes.error, error), _classNames), classNameProp)\n  }, other), icon || StepIconComponent ? _react.default.createElement(\"span\", {\n    className: (0, _classnames.default)(classes.iconContainer, (0, _defineProperty2.default)({}, classes.alternativeLabel, alternativeLabel))\n  }, _react.default.createElement(StepIconComponent, (0, _extends2.default)({\n    completed: completed,\n    active: active,\n    error: error,\n    icon: icon\n  }, StepIconProps))) : null, _react.default.createElement(\"span\", {\n    className: classes.labelContainer\n  }, _react.default.createElement(_Typography.default, {\n    variant: \"body1\",\n    component: \"span\",\n    className: (0, _classnames.default)(classes.label, (_classNames3 = {}, (0, _defineProperty2.default)(_classNames3, classes.alternativeLabel, alternativeLabel), (0, _defineProperty2.default)(_classNames3, classes.completed, completed), (0, _defineProperty2.default)(_classNames3, classes.active, active), (0, _defineProperty2.default)(_classNames3, classes.error, error), _classNames3))\n  }, children), optional));\n}\n\nStepLabel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   * Sets the step as active. Is passed to child components.\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Stepper when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * In most cases will simply be a string containing a title for the label.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   * Mark the step as completed. Is passed to child components.\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * Mark the step as disabled, will also disable the button if\n   * `StepLabelButton` is a child of `StepLabel`. Is passed to child components.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Mark the step as failed.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * Override the default icon.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  last: _propTypes.default.bool,\n\n  /**\n   * The optional node to display.\n   */\n  optional: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * The component to render in place of the [`StepIcon`](/api/step-icon).\n   */\n  StepIconComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the [`StepIcon`](/api/step-icon) element.\n   */\n  StepIconProps: _propTypes.default.object\n} : {};\nStepLabel.defaultProps = {\n  active: false,\n  alternativeLabel: false,\n  completed: false,\n  disabled: false,\n  error: false,\n  last: false,\n  orientation: 'horizontal'\n};\nStepLabel.muiName = 'StepLabel';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepLabel'\n})(StepLabel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _StepLabel.default;\n  }\n});\n\nvar _StepLabel = _interopRequireDefault(require(\"./StepLabel\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _StepLabel = _interopRequireDefault(require(\"../StepLabel\"));\n\nvar _reactHelpers = require(\"../utils/reactHelpers\");\n\n// @inheritedComponent ButtonBase\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    width: '100%',\n    padding: '24px 16px',\n    margin: '-24px -16px',\n    boxSizing: 'content-box'\n  },\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {},\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    justifyContent: 'flex-start'\n  },\n\n  /* Styles applied to the `ButtonBase` touch-ripple. */\n  touchRipple: {\n    color: 'rgba(0, 0, 0, 0.3)'\n  }\n};\nexports.styles = styles;\n\nfunction StepButton(props) {\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      completed = props.completed,\n      disabled = props.disabled,\n      icon = props.icon,\n      last = props.last,\n      optional = props.optional,\n      orientation = props.orientation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"disabled\", \"icon\", \"last\", \"optional\", \"orientation\"]);\n  var childProps = {\n    active: active,\n    alternativeLabel: alternativeLabel,\n    completed: completed,\n    disabled: disabled,\n    icon: icon,\n    optional: optional,\n    orientation: orientation\n  };\n  var child = (0, _reactHelpers.isMuiElement)(children, ['StepLabel']) ? _react.default.cloneElement(children, childProps) : _react.default.createElement(_StepLabel.default, childProps, children);\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    disabled: disabled,\n    TouchRippleProps: {\n      className: classes.touchRipple\n    },\n    className: (0, _classnames.default)(classes.root, classes[orientation], classNameProp)\n  }, other), child);\n}\n\nStepButton.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   * Passed in via `Step` - passed through to `StepLabel`.\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Stepper when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * Can be a `StepLabel` or a node to place inside `StepLabel` as children.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   * Sets completed styling. Is passed to StepLabel.\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Disables the button and sets disabled styling. Is passed to StepLabel.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * The icon displayed by the step label.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  last: _propTypes.default.bool,\n\n  /**\n   * The optional node to display.\n   */\n  optional: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical'])\n} : {};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepButton'\n})(StepButton);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _StepButton.default;\n  }\n});\n\nvar _StepButton = _interopRequireDefault(require(\"./StepButton\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      flex: '1 1 auto'\n    },\n\n    /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n    horizontal: {},\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    vertical: {\n      marginLeft: 12,\n      // half icon\n      padding: '0 0 8px'\n    },\n\n    /* Styles applied to the root element if `alternativeLabel={true}`. */\n    alternativeLabel: {\n      position: 'absolute',\n      top: 8 + 4,\n      left: 'calc(50% + 20px)',\n      right: 'calc(-50% + 20px)'\n    },\n\n    /* Styles applied to the root element if `active={true}`. */\n    active: {},\n\n    /* Styles applied to the root element if `completed={true}`. */\n    completed: {},\n\n    /* Styles applied to the root element if `disabled={true}`. */\n    disabled: {},\n\n    /* Styles applied to the line element. */\n    line: {\n      display: 'block',\n      borderColor: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n    },\n\n    /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n    lineHorizontal: {\n      borderTopStyle: 'solid',\n      borderTopWidth: 1\n    },\n\n    /* Styles applied to the root element if `orientation=\"vertical\"`. */\n    lineVertical: {\n      borderLeftStyle: 'solid',\n      borderLeftWidth: 1,\n      minHeight: 24\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction StepConnector(props) {\n  var _classNames, _classNames2;\n\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      classes = props.classes,\n      classNameProp = props.className,\n      completed = props.completed,\n      disabled = props.disabled,\n      orientation = props.orientation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"alternativeLabel\", \"classes\", \"className\", \"completed\", \"disabled\", \"orientation\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classes[orientation], (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.alternativeLabel, alternativeLabel), (0, _defineProperty2.default)(_classNames, classes.active, active), (0, _defineProperty2.default)(_classNames, classes.completed, completed), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), _classNames), classNameProp)\n  }, other), _react.default.createElement(\"span\", {\n    className: (0, _classnames.default)(classes.line, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.lineHorizontal, orientation === 'horizontal'), (0, _defineProperty2.default)(_classNames2, classes.lineVertical, orientation === 'vertical'), _classNames2))\n  }));\n}\n\nStepConnector.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Step when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical'])\n} : {};\nStepConnector.defaultProps = {\n  alternativeLabel: false,\n  orientation: 'horizontal'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepConnector'\n})(StepConnector);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _StepConnector.default;\n  }\n});\n\nvar _StepConnector = _interopRequireDefault(require(\"./StepConnector\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Collapse = _interopRequireDefault(require(\"../Collapse\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      marginTop: 8,\n      marginLeft: 12,\n      // half icon\n      paddingLeft: 8 + 12,\n      // margin + half icon\n      paddingRight: 8,\n      borderLeft: \"1px solid \".concat(theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[600])\n    },\n\n    /* Styles applied to the root element if `last={true}` (controlled by `Step`). */\n    last: {\n      borderLeft: 'none'\n    },\n\n    /* Styles applied to the Transition component. */\n    transition: {}\n  };\n};\n\nexports.styles = styles;\n\nfunction StepContent(props) {\n  var active = props.active,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      completed = props.completed,\n      last = props.last,\n      optional = props.optional,\n      orientation = props.orientation,\n      TransitionComponent = props.TransitionComponent,\n      transitionDurationProp = props.transitionDuration,\n      TransitionProps = props.TransitionProps,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"completed\", \"last\", \"optional\", \"orientation\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"]);\n  process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(orientation === 'vertical', 'Material-UI: <StepContent /> is only designed for use with the vertical stepper.') : void 0;\n  var transitionDuration = transitionDurationProp;\n\n  if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n    transitionDuration = undefined;\n  }\n\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.last, last), className)\n  }, other), _react.default.createElement(TransitionComponent, (0, _extends2.default)({\n    in: active,\n    className: classes.transition,\n    timeout: transitionDuration,\n    unmountOnExit: true\n  }, TransitionProps), children));\n}\n\nStepContent.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   * Expands the content.\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Step when it's supplied with the alternativeLabel property.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * Step content.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  completed: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  last: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   * Set internally by Step when it's supplied with the optional property.\n   */\n  optional: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),\n\n  /**\n   * Collapse component.\n   */\n  TransitionComponent: _propTypes.default.func,\n\n  /**\n   * Adjust the duration of the content expand transition.\n   * Passed as a property to the transition component.\n   *\n   * Set to 'auto' to automatically calculate transition time based on height.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  }), _propTypes.default.oneOf(['auto'])]),\n\n  /**\n   * Properties applied to the `Transition` element.\n   */\n  TransitionProps: _propTypes.default.object\n} : {};\nStepContent.defaultProps = {\n  TransitionComponent: _Collapse.default,\n  transitionDuration: 'auto'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepContent'\n})(StepContent);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _StepContent.default;\n  }\n});\n\nvar _StepContent = _interopRequireDefault(require(\"./StepContent\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Paper = _interopRequireDefault(require(\"../Paper\"));\n\nvar _StepConnector = _interopRequireDefault(require(\"../StepConnector\"));\n\n// @inheritedComponent Paper\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'flex',\n    padding: 24\n  },\n\n  /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n  horizontal: {\n    flexDirection: 'row',\n    alignItems: 'center'\n  },\n\n  /* Styles applied to the root element if `orientation=\"vertical\"`. */\n  vertical: {\n    flexDirection: 'column'\n  },\n\n  /* Styles applied to the root element if `alternativeLabel={true}`. */\n  alternativeLabel: {\n    alignItems: 'flex-start'\n  }\n};\nexports.styles = styles;\n\nfunction Stepper(props) {\n  var activeStep = props.activeStep,\n      alternativeLabel = props.alternativeLabel,\n      children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      connectorProp = props.connector,\n      nonLinear = props.nonLinear,\n      orientation = props.orientation,\n      other = (0, _objectWithoutProperties2.default)(props, [\"activeStep\", \"alternativeLabel\", \"children\", \"classes\", \"className\", \"connector\", \"nonLinear\", \"orientation\"]);\n  var className = (0, _classnames.default)(classes.root, classes[orientation], (0, _defineProperty2.default)({}, classes.alternativeLabel, alternativeLabel), classNameProp);\n  var connector = _react.default.isValidElement(connectorProp) ? _react.default.cloneElement(connectorProp, {\n    orientation: orientation\n  }) : null;\n\n  var childrenArray = _react.default.Children.toArray(children);\n\n  var steps = childrenArray.map(function (step, index) {\n    var controlProps = {\n      index: index,\n      orientation: orientation,\n      last: index + 1 === childrenArray.length,\n      alternativeLabel: alternativeLabel,\n      connector: connectorProp\n    };\n    var state = {\n      active: false,\n      completed: false,\n      disabled: false\n    };\n\n    if (activeStep === index) {\n      state.active = true;\n    } else if (!nonLinear && activeStep > index) {\n      state.completed = true;\n    } else if (!nonLinear && activeStep < index) {\n      state.disabled = true;\n    }\n\n    return [!alternativeLabel && connector && index > 0 && _react.default.cloneElement(connector, (0, _extends2.default)({\n      key: index\n    }, state)), _react.default.cloneElement(step, (0, _extends2.default)({}, controlProps, step.props, state))];\n  });\n  return _react.default.createElement(_Paper.default, (0, _extends2.default)({\n    square: true,\n    elevation: 0,\n    className: className\n  }, other), steps);\n}\n\nStepper.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Set the active step (zero based index).\n   */\n  activeStep: _propTypes.default.number,\n\n  /**\n   * If set to 'true' and orientation is horizontal,\n   * then the step label will be positioned under the icon.\n   */\n  alternativeLabel: _propTypes.default.bool,\n\n  /**\n   * Two or more `<Step />` components.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * A component to be placed between each step.\n   */\n  connector: _propTypes.default.element,\n\n  /**\n   * If set the `Stepper` will not assist in controlling steps for linear flow.\n   */\n  nonLinear: _propTypes.default.bool,\n\n  /**\n   * The stepper orientation (layout flow direction).\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical'])\n} : {};\nStepper.defaultProps = {\n  activeStep: 0,\n  alternativeLabel: false,\n  connector: _react.default.createElement(_StepConnector.default, null),\n  nonLinear: false,\n  orientation: 'horizontal'\n};\nStepper.muiName = 'Stepper';\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiStepper'\n})(Stepper);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Stepper.default;\n  }\n});\n\nvar _Stepper = _interopRequireDefault(require(\"./Stepper\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _Drawer = require(\"../Drawer/Drawer\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      bottom: 0,\n      zIndex: theme.zIndex.drawer - 1\n    },\n    anchorLeft: {\n      right: 'auto'\n    },\n    anchorRight: {\n      left: 'auto',\n      right: 0\n    },\n    anchorTop: {\n      bottom: 'auto',\n      right: 0\n    },\n    anchorBottom: {\n      top: 'auto',\n      bottom: 0,\n      right: 0\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\n\nexports.styles = styles;\n\nfunction SwipeArea(props) {\n  var anchor = props.anchor,\n      classes = props.classes,\n      width = props.width,\n      other = (0, _objectWithoutProperties2.default)(props, [\"anchor\", \"classes\", \"width\"]);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classes[\"anchor\".concat((0, _helpers.capitalize)(anchor))]),\n    style: (0, _defineProperty2.default)({}, (0, _Drawer.isHorizontal)(props) ? 'width' : 'height', width)\n  }, other));\n}\n\nSwipeArea.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Side on which to attach the discovery area.\n   */\n  anchor: _propTypes.default.oneOf(['left', 'top', 'right', 'bottom']).isRequired,\n\n  /**\n   * @ignore\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * The width of the left most (or right most) area in pixels where the\n   * drawer can be swiped open from.\n   */\n  width: _propTypes.default.number.isRequired\n} : {};\n\nvar _default = (0, _withStyles.default)(styles)(SwipeArea);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.reset = reset;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _Drawer = _interopRequireWildcard(require(\"../Drawer/Drawer\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _utils = require(\"../transitions/utils\");\n\nvar _NoSsr = _interopRequireDefault(require(\"../NoSsr\"));\n\nvar _SwipeArea = _interopRequireDefault(require(\"./SwipeArea\"));\n\n/* eslint-disable consistent-this */\n// @inheritedComponent Drawer\n// This value is closed to what browsers are using internally to\n// trigger a native scroll.\nvar UNCERTAINTY_THRESHOLD = 3; // px\n// We can only have one node at the time claiming ownership for handling the swipe.\n// Otherwise, the UX would be confusing.\n// That's why we use a singleton here.\n\nvar nodeThatClaimedTheSwipe = null; // Exported for test purposes.\n\nfunction reset() {\n  nodeThatClaimedTheSwipe = null;\n}\n/* istanbul ignore if */\n\n\nif (process.env.NODE_ENV !== 'production' && !_react.default.createContext) {\n  throw new Error('Material-UI: react@16.3.0 or greater is required.');\n}\n\nvar SwipeableDrawer =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(SwipeableDrawer, _React$Component);\n\n  function SwipeableDrawer() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, SwipeableDrawer);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(SwipeableDrawer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {};\n    _this.isSwiping = null;\n\n    _this.handleBodyTouchStart = function (event) {\n      // We are not supposed to hanlde this touch move.\n      if (nodeThatClaimedTheSwipe !== null && nodeThatClaimedTheSwipe !== (0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))) {\n        return;\n      }\n\n      var _this$props = _this.props,\n          disableDiscovery = _this$props.disableDiscovery,\n          disableSwipeToOpen = _this$props.disableSwipeToOpen,\n          open = _this$props.open,\n          swipeAreaWidth = _this$props.swipeAreaWidth;\n      var anchor = (0, _Drawer.getAnchor)(_this.props);\n      var currentX = anchor === 'right' ? document.body.offsetWidth - event.touches[0].pageX : event.touches[0].pageX;\n      var currentY = anchor === 'bottom' ? window.innerHeight - event.touches[0].clientY : event.touches[0].clientY;\n\n      if (!open) {\n        if (disableSwipeToOpen) {\n          return;\n        }\n\n        if ((0, _Drawer.isHorizontal)(_this.props)) {\n          if (currentX > swipeAreaWidth) {\n            return;\n          }\n        } else if (currentY > swipeAreaWidth) {\n          return;\n        }\n      }\n\n      nodeThatClaimedTheSwipe = (0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this));\n      _this.startX = currentX;\n      _this.startY = currentY;\n\n      _this.setState({\n        maybeSwiping: true\n      });\n\n      if (!open && _this.paperRef) {\n        // The ref may be null when a parent component updates while swiping.\n        _this.setPosition(_this.getMaxTranslate() + (disableDiscovery ? 20 : -swipeAreaWidth), {\n          changeTransition: false\n        });\n      }\n\n      _this.velocity = 0;\n      _this.lastTime = null;\n      _this.lastTranslate = null;\n      document.body.addEventListener('touchmove', _this.handleBodyTouchMove, {\n        passive: false\n      });\n      document.body.addEventListener('touchend', _this.handleBodyTouchEnd); // https://plus.google.com/+PaulIrish/posts/KTwfn1Y2238\n\n      document.body.addEventListener('touchcancel', _this.handleBodyTouchEnd);\n    };\n\n    _this.handleBodyTouchMove = function (event) {\n      // the ref may be null when a parent component updates while swiping\n      if (!_this.paperRef) return;\n      var anchor = (0, _Drawer.getAnchor)(_this.props);\n      var horizontalSwipe = (0, _Drawer.isHorizontal)(_this.props);\n      var currentX = anchor === 'right' ? document.body.offsetWidth - event.touches[0].pageX : event.touches[0].pageX;\n      var currentY = anchor === 'bottom' ? window.innerHeight - event.touches[0].clientY : event.touches[0].clientY; // We don't know yet.\n\n      if (_this.isSwiping == null) {\n        var dx = Math.abs(currentX - _this.startX);\n        var dy = Math.abs(currentY - _this.startY); // We are likely to be swiping, let's prevent the scroll event on iOS.\n\n        if (dx > dy) {\n          event.preventDefault();\n        }\n\n        var isSwiping = horizontalSwipe ? dx > dy && dx > UNCERTAINTY_THRESHOLD : dy > dx && dy > UNCERTAINTY_THRESHOLD;\n\n        if (isSwiping === true || (horizontalSwipe ? dy > UNCERTAINTY_THRESHOLD : dx > UNCERTAINTY_THRESHOLD)) {\n          _this.isSwiping = isSwiping;\n\n          if (!isSwiping) {\n            _this.handleBodyTouchEnd(event);\n\n            return;\n          } // Shift the starting point.\n\n\n          _this.startX = currentX;\n          _this.startY = currentY; // Compensate for the part of the drawer displayed on touch start.\n\n          if (!_this.props.disableDiscovery && !_this.props.open) {\n            if (horizontalSwipe) {\n              _this.startX -= _this.props.swipeAreaWidth;\n            } else {\n              _this.startY -= _this.props.swipeAreaWidth;\n            }\n          }\n        }\n      }\n\n      if (!_this.isSwiping) {\n        return;\n      }\n\n      var translate = _this.getTranslate(horizontalSwipe ? currentX : currentY);\n\n      if (_this.lastTranslate === null) {\n        _this.lastTranslate = translate;\n        _this.lastTime = performance.now() + 1;\n      }\n\n      var velocity = (translate - _this.lastTranslate) / (performance.now() - _this.lastTime) * 1e3; // Low Pass filter.\n\n      _this.velocity = _this.velocity * 0.4 + velocity * 0.6;\n      _this.lastTranslate = translate;\n      _this.lastTime = performance.now(); // We are swiping, let's prevent the scroll event on iOS.\n\n      event.preventDefault();\n\n      _this.setPosition(translate);\n    };\n\n    _this.handleBodyTouchEnd = function (event) {\n      nodeThatClaimedTheSwipe = null;\n\n      _this.removeBodyTouchListeners();\n\n      _this.setState({\n        maybeSwiping: false\n      }); // The swipe wasn't started.\n\n\n      if (!_this.isSwiping) {\n        _this.isSwiping = null;\n        return;\n      }\n\n      _this.isSwiping = null;\n      var anchor = (0, _Drawer.getAnchor)(_this.props);\n      var current;\n\n      if ((0, _Drawer.isHorizontal)(_this.props)) {\n        current = anchor === 'right' ? document.body.offsetWidth - event.changedTouches[0].pageX : event.changedTouches[0].pageX;\n      } else {\n        current = anchor === 'bottom' ? window.innerHeight - event.changedTouches[0].clientY : event.changedTouches[0].clientY;\n      }\n\n      var translateRatio = _this.getTranslate(current) / _this.getMaxTranslate();\n\n      if (_this.props.open) {\n        if (_this.velocity > _this.props.minFlingVelocity || translateRatio > _this.props.hysteresis) {\n          _this.props.onClose();\n        } else {\n          // Reset the position, the swipe was aborted.\n          _this.setPosition(0, {\n            mode: 'exit'\n          });\n        }\n\n        return;\n      }\n\n      if (_this.velocity < -_this.props.minFlingVelocity || 1 - translateRatio > _this.props.hysteresis) {\n        _this.props.onOpen();\n      } else {\n        // Reset the position, the swipe was aborted.\n        _this.setPosition(_this.getMaxTranslate(), {\n          mode: 'enter'\n        });\n      }\n    };\n\n    _this.handleBackdropRef = function (ref) {\n      _this.backdropRef = ref ? _reactDom.default.findDOMNode(ref) : null;\n    };\n\n    _this.handlePaperRef = function (ref) {\n      _this.paperRef = ref ? _reactDom.default.findDOMNode(ref) : null;\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(SwipeableDrawer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.variant === 'temporary') {\n        this.listenTouchStart();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var variant = this.props.variant;\n      var prevVariant = prevProps.variant;\n\n      if (variant !== prevVariant) {\n        if (variant === 'temporary') {\n          this.listenTouchStart();\n        } else if (prevVariant === 'temporary') {\n          this.removeTouchStart();\n        }\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.removeTouchStart();\n      this.removeBodyTouchListeners(); // We need to release the lock.\n\n      if (nodeThatClaimedTheSwipe === this) {\n        nodeThatClaimedTheSwipe = null;\n      }\n    }\n  }, {\n    key: \"getMaxTranslate\",\n    value: function getMaxTranslate() {\n      return (0, _Drawer.isHorizontal)(this.props) ? this.paperRef.clientWidth : this.paperRef.clientHeight;\n    }\n  }, {\n    key: \"getTranslate\",\n    value: function getTranslate(current) {\n      var start = (0, _Drawer.isHorizontal)(this.props) ? this.startX : this.startY;\n      return Math.min(Math.max(this.props.open ? start - current : this.getMaxTranslate() + start - current, 0), this.getMaxTranslate());\n    }\n  }, {\n    key: \"setPosition\",\n    value: function setPosition(translate) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var _options$mode = options.mode,\n          mode = _options$mode === void 0 ? null : _options$mode,\n          _options$changeTransi = options.changeTransition,\n          changeTransition = _options$changeTransi === void 0 ? true : _options$changeTransi;\n      var anchor = (0, _Drawer.getAnchor)(this.props);\n      var rtlTranslateMultiplier = ['right', 'bottom'].indexOf(anchor) !== -1 ? 1 : -1;\n      var transform = (0, _Drawer.isHorizontal)(this.props) ? \"translate(\".concat(rtlTranslateMultiplier * translate, \"px, 0)\") : \"translate(0, \".concat(rtlTranslateMultiplier * translate, \"px)\");\n      var drawerStyle = this.paperRef.style;\n      drawerStyle.webkitTransform = transform;\n      drawerStyle.transform = transform;\n      var transition = '';\n\n      if (mode) {\n        transition = this.props.theme.transitions.create('all', (0, _utils.getTransitionProps)({\n          timeout: this.props.transitionDuration\n        }, {\n          mode: mode\n        }));\n      }\n\n      if (changeTransition) {\n        drawerStyle.webkitTransition = transition;\n        drawerStyle.transition = transition;\n      }\n\n      if (!this.props.disableBackdropTransition && !this.props.hideBackdrop) {\n        var backdropStyle = this.backdropRef.style;\n        backdropStyle.opacity = 1 - translate / this.getMaxTranslate();\n\n        if (changeTransition) {\n          backdropStyle.webkitTransition = transition;\n          backdropStyle.transition = transition;\n        }\n      }\n    }\n  }, {\n    key: \"listenTouchStart\",\n    value: function listenTouchStart() {\n      document.body.addEventListener('touchstart', this.handleBodyTouchStart);\n    }\n  }, {\n    key: \"removeTouchStart\",\n    value: function removeTouchStart() {\n      document.body.removeEventListener('touchstart', this.handleBodyTouchStart);\n    }\n  }, {\n    key: \"removeBodyTouchListeners\",\n    value: function removeBodyTouchListeners() {\n      document.body.removeEventListener('touchmove', this.handleBodyTouchMove, {\n        passive: false\n      });\n      document.body.removeEventListener('touchend', this.handleBodyTouchEnd);\n      document.body.removeEventListener('touchcancel', this.handleBodyTouchEnd);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          anchor = _this$props2.anchor,\n          disableBackdropTransition = _this$props2.disableBackdropTransition,\n          disableDiscovery = _this$props2.disableDiscovery,\n          disableSwipeToOpen = _this$props2.disableSwipeToOpen,\n          hysteresis = _this$props2.hysteresis,\n          minFlingVelocity = _this$props2.minFlingVelocity,\n          _this$props2$ModalPro = _this$props2.ModalProps;\n      _this$props2$ModalPro = _this$props2$ModalPro === void 0 ? {} : _this$props2$ModalPro;\n      var BackdropProps = _this$props2$ModalPro.BackdropProps,\n          ModalPropsProp = (0, _objectWithoutProperties2.default)(_this$props2$ModalPro, [\"BackdropProps\"]),\n          onOpen = _this$props2.onOpen,\n          open = _this$props2.open,\n          _this$props2$PaperPro = _this$props2.PaperProps,\n          PaperProps = _this$props2$PaperPro === void 0 ? {} : _this$props2$PaperPro,\n          swipeAreaWidth = _this$props2.swipeAreaWidth,\n          variant = _this$props2.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"anchor\", \"disableBackdropTransition\", \"disableDiscovery\", \"disableSwipeToOpen\", \"hysteresis\", \"minFlingVelocity\", \"ModalProps\", \"onOpen\", \"open\", \"PaperProps\", \"swipeAreaWidth\", \"variant\"]);\n      var maybeSwiping = this.state.maybeSwiping;\n      return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_Drawer.default, (0, _extends2.default)({\n        open: variant === 'temporary' && maybeSwiping ? true : open,\n        variant: variant,\n        ModalProps: (0, _extends2.default)({\n          BackdropProps: (0, _extends2.default)({}, BackdropProps, {\n            ref: this.handleBackdropRef\n          })\n        }, ModalPropsProp),\n        PaperProps: (0, _extends2.default)({}, PaperProps, {\n          style: (0, _extends2.default)({\n            pointerEvents: variant === 'temporary' && !open ? 'none' : ''\n          }, PaperProps.style),\n          ref: this.handlePaperRef\n        }),\n        anchor: anchor\n      }, other)), !disableDiscovery && !disableSwipeToOpen && variant === 'temporary' && _react.default.createElement(_NoSsr.default, null, _react.default.createElement(_SwipeArea.default, {\n        anchor: anchor,\n        width: swipeAreaWidth\n      })));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (typeof prevState.maybeSwiping === 'undefined') {\n        return {\n          maybeSwiping: false,\n          open: nextProps.open\n        };\n      }\n\n      if (!nextProps.open && prevState.open) {\n        return {\n          maybeSwiping: false,\n          open: nextProps.open\n        };\n      }\n\n      return {\n        open: nextProps.open\n      };\n    }\n  }]);\n  return SwipeableDrawer;\n}(_react.default.Component);\n\nSwipeableDrawer.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * @ignore\n   */\n  anchor: _propTypes.default.oneOf(['left', 'top', 'right', 'bottom']),\n\n  /**\n   * Disable the backdrop transition.\n   * This can improve the FPS on low-end devices.\n   */\n  disableBackdropTransition: _propTypes.default.bool,\n\n  /**\n   * If `true`, touching the screen near the edge of the drawer will not slide in the drawer a bit\n   * to promote accidental discovery of the swipe gesture.\n   */\n  disableDiscovery: _propTypes.default.bool,\n\n  /**\n   * If `true`, swipe to open is disabled. This is useful in browsers where swiping triggers\n   * navigation actions. Swipe to open is disabled on iOS browsers by default.\n   */\n  disableSwipeToOpen: _propTypes.default.bool,\n\n  /**\n   * Affects how far the drawer must be opened/closed to change his state.\n   * Specified as percent (0-1) of the width of the drawer\n   */\n  hysteresis: _propTypes.default.number,\n\n  /**\n   * Defines, from which (average) velocity on, the swipe is\n   * defined as complete although hysteresis isn't reached.\n   * Good threshold is between 250 - 1000 px/s\n   */\n  minFlingVelocity: _propTypes.default.number,\n\n  /**\n   * @ignore\n   */\n  ModalProps: _propTypes.default.object,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func.isRequired,\n\n  /**\n   * Callback fired when the component requests to be opened.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onOpen: _propTypes.default.func.isRequired,\n\n  /**\n   * If `true`, the drawer is open.\n   */\n  open: _propTypes.default.bool.isRequired,\n\n  /**\n   * @ignore\n   */\n  PaperProps: _propTypes.default.object,\n\n  /**\n   * The width of the left most (or right most) area in pixels where the\n   * drawer can be swiped open from.\n   */\n  swipeAreaWidth: _propTypes.default.number,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  transitionDuration: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })]),\n\n  /**\n   * @ignore\n   */\n  variant: _propTypes.default.oneOf(['permanent', 'persistent', 'temporary'])\n} : {};\nSwipeableDrawer.defaultProps = {\n  anchor: 'left',\n  disableBackdropTransition: false,\n  disableDiscovery: false,\n  disableSwipeToOpen: typeof navigator !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent),\n  hysteresis: 0.55,\n  minFlingVelocity: 400,\n  swipeAreaWidth: 20,\n  transitionDuration: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  },\n  variant: 'temporary' // Mobile first.\n\n};\n\nvar _default = (0, _withTheme.default)()(SwipeableDrawer);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _SwipeableDrawer.default;\n  }\n});\n\nvar _SwipeableDrawer = _interopRequireDefault(require(\"./SwipeableDrawer\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _SwitchBase = _interopRequireDefault(require(\"../internal/SwitchBase\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'inline-flex',\n      width: 62,\n      position: 'relative',\n      flexShrink: 0,\n      // For correct alignment with the text.\n      verticalAlign: 'middle'\n    },\n\n    /* Styles used to create the `icon` passed to the internal `SwitchBase` component `icon` prop. */\n    icon: {\n      boxShadow: theme.shadows[1],\n      backgroundColor: 'currentColor',\n      width: 20,\n      height: 20,\n      borderRadius: '50%'\n    },\n\n    /* Styles applied the icon element component if `checked={true}`. */\n    iconChecked: {\n      boxShadow: theme.shadows[2]\n    },\n\n    /* Styles applied to the internal `SwitchBase` component's `root` class. */\n    switchBase: {\n      zIndex: 1,\n      padding: 0,\n      height: 48,\n      width: 48,\n      color: theme.palette.type === 'light' ? theme.palette.grey[50] : theme.palette.grey[400],\n      transition: theme.transitions.create('transform', {\n        duration: theme.transitions.duration.shortest\n      })\n    },\n\n    /* Styles applied to the internal `SwitchBase` component's `checked` class. */\n    checked: {\n      transform: 'translateX(14px)',\n      '& + $bar': {\n        opacity: 0.5\n      }\n    },\n\n    /* Styles applied to the internal SwitchBase component's root element if `color=\"primary\"`. */\n    colorPrimary: {\n      '&$checked': {\n        color: theme.palette.primary.main,\n        '& + $bar': {\n          backgroundColor: theme.palette.primary.main\n        }\n      }\n    },\n\n    /* Styles applied to the internal SwitchBase component's root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      '&$checked': {\n        color: theme.palette.secondary.main,\n        '& + $bar': {\n          backgroundColor: theme.palette.secondary.main\n        }\n      }\n    },\n\n    /* Styles applied to the internal SwitchBase component's disabled class. */\n    disabled: {\n      '& + $bar': {\n        opacity: theme.palette.type === 'light' ? 0.12 : 0.1\n      },\n      '& $icon': {\n        boxShadow: theme.shadows[1]\n      },\n      '&$switchBase': {\n        color: theme.palette.type === 'light' ? theme.palette.grey[400] : theme.palette.grey[800],\n        '& + $bar': {\n          backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white\n        }\n      }\n    },\n\n    /* Styles applied to the bar element. */\n    bar: {\n      borderRadius: 14 / 2,\n      display: 'block',\n      position: 'absolute',\n      width: 34,\n      height: 14,\n      top: '50%',\n      left: '50%',\n      marginTop: -7,\n      marginLeft: -17,\n      transition: theme.transitions.create(['opacity', 'background-color'], {\n        duration: theme.transitions.duration.shortest\n      }),\n      backgroundColor: theme.palette.type === 'light' ? theme.palette.common.black : theme.palette.common.white,\n      opacity: theme.palette.type === 'light' ? 0.38 : 0.3\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Switch(props) {\n  var classes = props.classes,\n      className = props.className,\n      color = props.color,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"color\"]);\n  return _react.default.createElement(\"span\", {\n    className: (0, _classnames.default)(classes.root, className)\n  }, _react.default.createElement(_SwitchBase.default, (0, _extends2.default)({\n    type: \"checkbox\",\n    icon: _react.default.createElement(\"span\", {\n      className: classes.icon\n    }),\n    classes: {\n      root: (0, _classnames.default)(classes.switchBase, classes[\"color\".concat((0, _helpers.capitalize)(color))]),\n      checked: classes.checked,\n      disabled: classes.disabled\n    },\n    checkedIcon: _react.default.createElement(\"span\", {\n      className: (0, _classnames.default)(classes.icon, classes.iconChecked)\n    })\n  }, other)), _react.default.createElement(\"span\", {\n    className: classes.bar\n  }));\n}\n\nSwitch.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the component is checked.\n   */\n  checked: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]),\n\n  /**\n   * The icon to display when the component is checked.\n   */\n  checkedIcon: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The color of the component. It supports those theme colors that make sense for this component.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary', 'default']),\n\n  /**\n   * @ignore\n   */\n  defaultChecked: _propTypes.default.bool,\n\n  /**\n   * If `true`, the switch will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the ripple effect will be disabled.\n   */\n  disableRipple: _propTypes.default.bool,\n\n  /**\n   * The icon to display when the component is unchecked.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * The id of the `input` element.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * Attributes applied to the `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Callback fired when the state is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.checked`.\n   * @param {boolean} checked The `checked` value of the switch\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The input component property `type`.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The value of the component.\n   */\n  value: _propTypes.default.string\n} : {};\nSwitch.defaultProps = {\n  color: 'secondary'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiSwitch'\n})(Switch);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Switch.default;\n  }\n});\n\nvar _Switch = _interopRequireDefault(require(\"./Switch\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _unsupportedProp = _interopRequireDefault(require(\"../utils/unsupportedProp\"));\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: (0, _extends3.default)({}, theme.typography.button, (0, _defineProperty2.default)({\n      maxWidth: 264,\n      position: 'relative',\n      minWidth: 72,\n      padding: 0,\n      minHeight: 48,\n      flexShrink: 0,\n      overflow: 'hidden',\n      whiteSpace: 'normal'\n    }, theme.breakpoints.up('md'), {\n      fontSize: theme.typography.pxToRem(13),\n      minWidth: 160\n    })),\n\n    /* Styles applied to the root element if both `icon` and `label` are provided. */\n    labelIcon: {\n      minHeight: 72\n    },\n\n    /* Styles applied to the root element if `textColor=\"inherit\"`. */\n    textColorInherit: {\n      color: 'inherit',\n      opacity: 0.7,\n      '&$selected': {\n        opacity: 1\n      },\n      '&$disabled': {\n        opacity: 0.4\n      }\n    },\n\n    /* Styles applied to the root element if `textColor=\"primary\"`. */\n    textColorPrimary: {\n      color: theme.palette.text.secondary,\n      '&$selected': {\n        color: theme.palette.primary.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `textColor=\"secondary\"`. */\n    textColorSecondary: {\n      color: theme.palette.text.secondary,\n      '&$selected': {\n        color: theme.palette.secondary.main\n      },\n      '&$disabled': {\n        color: theme.palette.text.disabled\n      }\n    },\n\n    /* Styles applied to the root element if `selected={true}` (controlled by the Tabs component). */\n    selected: {},\n\n    /* Styles applied to the root element if `disabled={true}` (controlled by the Tabs component). */\n    disabled: {},\n\n    /* Styles applied to the root element if `fullWidth={true}` (controlled by the Tabs component). */\n    fullWidth: {\n      flexShrink: 1,\n      flexGrow: 1,\n      maxWidth: 'none'\n    },\n\n    /* Styles applied to the `icon` and `label`'s wrapper element. */\n    wrapper: {\n      display: 'inline-flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      width: '100%',\n      flexDirection: 'column'\n    },\n\n    /* Styles applied to the label container element if `label` is provided. */\n    labelContainer: (0, _defineProperty2.default)({\n      paddingTop: 6,\n      paddingBottom: 6,\n      paddingLeft: 12,\n      paddingRight: 12\n    }, theme.breakpoints.up('md'), {\n      paddingLeft: 24,\n      paddingRight: 24\n    }),\n\n    /* Styles applied to the label wrapper element if `label` is provided. */\n    label: {},\n\n    /* Styles applied to the label wrapper element if `label` is provided and the text is wrapped. */\n    labelWrapped: (0, _defineProperty2.default)({}, theme.breakpoints.down('sm'), {\n      fontSize: theme.typography.pxToRem(12)\n    })\n  };\n};\n\nexports.styles = styles;\n\nvar Tab =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Tab, _React$Component);\n\n  function Tab() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Tab);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Tab)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.state = {\n      labelWrapped: false\n    };\n\n    _this.handleChange = function (event) {\n      var _this$props = _this.props,\n          onChange = _this$props.onChange,\n          value = _this$props.value,\n          onClick = _this$props.onClick;\n\n      if (onChange) {\n        onChange(event, value);\n      }\n\n      if (onClick) {\n        onClick(event);\n      }\n    };\n\n    _this.checkTextWrap = function () {\n      if (_this.labelRef) {\n        var labelWrapped = _this.labelRef.getClientRects().length > 1;\n\n        if (_this.state.labelWrapped !== labelWrapped) {\n          _this.setState({\n            labelWrapped: labelWrapped\n          });\n        }\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Tab, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.checkTextWrap();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      if (this.state.labelWrapped === prevState.labelWrapped) {\n        /**\n         * At certain text and tab lengths, a larger font size may wrap to two lines while the smaller\n         * font size still only requires one line.  This check will prevent an infinite render loop\n         * fron occurring in that scenario.\n         */\n        this.checkTextWrap();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this,\n          _classNames2;\n\n      var _this$props2 = this.props,\n          classes = _this$props2.classes,\n          classNameProp = _this$props2.className,\n          disabled = _this$props2.disabled,\n          fullWidth = _this$props2.fullWidth,\n          icon = _this$props2.icon,\n          indicator = _this$props2.indicator,\n          labelProp = _this$props2.label,\n          onChange = _this$props2.onChange,\n          selected = _this$props2.selected,\n          textColor = _this$props2.textColor,\n          value = _this$props2.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"classes\", \"className\", \"disabled\", \"fullWidth\", \"icon\", \"indicator\", \"label\", \"onChange\", \"selected\", \"textColor\", \"value\"]);\n      var label;\n\n      if (labelProp !== undefined) {\n        label = _react.default.createElement(\"span\", {\n          className: classes.labelContainer\n        }, _react.default.createElement(\"span\", {\n          className: (0, _classnames.default)(classes.label, (0, _defineProperty2.default)({}, classes.labelWrapped, this.state.labelWrapped)),\n          ref: function ref(_ref) {\n            _this2.labelRef = _ref;\n          }\n        }, labelProp));\n      }\n\n      var className = (0, _classnames.default)(classes.root, classes[\"textColor\".concat((0, _helpers.capitalize)(textColor))], (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames2, classes.selected, selected), (0, _defineProperty2.default)(_classNames2, classes.labelIcon, icon && label), (0, _defineProperty2.default)(_classNames2, classes.fullWidth, fullWidth), _classNames2), classNameProp);\n      return _react.default.createElement(_ButtonBase.default, (0, _extends3.default)({\n        focusRipple: true,\n        className: className,\n        role: \"tab\",\n        \"aria-selected\": selected,\n        disabled: disabled\n      }, other, {\n        onClick: this.handleChange\n      }), _react.default.createElement(\"span\", {\n        className: classes.wrapper\n      }, icon, label), indicator);\n    }\n  }]);\n  return Tab;\n}(_react.default.Component);\n\nTab.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property isn't supported.\n   * Use the `component` property if you need to change the children structure.\n   */\n  children: _unsupportedProp.default,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, the tab will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The icon element.\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * @ignore\n   * For server side rendering consideration, we let the selected tab\n   * render the indicator.\n   */\n  indicator: _propTypes.default.node,\n\n  /**\n   * The label element.\n   */\n  label: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  selected: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  textColor: _propTypes.default.oneOf(['secondary', 'primary', 'inherit']),\n\n  /**\n   * You can provide your own value. Otherwise, we fallback to the child position index.\n   */\n  value: _propTypes.default.any\n} : {};\nTab.defaultProps = {\n  disabled: false,\n  textColor: 'inherit'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTab'\n})(Tab);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Tab.default;\n  }\n});\n\nvar _Tab = _interopRequireDefault(require(\"./Tab\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'table',\n      fontFamily: theme.typography.fontFamily,\n      width: '100%',\n      borderCollapse: 'collapse',\n      borderSpacing: 0\n    }\n  };\n};\n\nexports.styles = styles;\n\nvar Table =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Table, _React$Component);\n\n  function Table() {\n    (0, _classCallCheck2.default)(this, Table);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Table).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(Table, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      // eslint-disable-line class-methods-use-this\n      return {\n        table: {\n          padding: this.props.padding\n        }\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          Component = _this$props.component,\n          padding = _this$props.padding,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"component\", \"padding\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, className)\n      }, other));\n    }\n  }]);\n  return Table;\n}(_react.default.Component);\n\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the table, normally `TableHeader` and `TableBody`.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Allows TableCells to inherit padding of the Table.\n   */\n  padding: _propTypes.default.oneOf(['default', 'checkbox', 'dense', 'none'])\n} : {};\nTable.defaultProps = {\n  component: 'table',\n  padding: 'default'\n};\nTable.childContextTypes = {\n  table: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTable'\n})(Table);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Table.default;\n  }\n});\n\nvar _Table = _interopRequireDefault(require(\"./Table\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-row-group'\n  }\n};\nexports.styles = styles;\n\nvar TableBody =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TableBody, _React$Component);\n\n  function TableBody() {\n    (0, _classCallCheck2.default)(this, TableBody);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TableBody).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(TableBody, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      // eslint-disable-line class-methods-use-this\n      return {\n        tablelvl2: {\n          variant: 'body'\n        }\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          Component = _this$props.component,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"component\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, className)\n      }, other));\n    }\n  }]);\n  return TableBody;\n}(_react.default.Component);\n\nTableBody.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object])\n} : {};\nTableBody.defaultProps = {\n  component: 'tbody'\n};\nTableBody.childContextTypes = {\n  tablelvl2: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableBody'\n})(TableBody);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableBody.default;\n  }\n});\n\nvar _TableBody = _interopRequireDefault(require(\"./TableBody\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _colorManipulator = require(\"../styles/colorManipulator\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'table-cell',\n      verticalAlign: 'inherit',\n      // Workaround for a rendering bug with spanned columns in Chrome 62.0.\n      // Removes the alpha (sets it to 1), and lightens or darkens the theme color.\n      borderBottom: \"1px solid\\n    \".concat(theme.palette.type === 'light' ? (0, _colorManipulator.lighten)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.88) : (0, _colorManipulator.darken)((0, _colorManipulator.fade)(theme.palette.divider, 1), 0.8)),\n      textAlign: 'left',\n      padding: '4px 56px 4px 24px',\n      '&:last-child': {\n        paddingRight: 24\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"head\"` or `context.table.head`. */\n    head: {\n      color: theme.palette.text.secondary,\n      fontSize: theme.typography.pxToRem(12),\n      fontWeight: theme.typography.fontWeightMedium\n    },\n\n    /* Styles applied to the root element if `variant=\"body\"` or `context.table.body`. */\n    body: {\n      color: theme.palette.text.primary,\n      fontSize: theme.typography.pxToRem(13),\n      fontWeight: theme.typography.fontWeightRegular\n    },\n\n    /* Styles applied to the root element if `variant=\"footer\"` or `context.table.footer`. */\n    footer: {\n      borderBottom: 0,\n      color: theme.palette.text.secondary,\n      fontSize: theme.typography.pxToRem(12)\n    },\n\n    /* Styles applied to the root element if `numeric={true}`. */\n    numeric: {\n      textAlign: 'right',\n      flexDirection: 'row-reverse' // can be dynamically inherited at runtime by contents\n\n    },\n\n    /* Styles applied to the root element if `padding=\"dense\"`. */\n    paddingDense: {\n      paddingRight: 24\n    },\n\n    /* Styles applied to the root element if `padding=\"checkbox\"`. */\n    paddingCheckbox: {\n      padding: '0 12px',\n      '&:last-child': {\n        paddingRight: 12\n      }\n    },\n\n    /* Styles applied to the root element if `padding=\"none\"`. */\n    paddingNone: {\n      padding: 0,\n      '&:last-child': {\n        padding: 0\n      }\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction TableCell(props, context) {\n  var _classNames;\n\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      component = props.component,\n      sortDirection = props.sortDirection,\n      numeric = props.numeric,\n      paddingProp = props.padding,\n      scopeProp = props.scope,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"component\", \"sortDirection\", \"numeric\", \"padding\", \"scope\", \"variant\"]);\n  var table = context.table,\n      tablelvl2 = context.tablelvl2;\n  var Component;\n\n  if (component) {\n    Component = component;\n  } else {\n    Component = tablelvl2 && tablelvl2.variant === 'head' ? 'th' : 'td';\n  }\n\n  var scope = scopeProp;\n\n  if (!scope && tablelvl2 && tablelvl2.variant === 'head') {\n    scope = 'col';\n  }\n\n  var padding = paddingProp || (table && table.padding ? table.padding : 'default');\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.head, variant ? variant === 'head' : tablelvl2 && tablelvl2.variant === 'head'), (0, _defineProperty2.default)(_classNames, classes.body, variant ? variant === 'body' : tablelvl2 && tablelvl2.variant === 'body'), (0, _defineProperty2.default)(_classNames, classes.footer, variant ? variant === 'footer' : tablelvl2 && tablelvl2.variant === 'footer'), (0, _defineProperty2.default)(_classNames, classes.numeric, numeric), (0, _defineProperty2.default)(_classNames, classes[\"padding\".concat((0, _helpers.capitalize)(padding))], padding !== 'default'), _classNames), classNameProp);\n  var ariaSort = null;\n\n  if (sortDirection) {\n    ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n  }\n\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className,\n    \"aria-sort\": ariaSort,\n    scope: scope\n  }, other), children);\n}\n\nTableCell.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The table cell contents.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, content will align to the right.\n   */\n  numeric: _propTypes.default.bool,\n\n  /**\n   * Sets the padding applied to the cell.\n   * By default, the Table parent component set the value.\n   */\n  padding: _propTypes.default.oneOf(['default', 'checkbox', 'dense', 'none']),\n\n  /**\n   * Set scope attribute.\n   */\n  scope: _propTypes.default.string,\n\n  /**\n   * Set aria-sort direction.\n   */\n  sortDirection: _propTypes.default.oneOf(['asc', 'desc', false]),\n\n  /**\n   * Specify the cell type.\n   * By default, the TableHead, TableBody or TableFooter parent component set the value.\n   */\n  variant: _propTypes.default.oneOf(['head', 'body', 'footer'])\n} : {};\nTableCell.defaultProps = {\n  numeric: false\n};\nTableCell.contextTypes = {\n  table: _propTypes.default.object,\n  tablelvl2: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableCell'\n})(TableCell);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableCell.default;\n  }\n});\n\nvar _TableCell = _interopRequireDefault(require(\"./TableCell\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-footer-group'\n  }\n};\nexports.styles = styles;\n\nvar TableFooter =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TableFooter, _React$Component);\n\n  function TableFooter() {\n    (0, _classCallCheck2.default)(this, TableFooter);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TableFooter).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(TableFooter, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      // eslint-disable-line class-methods-use-this\n      return {\n        tablelvl2: {\n          variant: 'footer'\n        }\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          Component = _this$props.component,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"component\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, className)\n      }, other));\n    }\n  }]);\n  return TableFooter;\n}(_react.default.Component);\n\nTableFooter.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object])\n} : {};\nTableFooter.defaultProps = {\n  component: 'tfoot'\n};\nTableFooter.childContextTypes = {\n  tablelvl2: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableFooter'\n})(TableFooter);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableFooter.default;\n  }\n});\n\nvar _TableFooter = _interopRequireDefault(require(\"./TableFooter\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    display: 'table-header-group'\n  }\n};\nexports.styles = styles;\n\nvar TableHead =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TableHead, _React$Component);\n\n  function TableHead() {\n    (0, _classCallCheck2.default)(this, TableHead);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TableHead).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(TableHead, [{\n    key: \"getChildContext\",\n    value: function getChildContext() {\n      // eslint-disable-line class-methods-use-this\n      return {\n        tablelvl2: {\n          variant: 'head'\n        }\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          classes = _this$props.classes,\n          className = _this$props.className,\n          Component = _this$props.component,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"classes\", \"className\", \"component\"]);\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: (0, _classnames.default)(classes.root, className)\n      }, other));\n    }\n  }]);\n  return TableHead;\n}(_react.default.Component);\n\nTableHead.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The content of the component, normally `TableRow`.\n   */\n  children: _propTypes.default.node.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object])\n} : {};\nTableHead.defaultProps = {\n  component: 'thead'\n};\nTableHead.childContextTypes = {\n  tablelvl2: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableHead'\n})(TableHead);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableHead.default;\n  }\n});\n\nvar _TableHead = _interopRequireDefault(require(\"./TableHead\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'relative',\n      display: 'flex',\n      alignItems: 'center'\n    },\n\n    /* Styles applied to the root element if `disableGutters={false}`. */\n    gutters: theme.mixins.gutters(),\n\n    /* Styles applied to the root element if `variant=\"regular\"`. */\n    regular: theme.mixins.toolbar,\n\n    /* Styles applied to the root element if `variant=\"dense\"`. */\n    dense: {\n      minHeight: 48\n    }\n  };\n};\n\nexports.styles = styles;\n\nfunction Toolbar(props) {\n  var children = props.children,\n      classes = props.classes,\n      classNameProp = props.className,\n      disableGutters = props.disableGutters,\n      variant = props.variant,\n      other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"disableGutters\", \"variant\"]);\n  var className = (0, _classnames.default)(classes.root, classes[variant], (0, _defineProperty2.default)({}, classes.gutters, !disableGutters), classNameProp);\n  return _react.default.createElement(\"div\", (0, _extends2.default)({\n    className: className\n  }, other), children);\n}\n\nToolbar.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * If `true`, disables gutter padding.\n   */\n  disableGutters: _propTypes.default.bool,\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['regular', 'dense'])\n} : {};\nToolbar.defaultProps = {\n  disableGutters: false,\n  variant: 'regular'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiToolbar'\n})(Toolbar);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Toolbar.default;\n  }\n});\n\nvar _Toolbar = _interopRequireDefault(require(\"./Toolbar\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar KeyboardArrowLeft = function KeyboardArrowLeft(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nKeyboardArrowLeft = (0, _pure.default)(KeyboardArrowLeft);\nKeyboardArrowLeft.muiName = 'SvgIcon';\nvar _default = KeyboardArrowLeft;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar KeyboardArrowRight = function KeyboardArrowRight(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nKeyboardArrowRight = (0, _pure.default)(KeyboardArrowRight);\nKeyboardArrowRight.muiName = 'SvgIcon';\nvar _default = KeyboardArrowRight;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _KeyboardArrowLeft = _interopRequireDefault(require(\"../internal/svg-icons/KeyboardArrowLeft\"));\n\nvar _KeyboardArrowRight = _interopRequireDefault(require(\"../internal/svg-icons/KeyboardArrowRight\"));\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _IconButton = _interopRequireDefault(require(\"../IconButton\"));\n\nvar _ref = _react.default.createElement(_KeyboardArrowRight.default, null);\n\nvar _ref2 = _react.default.createElement(_KeyboardArrowLeft.default, null);\n\nvar _ref3 = _react.default.createElement(_KeyboardArrowLeft.default, null);\n\nvar _ref4 = _react.default.createElement(_KeyboardArrowRight.default, null);\n\n/**\n * @ignore - internal component.\n */\nvar TablePaginationActions =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TablePaginationActions, _React$Component);\n\n  function TablePaginationActions() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, TablePaginationActions);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(TablePaginationActions)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleBackButtonClick = function (event) {\n      _this.props.onChangePage(event, _this.props.page - 1);\n    };\n\n    _this.handleNextButtonClick = function (event) {\n      _this.props.onChangePage(event, _this.props.page + 1);\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(TablePaginationActions, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          backIconButtonProps = _this$props.backIconButtonProps,\n          count = _this$props.count,\n          nextIconButtonProps = _this$props.nextIconButtonProps,\n          onChangePage = _this$props.onChangePage,\n          page = _this$props.page,\n          rowsPerPage = _this$props.rowsPerPage,\n          theme = _this$props.theme,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"backIconButtonProps\", \"count\", \"nextIconButtonProps\", \"onChangePage\", \"page\", \"rowsPerPage\", \"theme\"]);\n      return _react.default.createElement(\"div\", other, _react.default.createElement(_IconButton.default, (0, _extends2.default)({\n        onClick: this.handleBackButtonClick,\n        disabled: page === 0\n      }, backIconButtonProps), theme.direction === 'rtl' ? _ref : _ref2), _react.default.createElement(_IconButton.default, (0, _extends2.default)({\n        onClick: this.handleNextButtonClick,\n        disabled: page >= Math.ceil(count / rowsPerPage) - 1\n      }, nextIconButtonProps), theme.direction === 'rtl' ? _ref3 : _ref4));\n    }\n  }]);\n  return TablePaginationActions;\n}(_react.default.Component);\n\nTablePaginationActions.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Properties applied to the back arrow [`IconButton`](/api/icon-button) element.\n   */\n  backIconButtonProps: _propTypes.default.object,\n\n  /**\n   * The total number of rows.\n   */\n  count: _propTypes.default.number.isRequired,\n\n  /**\n   * Properties applied to the next arrow [`IconButton`](/api/icon-button) element.\n   */\n  nextIconButtonProps: _propTypes.default.object,\n\n  /**\n   * Callback fired when the page is changed.\n   *\n   * @param {object} event The event source of the callback\n   * @param {number} page The page selected\n   */\n  onChangePage: _propTypes.default.func.isRequired,\n\n  /**\n   * The zero-based index of the current page.\n   */\n  page: _propTypes.default.number.isRequired,\n\n  /**\n   * The number of rows per page.\n   */\n  rowsPerPage: _propTypes.default.number.isRequired,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired\n} : {};\n\nvar _default = (0, _withTheme.default)()(TablePaginationActions);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TablePaginationActions.default;\n  }\n});\n\nvar _TablePaginationActions = _interopRequireDefault(require(\"./TablePaginationActions\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _InputBase = _interopRequireDefault(require(\"../InputBase\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"../MenuItem\"));\n\nvar _Select = _interopRequireDefault(require(\"../Select\"));\n\nvar _TableCell = _interopRequireDefault(require(\"../TableCell\"));\n\nvar _Toolbar = _interopRequireDefault(require(\"../Toolbar\"));\n\nvar _Typography = _interopRequireDefault(require(\"../Typography\"));\n\nvar _TablePaginationActions = _interopRequireDefault(require(\"../TablePaginationActions\"));\n\n// @inheritedComponent TableCell\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      fontSize: theme.typography.pxToRem(12),\n      // Increase the specificity to override TableCell.\n      '&:last-child': {\n        padding: 0\n      }\n    },\n\n    /* Styles applied to the Toolbar component. */\n    toolbar: {\n      height: 56,\n      minHeight: 56,\n      paddingRight: 2\n    },\n\n    /* Styles applied to the spacer element. */\n    spacer: {\n      flex: '1 1 100%'\n    },\n\n    /* Styles applied to the caption Typography components if `variant=\"caption\"`. */\n    caption: {\n      flexShrink: 0\n    },\n\n    /* Styles applied to the Select component `root` class. */\n    selectRoot: {\n      marginRight: 32,\n      marginLeft: 8,\n      color: theme.palette.text.secondary\n    },\n\n    /* Styles applied to the Select component `select` class. */\n    select: {\n      paddingLeft: 8,\n      paddingRight: 16\n    },\n\n    /* Styles applied to the Select component `icon` class. */\n    selectIcon: {\n      top: 1\n    },\n\n    /* Styles applied to the `InputBase` component. */\n    input: {\n      fontSize: 'inherit',\n      flexShrink: 0\n    },\n\n    /* Styles applied to the MenuItem component. */\n    menuItem: {},\n\n    /* Styles applied to the internal `TablePaginationActions` component. */\n    actions: {\n      flexShrink: 0,\n      color: theme.palette.text.secondary,\n      marginLeft: 20\n    }\n  };\n};\n/**\n * A `TableCell` based component for placing inside `TableFooter` for pagination.\n */\n\n\nexports.styles = styles;\n\nvar TablePagination =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TablePagination, _React$Component);\n\n  function TablePagination() {\n    (0, _classCallCheck2.default)(this, TablePagination);\n    return (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TablePagination).apply(this, arguments));\n  }\n\n  (0, _createClass2.default)(TablePagination, [{\n    key: \"componentDidUpdate\",\n    // This logic would be better handled on userside.\n    // However, we have it just in case.\n    value: function componentDidUpdate() {\n      var _this$props = this.props,\n          count = _this$props.count,\n          onChangePage = _this$props.onChangePage,\n          page = _this$props.page,\n          rowsPerPage = _this$props.rowsPerPage;\n      var newLastPage = Math.max(0, Math.ceil(count / rowsPerPage) - 1);\n\n      if (page > newLastPage) {\n        onChangePage(null, newLastPage);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          ActionsComponent = _this$props2.ActionsComponent,\n          backIconButtonProps = _this$props2.backIconButtonProps,\n          classes = _this$props2.classes,\n          colSpanProp = _this$props2.colSpan,\n          Component = _this$props2.component,\n          count = _this$props2.count,\n          labelDisplayedRows = _this$props2.labelDisplayedRows,\n          labelRowsPerPage = _this$props2.labelRowsPerPage,\n          nextIconButtonProps = _this$props2.nextIconButtonProps,\n          onChangePage = _this$props2.onChangePage,\n          onChangeRowsPerPage = _this$props2.onChangeRowsPerPage,\n          page = _this$props2.page,\n          rowsPerPage = _this$props2.rowsPerPage,\n          rowsPerPageOptions = _this$props2.rowsPerPageOptions,\n          SelectProps = _this$props2.SelectProps,\n          other = (0, _objectWithoutProperties2.default)(_this$props2, [\"ActionsComponent\", \"backIconButtonProps\", \"classes\", \"colSpan\", \"component\", \"count\", \"labelDisplayedRows\", \"labelRowsPerPage\", \"nextIconButtonProps\", \"onChangePage\", \"onChangeRowsPerPage\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"SelectProps\"]);\n      var colSpan;\n\n      if (Component === _TableCell.default || Component === 'td') {\n        colSpan = colSpanProp || 1000; // col-span over everything\n      }\n\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: classes.root,\n        colSpan: colSpan\n      }, other), _react.default.createElement(_Toolbar.default, {\n        className: classes.toolbar\n      }, _react.default.createElement(\"div\", {\n        className: classes.spacer\n      }), rowsPerPageOptions.length > 1 && _react.default.createElement(_Typography.default, {\n        variant: \"caption\",\n        className: classes.caption\n      }, labelRowsPerPage), rowsPerPageOptions.length > 1 && _react.default.createElement(_Select.default, (0, _extends2.default)({\n        classes: {\n          root: classes.selectRoot,\n          select: classes.select,\n          icon: classes.selectIcon\n        },\n        input: _react.default.createElement(_InputBase.default, {\n          className: classes.input\n        }),\n        value: rowsPerPage,\n        onChange: onChangeRowsPerPage\n      }, SelectProps), rowsPerPageOptions.map(function (rowsPerPageOption) {\n        return _react.default.createElement(_MenuItem.default, {\n          className: classes.menuItem,\n          key: rowsPerPageOption,\n          value: rowsPerPageOption\n        }, rowsPerPageOption);\n      })), _react.default.createElement(_Typography.default, {\n        variant: \"caption\",\n        className: classes.caption\n      }, labelDisplayedRows({\n        from: count === 0 ? 0 : page * rowsPerPage + 1,\n        to: Math.min(count, (page + 1) * rowsPerPage),\n        count: count,\n        page: page\n      })), _react.default.createElement(ActionsComponent, {\n        className: classes.actions,\n        backIconButtonProps: backIconButtonProps,\n        count: count,\n        nextIconButtonProps: nextIconButtonProps,\n        onChangePage: onChangePage,\n        page: page,\n        rowsPerPage: rowsPerPage\n      })));\n    }\n  }]);\n  return TablePagination;\n}(_react.default.Component);\n\nTablePagination.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * The component used for displaying the actions.\n   * Either a string to use a DOM element or a component.\n   */\n  ActionsComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the back arrow [`IconButton`](/api/icon-button) component.\n   */\n  backIconButtonProps: _propTypes.default.object,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  colSpan: _propTypes.default.number,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The total number of rows.\n   */\n  count: _propTypes.default.number.isRequired,\n\n  /**\n   * Customize the displayed rows label.\n   */\n  labelDisplayedRows: _propTypes.default.func,\n\n  /**\n   * Customize the rows per page label. Invoked with a `{ from, to, count, page }`\n   * object.\n   */\n  labelRowsPerPage: _propTypes.default.node,\n\n  /**\n   * Properties applied to the next arrow [`IconButton`](/api/icon-button) element.\n   */\n  nextIconButtonProps: _propTypes.default.object,\n\n  /**\n   * Callback fired when the page is changed.\n   *\n   * @param {object} event The event source of the callback\n   * @param {number} page The page selected\n   */\n  onChangePage: _propTypes.default.func.isRequired,\n\n  /**\n   * Callback fired when the number of rows per page is changed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onChangeRowsPerPage: _propTypes.default.func,\n\n  /**\n   * The zero-based index of the current page.\n   */\n  page: _propTypes.default.number.isRequired,\n\n  /**\n   * The number of rows per page.\n   */\n  rowsPerPage: _propTypes.default.number.isRequired,\n\n  /**\n   * Customizes the options of the rows per page select field. If less than two options are\n   * available, no select field will be displayed.\n   */\n  rowsPerPageOptions: _propTypes.default.array,\n\n  /**\n   * Properties applied to the rows per page [`Select`](/api/select) element.\n   */\n  SelectProps: _propTypes.default.object\n} : {};\nTablePagination.defaultProps = {\n  ActionsComponent: _TablePaginationActions.default,\n  component: _TableCell.default,\n  labelDisplayedRows: function labelDisplayedRows(_ref) {\n    var from = _ref.from,\n        to = _ref.to,\n        count = _ref.count;\n    return \"\".concat(from, \"-\").concat(to, \" of \").concat(count);\n  },\n  labelRowsPerPage: 'Rows per page:',\n  rowsPerPageOptions: [5, 10, 25]\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTablePagination'\n})(TablePagination);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TablePagination.default;\n  }\n});\n\nvar _TablePagination = _interopRequireDefault(require(\"./TablePagination\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      color: 'inherit',\n      display: 'table-row',\n      height: 48,\n      verticalAlign: 'middle',\n      // We disable the focus ring for mouse, touch and keyboard users.\n      outline: 'none',\n      '&$selected': {\n        backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.04)' // grey[100]\n        : 'rgba(255, 255, 255, 0.08)'\n      },\n      '&$hover:hover': {\n        backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.07)' // grey[200]\n        : 'rgba(255, 255, 255, 0.14)'\n      }\n    },\n\n    /* Styles applied to the root element if `selected={true}`. */\n    selected: {},\n\n    /* Styles applied to the root element if `hover={true}`. */\n    hover: {},\n\n    /* Styles applied to the root element if table variant = 'head'. */\n    head: {\n      height: 56\n    },\n\n    /* Styles applied to the root element if table variant = 'footer'. */\n    footer: {\n      height: 56\n    }\n  };\n};\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\n\nexports.styles = styles;\n\nfunction TableRow(props, context) {\n  var _classNames;\n\n  var classes = props.classes,\n      classNameProp = props.className,\n      Component = props.component,\n      hover = props.hover,\n      selected = props.selected,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"component\", \"hover\", \"selected\"]);\n  var tablelvl2 = context.tablelvl2;\n  var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.head, tablelvl2 && tablelvl2.variant === 'head'), (0, _defineProperty2.default)(_classNames, classes.footer, tablelvl2 && tablelvl2.variant === 'footer'), (0, _defineProperty2.default)(_classNames, classes.hover, hover), (0, _defineProperty2.default)(_classNames, classes.selected, selected), _classNames), classNameProp);\n  return _react.default.createElement(Component, (0, _extends2.default)({\n    className: className\n  }, other));\n}\n\nTableRow.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Should be valid <tr> children such as `TableCell`.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the table row will shade on hover.\n   */\n  hover: _propTypes.default.bool,\n\n  /**\n   * If `true`, the table row will have the selected shading.\n   */\n  selected: _propTypes.default.bool\n} : {};\nTableRow.defaultProps = {\n  component: 'tr',\n  hover: false,\n  selected: false\n};\nTableRow.contextTypes = {\n  tablelvl2: _propTypes.default.object\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableRow'\n})(TableRow);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableRow.default;\n  }\n});\n\nvar _TableRow = _interopRequireDefault(require(\"./TableRow\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"../../SvgIcon\"));\n\nvar _ref = _react.default.createElement(\"path\", {\n  d: \"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n});\n\n/**\n * @ignore - internal component.\n */\nvar ArrowDownward = function ArrowDownward(props) {\n  return _react.default.createElement(_SvgIcon.default, props, _ref);\n};\n\nArrowDownward = (0, _pure.default)(ArrowDownward);\nArrowDownward.muiName = 'SvgIcon';\nvar _default = ArrowDownward;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _ArrowDownward = _interopRequireDefault(require(\"../internal/svg-icons/ArrowDownward\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      cursor: 'pointer',\n      display: 'inline-flex',\n      justifyContent: 'flex-start',\n      flexDirection: 'inherit',\n      alignItems: 'center',\n      '&:hover': {\n        color: theme.palette.text.primary\n      },\n      '&:focus': {\n        color: theme.palette.text.primary\n      }\n    },\n\n    /* Styles applied to the root element if `active={true}`. */\n    active: {\n      color: theme.palette.text.primary,\n      '& $icon': {\n        opacity: 1\n      }\n    },\n\n    /* Styles applied to the icon component. */\n    icon: {\n      height: 16,\n      marginRight: 4,\n      marginLeft: 4,\n      opacity: 0,\n      transition: theme.transitions.create(['opacity', 'transform'], {\n        duration: theme.transitions.duration.shorter\n      }),\n      userSelect: 'none',\n      width: 16\n    },\n\n    /* Styles applied to the icon component if `direction=\"desc\"`. */\n    iconDirectionDesc: {\n      transform: 'rotate(0deg)'\n    },\n\n    /* Styles applied to the icon component if `direction=\"asc\"`. */\n    iconDirectionAsc: {\n      transform: 'rotate(180deg)'\n    }\n  };\n};\n/**\n * A button based label for placing inside `TableCell` for column sorting.\n */\n\n\nexports.styles = styles;\n\nfunction TableSortLabel(props) {\n  var active = props.active,\n      children = props.children,\n      classes = props.classes,\n      className = props.className,\n      direction = props.direction,\n      hideSortIcon = props.hideSortIcon,\n      IconComponent = props.IconComponent,\n      other = (0, _objectWithoutProperties2.default)(props, [\"active\", \"children\", \"classes\", \"className\", \"direction\", \"hideSortIcon\", \"IconComponent\"]);\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, (0, _defineProperty2.default)({}, classes.active, active), className),\n    component: \"span\",\n    disableRipple: true\n  }, other), children, hideSortIcon && !active ? null : _react.default.createElement(IconComponent, {\n    className: (0, _classnames.default)(classes.icon, classes[\"iconDirection\".concat((0, _helpers.capitalize)(direction))])\n  }));\n}\n\nTableSortLabel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * If `true`, the label will have the active styling (should be true for the sorted column).\n   */\n  active: _propTypes.default.bool,\n\n  /**\n   * Label contents, the arrow will be appended automatically.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The current sort direction.\n   */\n  direction: _propTypes.default.oneOf(['asc', 'desc']),\n\n  /**\n   * Hide sort icon when active is false.\n   */\n  hideSortIcon: _propTypes.default.bool,\n\n  /**\n   * Sort icon to use.\n   */\n  IconComponent: _propTypes.default.func\n} : {};\nTableSortLabel.defaultProps = {\n  active: false,\n  direction: 'desc',\n  hideSortIcon: false,\n  IconComponent: _ArrowDownward.default\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTableSortLabel'\n})(TableSortLabel);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TableSortLabel.default;\n  }\n});\n\nvar _TableSortLabel = _interopRequireDefault(require(\"./TableSortLabel\"));","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Based on https://github.com/react-bootstrap/dom-helpers/blob/master/src/util/inDOM.js\r\nvar inDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\r\nvar cachedType;\r\nfunction _setScrollType(type) {\r\n    cachedType = type;\r\n}\r\nexports._setScrollType = _setScrollType;\r\n// Based on the jquery plugin https://github.com/othree/jquery.rtl-scroll-type\r\nfunction detectScrollType() {\r\n    if (cachedType) {\r\n        return cachedType;\r\n    }\r\n    if (!inDOM || !window.document.body) {\r\n        return 'indeterminate';\r\n    }\r\n    var dummy = window.document.createElement('div');\r\n    dummy.appendChild(document.createTextNode('ABCD'));\r\n    dummy.dir = 'rtl';\r\n    dummy.style.fontSize = '14px';\r\n    dummy.style.width = '4px';\r\n    dummy.style.height = '1px';\r\n    dummy.style.position = 'absolute';\r\n    dummy.style.top = '-1000px';\r\n    dummy.style.overflow = 'scroll';\r\n    document.body.appendChild(dummy);\r\n    cachedType = 'reverse';\r\n    if (dummy.scrollLeft > 0) {\r\n        cachedType = 'default';\r\n    }\r\n    else {\r\n        dummy.scrollLeft = 1;\r\n        if (dummy.scrollLeft === 0) {\r\n            cachedType = 'negative';\r\n        }\r\n    }\r\n    document.body.removeChild(dummy);\r\n    return cachedType;\r\n}\r\nexports.detectScrollType = detectScrollType;\r\n// Based on https://stackoverflow.com/a/24394376\r\nfunction getNormalizedScrollLeft(element, direction) {\r\n    var scrollLeft = element.scrollLeft;\r\n    // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\r\n    if (direction !== 'rtl') {\r\n        return scrollLeft;\r\n    }\r\n    var type = detectScrollType();\r\n    if (type === 'indeterminate') {\r\n        return Number.NaN;\r\n    }\r\n    switch (type) {\r\n        case 'negative':\r\n            return element.scrollWidth - element.clientWidth + scrollLeft;\r\n        case 'reverse':\r\n            return element.scrollWidth - element.clientWidth - scrollLeft;\r\n    }\r\n    return scrollLeft;\r\n}\r\nexports.getNormalizedScrollLeft = getNormalizedScrollLeft;\r\nfunction setNormalizedScrollLeft(element, scrollLeft, direction) {\r\n    // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\r\n    if (direction !== 'rtl') {\r\n        element.scrollLeft = scrollLeft;\r\n        return;\r\n    }\r\n    var type = detectScrollType();\r\n    if (type === 'indeterminate') {\r\n        return;\r\n    }\r\n    switch (type) {\r\n        case 'negative':\r\n            element.scrollLeft = element.clientWidth - element.scrollWidth + scrollLeft;\r\n            break;\r\n        case 'reverse':\r\n            element.scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\r\n            break;\r\n        default:\r\n            element.scrollLeft = scrollLeft;\r\n            break;\r\n    }\r\n}\r\nexports.setNormalizedScrollLeft = setNormalizedScrollLeft;\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nfunction easeInOutSin(time) {\n  return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nfunction animate(prop, element, to) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var cb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};\n  var _options$ease = options.ease,\n      ease = _options$ease === void 0 ? easeInOutSin : _options$ease,\n      _options$duration = options.duration,\n      duration = _options$duration === void 0 ? 300 : _options$duration;\n  var start = null;\n  var from = element[prop];\n  var cancelled = false;\n\n  var cancel = function cancel() {\n    cancelled = true;\n  };\n\n  var step = function step(timestamp) {\n    if (cancelled) {\n      cb(new Error('Animation cancelled'));\n      return;\n    }\n\n    if (start === null) {\n      start = timestamp;\n    }\n\n    var time = Math.min(1, (timestamp - start) / duration);\n    element[prop] = ease(time) * (to - from) + from;\n\n    if (time >= 1) {\n      requestAnimationFrame(function () {\n        cb(null);\n      });\n      return;\n    }\n\n    requestAnimationFrame(step);\n  };\n\n  if (from === to) {\n    cb(new Error('Element already at target position'));\n    return cancel;\n  }\n\n  requestAnimationFrame(step);\n  return cancel;\n}\n\nvar _default = animate;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nvar styles = {\n  width: 100,\n  height: 100,\n  position: 'absolute',\n  top: -10000,\n  overflow: 'scroll',\n  msOverflowStyle: 'scrollbar'\n};\n/**\n * @ignore - internal component.\n * The component is originates from https://github.com/STORIS/react-scrollbar-size.\n * It has been moved into the core in order to minimize the bundle size.\n */\n\nvar ScrollbarSize =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(ScrollbarSize, _React$Component);\n\n  function ScrollbarSize() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, ScrollbarSize);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ScrollbarSize)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.handleResize = (0, _debounce.default)(function () {\n      var onChange = _this.props.onChange;\n      var prevHeight = _this.scrollbarHeight;\n      var prevWidth = _this.scrollbarWidth;\n\n      _this.setMeasurements();\n\n      if (prevHeight !== _this.scrollbarHeight || prevWidth !== _this.scrollbarWidth) {\n        onChange({\n          scrollbarHeight: _this.scrollbarHeight,\n          scrollbarWidth: _this.scrollbarWidth\n        });\n      }\n    }, 166);\n\n    _this.setMeasurements = function () {\n      var nodeRef = _this.nodeRef;\n\n      if (!nodeRef) {\n        return;\n      }\n\n      _this.scrollbarHeight = nodeRef.offsetHeight - nodeRef.clientHeight;\n      _this.scrollbarWidth = nodeRef.offsetWidth - nodeRef.clientWidth;\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(ScrollbarSize, [{\n    key: \"componentDidMount\",\n    // Corresponds to 10 frames at 60 Hz.\n    value: function componentDidMount() {\n      this.setMeasurements();\n      this.props.onLoad({\n        scrollbarHeight: this.scrollbarHeight,\n        scrollbarWidth: this.scrollbarWidth\n      });\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleResize.clear();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var onChange = this.props.onChange;\n      return _react.default.createElement(\"div\", null, onChange ? _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }) : null, _react.default.createElement(\"div\", {\n        style: styles,\n        ref: function ref(_ref) {\n          _this2.nodeRef = _ref;\n        }\n      }));\n    }\n  }]);\n  return ScrollbarSize;\n}(_react.default.Component);\n\nScrollbarSize.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  onChange: _propTypes.default.func.isRequired,\n  onLoad: _propTypes.default.func.isRequired\n} : {};\nvar _default = ScrollbarSize;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      position: 'absolute',\n      height: 2,\n      bottom: 0,\n      width: '100%',\n      transition: theme.transitions.create(),\n      willChange: 'left, width'\n    },\n\n    /* Styles applied to the root element if `color=\"primary\"`. */\n    colorPrimary: {\n      backgroundColor: theme.palette.primary.main\n    },\n\n    /* Styles applied to the root element if `color=\"secondary\"`. */\n    colorSecondary: {\n      backgroundColor: theme.palette.secondary.main\n    }\n  };\n};\n/**\n * @ignore - internal component.\n */\n\n\nexports.styles = styles;\n\nfunction TabIndicator(props) {\n  var classes = props.classes,\n      className = props.className,\n      color = props.color,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"color\"]);\n  return _react.default.createElement(\"span\", (0, _extends2.default)({\n    className: (0, _classnames.default)(classes.root, classes[\"color\".concat((0, _helpers.capitalize)(color))], className)\n  }, other));\n}\n\nTabIndicator.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * @ignore\n   * The color of the tab indicator.\n   */\n  color: _propTypes.default.oneOf(['primary', 'secondary'])\n} : {};\n\nvar _default = (0, _withStyles.default)(styles)(TabIndicator);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _KeyboardArrowLeft = _interopRequireDefault(require(\"../internal/svg-icons/KeyboardArrowLeft\"));\n\nvar _KeyboardArrowRight = _interopRequireDefault(require(\"../internal/svg-icons/KeyboardArrowRight\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _ButtonBase = _interopRequireDefault(require(\"../ButtonBase\"));\n\nvar styles = {\n  /* Styles applied to the root element. */\n  root: {\n    color: 'inherit',\n    flex: '0 0 56px'\n  }\n};\n/**\n * @ignore - internal component.\n */\n\nexports.styles = styles;\n\nvar _ref = _react.default.createElement(_KeyboardArrowLeft.default, null);\n\nvar _ref2 = _react.default.createElement(_KeyboardArrowRight.default, null);\n\nfunction TabScrollButton(props) {\n  var classes = props.classes,\n      classNameProp = props.className,\n      direction = props.direction,\n      onClick = props.onClick,\n      visible = props.visible,\n      other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"className\", \"direction\", \"onClick\", \"visible\"]);\n  var className = (0, _classnames.default)(classes.root, classNameProp);\n\n  if (!visible) {\n    return _react.default.createElement(\"div\", {\n      className: className\n    });\n  }\n\n  return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n    className: className,\n    onClick: onClick,\n    tabIndex: -1\n  }, other), direction === 'left' ? _ref : _ref2);\n}\n\nTabScrollButton.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Which direction should the button indicate?\n   */\n  direction: _propTypes.default.oneOf(['left', 'right']),\n\n  /**\n   * Callback to execute for button press.\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * Should the button be present or just consume space.\n   */\n  visible: _propTypes.default.bool\n} : {};\nTabScrollButton.defaultProps = {\n  visible: true\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTabScrollButton'\n})(TabScrollButton);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _reactEventListener = _interopRequireDefault(require(\"react-event-listener\"));\n\nvar _debounce = _interopRequireDefault(require(\"debounce\"));\n\nvar _normalizeScrollLeft = require(\"normalize-scroll-left\");\n\nvar _animate = _interopRequireDefault(require(\"../internal/animate\"));\n\nvar _ScrollbarSize = _interopRequireDefault(require(\"./ScrollbarSize\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _TabIndicator = _interopRequireDefault(require(\"./TabIndicator\"));\n\nvar _TabScrollButton = _interopRequireDefault(require(\"./TabScrollButton\"));\n\n/* eslint-disable no-restricted-globals */\n// < 1kb payload overhead when lodash/debounce is > 3kb.\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      overflow: 'hidden',\n      minHeight: 48,\n      WebkitOverflowScrolling: 'touch' // Add iOS momentum scrolling.\n\n    },\n\n    /* Styles applied to the flex container element. */\n    flexContainer: {\n      display: 'flex'\n    },\n\n    /* Styles applied to the flex container element if `centered={true}` & `scrollable={false}`. */\n    centered: {\n      justifyContent: 'center'\n    },\n\n    /* Styles applied to the tablist element. */\n    scroller: {\n      position: 'relative',\n      display: 'inline-block',\n      flex: '1 1 auto',\n      whiteSpace: 'nowrap'\n    },\n\n    /* Styles applied to the tablist element if `scrollable={false}`. */\n    fixed: {\n      overflowX: 'hidden',\n      width: '100%'\n    },\n\n    /* Styles applied to the tablist element if `scrollable={true}`. */\n    scrollable: {\n      overflowX: 'scroll'\n    },\n\n    /* Styles applied to the `ScrollButtonComponent` component. */\n    scrollButtons: {},\n\n    /* Styles applied to the `ScrollButtonComponent` component if `scrollButtons=\"auto\"`. */\n    scrollButtonsAuto: (0, _defineProperty2.default)({}, theme.breakpoints.down('xs'), {\n      display: 'none'\n    }),\n\n    /* Styles applied to the `TabIndicator` component. */\n    indicator: {}\n  };\n};\n\nexports.styles = styles;\n\nvar Tabs =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Tabs, _React$Component);\n\n  function Tabs() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Tabs);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Tabs)).call.apply(_getPrototypeOf2, [this].concat(args)));\n    _this.valueToIndex = new Map();\n    _this.handleResize = (0, _debounce.default)(function () {\n      _this.updateIndicatorState(_this.props);\n\n      _this.updateScrollButtonState();\n    }, 166);\n    _this.handleTabsScroll = (0, _debounce.default)(function () {\n      _this.updateScrollButtonState();\n    }, 166);\n    _this.state = {\n      indicatorStyle: {},\n      scrollerStyle: {\n        marginBottom: 0\n      },\n      showLeftScroll: false,\n      showRightScroll: false,\n      mounted: false\n    };\n\n    _this.getConditionalElements = function () {\n      var _this$props = _this.props,\n          classes = _this$props.classes,\n          scrollable = _this$props.scrollable,\n          ScrollButtonComponent = _this$props.ScrollButtonComponent,\n          scrollButtons = _this$props.scrollButtons,\n          theme = _this$props.theme;\n      var conditionalElements = {};\n      conditionalElements.scrollbarSizeListener = scrollable ? _react.default.createElement(_ScrollbarSize.default, {\n        onLoad: _this.handleScrollbarSizeChange,\n        onChange: _this.handleScrollbarSizeChange\n      }) : null;\n      var showScrollButtons = scrollable && (scrollButtons === 'auto' || scrollButtons === 'on');\n      conditionalElements.scrollButtonLeft = showScrollButtons ? _react.default.createElement(ScrollButtonComponent, {\n        direction: theme && theme.direction === 'rtl' ? 'right' : 'left',\n        onClick: _this.handleLeftScrollClick,\n        visible: _this.state.showLeftScroll,\n        className: (0, _classnames.default)(classes.scrollButtons, (0, _defineProperty2.default)({}, classes.scrollButtonsAuto, scrollButtons === 'auto'))\n      }) : null;\n      conditionalElements.scrollButtonRight = showScrollButtons ? _react.default.createElement(ScrollButtonComponent, {\n        direction: theme && theme.direction === 'rtl' ? 'left' : 'right',\n        onClick: _this.handleRightScrollClick,\n        visible: _this.state.showRightScroll,\n        className: (0, _classnames.default)(classes.scrollButtons, (0, _defineProperty2.default)({}, classes.scrollButtonsAuto, scrollButtons === 'auto'))\n      }) : null;\n      return conditionalElements;\n    };\n\n    _this.getTabsMeta = function (value, direction) {\n      var tabsMeta;\n\n      if (_this.tabsRef) {\n        var rect = _this.tabsRef.getBoundingClientRect(); // create a new object with ClientRect class props + scrollLeft\n\n\n        tabsMeta = {\n          clientWidth: _this.tabsRef.clientWidth,\n          scrollLeft: _this.tabsRef.scrollLeft,\n          scrollLeftNormalized: (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabsRef, direction),\n          scrollWidth: _this.tabsRef.scrollWidth,\n          left: rect.left,\n          right: rect.right\n        };\n      }\n\n      var tabMeta;\n\n      if (_this.tabsRef && value !== false) {\n        var children = _this.tabsRef.children[0].children;\n\n        if (children.length > 0) {\n          var tab = children[_this.valueToIndex.get(value)];\n\n          process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(tab, \"Material-UI: the value provided `\".concat(value, \"` is invalid\")) : void 0;\n          tabMeta = tab ? tab.getBoundingClientRect() : null;\n        }\n      }\n\n      return {\n        tabsMeta: tabsMeta,\n        tabMeta: tabMeta\n      };\n    };\n\n    _this.handleLeftScrollClick = function () {\n      _this.moveTabsScroll(-_this.tabsRef.clientWidth);\n    };\n\n    _this.handleRightScrollClick = function () {\n      _this.moveTabsScroll(_this.tabsRef.clientWidth);\n    };\n\n    _this.handleScrollbarSizeChange = function (_ref) {\n      var scrollbarHeight = _ref.scrollbarHeight;\n\n      _this.setState({\n        scrollerStyle: {\n          marginBottom: -scrollbarHeight\n        }\n      });\n    };\n\n    _this.moveTabsScroll = function (delta) {\n      var theme = _this.props.theme;\n      var multiplier = theme.direction === 'rtl' ? -1 : 1;\n      var nextScrollLeft = _this.tabsRef.scrollLeft + delta * multiplier; // Fix for Edge\n\n      var invert = theme.direction === 'rtl' && (0, _normalizeScrollLeft.detectScrollType)() === 'reverse' ? -1 : 1;\n\n      _this.scroll(invert * nextScrollLeft);\n    };\n\n    _this.scrollSelectedIntoView = function () {\n      var _this$props2 = _this.props,\n          theme = _this$props2.theme,\n          value = _this$props2.value;\n\n      var _this$getTabsMeta = _this.getTabsMeta(value, theme.direction),\n          tabsMeta = _this$getTabsMeta.tabsMeta,\n          tabMeta = _this$getTabsMeta.tabMeta;\n\n      if (!tabMeta || !tabsMeta) {\n        return;\n      }\n\n      if (tabMeta.left < tabsMeta.left) {\n        // left side of button is out of view\n        var nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.left - tabsMeta.left);\n\n        _this.scroll(nextScrollLeft);\n      } else if (tabMeta.right > tabsMeta.right) {\n        // right side of button is out of view\n        var _nextScrollLeft = tabsMeta.scrollLeft + (tabMeta.right - tabsMeta.right);\n\n        _this.scroll(_nextScrollLeft);\n      }\n    };\n\n    _this.scroll = function (value) {\n      (0, _animate.default)('scrollLeft', _this.tabsRef, value);\n    };\n\n    _this.updateScrollButtonState = function () {\n      var _this$props3 = _this.props,\n          scrollable = _this$props3.scrollable,\n          scrollButtons = _this$props3.scrollButtons,\n          theme = _this$props3.theme;\n\n      if (scrollable && scrollButtons !== 'off') {\n        var _this$tabsRef = _this.tabsRef,\n            scrollWidth = _this$tabsRef.scrollWidth,\n            clientWidth = _this$tabsRef.clientWidth;\n        var scrollLeft = (0, _normalizeScrollLeft.getNormalizedScrollLeft)(_this.tabsRef, theme.direction);\n        var showLeftScroll = theme.direction === 'rtl' ? scrollWidth > clientWidth + scrollLeft : scrollLeft > 0;\n        var showRightScroll = theme.direction === 'rtl' ? scrollLeft > 0 : scrollWidth > clientWidth + scrollLeft;\n\n        if (showLeftScroll !== _this.state.showLeftScroll || showRightScroll !== _this.state.showRightScroll) {\n          _this.setState({\n            showLeftScroll: showLeftScroll,\n            showRightScroll: showRightScroll\n          });\n        }\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Tabs, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // eslint-disable-next-line react/no-did-mount-set-state\n      this.setState({\n        mounted: true\n      });\n      this.updateIndicatorState(this.props);\n      this.updateScrollButtonState();\n\n      if (this.props.action) {\n        this.props.action({\n          updateIndicator: this.handleResize\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      // The index might have changed at the same time.\n      // We need to check again the right indicator position.\n      this.updateIndicatorState(this.props);\n      this.updateScrollButtonState();\n\n      if (this.state.indicatorStyle !== prevState.indicatorStyle) {\n        this.scrollSelectedIntoView();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.handleResize.clear();\n      this.handleTabsScroll.clear();\n    }\n  }, {\n    key: \"updateIndicatorState\",\n    value: function updateIndicatorState(props) {\n      var theme = props.theme,\n          value = props.value;\n\n      var _this$getTabsMeta2 = this.getTabsMeta(value, theme.direction),\n          tabsMeta = _this$getTabsMeta2.tabsMeta,\n          tabMeta = _this$getTabsMeta2.tabMeta;\n\n      var left = 0;\n\n      if (tabMeta && tabsMeta) {\n        var correction = theme.direction === 'rtl' ? tabsMeta.scrollLeftNormalized + tabsMeta.clientWidth - tabsMeta.scrollWidth : tabsMeta.scrollLeft;\n        left = Math.round(tabMeta.left - tabsMeta.left + correction);\n      }\n\n      var indicatorStyle = {\n        left: left,\n        // May be wrong until the font is loaded.\n        width: tabMeta ? Math.round(tabMeta.width) : 0\n      };\n\n      if ((indicatorStyle.left !== this.state.indicatorStyle.left || indicatorStyle.width !== this.state.indicatorStyle.width) && !isNaN(indicatorStyle.left) && !isNaN(indicatorStyle.width)) {\n        this.setState({\n          indicatorStyle: indicatorStyle\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames4,\n          _this2 = this;\n\n      var _this$props4 = this.props,\n          action = _this$props4.action,\n          centered = _this$props4.centered,\n          childrenProp = _this$props4.children,\n          classes = _this$props4.classes,\n          classNameProp = _this$props4.className,\n          Component = _this$props4.component,\n          fullWidth = _this$props4.fullWidth,\n          indicatorColor = _this$props4.indicatorColor,\n          onChange = _this$props4.onChange,\n          scrollable = _this$props4.scrollable,\n          ScrollButtonComponent = _this$props4.ScrollButtonComponent,\n          scrollButtons = _this$props4.scrollButtons,\n          _this$props4$TabIndic = _this$props4.TabIndicatorProps,\n          TabIndicatorProps = _this$props4$TabIndic === void 0 ? {} : _this$props4$TabIndic,\n          textColor = _this$props4.textColor,\n          theme = _this$props4.theme,\n          value = _this$props4.value,\n          other = (0, _objectWithoutProperties2.default)(_this$props4, [\"action\", \"centered\", \"children\", \"classes\", \"className\", \"component\", \"fullWidth\", \"indicatorColor\", \"onChange\", \"scrollable\", \"ScrollButtonComponent\", \"scrollButtons\", \"TabIndicatorProps\", \"textColor\", \"theme\", \"value\"]);\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!centered || !scrollable, 'Material-UI: you can not use the `centered={true}` and `scrollable={true}` properties ' + 'at the same time on a `Tabs` component.') : void 0;\n      var className = (0, _classnames.default)(classes.root, classNameProp);\n      var flexContainerClassName = (0, _classnames.default)(classes.flexContainer, (0, _defineProperty2.default)({}, classes.centered, centered && !scrollable));\n      var scrollerClassName = (0, _classnames.default)(classes.scroller, (_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, classes.fixed, !scrollable), (0, _defineProperty2.default)(_classNames4, classes.scrollable, scrollable), _classNames4));\n\n      var indicator = _react.default.createElement(_TabIndicator.default, (0, _extends2.default)({\n        className: classes.indicator,\n        color: indicatorColor\n      }, TabIndicatorProps, {\n        style: (0, _extends2.default)({}, this.state.indicatorStyle, TabIndicatorProps.style)\n      }));\n\n      this.valueToIndex = new Map();\n      var childIndex = 0;\n\n      var children = _react.default.Children.map(childrenProp, function (child) {\n        if (!_react.default.isValidElement(child)) {\n          return null;\n        }\n\n        process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(child.type !== _react.default.Fragment, [\"Material-UI: the Tabs component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n')) : void 0;\n        var childValue = child.props.value === undefined ? childIndex : child.props.value;\n\n        _this2.valueToIndex.set(childValue, childIndex);\n\n        var selected = childValue === value;\n        childIndex += 1;\n        return _react.default.cloneElement(child, {\n          fullWidth: fullWidth,\n          indicator: selected && !_this2.state.mounted && indicator,\n          selected: selected,\n          onChange: onChange,\n          textColor: textColor,\n          value: childValue\n        });\n      });\n\n      var conditionalElements = this.getConditionalElements();\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        className: className\n      }, other), _react.default.createElement(_reactEventListener.default, {\n        target: \"window\",\n        onResize: this.handleResize\n      }), conditionalElements.scrollbarSizeListener, _react.default.createElement(\"div\", {\n        className: classes.flexContainer\n      }, conditionalElements.scrollButtonLeft, _react.default.createElement(\"div\", {\n        className: scrollerClassName,\n        style: this.state.scrollerStyle,\n        ref: function ref(_ref2) {\n          _this2.tabsRef = _ref2;\n        },\n        role: \"tablist\",\n        onScroll: this.handleTabsScroll\n      }, _react.default.createElement(\"div\", {\n        className: flexContainerClassName\n      }, children), this.state.mounted && indicator), conditionalElements.scrollButtonRight));\n    }\n  }]);\n  return Tabs;\n}(_react.default.Component);\n\nTabs.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Callback fired when the component mounts.\n   * This is useful when you want to trigger an action programmatically.\n   * It currently only supports `updateIndicator()` action.\n   *\n   * @param {object} actions This object contains all possible actions\n   * that can be triggered programmatically.\n   */\n  action: _propTypes.default.func,\n\n  /**\n   * If `true`, the tabs will be centered.\n   * This property is intended for large views.\n   */\n  centered: _propTypes.default.bool,\n\n  /**\n   * The content of the component.\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a DOM element or a component.\n   */\n  component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * If `true`, the tabs will grow to use all the available space.\n   * This property is intended for small views, like on mobile.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * Determines the color of the indicator.\n   */\n  indicatorColor: _propTypes.default.oneOf(['secondary', 'primary']),\n\n  /**\n   * Callback fired when the value changes.\n   *\n   * @param {object} event The event source of the callback\n   * @param {number} value We default to the index of the child\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * True invokes scrolling properties and allow for horizontally scrolling\n   * (or swiping) the tab bar.\n   */\n  scrollable: _propTypes.default.bool,\n\n  /**\n   * The component used to render the scroll buttons.\n   */\n  ScrollButtonComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Determine behavior of scroll buttons when tabs are set to scroll\n   * `auto` will only present them on medium and larger viewports\n   * `on` will always present them\n   * `off` will never present them\n   */\n  scrollButtons: _propTypes.default.oneOf(['auto', 'on', 'off']),\n\n  /**\n   * Properties applied to the `TabIndicator` element.\n   */\n  TabIndicatorProps: _propTypes.default.object,\n\n  /**\n   * Determines the color of the `Tab`.\n   */\n  textColor: _propTypes.default.oneOf(['secondary', 'primary', 'inherit']),\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The value of the currently selected `Tab`.\n   * If you don't want any selected `Tab`, you can set this property to `false`.\n   */\n  value: _propTypes.default.any\n} : {};\nTabs.defaultProps = {\n  centered: false,\n  component: 'div',\n  fullWidth: false,\n  indicatorColor: 'secondary',\n  scrollable: false,\n  ScrollButtonComponent: _TabScrollButton.default,\n  scrollButtons: 'auto',\n  textColor: 'inherit'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTabs',\n  withTheme: true\n})(Tabs);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Tabs.default;\n  }\n});\n\nvar _Tabs = _interopRequireDefault(require(\"./Tabs\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Input = _interopRequireDefault(require(\"../Input\"));\n\nvar _FilledInput = _interopRequireDefault(require(\"../FilledInput\"));\n\nvar _OutlinedInput = _interopRequireDefault(require(\"../OutlinedInput\"));\n\nvar _InputLabel = _interopRequireDefault(require(\"../InputLabel\"));\n\nvar _FormControl = _interopRequireDefault(require(\"../FormControl\"));\n\nvar _FormHelperText = _interopRequireDefault(require(\"../FormHelperText\"));\n\nvar _Select = _interopRequireDefault(require(\"../Select\"));\n\n// @inheritedComponent FormControl\nvar variantComponent = {\n  standard: _Input.default,\n  filled: _FilledInput.default,\n  outlined: _OutlinedInput.default\n};\n/**\n * The `TextField` is a convenience wrapper for the most common cases (80%).\n * It cannot be all things to all people, otherwise the API would grow out of control.\n *\n * ## Advanced Configuration\n *\n * It's important to understand that the text field is a simple abstraction\n * on top of the following components:\n * - [FormControl](/api/form-control)\n * - [InputLabel](/api/input-label)\n * - [Input](/api/input)\n * - [FormHelperText](/api/form-helper-text)\n *\n * If you wish to alter the properties applied to the native input, you can do so as follows:\n *\n * ```jsx\n * const inputProps = {\n *   step: 300,\n * };\n *\n * return <TextField id=\"time\" type=\"time\" inputProps={inputProps} />;\n * ```\n *\n * For advanced cases, please look at the source of TextField by clicking on the\n * \"Edit this page\" button above. Consider either:\n * - using the upper case props for passing values directly to the components\n * - using the underlying components directly as shown in the demos\n */\n\nvar TextField =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(TextField, _React$Component);\n\n  function TextField(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, TextField);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(TextField).call(this, props));\n    _this.labelRef = _react.default.createRef();\n    return _this;\n  }\n\n  (0, _createClass2.default)(TextField, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.variant === 'outlined') {\n        this.labelNode = _reactDom.default.findDOMNode(this.labelRef.current);\n        this.forceUpdate();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          autoComplete = _this$props.autoComplete,\n          autoFocus = _this$props.autoFocus,\n          children = _this$props.children,\n          className = _this$props.className,\n          defaultValue = _this$props.defaultValue,\n          error = _this$props.error,\n          FormHelperTextProps = _this$props.FormHelperTextProps,\n          fullWidth = _this$props.fullWidth,\n          helperText = _this$props.helperText,\n          id = _this$props.id,\n          InputLabelProps = _this$props.InputLabelProps,\n          inputProps = _this$props.inputProps,\n          InputProps = _this$props.InputProps,\n          inputRef = _this$props.inputRef,\n          label = _this$props.label,\n          multiline = _this$props.multiline,\n          name = _this$props.name,\n          onBlur = _this$props.onBlur,\n          onChange = _this$props.onChange,\n          onFocus = _this$props.onFocus,\n          placeholder = _this$props.placeholder,\n          required = _this$props.required,\n          rows = _this$props.rows,\n          rowsMax = _this$props.rowsMax,\n          select = _this$props.select,\n          SelectProps = _this$props.SelectProps,\n          type = _this$props.type,\n          value = _this$props.value,\n          variant = _this$props.variant,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"autoComplete\", \"autoFocus\", \"children\", \"className\", \"defaultValue\", \"error\", \"FormHelperTextProps\", \"fullWidth\", \"helperText\", \"id\", \"InputLabelProps\", \"inputProps\", \"InputProps\", \"inputRef\", \"label\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"placeholder\", \"required\", \"rows\", \"rowsMax\", \"select\", \"SelectProps\", \"type\", \"value\", \"variant\"]);\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!select || Boolean(children), 'Material-UI: `children` must be passed when using the `TextField` component with `select`.') : void 0;\n      var InputMore = {};\n\n      if (variant === 'outlined') {\n        if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {\n          InputMore.notched = InputLabelProps.shrink;\n        }\n\n        InputMore.labelWidth = this.labelNode ? this.labelNode.offsetWidth : 0;\n      }\n\n      var helperTextId = helperText && id ? \"\".concat(id, \"-helper-text\") : undefined;\n      var InputComponent = variantComponent[variant];\n\n      var InputElement = _react.default.createElement(InputComponent, (0, _extends2.default)({\n        autoComplete: autoComplete,\n        autoFocus: autoFocus,\n        defaultValue: defaultValue,\n        fullWidth: fullWidth,\n        multiline: multiline,\n        name: name,\n        rows: rows,\n        rowsMax: rowsMax,\n        type: type,\n        value: value,\n        id: id,\n        inputRef: inputRef,\n        onBlur: onBlur,\n        onChange: onChange,\n        onFocus: onFocus,\n        placeholder: placeholder,\n        inputProps: inputProps\n      }, InputMore, InputProps));\n\n      return _react.default.createElement(_FormControl.default, (0, _extends2.default)({\n        \"aria-describedby\": helperTextId,\n        className: className,\n        error: error,\n        fullWidth: fullWidth,\n        required: required,\n        variant: variant\n      }, other), label && _react.default.createElement(_InputLabel.default, (0, _extends2.default)({\n        htmlFor: id,\n        ref: this.labelRef\n      }, InputLabelProps), label), select ? _react.default.createElement(_Select.default, (0, _extends2.default)({\n        value: value,\n        input: InputElement\n      }, SelectProps), children) : InputElement, helperText && _react.default.createElement(_FormHelperText.default, (0, _extends2.default)({\n        id: helperTextId\n      }, FormHelperTextProps), helperText));\n    }\n  }]);\n  return TextField;\n}(_react.default.Component);\n\nTextField.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * This property helps users to fill forms faster, especially on mobile devices.\n   * The name can be confusing, as it's more like an autofill.\n   * You can learn more about it here:\n   * https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill\n   */\n  autoComplete: _propTypes.default.string,\n\n  /**\n   * If `true`, the input will be focused during the first mount.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  children: _propTypes.default.node,\n\n  /**\n   * @ignore\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The default value of the `Input` element.\n   */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * If `true`, the input will be disabled.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * If `true`, the label will be displayed in an error state.\n   */\n  error: _propTypes.default.bool,\n\n  /**\n   * Properties applied to the [`FormHelperText`](/api/form-helper-text) element.\n   */\n  FormHelperTextProps: _propTypes.default.object,\n\n  /**\n   * If `true`, the input will take up the full width of its container.\n   */\n  fullWidth: _propTypes.default.bool,\n\n  /**\n   * The helper text content.\n   */\n  helperText: _propTypes.default.node,\n\n  /**\n   * The id of the `input` element.\n   * Use that property to make `label` and `helperText` accessible for screen readers.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * Properties applied to the [`InputLabel`](/api/input-label) element.\n   */\n  InputLabelProps: _propTypes.default.object,\n\n  /**\n   * Properties applied to the `Input` element.\n   */\n  InputProps: _propTypes.default.object,\n\n  /**\n   * Attributes applied to the native `input` element.\n   */\n  inputProps: _propTypes.default.object,\n\n  /**\n   * Use that property to pass a ref callback to the native input component.\n   */\n  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * The label content.\n   */\n  label: _propTypes.default.node,\n\n  /**\n   * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n   */\n  margin: _propTypes.default.oneOf(['none', 'dense', 'normal']),\n\n  /**\n   * If `true`, a textarea element will be rendered instead of an input.\n   */\n  multiline: _propTypes.default.bool,\n\n  /**\n   * Name attribute of the `input` element.\n   */\n  name: _propTypes.default.string,\n\n  /**\n   * @ignore\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback fired when the value is changed.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value`.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * The short hint displayed in the input before the user enters a value.\n   */\n  placeholder: _propTypes.default.string,\n\n  /**\n   * If `true`, the label is displayed as required and the input will be required.\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Number of rows to display when multiline option is set to true.\n   */\n  rows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Maximum number of rows to display when multiline option is set to true.\n   */\n  rowsMax: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * Render a `Select` element while passing the `Input` element to `Select` as `input` parameter.\n   * If this option is set you must pass the options of the select as children.\n   */\n  select: _propTypes.default.bool,\n\n  /**\n   * Properties applied to the [`Select`](/api/select) element.\n   */\n  SelectProps: _propTypes.default.object,\n\n  /**\n   * Type attribute of the `Input` element. It should be a valid HTML5 input type.\n   */\n  type: _propTypes.default.string,\n\n  /**\n   * The value of the `Input` element, required for a controlled component.\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.bool]))]),\n\n  /**\n   * The variant to use.\n   */\n  variant: _propTypes.default.oneOf(['standard', 'outlined', 'filled'])\n} : {};\nTextField.defaultProps = {\n  required: false,\n  select: false,\n  variant: 'standard'\n};\nvar _default = TextField;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _TextField.default;\n  }\n});\n\nvar _TextField = _interopRequireDefault(require(\"./TextField\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _RootRef = _interopRequireDefault(require(\"../RootRef\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _helpers = require(\"../utils/helpers\");\n\nvar _exactProp = _interopRequireDefault(require(\"../utils/exactProp\"));\n\nvar _Grow = _interopRequireDefault(require(\"../Grow\"));\n\nvar _Popper = _interopRequireDefault(require(\"../Popper\"));\n\nvar styles = function styles(theme) {\n  return {\n    /* Styles applied to the Popper component. */\n    popper: {\n      zIndex: theme.zIndex.tooltip,\n      opacity: 0.9\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element. */\n    tooltip: {\n      backgroundColor: theme.palette.grey[700],\n      borderRadius: theme.shape.borderRadius,\n      color: theme.palette.common.white,\n      fontFamily: theme.typography.fontFamily,\n      padding: '4px 8px',\n      fontSize: theme.typography.pxToRem(10),\n      lineHeight: \"\".concat(theme.typography.round(14 / 10), \"em\"),\n      maxWidth: 300\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element if the tooltip is opened by touch. */\n    touch: {\n      padding: '8px 16px',\n      fontSize: theme.typography.pxToRem(14),\n      lineHeight: \"\".concat(theme.typography.round(16 / 14), \"em\")\n    },\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"left\". */\n    tooltipPlacementLeft: (0, _defineProperty2.default)({\n      transformOrigin: 'right center',\n      margin: '0 24px '\n    }, theme.breakpoints.up('sm'), {\n      margin: '0 14px'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"right\". */\n    tooltipPlacementRight: (0, _defineProperty2.default)({\n      transformOrigin: 'left center',\n      margin: '0 24px'\n    }, theme.breakpoints.up('sm'), {\n      margin: '0 14px'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"top\". */\n    tooltipPlacementTop: (0, _defineProperty2.default)({\n      transformOrigin: 'center bottom',\n      margin: '24px 0'\n    }, theme.breakpoints.up('sm'), {\n      margin: '14px 0'\n    }),\n\n    /* Styles applied to the tooltip (label wrapper) element if `placement` contains \"bottom\". */\n    tooltipPlacementBottom: (0, _defineProperty2.default)({\n      transformOrigin: 'center top',\n      margin: '24px 0'\n    }, theme.breakpoints.up('sm'), {\n      margin: '14px 0'\n    })\n  };\n};\n\nexports.styles = styles;\n\nvar Tooltip =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Tooltip, _React$Component);\n\n  function Tooltip(props) {\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Tooltip);\n    _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Tooltip).call(this));\n    _this.ignoreNonTouchEvents = false;\n\n    _this.onRootRef = function (ref) {\n      _this.childrenRef = ref;\n    };\n\n    _this.handleFocus = function (event) {\n      event.persist(); // The autoFocus of React might trigger the event before the componentDidMount.\n      // We need to account for this eventuality.\n\n      _this.focusTimer = setTimeout(function () {\n        // We need to make sure the focus hasn't moved since the event was triggered.\n        if (_this.childrenRef === document.activeElement) {\n          _this.handleEnter(event);\n        }\n      }, 0);\n      var childrenProps = _this.props.children.props;\n\n      if (childrenProps.onFocus) {\n        childrenProps.onFocus(event);\n      }\n    };\n\n    _this.handleEnter = function (event) {\n      var _this$props = _this.props,\n          children = _this$props.children,\n          enterDelay = _this$props.enterDelay;\n      var childrenProps = children.props;\n\n      if (event.type === 'mouseover' && childrenProps.onMouseOver) {\n        childrenProps.onMouseOver(event);\n      }\n\n      if (_this.ignoreNonTouchEvents && event.type !== 'touchstart') {\n        return;\n      } // Remove the title ahead of time.\n      // We don't want to wait for the next render commit.\n      // We would risk displaying two tooltips at the same time (native + this one).\n\n\n      _this.childrenRef.setAttribute('title', '');\n\n      clearTimeout(_this.enterTimer);\n      clearTimeout(_this.leaveTimer);\n\n      if (enterDelay) {\n        event.persist();\n        _this.enterTimer = setTimeout(function () {\n          _this.handleOpen(event);\n        }, enterDelay);\n      } else {\n        _this.handleOpen(event);\n      }\n    };\n\n    _this.handleOpen = function (event) {\n      // The mouseover event will trigger for every nested element in the tooltip.\n      // We can skip rerendering when the tooltip is already open.\n      // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n      if (!_this.isControlled && !_this.state.open) {\n        _this.setState({\n          open: true\n        });\n      }\n\n      if (_this.props.onOpen) {\n        _this.props.onOpen(event);\n      }\n    };\n\n    _this.handleLeave = function (event) {\n      var _this$props2 = _this.props,\n          children = _this$props2.children,\n          leaveDelay = _this$props2.leaveDelay;\n      var childrenProps = children.props;\n\n      if (event.type === 'blur' && childrenProps.onBlur) {\n        childrenProps.onBlur(event);\n      }\n\n      if (event.type === 'mouseleave' && childrenProps.onMouseLeave) {\n        childrenProps.onMouseLeave(event);\n      }\n\n      clearTimeout(_this.enterTimer);\n      clearTimeout(_this.leaveTimer);\n\n      if (leaveDelay) {\n        event.persist();\n        _this.leaveTimer = setTimeout(function () {\n          _this.handleClose(event);\n        }, leaveDelay);\n      } else {\n        _this.handleClose(event);\n      }\n    };\n\n    _this.handleClose = function (event) {\n      if (!_this.isControlled) {\n        _this.setState({\n          open: false\n        });\n      }\n\n      if (_this.props.onClose) {\n        _this.props.onClose(event);\n      }\n\n      clearTimeout(_this.closeTimer);\n      _this.closeTimer = setTimeout(function () {\n        _this.ignoreNonTouchEvents = false;\n      }, _this.props.theme.transitions.duration.shortest);\n    };\n\n    _this.handleTouchStart = function (event) {\n      _this.ignoreNonTouchEvents = true;\n      var _this$props3 = _this.props,\n          children = _this$props3.children,\n          enterTouchDelay = _this$props3.enterTouchDelay;\n\n      if (children.props.onTouchStart) {\n        children.props.onTouchStart(event);\n      }\n\n      clearTimeout(_this.leaveTimer);\n      clearTimeout(_this.closeTimer);\n      clearTimeout(_this.touchTimer);\n      event.persist();\n      _this.touchTimer = setTimeout(function () {\n        _this.handleEnter(event);\n      }, enterTouchDelay);\n    };\n\n    _this.handleTouchEnd = function (event) {\n      var _this$props4 = _this.props,\n          children = _this$props4.children,\n          leaveTouchDelay = _this$props4.leaveTouchDelay;\n\n      if (children.props.onTouchEnd) {\n        children.props.onTouchEnd(event);\n      }\n\n      clearTimeout(_this.touchTimer);\n      clearTimeout(_this.leaveTimer);\n      event.persist();\n      _this.leaveTimer = setTimeout(function () {\n        _this.handleClose(event);\n      }, leaveTouchDelay);\n    };\n\n    _this.isControlled = props.open != null;\n    _this.state = {\n      open: null\n    };\n\n    if (!_this.isControlled) {\n      // not controlled, use internal state\n      _this.state.open = false;\n    }\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Tooltip, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!this.childrenRef.disabled || !this.childrenRef.tagName.toLowerCase() === 'button', ['Material-UI: you are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Place a `div` container on top of the element.'].join('\\n')) : void 0; // Fallback to this default id when possible.\n      // Use the random value for client side rendering only.\n      // We can't use it server side.\n\n      this.defaultId = \"mui-tooltip-\".concat(Math.round(Math.random() * 1e5)); // Rerender with this.defaultId and this.childrenRef.\n\n      if (this.props.open) {\n        this.forceUpdate();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.closeTimer);\n      clearTimeout(this.enterTimer);\n      clearTimeout(this.focusTimer);\n      clearTimeout(this.leaveTimer);\n      clearTimeout(this.touchTimer);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props5 = this.props,\n          children = _this$props5.children,\n          classes = _this$props5.classes,\n          disableFocusListener = _this$props5.disableFocusListener,\n          disableHoverListener = _this$props5.disableHoverListener,\n          disableTouchListener = _this$props5.disableTouchListener,\n          id = _this$props5.id,\n          openProp = _this$props5.open,\n          placement = _this$props5.placement,\n          PopperProps = _this$props5.PopperProps,\n          theme = _this$props5.theme,\n          title = _this$props5.title,\n          TransitionComponent = _this$props5.TransitionComponent,\n          TransitionProps = _this$props5.TransitionProps;\n      var open = this.isControlled ? openProp : this.state.open; // There is no point at displaying an empty tooltip.\n\n      if (title === '') {\n        open = false;\n      }\n\n      var childrenProps = {\n        'aria-describedby': open ? id || this.defaultId : null,\n        title: !open && typeof title === 'string' ? title : null\n      };\n\n      if (!disableTouchListener) {\n        childrenProps.onTouchStart = this.handleTouchStart;\n        childrenProps.onTouchEnd = this.handleTouchEnd;\n      }\n\n      if (!disableHoverListener) {\n        childrenProps.onMouseOver = this.handleEnter;\n        childrenProps.onMouseLeave = this.handleLeave;\n      }\n\n      if (!disableFocusListener) {\n        childrenProps.onFocus = this.handleFocus;\n        childrenProps.onBlur = this.handleLeave;\n      }\n\n      process.env.NODE_ENV !== \"production\" ? (0, _warning.default)(!children.props.title, ['Material-UI: you have provided a `title` property to the child of <Tooltip />.', \"Remove this title property `\".concat(children.props.title, \"` or the Tooltip component.\")].join('\\n')) : void 0;\n      return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_RootRef.default, {\n        rootRef: this.onRootRef\n      }, _react.default.cloneElement(children, childrenProps)), _react.default.createElement(_Popper.default, (0, _extends2.default)({\n        className: classes.popper,\n        placement: placement,\n        anchorEl: this.childrenRef,\n        open: open,\n        id: childrenProps['aria-describedby'],\n        transition: true\n      }, PopperProps), function (_ref) {\n        var placementInner = _ref.placement,\n            TransitionPropsInner = _ref.TransitionProps;\n        return _react.default.createElement(TransitionComponent, (0, _extends2.default)({\n          timeout: theme.transitions.duration.shorter\n        }, TransitionPropsInner, TransitionProps), _react.default.createElement(\"div\", {\n          className: (0, _classnames.default)(classes.tooltip, (0, _defineProperty2.default)({}, classes.touch, _this2.ignoreNonTouchEvents), classes[\"tooltipPlacement\".concat((0, _helpers.capitalize)(placementInner.split('-')[0]))])\n        }, title));\n      }));\n    }\n  }]);\n  return Tooltip;\n}(_react.default.Component);\n\nTooltip.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Tooltip reference element.\n   */\n  children: _propTypes.default.element.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css-api) below for more details.\n   */\n  classes: _propTypes.default.object.isRequired,\n\n  /**\n   * Do not respond to focus events.\n   */\n  disableFocusListener: _propTypes.default.bool,\n\n  /**\n   * Do not respond to hover events.\n   */\n  disableHoverListener: _propTypes.default.bool,\n\n  /**\n   * Do not respond to long press touch events.\n   */\n  disableTouchListener: _propTypes.default.bool,\n\n  /**\n   * The number of milliseconds to wait before showing the tooltip.\n   * This property won't impact the enter touch delay (`enterTouchDelay`).\n   */\n  enterDelay: _propTypes.default.number,\n\n  /**\n   * The number of milliseconds a user must touch the element before showing the tooltip.\n   */\n  enterTouchDelay: _propTypes.default.number,\n\n  /**\n   * The relationship between the tooltip and the wrapper component is not clear from the DOM.\n   * This property is used with aria-describedby to solve the accessibility issue.\n   * If you don't provide this property. It fallback to a random generated id.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The number of milliseconds to wait before hiding the tooltip.\n   * This property won't impact the leave touch delay (`leaveTouchDelay`).\n   */\n  leaveDelay: _propTypes.default.number,\n\n  /**\n   * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n   */\n  leaveTouchDelay: _propTypes.default.number,\n\n  /**\n   * Callback fired when the tooltip requests to be closed.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback fired when the tooltip requests to be open.\n   *\n   * @param {object} event The event source of the callback\n   */\n  onOpen: _propTypes.default.func,\n\n  /**\n   * If `true`, the tooltip is shown.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * Tooltip placement.\n   */\n  placement: _propTypes.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n  /**\n   * Properties applied to the [`Popper`](/api/popper) element.\n   */\n  PopperProps: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * Tooltip title. Zero-length titles string are never displayed.\n   */\n  title: _propTypes.default.node.isRequired,\n\n  /**\n   * Transition component.\n   */\n  TransitionComponent: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n  /**\n   * Properties applied to the `Transition` element.\n   */\n  TransitionProps: _propTypes.default.object\n} : {};\nTooltip.propTypes = process.env.NODE_ENV !== \"production\" ? (0, _exactProp.default)(Tooltip.propTypes) : {};\nTooltip.defaultProps = {\n  disableFocusListener: false,\n  disableHoverListener: false,\n  disableTouchListener: false,\n  enterDelay: 0,\n  enterTouchDelay: 1000,\n  leaveDelay: 0,\n  leaveTouchDelay: 1500,\n  placement: 'bottom',\n  TransitionComponent: _Grow.default\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n  name: 'MuiTooltip',\n  withTheme: true\n})(Tooltip);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Tooltip.default;\n  }\n});\n\nvar _Tooltip = _interopRequireDefault(require(\"./Tooltip\"));","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _withWidth = _interopRequireWildcard(require(\"../withWidth\"));\n\n/**\n * Dialog will responsively be full screen *at or below* the given breakpoint\n * (defaults to 'sm' for mobile devices).\n * Notice that this Higher-order Component is incompatible with server side rendering.\n */\nvar withMobileDialog = function withMobileDialog() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (Component) {\n    var _options$breakpoint = options.breakpoint,\n        breakpoint = _options$breakpoint === void 0 ? 'sm' : _options$breakpoint;\n\n    function WithMobileDialog(props) {\n      return _react.default.createElement(Component, (0, _extends2.default)({\n        fullScreen: (0, _withWidth.isWidthDown)(breakpoint, props.width)\n      }, props));\n    }\n\n    WithMobileDialog.propTypes = process.env.NODE_ENV !== \"production\" ? {\n      width: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']).isRequired\n    } : {};\n    return (0, _withWidth.default)()(WithMobileDialog);\n  };\n};\n\nvar _default = withMobileDialog;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _withMobileDialog.default;\n  }\n});\n\nvar _withMobileDialog = _interopRequireDefault(require(\"./withMobileDialog\"));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));\n\nvar _getPrototypeOf3 = _interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));\n\nvar _inherits2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nvar _transitions = require(\"../styles/transitions\");\n\nvar _withTheme = _interopRequireDefault(require(\"../styles/withTheme\"));\n\nvar _utils = require(\"../transitions/utils\");\n\n// @inheritedComponent Transition\nvar styles = {\n  entering: {\n    transform: 'scale(1)'\n  },\n  entered: {\n    transform: 'scale(1)'\n  }\n};\n/**\n * The Zoom transition can be used for the floating variant of the\n * [Button](https://material-ui.com/demos/buttons/#floating-action-buttons) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Zoom =\n/*#__PURE__*/\nfunction (_React$Component) {\n  (0, _inherits2.default)(Zoom, _React$Component);\n\n  function Zoom() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    (0, _classCallCheck2.default)(this, Zoom);\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 = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(Zoom)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _this.handleEnter = function (node) {\n      var theme = _this.props.theme;\n      (0, _utils.reflow)(node); // So the animation always start from the start.\n\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'enter'\n      });\n      node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n      node.style.transition = theme.transitions.create('transform', transitionProps);\n\n      if (_this.props.onEnter) {\n        _this.props.onEnter(node);\n      }\n    };\n\n    _this.handleExit = function (node) {\n      var theme = _this.props.theme;\n      var transitionProps = (0, _utils.getTransitionProps)(_this.props, {\n        mode: 'exit'\n      });\n      node.style.webkitTransition = theme.transitions.create('transform', transitionProps);\n      node.style.transition = theme.transitions.create('transform', transitionProps);\n\n      if (_this.props.onExit) {\n        _this.props.onExit(node);\n      }\n    };\n\n    return _this;\n  }\n\n  (0, _createClass2.default)(Zoom, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          onEnter = _this$props.onEnter,\n          onExit = _this$props.onExit,\n          styleProp = _this$props.style,\n          theme = _this$props.theme,\n          other = (0, _objectWithoutProperties2.default)(_this$props, [\"children\", \"onEnter\", \"onExit\", \"style\", \"theme\"]);\n      var style = (0, _extends2.default)({}, styleProp, _react.default.isValidElement(children) ? children.props.style : {});\n      return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n        appear: true,\n        onEnter: this.handleEnter,\n        onExit: this.handleExit\n      }, other), function (state, childProps) {\n        return _react.default.cloneElement(children, (0, _extends2.default)({\n          style: (0, _extends2.default)({\n            transform: 'scale(0)',\n            willChange: 'transform'\n          }, styles[state], style)\n        }, childProps));\n      });\n    }\n  }]);\n  return Zoom;\n}(_react.default.Component);\n\nZoom.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A single child content element.\n   */\n  children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),\n\n  /**\n   * If `true`, the component will transition in.\n   */\n  in: _propTypes.default.bool,\n\n  /**\n   * @ignore\n   */\n  onEnter: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  onExit: _propTypes.default.func,\n\n  /**\n   * @ignore\n   */\n  style: _propTypes.default.object,\n\n  /**\n   * @ignore\n   */\n  theme: _propTypes.default.object.isRequired,\n\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   */\n  timeout: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n    enter: _propTypes.default.number,\n    exit: _propTypes.default.number\n  })])\n} : {};\nZoom.defaultProps = {\n  timeout: {\n    enter: _transitions.duration.enteringScreen,\n    exit: _transitions.duration.leavingScreen\n  }\n};\n\nvar _default = (0, _withTheme.default)()(Zoom);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _Zoom.default;\n  }\n});\n\nvar _Zoom = _interopRequireDefault(require(\"./Zoom\"));","/** @license Material-UI v3.1.2\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 */\nimport * as colors from './colors';\nexport { colors };\nexport { createGenerateClassName, createMuiTheme, createStyles, jssPreset, MuiThemeProvider, withStyles, withTheme } from './styles';\nexport { default as AppBar } from './AppBar';\nexport { default as Avatar } from './Avatar';\nexport { default as Backdrop } from './Backdrop';\nexport { default as Badge } from './Badge';\nexport { default as BottomNavigation } from './BottomNavigation';\nexport { default as BottomNavigationAction } from './BottomNavigationAction';\nexport { default as Button } from './Button';\nexport { default as ButtonBase } from './ButtonBase';\nexport { default as Card } from './Card';\nexport { default as CardActionArea } from './CardActionArea';\nexport { default as CardActions } from './CardActions';\nexport { default as CardContent } from './CardContent';\nexport { default as CardHeader } from './CardHeader';\nexport { default as CardMedia } from './CardMedia';\nexport { default as Checkbox } from './Checkbox';\nexport { default as Chip } from './Chip';\nexport { default as CircularProgress } from './CircularProgress';\nexport { default as ClickAwayListener } from './ClickAwayListener';\nexport { default as Collapse } from './Collapse';\nexport { default as CssBaseline } from './CssBaseline';\nexport { default as Dialog } from './Dialog';\nexport { default as DialogActions } from './DialogActions';\nexport { default as DialogContent } from './DialogContent';\nexport { default as DialogContentText } from './DialogContentText';\nexport { default as DialogTitle } from './DialogTitle';\nexport { default as Divider } from './Divider';\nexport { default as Drawer } from './Drawer';\nexport { default as ExpansionPanel } from './ExpansionPanel';\nexport { default as ExpansionPanelActions } from './ExpansionPanelActions';\nexport { default as ExpansionPanelDetails } from './ExpansionPanelDetails';\nexport { default as ExpansionPanelSummary } from './ExpansionPanelSummary';\nexport { default as Fade } from './Fade';\nexport { default as FilledInput } from './FilledInput';\nexport { default as FormControl } from './FormControl';\nexport { default as FormControlLabel } from './FormControlLabel';\nexport { default as FormGroup } from './FormGroup';\nexport { default as FormHelperText } from './FormHelperText';\nexport { default as FormLabel } from './FormLabel';\nexport { default as Grid } from './Grid';\nexport { default as GridList } from './GridList';\nexport { default as GridListTile } from './GridListTile';\nexport { default as GridListTileBar } from './GridListTileBar';\nexport { default as Grow } from './Grow';\nexport { default as Hidden } from './Hidden';\nexport { default as Icon } from './Icon';\nexport { default as IconButton } from './IconButton';\nexport { default as Input } from './Input';\nexport { default as InputAdornment } from './InputAdornment';\nexport { default as InputBase } from './InputBase';\nexport { default as InputLabel } from './InputLabel';\nexport { default as LinearProgress } from './LinearProgress';\nexport { default as List } from './List';\nexport { default as ListItem } from './ListItem';\nexport { default as ListItemAvatar } from './ListItemAvatar';\nexport { default as ListItemIcon } from './ListItemIcon';\nexport { default as ListItemSecondaryAction } from './ListItemSecondaryAction';\nexport { default as ListItemText } from './ListItemText';\nexport { default as ListSubheader } from './ListSubheader';\nexport { default as Menu } from './Menu';\nexport { default as MenuItem } from './MenuItem';\nexport { default as MenuList } from './MenuList';\nexport { default as MobileStepper } from './MobileStepper';\nexport { default as Modal, ModalManager } from './Modal';\nexport { default as NativeSelect } from './NativeSelect';\nexport { default as NoSsr } from './NoSsr';\nexport { default as OutlinedInput } from './OutlinedInput';\nexport { default as Paper } from './Paper';\nexport { default as Popover } from './Popover';\nexport { default as Popper } from './Popper';\nexport { default as Portal } from './Portal';\nexport { default as Radio } from './Radio';\nexport { default as RadioGroup } from './RadioGroup';\nexport { default as RootRef } from './RootRef';\nexport { default as Select } from './Select';\nexport { default as Slide } from './Slide';\nexport { default as Snackbar } from './Snackbar';\nexport { default as SnackbarContent } from './SnackbarContent';\nexport { default as Step } from './Step';\nexport { default as StepButton } from './StepButton';\nexport { default as StepConnector } from './StepConnector';\nexport { default as StepContent } from './StepContent';\nexport { default as StepIcon } from './StepIcon';\nexport { default as StepLabel } from './StepLabel';\nexport { default as Stepper } from './Stepper';\nexport { default as SvgIcon } from './SvgIcon';\nexport { default as SwipeableDrawer } from './SwipeableDrawer';\nexport { default as Switch } from './Switch';\nexport { default as Tab } from './Tab';\nexport { default as Table } from './Table';\nexport { default as TableBody } from './TableBody';\nexport { default as TableCell } from './TableCell';\nexport { default as TableFooter } from './TableFooter';\nexport { default as TableHead } from './TableHead';\nexport { default as TablePagination } from './TablePagination';\nexport { default as TableRow } from './TableRow';\nexport { default as TableSortLabel } from './TableSortLabel';\nexport { default as Tabs } from './Tabs';\nexport { default as TextField } from './TextField';\nexport { default as Toolbar } from './Toolbar';\nexport { default as Tooltip } from './Tooltip';\nexport { default as Typography } from './Typography';\nexport { default as withMobileDialog } from './withMobileDialog';\nexport { default as withWidth } from './withWidth';\nexport { default as Zoom } from './Zoom';\n","(function(self) {\n  'use strict';\n\n  if (self.fetch) {\n    return\n  }\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob: 'FileReader' in self && 'Blob' in self && (function() {\n      try {\n        new Blob()\n        return true\n      } catch(e) {\n        return false\n      }\n    })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ]\n\n    var isDataView = function(obj) {\n      return obj && DataView.prototype.isPrototypeOf(obj)\n    }\n\n    var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n      return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n    }\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name)\n    }\n    if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value)\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift()\n        return {done: value === undefined, value: value}\n      }\n    }\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      }\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {}\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value)\n      }, this)\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1])\n      }, this)\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name])\n      }, this)\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name)\n    value = normalizeValue(value)\n    var oldValue = this.map[name]\n    this.map[name] = oldValue ? oldValue+','+value : value\n  }\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)]\n  }\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name)\n    return this.has(name) ? this.map[name] : null\n  }\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  }\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value)\n  }\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this)\n      }\n    }\n  }\n\n  Headers.prototype.keys = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push(name) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.values = function() {\n    var items = []\n    this.forEach(function(value) { items.push(value) })\n    return iteratorFor(items)\n  }\n\n  Headers.prototype.entries = function() {\n    var items = []\n    this.forEach(function(value, name) { items.push([name, value]) })\n    return iteratorFor(items)\n  }\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result)\n      }\n      reader.onerror = function() {\n        reject(reader.error)\n      }\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsArrayBuffer(blob)\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader()\n    var promise = fileReaderReady(reader)\n    reader.readAsText(blob)\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf)\n    var chars = new Array(view.length)\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i])\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength)\n      view.set(new Uint8Array(buf))\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false\n\n    this._initBody = function(body) {\n      this._bodyInit = body\n      if (!body) {\n        this._bodyText = ''\n      } else if (typeof body === 'string') {\n        this._bodyText = body\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString()\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer)\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer])\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body)\n      } else {\n        throw new Error('unsupported BodyInit type')\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8')\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type)\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n        }\n      }\n    }\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this)\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      }\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      }\n    }\n\n    this.text = function() {\n      var rejected = consumed(this)\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    }\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      }\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    }\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase()\n    return (methods.indexOf(upcased) > -1) ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {}\n    var body = options.body\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url\n      this.credentials = input.credentials\n      if (!options.headers) {\n        this.headers = new Headers(input.headers)\n      }\n      this.method = input.method\n      this.mode = input.mode\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit\n        input.bodyUsed = true\n      }\n    } else {\n      this.url = String(input)\n    }\n\n    this.credentials = options.credentials || this.credentials || 'omit'\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers)\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET')\n    this.mode = options.mode || this.mode || null\n    this.referrer = null\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body)\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, { body: this._bodyInit })\n  }\n\n  function decode(body) {\n    var form = new FormData()\n    body.trim().split('&').forEach(function(bytes) {\n      if (bytes) {\n        var split = bytes.split('=')\n        var name = split.shift().replace(/\\+/g, ' ')\n        var value = split.join('=').replace(/\\+/g, ' ')\n        form.append(decodeURIComponent(name), decodeURIComponent(value))\n      }\n    })\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers()\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':')\n      var key = parts.shift().trim()\n      if (key) {\n        var value = parts.join(':').trim()\n        headers.append(key, value)\n      }\n    })\n    return headers\n  }\n\n  Body.call(Request.prototype)\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {}\n    }\n\n    this.type = 'default'\n    this.status = options.status === undefined ? 200 : options.status\n    this.ok = this.status >= 200 && this.status < 300\n    this.statusText = 'statusText' in options ? options.statusText : 'OK'\n    this.headers = new Headers(options.headers)\n    this.url = options.url || ''\n    this._initBody(bodyInit)\n  }\n\n  Body.call(Response.prototype)\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  }\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''})\n    response.type = 'error'\n    return response\n  }\n\n  var redirectStatuses = [301, 302, 303, 307, 308]\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  }\n\n  self.Headers = Headers\n  self.Request = Request\n  self.Response = Response\n\n  self.fetch = function(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init)\n      var xhr = new XMLHttpRequest()\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n        var body = 'response' in xhr ? xhr.response : xhr.responseText\n        resolve(new Response(body, options))\n      }\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'))\n      }\n\n      xhr.open(request.method, request.url, true)\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob'\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value)\n      })\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n    })\n  }\n  self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n","import 'whatwg-fetch';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n  return function() {\n    fn.apply(thisArg, arguments);\n  };\n}\n\nfunction Promise(fn) {\n  if (!(this instanceof Promise))\n    throw new TypeError('Promises must be constructed via new');\n  if (typeof fn !== 'function') throw new TypeError('not a function');\n  this._state = 0;\n  this._handled = false;\n  this._value = undefined;\n  this._deferreds = [];\n\n  doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n  while (self._state === 3) {\n    self = self._value;\n  }\n  if (self._state === 0) {\n    self._deferreds.push(deferred);\n    return;\n  }\n  self._handled = true;\n  Promise._immediateFn(function() {\n    var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n    if (cb === null) {\n      (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n      return;\n    }\n    var ret;\n    try {\n      ret = cb(self._value);\n    } catch (e) {\n      reject(deferred.promise, e);\n      return;\n    }\n    resolve(deferred.promise, ret);\n  });\n}\n\nfunction resolve(self, newValue) {\n  try {\n    // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n    if (newValue === self)\n      throw new TypeError('A promise cannot be resolved with itself.');\n    if (\n      newValue &&\n      (typeof newValue === 'object' || typeof newValue === 'function')\n    ) {\n      var then = newValue.then;\n      if (newValue instanceof Promise) {\n        self._state = 3;\n        self._value = newValue;\n        finale(self);\n        return;\n      } else if (typeof then === 'function') {\n        doResolve(bind(then, newValue), self);\n        return;\n      }\n    }\n    self._state = 1;\n    self._value = newValue;\n    finale(self);\n  } catch (e) {\n    reject(self, e);\n  }\n}\n\nfunction reject(self, newValue) {\n  self._state = 2;\n  self._value = newValue;\n  finale(self);\n}\n\nfunction finale(self) {\n  if (self._state === 2 && self._deferreds.length === 0) {\n    Promise._immediateFn(function() {\n      if (!self._handled) {\n        Promise._unhandledRejectionFn(self._value);\n      }\n    });\n  }\n\n  for (var i = 0, len = self._deferreds.length; i < len; i++) {\n    handle(self, self._deferreds[i]);\n  }\n  self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n  this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n  var done = false;\n  try {\n    fn(\n      function(value) {\n        if (done) return;\n        done = true;\n        resolve(self, value);\n      },\n      function(reason) {\n        if (done) return;\n        done = true;\n        reject(self, reason);\n      }\n    );\n  } catch (ex) {\n    if (done) return;\n    done = true;\n    reject(self, ex);\n  }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n  return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n  var prom = new this.constructor(noop);\n\n  handle(this, new Handler(onFulfilled, onRejected, prom));\n  return prom;\n};\n\nPromise.prototype['finally'] = function(callback) {\n  var constructor = this.constructor;\n  return this.then(\n    function(value) {\n      return constructor.resolve(callback()).then(function() {\n        return value;\n      });\n    },\n    function(reason) {\n      return constructor.resolve(callback()).then(function() {\n        return constructor.reject(reason);\n      });\n    }\n  );\n};\n\nPromise.all = function(arr) {\n  return new Promise(function(resolve, reject) {\n    if (!arr || typeof arr.length === 'undefined')\n      throw new TypeError('Promise.all accepts an array');\n    var args = Array.prototype.slice.call(arr);\n    if (args.length === 0) return resolve([]);\n    var remaining = args.length;\n\n    function res(i, val) {\n      try {\n        if (val && (typeof val === 'object' || typeof val === 'function')) {\n          var then = val.then;\n          if (typeof then === 'function') {\n            then.call(\n              val,\n              function(val) {\n                res(i, val);\n              },\n              reject\n            );\n            return;\n          }\n        }\n        args[i] = val;\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex);\n      }\n    }\n\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i]);\n    }\n  });\n};\n\nPromise.resolve = function(value) {\n  if (value && typeof value === 'object' && value.constructor === Promise) {\n    return value;\n  }\n\n  return new Promise(function(resolve) {\n    resolve(value);\n  });\n};\n\nPromise.reject = function(value) {\n  return new Promise(function(resolve, reject) {\n    reject(value);\n  });\n};\n\nPromise.race = function(values) {\n  return new Promise(function(resolve, reject) {\n    for (var i = 0, len = values.length; i < len; i++) {\n      values[i].then(resolve, reject);\n    }\n  });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n  (typeof setImmediate === 'function' &&\n    function(fn) {\n      setImmediate(fn);\n    }) ||\n  function(fn) {\n    setTimeoutFunc(fn, 0);\n  };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n  if (typeof console !== 'undefined' && console) {\n    console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n  }\n};\n\nvar globalNS = (function() {\n  // the only reliable means to get the global object is\n  // `Function('return this')()`\n  // However, this causes CSP violations in Chrome apps.\n  if (typeof self !== 'undefined') {\n    return self;\n  }\n  if (typeof window !== 'undefined') {\n    return window;\n  }\n  if (typeof global !== 'undefined') {\n    return global;\n  }\n  throw new Error('unable to locate global object');\n})();\n\nif (!globalNS.Promise) {\n  globalNS.Promise = Promise;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar _global = createCommonjsModule(function (module) {\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\nvar _core = createCommonjsModule(function (module) {\nvar core = module.exports = { version: '2.5.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n});\nvar _core_1 = _core.version;\n\nvar _isObject = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\nvar _anObject = function (it) {\n  if (!_isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\nvar _fails = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n// Thank's IE8 for his funny defineProperty\nvar _descriptors = !_fails(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\nvar document = _global.document;\n// typeof document.createElement is 'object' in old IE\nvar is = _isObject(document) && _isObject(document.createElement);\nvar _domCreate = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\nvar _ie8DomDefine = !_descriptors && !_fails(function () {\n  return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\n\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nvar _toPrimitive = 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\nvar dP = Object.defineProperty;\n\nvar f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  _anObject(O);\n  P = _toPrimitive(P, true);\n  _anObject(Attributes);\n  if (_ie8DomDefine) 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\nvar _objectDp = {\n\tf: f\n};\n\nvar _propertyDesc = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\nvar _hide = _descriptors ? function (object, key, value) {\n  return _objectDp.f(object, key, _propertyDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\nvar hasOwnProperty = {}.hasOwnProperty;\nvar _has = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\nvar id = 0;\nvar px = Math.random();\nvar _uid = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\nvar _redefine = createCommonjsModule(function (module) {\nvar SRC = _uid('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n_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\nvar _aFunction = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n// optional / simple context binding\n\nvar _ctx = 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\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};\n_global.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`\nvar _export = $export;\n\nvar toString = {}.toString;\n\nvar _cof = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\n\n// eslint-disable-next-line no-prototype-builtins\nvar _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return _cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n// 7.2.1 RequireObjectCoercible(argument)\nvar _defined = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n// 7.1.13 ToObject(argument)\n\nvar _toObject = function (it) {\n  return Object(_defined(it));\n};\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nvar _toInteger = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n// 7.1.15 ToLength\n\nvar min = Math.min;\nvar _toLength = function (it) {\n  return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n// 7.2.2 IsArray(argument)\n\nvar _isArray = Array.isArray || function isArray(arg) {\n  return _cof(arg) == 'Array';\n};\n\nvar SHARED = '__core-js_shared__';\nvar store = _global[SHARED] || (_global[SHARED] = {});\nvar _shared = function (key) {\n  return store[key] || (store[key] = {});\n};\n\nvar _wks = createCommonjsModule(function (module) {\nvar store = _shared('wks');\n\nvar Symbol = _global.Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n});\n\nvar SPECIES = _wks('species');\n\nvar _arraySpeciesConstructor = function (original) {\n  var C;\n  if (_isArray(original)) {\n    C = original.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;\n    if (_isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\n\n\nvar _arraySpeciesCreate = function (original, length) {\n  return new (_arraySpeciesConstructor(original))(length);\n};\n\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\n\n\n\n\n\nvar _arrayMethods = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || _arraySpeciesCreate;\n  return function ($this, callbackfn, that) {\n    var O = _toObject($this);\n    var self = _iobject(O);\n    var f = _ctx(callbackfn, that, 3);\n    var length = _toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      val = self[index];\n      res = f(val, index, O);\n      if (TYPE) {\n        if (IS_MAP) result[index] = res;   // map\n        else if (res) switch (TYPE) {\n          case 3: return true;             // some\n          case 5: return val;              // find\n          case 6: return index;            // findIndex\n          case 2: result.push(val);        // filter\n        } else if (IS_EVERY) return false; // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = _wks('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});\nvar _addToUnscopables = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\n\nvar $find = _arrayMethods(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n_export(_export.P + _export.F * forced, 'Array', {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n_addToUnscopables(KEY);\n\nvar find = _core.Array.find;\n\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\n\nvar $find$1 = _arrayMethods(6);\nvar KEY$1 = 'findIndex';\nvar forced$1 = true;\n// Shouldn't skip holes\nif (KEY$1 in []) Array(1)[KEY$1](function () { forced$1 = false; });\n_export(_export.P + _export.F * forced$1, 'Array', {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $find$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n_addToUnscopables(KEY$1);\n\nvar findIndex = _core.Array.findIndex;\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\n\n\nvar _toIobject = function (it) {\n  return _iobject(_defined(it));\n};\n\nvar max = Math.max;\nvar min$1 = Math.min;\nvar _toAbsoluteIndex = function (index, length) {\n  index = _toInteger(index);\n  return index < 0 ? max(index + length, 0) : min$1(index, length);\n};\n\n// false -> Array#indexOf\n// true  -> Array#includes\n\n\n\nvar _arrayIncludes = 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\nvar shared = _shared('keys');\n\nvar _sharedKey = function (key) {\n  return shared[key] || (shared[key] = _uid(key));\n};\n\nvar arrayIndexOf = _arrayIncludes(false);\nvar IE_PROTO = _sharedKey('IE_PROTO');\n\nvar _objectKeysInternal = 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// IE 8- don't enum bug keys\nvar _enumBugKeys = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\n\n\n\nvar _objectKeys = Object.keys || function keys(O) {\n  return _objectKeysInternal(O, _enumBugKeys);\n};\n\nvar f$1 = Object.getOwnPropertySymbols;\n\nvar _objectGops = {\n\tf: f$1\n};\n\nvar f$2 = {}.propertyIsEnumerable;\n\nvar _objectPie = {\n\tf: f$2\n};\n\n// 19.1.2.1 Object.assign(target, source, ...)\n\n\n\n\n\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nvar _objectAssign = !$assign || _fails(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = _toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = _objectGops.f;\n  var isEnum = _objectPie.f;\n  while (aLen > index) {\n    var S = _iobject(arguments[index++]);\n    var keys = getSymbols ? _objectKeys(S).concat(getSymbols(S)) : _objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n  } return T;\n} : $assign;\n\n// 19.1.3.1 Object.assign(target, source)\n\n\n_export(_export.S + _export.F, 'Object', { assign: _objectAssign });\n\nvar assign = _core.Object.assign;\n\n// 7.2.8 IsRegExp(argument)\n\n\nvar MATCH = _wks('match');\nvar _isRegexp = function (it) {\n  var isRegExp;\n  return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');\n};\n\n// helper for String#{startsWith, endsWith, includes}\n\n\n\nvar _stringContext = function (that, searchString, NAME) {\n  if (_isRegexp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(_defined(that));\n};\n\nvar MATCH$1 = _wks('match');\nvar _failsIsRegexp = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH$1] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n_export(_export.P + _export.F * _failsIsRegexp(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = _stringContext(this, searchString, STARTS_WITH);\n    var index = _toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n\nvar startsWith = _core.String.startsWith;\n\nvar _stringRepeat = 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_export(_export.P, 'String', {\n  // 21.1.3.13 String.prototype.repeat(count)\n  repeat: _stringRepeat\n});\n\nvar repeat = _core.String.repeat;\n\nvar _meta = createCommonjsModule(function (module) {\nvar META = _uid('meta');\n\n\nvar setDesc = _objectDp.f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !_fails(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!_has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!_has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n});\nvar _meta_1 = _meta.KEY;\nvar _meta_2 = _meta.NEED;\nvar _meta_3 = _meta.fastKey;\nvar _meta_4 = _meta.getWeak;\nvar _meta_5 = _meta.onFreeze;\n\nvar def = _objectDp.f;\n\nvar TAG = _wks('toStringTag');\n\nvar _setToStringTag = function (it, tag, stat) {\n  if (it && !_has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\nvar f$3 = _wks;\n\nvar _wksExt = {\n\tf: f$3\n};\n\nvar _library = false;\n\nvar defineProperty = _objectDp.f;\nvar _wksDefine = function (name) {\n  var $Symbol = _core.Symbol || (_core.Symbol = _library ? {} : _global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });\n};\n\n// all enumerable object keys, includes symbols\n\n\n\nvar _enumKeys = function (it) {\n  var result = _objectKeys(it);\n  var getSymbols = _objectGops.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = _objectPie.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\nvar _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {\n  _anObject(O);\n  var keys = _objectKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\nvar document$1 = _global.document;\nvar _html = document$1 && document$1.documentElement;\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n\n\n\nvar IE_PROTO$1 = _sharedKey('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE$1 = '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 = _domCreate('iframe');\n  var i = _enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  _html.appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];\n  return createDict();\n};\n\nvar _objectCreate = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE$1] = _anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE$1] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO$1] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : _objectDps(result, Properties);\n};\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\n\nvar hiddenKeys = _enumBugKeys.concat('length', 'prototype');\n\nvar f$4 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return _objectKeysInternal(O, hiddenKeys);\n};\n\nvar _objectGopn = {\n\tf: f$4\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\n\nvar gOPN = _objectGopn.f;\nvar toString$1 = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nvar f$5 = function getOwnPropertyNames(it) {\n  return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(_toIobject(it));\n};\n\nvar _objectGopnExt = {\n\tf: f$5\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar f$6 = _descriptors ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = _toIobject(O);\n  P = _toPrimitive(P, true);\n  if (_ie8DomDefine) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);\n};\n\nvar _objectGopd = {\n\tf: f$6\n};\n\n// ECMAScript 6 symbols shim\n\n\n\n\n\nvar META = _meta.KEY;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar gOPD$1 = _objectGopd.f;\nvar dP$1 = _objectDp.f;\nvar gOPN$1 = _objectGopnExt.f;\nvar $Symbol = _global.Symbol;\nvar $JSON = _global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE$2 = 'prototype';\nvar HIDDEN = _wks('_hidden');\nvar TO_PRIMITIVE = _wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = _shared('symbol-registry');\nvar AllSymbols = _shared('symbols');\nvar OPSymbols = _shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE$2];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = _global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE$2] || !QObject[PROTOTYPE$2].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = _descriptors && _fails(function () {\n  return _objectCreate(dP$1({}, 'a', {\n    get: function () { return dP$1(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD$1(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP$1(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP$1(ObjectProto, key, protoDesc);\n} : dP$1;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE$2]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  _anObject(it);\n  key = _toPrimitive(key, true);\n  _anObject(D);\n  if (_has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!_has(it, HIDDEN)) dP$1(it, HIDDEN, _propertyDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP$1(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  _anObject(it);\n  var keys = _enumKeys(P = _toIobject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = _toPrimitive(key, true));\n  if (this === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;\n  return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = _toIobject(it);\n  key = _toPrimitive(key, true);\n  if (it === ObjectProto && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;\n  var D = gOPD$1(it, key);\n  if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN$1(_toIobject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, _propertyDesc(1, value));\n    };\n    if (_descriptors && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  _redefine($Symbol[PROTOTYPE$2], 'toString', function toString() {\n    return this._k;\n  });\n\n  _objectGopd.f = $getOwnPropertyDescriptor;\n  _objectDp.f = $defineProperty;\n  _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;\n  _objectPie.f = $propertyIsEnumerable;\n  _objectGops.f = $getOwnPropertySymbols;\n\n  if (_descriptors && !_library) {\n    _redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  _wksExt.f = function (name) {\n    return wrap(_wks(name));\n  };\n}\n\n_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);\n\n_export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return _has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n_export(_export.S + _export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!_isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE$2][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE$2], TO_PRIMITIVE, $Symbol[PROTOTYPE$2].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\n_setToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\n_setToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\n_setToStringTag(_global.JSON, 'JSON', true);\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\n\nvar TAG$1 = _wks('toStringTag');\n// ES3 wrong here\nvar ARG = _cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nvar _classof = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T\n    // builtinTag case\n    : ARG ? _cof(O)\n    // ES3 arguments fallback\n    : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n// 19.1.3.6 Object.prototype.toString()\n\nvar test = {};\ntest[_wks('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n  _redefine(Object.prototype, 'toString', function toString() {\n    return '[object ' + _classof(this) + ']';\n  }, true);\n}\n\n_wksDefine('asyncIterator');\n\n_wksDefine('observable');\n\nvar symbol = _core.Symbol;\n\n// true  -> String#at\n// false -> String#codePointAt\nvar _stringAt = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(_defined(that));\n    var i = _toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\nvar _iterators = {};\n\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n_hide(IteratorPrototype, _wks('iterator'), function () { return this; });\n\nvar _iterCreate = function (Constructor, NAME, next) {\n  Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });\n  _setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\n\n\nvar IE_PROTO$2 = _sharedKey('IE_PROTO');\nvar ObjectProto$1 = Object.prototype;\n\nvar _objectGpo = Object.getPrototypeOf || function (O) {\n  O = _toObject(O);\n  if (_has(O, IE_PROTO$2)) return O[IE_PROTO$2];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto$1 : null;\n};\n\nvar ITERATOR = _wks('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nvar _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  _iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = _objectGpo($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      _setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!_library && typeof IteratorPrototype[ITERATOR] != 'function') _hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!_library || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    _hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  _iterators[NAME] = $default;\n  _iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) _redefine(proto, key, methods[key]);\n    } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\nvar $at = _stringAt(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n_iterDefine(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\nvar _iterStep = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nvar es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {\n  this._t = _toIobject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return _iterStep(1);\n  }\n  if (kind == 'keys') return _iterStep(0, index);\n  if (kind == 'values') return _iterStep(0, O[index]);\n  return _iterStep(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n_iterators.Arguments = _iterators.Array;\n\n_addToUnscopables('keys');\n_addToUnscopables('values');\n_addToUnscopables('entries');\n\nvar ITERATOR$1 = _wks('iterator');\nvar TO_STRING_TAG = _wks('toStringTag');\nvar ArrayValues = _iterators.Array;\n\nvar DOMIterables = {\n  CSSRuleList: true, // TODO: Not spec compliant, should be false.\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true, // TODO: Not spec compliant, should be false.\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true, // TODO: Not spec compliant, should be false.\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = _objectKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = _global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n  if (proto) {\n    if (!proto[ITERATOR$1]) _hide(proto, ITERATOR$1, ArrayValues);\n    if (!proto[TO_STRING_TAG]) _hide(proto, TO_STRING_TAG, NAME);\n    _iterators[NAME] = ArrayValues;\n    if (explicit) for (key in es6_array_iterator) if (!proto[key]) _redefine(proto, key, es6_array_iterator[key], true);\n  }\n}\n\nvar iterator = _wksExt.f('iterator');\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(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)) t[p] = s[p];\r\n    }\r\n    return t;\r\n}\r\n\r\nexport function __rest(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\r\nexport function __decorate(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\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [0, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator];\r\n    return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tslib_1 = require('tslib');\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview Firebase constants.  Some of these (@defines) can be overridden at compile-time.\r\n */\r\nvar CONSTANTS = {\r\n    /**\r\n     * @define {boolean} Whether this is the client Node.js SDK.\r\n     */\r\n    NODE_CLIENT: false,\r\n    /**\r\n     * @define {boolean} Whether this is the Admin Node.js SDK.\r\n     */\r\n    NODE_ADMIN: false,\r\n    /**\r\n     * Firebase SDK Version\r\n     */\r\n    SDK_VERSION: '${JSCORE_VERSION}'\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Throws an error if the provided assertion is falsy\r\n * @param {*} assertion The assertion to be tested for falsiness\r\n * @param {!string} message The message to display if the check fails\r\n */\r\nvar assert = function (assertion, message) {\r\n    if (!assertion) {\r\n        throw assertionError(message);\r\n    }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n * @param {string} message\r\n * @return {!Error}\r\n */\r\nvar assertionError = function (message) {\r\n    return new Error('Firebase Database (' +\r\n        CONSTANTS.SDK_VERSION +\r\n        ') INTERNAL ASSERT FAILED: ' +\r\n        message);\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar stringToByteArray = function (str) {\r\n    // TODO(user): Use native implementations if/when available\r\n    var out = [], p = 0;\r\n    for (var i = 0; i < str.length; i++) {\r\n        var c = str.charCodeAt(i);\r\n        if (c < 128) {\r\n            out[p++] = c;\r\n        }\r\n        else if (c < 2048) {\r\n            out[p++] = (c >> 6) | 192;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n        else if ((c & 0xfc00) == 0xd800 &&\r\n            i + 1 < str.length &&\r\n            (str.charCodeAt(i + 1) & 0xfc00) == 0xdc00) {\r\n            // Surrogate Pair\r\n            c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n            out[p++] = (c >> 18) | 240;\r\n            out[p++] = ((c >> 12) & 63) | 128;\r\n            out[p++] = ((c >> 6) & 63) | 128;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n        else {\r\n            out[p++] = (c >> 12) | 224;\r\n            out[p++] = ((c >> 6) & 63) | 128;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n    }\r\n    return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param {Array<number>} bytes Array of numbers representing characters.\r\n * @return {string} Stringification of the array.\r\n */\r\nvar byteArrayToString = function (bytes) {\r\n    // TODO(user): Use native implementations if/when available\r\n    var out = [], pos = 0, c = 0;\r\n    while (pos < bytes.length) {\r\n        var c1 = bytes[pos++];\r\n        if (c1 < 128) {\r\n            out[c++] = String.fromCharCode(c1);\r\n        }\r\n        else if (c1 > 191 && c1 < 224) {\r\n            var c2 = bytes[pos++];\r\n            out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n        }\r\n        else if (c1 > 239 && c1 < 365) {\r\n            // Surrogate Pair\r\n            var c2 = bytes[pos++];\r\n            var c3 = bytes[pos++];\r\n            var c4 = bytes[pos++];\r\n            var u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n                0x10000;\r\n            out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n            out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n        }\r\n        else {\r\n            var c2 = bytes[pos++];\r\n            var c3 = bytes[pos++];\r\n            out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n        }\r\n    }\r\n    return out.join('');\r\n};\r\n// Static lookup maps, lazily populated by init_()\r\nvar base64 = {\r\n    /**\r\n     * Maps bytes to characters.\r\n     * @type {Object}\r\n     * @private\r\n     */\r\n    byteToCharMap_: null,\r\n    /**\r\n     * Maps characters to bytes.\r\n     * @type {Object}\r\n     * @private\r\n     */\r\n    charToByteMap_: null,\r\n    /**\r\n     * Maps bytes to websafe characters.\r\n     * @type {Object}\r\n     * @private\r\n     */\r\n    byteToCharMapWebSafe_: null,\r\n    /**\r\n     * Maps websafe characters to bytes.\r\n     * @type {Object}\r\n     * @private\r\n     */\r\n    charToByteMapWebSafe_: null,\r\n    /**\r\n     * Our default alphabet, shared between\r\n     * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n     * @type {string}\r\n     */\r\n    ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n    /**\r\n     * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n     * @type {string}\r\n     */\r\n    get ENCODED_VALS() {\r\n        return this.ENCODED_VALS_BASE + '+/=';\r\n    },\r\n    /**\r\n     * Our websafe alphabet.\r\n     * @type {string}\r\n     */\r\n    get ENCODED_VALS_WEBSAFE() {\r\n        return this.ENCODED_VALS_BASE + '-_.';\r\n    },\r\n    /**\r\n     * Whether this browser supports the atob and btoa functions. This extension\r\n     * started at Mozilla but is now implemented by many browsers. We use the\r\n     * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n     * but still allowing the standard per-browser compilations.\r\n     *\r\n     * @type {boolean}\r\n     */\r\n    HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n    /**\r\n     * Base64-encode an array of bytes.\r\n     *\r\n     * @param {Array<number>|Uint8Array} input An array of bytes (numbers with\r\n     *     value in [0, 255]) to encode.\r\n     * @param {boolean=} opt_webSafe Boolean indicating we should use the\r\n     *     alternative alphabet.\r\n     * @return {string} The base64 encoded string.\r\n     */\r\n    encodeByteArray: function (input, opt_webSafe) {\r\n        if (!Array.isArray(input)) {\r\n            throw Error('encodeByteArray takes an array as a parameter');\r\n        }\r\n        this.init_();\r\n        var byteToCharMap = opt_webSafe\r\n            ? this.byteToCharMapWebSafe_\r\n            : this.byteToCharMap_;\r\n        var output = [];\r\n        for (var i = 0; i < input.length; i += 3) {\r\n            var byte1 = input[i];\r\n            var haveByte2 = i + 1 < input.length;\r\n            var byte2 = haveByte2 ? input[i + 1] : 0;\r\n            var haveByte3 = i + 2 < input.length;\r\n            var byte3 = haveByte3 ? input[i + 2] : 0;\r\n            var outByte1 = byte1 >> 2;\r\n            var outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n            var outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n            var outByte4 = byte3 & 0x3f;\r\n            if (!haveByte3) {\r\n                outByte4 = 64;\r\n                if (!haveByte2) {\r\n                    outByte3 = 64;\r\n                }\r\n            }\r\n            output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n        }\r\n        return output.join('');\r\n    },\r\n    /**\r\n     * Base64-encode a string.\r\n     *\r\n     * @param {string} input A string to encode.\r\n     * @param {boolean=} opt_webSafe If true, we should use the\r\n     *     alternative alphabet.\r\n     * @return {string} The base64 encoded string.\r\n     */\r\n    encodeString: function (input, opt_webSafe) {\r\n        // Shortcut for Mozilla browsers that implement\r\n        // a native base64 encoder in the form of \"btoa/atob\"\r\n        if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n            return btoa(input);\r\n        }\r\n        return this.encodeByteArray(stringToByteArray(input), opt_webSafe);\r\n    },\r\n    /**\r\n     * Base64-decode a string.\r\n     *\r\n     * @param {string} input to decode.\r\n     * @param {boolean=} opt_webSafe True if we should use the\r\n     *     alternative alphabet.\r\n     * @return {string} string representing the decoded value.\r\n     */\r\n    decodeString: function (input, opt_webSafe) {\r\n        // Shortcut for Mozilla browsers that implement\r\n        // a native base64 encoder in the form of \"btoa/atob\"\r\n        if (this.HAS_NATIVE_SUPPORT && !opt_webSafe) {\r\n            return atob(input);\r\n        }\r\n        return byteArrayToString(this.decodeStringToByteArray(input, opt_webSafe));\r\n    },\r\n    /**\r\n     * Base64-decode a string.\r\n     *\r\n     * In base-64 decoding, groups of four characters are converted into three\r\n     * bytes.  If the encoder did not apply padding, the input length may not\r\n     * be a multiple of 4.\r\n     *\r\n     * In this case, the last group will have fewer than 4 characters, and\r\n     * padding will be inferred.  If the group has one or two characters, it decodes\r\n     * to one byte.  If the group has three characters, it decodes to two bytes.\r\n     *\r\n     * @param {string} input Input to decode.\r\n     * @param {boolean=} opt_webSafe True if we should use the web-safe alphabet.\r\n     * @return {!Array<number>} bytes representing the decoded value.\r\n     */\r\n    decodeStringToByteArray: function (input, opt_webSafe) {\r\n        this.init_();\r\n        var charToByteMap = opt_webSafe\r\n            ? this.charToByteMapWebSafe_\r\n            : this.charToByteMap_;\r\n        var output = [];\r\n        for (var i = 0; i < input.length;) {\r\n            var byte1 = charToByteMap[input.charAt(i++)];\r\n            var haveByte2 = i < input.length;\r\n            var byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n            ++i;\r\n            var haveByte3 = i < input.length;\r\n            var byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n            ++i;\r\n            var haveByte4 = i < input.length;\r\n            var byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n            ++i;\r\n            if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n                throw Error();\r\n            }\r\n            var outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n            output.push(outByte1);\r\n            if (byte3 != 64) {\r\n                var outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n                output.push(outByte2);\r\n                if (byte4 != 64) {\r\n                    var outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n                    output.push(outByte3);\r\n                }\r\n            }\r\n        }\r\n        return output;\r\n    },\r\n    /**\r\n     * Lazy static initialization function. Called before\r\n     * accessing any of the static map variables.\r\n     * @private\r\n     */\r\n    init_: function () {\r\n        if (!this.byteToCharMap_) {\r\n            this.byteToCharMap_ = {};\r\n            this.charToByteMap_ = {};\r\n            this.byteToCharMapWebSafe_ = {};\r\n            this.charToByteMapWebSafe_ = {};\r\n            // We want quick mappings back and forth, so we precompute two maps.\r\n            for (var i = 0; i < this.ENCODED_VALS.length; i++) {\r\n                this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n                this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n                this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n                this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n                // Be forgiving when decoding and correctly decode both encodings.\r\n                if (i >= this.ENCODED_VALS_BASE.length) {\r\n                    this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n                    this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n                }\r\n            }\r\n        }\r\n    }\r\n};\r\n/**\r\n * URL-safe base64 encoding\r\n * @param {!string} str\r\n * @return {!string}\r\n */\r\nvar base64Encode = function (str) {\r\n    var utf8Bytes = stringToByteArray(str);\r\n    return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param {string} str To be decoded\r\n * @return {?string} Decoded result, if possible\r\n */\r\nvar base64Decode = function (str) {\r\n    try {\r\n        return base64.decodeString(str, true);\r\n    }\r\n    catch (e) {\r\n        console.error('base64Decode failed: ', e);\r\n    }\r\n    return null;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n    return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays).  Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n */\r\nfunction deepExtend(target, source) {\r\n    if (!(source instanceof Object)) {\r\n        return source;\r\n    }\r\n    switch (source.constructor) {\r\n        case Date:\r\n            // Treat Dates like scalars; if the target date object had any child\r\n            // properties - they will be lost!\r\n            var dateValue = source;\r\n            return new Date(dateValue.getTime());\r\n        case Object:\r\n            if (target === undefined) {\r\n                target = {};\r\n            }\r\n            break;\r\n        case Array:\r\n            // Always copy the array source and overwrite the target.\r\n            target = [];\r\n            break;\r\n        default:\r\n            // Not a plain Object - treat it as a scalar.\r\n            return source;\r\n    }\r\n    for (var prop in source) {\r\n        if (!source.hasOwnProperty(prop)) {\r\n            continue;\r\n        }\r\n        target[prop] = deepExtend(target[prop], source[prop]);\r\n    }\r\n    return target;\r\n}\r\n// TODO: Really needed (for JSCompiler type checking)?\r\nfunction patchProperty(obj, prop, value) {\r\n    obj[prop] = value;\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n    function Deferred() {\r\n        var _this = this;\r\n        this.promise = new Promise(function (resolve, reject) {\r\n            _this.resolve = resolve;\r\n            _this.reject = reject;\r\n        });\r\n    }\r\n    /**\r\n     * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\r\n     * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n     * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n     * @param {((?function(?(Error)): (?|undefined))| (?function(?(Error),?=): (?|undefined)))=} callback\r\n     * @return {!function(?(Error), ?=)}\r\n     */\r\n    Deferred.prototype.wrapCallback = function (callback) {\r\n        var _this = this;\r\n        return function (error, value) {\r\n            if (error) {\r\n                _this.reject(error);\r\n            }\r\n            else {\r\n                _this.resolve(value);\r\n            }\r\n            if (typeof callback === 'function') {\r\n                // Attaching noop handler just in case developer wasn't expecting\r\n                // promises\r\n                _this.promise.catch(function () { });\r\n                // Some of our callbacks don't expect a value and our own tests\r\n                // assert that the parameter length is 1\r\n                if (callback.length === 1) {\r\n                    callback(error);\r\n                }\r\n                else {\r\n                    callback(error, value);\r\n                }\r\n            }\r\n        };\r\n    };\r\n    return Deferred;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return {string} user agent string\r\n */\r\nvar getUA = function () {\r\n    if (typeof navigator !== 'undefined' &&\r\n        typeof navigator['userAgent'] === 'string') {\r\n        return navigator['userAgent'];\r\n    }\r\n    else {\r\n        return '';\r\n    }\r\n};\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap in the Ripple emulator) nor\r\n * Cordova `onDeviceReady`, which would normally wait for a callback.\r\n *\r\n * @return {boolean} isMobileCordova\r\n */\r\nvar isMobileCordova = function () {\r\n    return (typeof window !== 'undefined' &&\r\n        !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n        /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n};\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return {boolean} True if ReactNative environment is detected.\r\n */\r\nvar isReactNative = function () {\r\n    return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n};\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return {boolean} True if Node.js environment is detected.\r\n */\r\nvar isNodeSdk = function () {\r\n    return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n};\n\nvar ERROR_NAME = 'FirebaseError';\r\nvar captureStackTrace = Error\r\n    .captureStackTrace;\r\n// Export for faking in tests\r\nfunction patchCapture(captureFake) {\r\n    var result = captureStackTrace;\r\n    captureStackTrace = captureFake;\r\n    return result;\r\n}\r\nvar FirebaseError = /** @class */ (function () {\r\n    function FirebaseError(code, message) {\r\n        this.code = code;\r\n        this.message = message;\r\n        // We want the stack value, if implemented by Error\r\n        if (captureStackTrace) {\r\n            // Patches this.stack, omitted calls above ErrorFactory#create\r\n            captureStackTrace(this, ErrorFactory.prototype.create);\r\n        }\r\n        else {\r\n            try {\r\n                // In case of IE11, stack will be set only after error is raised.\r\n                // https://docs.microsoft.com/en-us/scripting/javascript/reference/stack-property-error-javascript\r\n                throw Error.apply(this, arguments);\r\n            }\r\n            catch (err) {\r\n                this.name = ERROR_NAME;\r\n                // Make non-enumerable getter for the property.\r\n                Object.defineProperty(this, 'stack', {\r\n                    get: function () {\r\n                        return err.stack;\r\n                    }\r\n                });\r\n            }\r\n        }\r\n    }\r\n    return FirebaseError;\r\n}());\r\n// Back-door inheritance\r\nFirebaseError.prototype = Object.create(Error.prototype);\r\nFirebaseError.prototype.constructor = FirebaseError;\r\nFirebaseError.prototype.name = ERROR_NAME;\r\nvar ErrorFactory = /** @class */ (function () {\r\n    function ErrorFactory(service, serviceName, errors) {\r\n        this.service = service;\r\n        this.serviceName = serviceName;\r\n        this.errors = errors;\r\n        // Matches {$name}, by default.\r\n        this.pattern = /\\{\\$([^}]+)}/g;\r\n        // empty\r\n    }\r\n    ErrorFactory.prototype.create = function (code, data) {\r\n        if (data === undefined) {\r\n            data = {};\r\n        }\r\n        var template = this.errors[code];\r\n        var fullCode = this.service + '/' + code;\r\n        var message;\r\n        if (template === undefined) {\r\n            message = 'Error';\r\n        }\r\n        else {\r\n            message = template.replace(this.pattern, function (match, key) {\r\n                var value = data[key];\r\n                return value !== undefined ? value.toString() : '<' + key + '?>';\r\n            });\r\n        }\r\n        // Service: Error message (service/code).\r\n        message = this.serviceName + ': ' + message + ' (' + fullCode + ').';\r\n        var err = new FirebaseError(fullCode, message);\r\n        // Populate the Error object with message parts for programmatic\r\n        // accesses (e.g., e.file).\r\n        for (var prop in data) {\r\n            if (!data.hasOwnProperty(prop) || prop.slice(-1) === '_') {\r\n                continue;\r\n            }\r\n            err[prop] = data[prop];\r\n        }\r\n        return err;\r\n    };\r\n    return ErrorFactory;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n    return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data Javascript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n    return JSON.stringify(data);\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {{header: *, claims: *, data: *, signature: string}}\r\n */\r\nvar decode = function (token) {\r\n    var header = {}, claims = {}, data = {}, signature = '';\r\n    try {\r\n        var parts = token.split('.');\r\n        header = jsonEval(base64Decode(parts[0]) || '');\r\n        claims = jsonEval(base64Decode(parts[1]) || '');\r\n        signature = parts[2];\r\n        data = claims['d'] || {};\r\n        delete claims['d'];\r\n    }\r\n    catch (e) { }\r\n    return {\r\n        header: header,\r\n        claims: claims,\r\n        data: data,\r\n        signature: signature\r\n    };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidTimestamp = function (token) {\r\n    var claims = decode(token).claims, now = Math.floor(new Date().getTime() / 1000), validSince, validUntil;\r\n    if (typeof claims === 'object') {\r\n        if (claims.hasOwnProperty('nbf')) {\r\n            validSince = claims['nbf'];\r\n        }\r\n        else if (claims.hasOwnProperty('iat')) {\r\n            validSince = claims['iat'];\r\n        }\r\n        if (claims.hasOwnProperty('exp')) {\r\n            validUntil = claims['exp'];\r\n        }\r\n        else {\r\n            // token will expire after 24h by default\r\n            validUntil = validSince + 86400;\r\n        }\r\n    }\r\n    return (now && validSince && validUntil && now >= validSince && now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {?number}\r\n */\r\nvar issuedAtTime = function (token) {\r\n    var claims = decode(token).claims;\r\n    if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n        return claims['iat'];\r\n    }\r\n    return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isValidFormat = function (token) {\r\n    var decoded = decode(token), claims = decoded.claims;\r\n    return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n *\r\n * @param {?string} token\r\n * @return {boolean}\r\n */\r\nvar isAdmin = function (token) {\r\n    var claims = decode(token).claims;\r\n    return typeof claims === 'object' && claims['admin'] === true;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// See http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/\r\nvar contains = function (obj, key) {\r\n    return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar safeGet = function (obj, key) {\r\n    if (Object.prototype.hasOwnProperty.call(obj, key))\r\n        return obj[key];\r\n    // else return undefined.\r\n};\r\n/**\r\n * Enumerates the keys/values in an object, excluding keys defined on the prototype.\r\n *\r\n * @param {?Object.<K,V>} obj Object to enumerate.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar forEach = function (obj, fn) {\r\n    for (var key in obj) {\r\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n            fn(key, obj[key]);\r\n        }\r\n    }\r\n};\r\n/**\r\n * Copies all the (own) properties from one object to another.\r\n * @param {!Object} objTo\r\n * @param {!Object} objFrom\r\n * @return {!Object} objTo\r\n */\r\nvar extend = function (objTo, objFrom) {\r\n    forEach(objFrom, function (key, value) {\r\n        objTo[key] = value;\r\n    });\r\n    return objTo;\r\n};\r\n/**\r\n * Returns a clone of the specified object.\r\n * @param {!Object} obj\r\n * @return {!Object} cloned obj.\r\n */\r\nvar clone = function (obj) {\r\n    return extend({}, obj);\r\n};\r\n/**\r\n * Returns true if obj has typeof \"object\" and is not null.  Unlike goog.isObject(), does not return true\r\n * for functions.\r\n *\r\n * @param obj {*} A potential object.\r\n * @returns {boolean} True if it's an object.\r\n */\r\nvar isNonNullObject = function (obj) {\r\n    return typeof obj === 'object' && obj !== null;\r\n};\r\nvar isEmpty = function (obj) {\r\n    for (var key in obj) {\r\n        return false;\r\n    }\r\n    return true;\r\n};\r\nvar getCount = function (obj) {\r\n    var rv = 0;\r\n    for (var key in obj) {\r\n        rv++;\r\n    }\r\n    return rv;\r\n};\r\nvar map = function (obj, f, opt_obj) {\r\n    var res = {};\r\n    for (var key in obj) {\r\n        res[key] = f.call(opt_obj, obj[key], key, obj);\r\n    }\r\n    return res;\r\n};\r\nvar findKey = function (obj, fn, opt_this) {\r\n    for (var key in obj) {\r\n        if (fn.call(opt_this, obj[key], key, obj)) {\r\n            return key;\r\n        }\r\n    }\r\n    return undefined;\r\n};\r\nvar findValue = function (obj, fn, opt_this) {\r\n    var key = findKey(obj, fn, opt_this);\r\n    return key && obj[key];\r\n};\r\nvar getAnyKey = function (obj) {\r\n    for (var key in obj) {\r\n        return key;\r\n    }\r\n};\r\nvar getValues = function (obj) {\r\n    var res = [];\r\n    var i = 0;\r\n    for (var key in obj) {\r\n        res[i++] = obj[key];\r\n    }\r\n    return res;\r\n};\r\n/**\r\n * Tests whether every key/value pair in an object pass the test implemented\r\n * by the provided function\r\n *\r\n * @param {?Object.<K,V>} obj Object to test.\r\n * @param {!function(K, V)} fn Function to call for each key and value.\r\n * @template K,V\r\n */\r\nvar every = function (obj, fn) {\r\n    for (var key in obj) {\r\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n            if (!fn(key, obj[key])) {\r\n                return false;\r\n            }\r\n        }\r\n    }\r\n    return true;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a params\r\n * object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n *\r\n * @param {!Object} querystringParams\r\n * @return {string}\r\n */\r\nvar querystring = function (querystringParams) {\r\n    var params = [];\r\n    forEach(querystringParams, function (key, value) {\r\n        if (Array.isArray(value)) {\r\n            value.forEach(function (arrayVal) {\r\n                params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n            });\r\n        }\r\n        else {\r\n            params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n        }\r\n    });\r\n    return params.length ? '&' + params.join('&') : '';\r\n};\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object (e.g. {arg: 'val', arg2: 'val2'})\r\n *\r\n * @param {string} querystring\r\n * @return {!Object}\r\n */\r\nvar querystringDecode = function (querystring) {\r\n    var obj = {};\r\n    var tokens = querystring.replace(/^\\?/, '').split('&');\r\n    tokens.forEach(function (token) {\r\n        if (token) {\r\n            var key = token.split('=');\r\n            obj[key[0]] = key[1];\r\n        }\r\n    });\r\n    return obj;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Copyright 2011 The Closure Library Authors. All Rights Reserved.\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n//      http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n/**\r\n * @fileoverview Abstract cryptographic hash interface.\r\n *\r\n * See Sha1 and Md5 for sample implementations.\r\n *\r\n */\r\n/**\r\n * Create a cryptographic hash instance.\r\n *\r\n * @constructor\r\n * @struct\r\n */\r\nvar Hash = /** @class */ (function () {\r\n    function Hash() {\r\n        /**\r\n         * The block size for the hasher.\r\n         * @type {number}\r\n         */\r\n        this.blockSize = -1;\r\n    }\r\n    return Hash;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n *   var sha1 = new sha1();\r\n *   sha1.update(bytes);\r\n *   var hash = sha1.digest();\r\n *\r\n * Performance:\r\n *   Chrome 23:   ~400 Mbit/s\r\n *   Firefox 16:  ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @extends {Hash}\r\n * @final\r\n * @struct\r\n */\r\nvar Sha1 = /** @class */ (function (_super) {\r\n    tslib_1.__extends(Sha1, _super);\r\n    function Sha1() {\r\n        var _this = _super.call(this) || this;\r\n        /**\r\n         * Holds the previous values of accumulated variables a-e in the compress_\r\n         * function.\r\n         * @type {!Array<number>}\r\n         * @private\r\n         */\r\n        _this.chain_ = [];\r\n        /**\r\n         * A buffer holding the partially computed hash result.\r\n         * @type {!Array<number>}\r\n         * @private\r\n         */\r\n        _this.buf_ = [];\r\n        /**\r\n         * An array of 80 bytes, each a part of the message to be hashed.  Referred to\r\n         * as the message schedule in the docs.\r\n         * @type {!Array<number>}\r\n         * @private\r\n         */\r\n        _this.W_ = [];\r\n        /**\r\n         * Contains data needed to pad messages less than 64 bytes.\r\n         * @type {!Array<number>}\r\n         * @private\r\n         */\r\n        _this.pad_ = [];\r\n        /**\r\n         * @private {number}\r\n         */\r\n        _this.inbuf_ = 0;\r\n        /**\r\n         * @private {number}\r\n         */\r\n        _this.total_ = 0;\r\n        _this.blockSize = 512 / 8;\r\n        _this.pad_[0] = 128;\r\n        for (var i = 1; i < _this.blockSize; ++i) {\r\n            _this.pad_[i] = 0;\r\n        }\r\n        _this.reset();\r\n        return _this;\r\n    }\r\n    Sha1.prototype.reset = function () {\r\n        this.chain_[0] = 0x67452301;\r\n        this.chain_[1] = 0xefcdab89;\r\n        this.chain_[2] = 0x98badcfe;\r\n        this.chain_[3] = 0x10325476;\r\n        this.chain_[4] = 0xc3d2e1f0;\r\n        this.inbuf_ = 0;\r\n        this.total_ = 0;\r\n    };\r\n    /**\r\n     * Internal compress helper function.\r\n     * @param {!Array<number>|!Uint8Array|string} buf Block to compress.\r\n     * @param {number=} opt_offset Offset of the block in the buffer.\r\n     * @private\r\n     */\r\n    Sha1.prototype.compress_ = function (buf, opt_offset) {\r\n        if (!opt_offset) {\r\n            opt_offset = 0;\r\n        }\r\n        var W = this.W_;\r\n        // get 16 big endian words\r\n        if (typeof buf === 'string') {\r\n            for (var i = 0; i < 16; i++) {\r\n                // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n                // have a bug that turns the post-increment ++ operator into pre-increment\r\n                // during JIT compilation.  We have code that depends heavily on SHA-1 for\r\n                // correctness and which is affected by this bug, so I've removed all uses\r\n                // of post-increment ++ in which the result value is used.  We can revert\r\n                // this change once the Safari bug\r\n                // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n                // most clients have been updated.\r\n                W[i] =\r\n                    (buf.charCodeAt(opt_offset) << 24) |\r\n                        (buf.charCodeAt(opt_offset + 1) << 16) |\r\n                        (buf.charCodeAt(opt_offset + 2) << 8) |\r\n                        buf.charCodeAt(opt_offset + 3);\r\n                opt_offset += 4;\r\n            }\r\n        }\r\n        else {\r\n            for (var i = 0; i < 16; i++) {\r\n                W[i] =\r\n                    (buf[opt_offset] << 24) |\r\n                        (buf[opt_offset + 1] << 16) |\r\n                        (buf[opt_offset + 2] << 8) |\r\n                        buf[opt_offset + 3];\r\n                opt_offset += 4;\r\n            }\r\n        }\r\n        // expand to 80 words\r\n        for (var i = 16; i < 80; i++) {\r\n            var t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n            W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n        }\r\n        var a = this.chain_[0];\r\n        var b = this.chain_[1];\r\n        var c = this.chain_[2];\r\n        var d = this.chain_[3];\r\n        var e = this.chain_[4];\r\n        var f, k;\r\n        // TODO(user): Try to unroll this loop to speed up the computation.\r\n        for (var i = 0; i < 80; i++) {\r\n            if (i < 40) {\r\n                if (i < 20) {\r\n                    f = d ^ (b & (c ^ d));\r\n                    k = 0x5a827999;\r\n                }\r\n                else {\r\n                    f = b ^ c ^ d;\r\n                    k = 0x6ed9eba1;\r\n                }\r\n            }\r\n            else {\r\n                if (i < 60) {\r\n                    f = (b & c) | (d & (b | c));\r\n                    k = 0x8f1bbcdc;\r\n                }\r\n                else {\r\n                    f = b ^ c ^ d;\r\n                    k = 0xca62c1d6;\r\n                }\r\n            }\r\n            var t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n            e = d;\r\n            d = c;\r\n            c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n            b = a;\r\n            a = t;\r\n        }\r\n        this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n        this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n        this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n        this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n        this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n    };\r\n    Sha1.prototype.update = function (bytes, opt_length) {\r\n        // TODO(johnlenz): tighten the function signature and remove this check\r\n        if (bytes == null) {\r\n            return;\r\n        }\r\n        if (opt_length === undefined) {\r\n            opt_length = bytes.length;\r\n        }\r\n        var lengthMinusBlock = opt_length - this.blockSize;\r\n        var n = 0;\r\n        // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n        var buf = this.buf_;\r\n        var inbuf = this.inbuf_;\r\n        // The outer while loop should execute at most twice.\r\n        while (n < opt_length) {\r\n            // When we have no data in the block to top up, we can directly process the\r\n            // input buffer (assuming it contains sufficient data). This gives ~25%\r\n            // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n            // the data is provided in large chunks (or in multiples of 64 bytes).\r\n            if (inbuf == 0) {\r\n                while (n <= lengthMinusBlock) {\r\n                    this.compress_(bytes, n);\r\n                    n += this.blockSize;\r\n                }\r\n            }\r\n            if (typeof bytes === 'string') {\r\n                while (n < opt_length) {\r\n                    buf[inbuf] = bytes.charCodeAt(n);\r\n                    ++inbuf;\r\n                    ++n;\r\n                    if (inbuf == this.blockSize) {\r\n                        this.compress_(buf);\r\n                        inbuf = 0;\r\n                        // Jump to the outer loop so we use the full-block optimization.\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n            else {\r\n                while (n < opt_length) {\r\n                    buf[inbuf] = bytes[n];\r\n                    ++inbuf;\r\n                    ++n;\r\n                    if (inbuf == this.blockSize) {\r\n                        this.compress_(buf);\r\n                        inbuf = 0;\r\n                        // Jump to the outer loop so we use the full-block optimization.\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        this.inbuf_ = inbuf;\r\n        this.total_ += opt_length;\r\n    };\r\n    /** @override */\r\n    Sha1.prototype.digest = function () {\r\n        var digest = [];\r\n        var totalBits = this.total_ * 8;\r\n        // Add pad 0x80 0x00*.\r\n        if (this.inbuf_ < 56) {\r\n            this.update(this.pad_, 56 - this.inbuf_);\r\n        }\r\n        else {\r\n            this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n        }\r\n        // Add # bits.\r\n        for (var i = this.blockSize - 1; i >= 56; i--) {\r\n            this.buf_[i] = totalBits & 255;\r\n            totalBits /= 256; // Don't use bit-shifting here!\r\n        }\r\n        this.compress_(this.buf_);\r\n        var n = 0;\r\n        for (var i = 0; i < 5; i++) {\r\n            for (var j = 24; j >= 0; j -= 8) {\r\n                digest[n] = (this.chain_[i] >> j) & 255;\r\n                ++n;\r\n            }\r\n        }\r\n        return digest;\r\n    };\r\n    return Sha1;\r\n}(Hash));\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n *     as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n    var proxy = new ObserverProxy(executor, onNoObservers);\r\n    return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nvar ObserverProxy = /** @class */ (function () {\r\n    /**\r\n     * @param executor Function which can make calls to a single Observer\r\n     *     as a proxy.\r\n     * @param onNoObservers Callback when count of Observers goes to zero.\r\n     */\r\n    function ObserverProxy(executor, onNoObservers) {\r\n        var _this = this;\r\n        this.observers = [];\r\n        this.unsubscribes = [];\r\n        this.observerCount = 0;\r\n        // Micro-task scheduling by calling task.then().\r\n        this.task = Promise.resolve();\r\n        this.finalized = false;\r\n        this.onNoObservers = onNoObservers;\r\n        // Call the executor asynchronously so subscribers that are called\r\n        // synchronously after the creation of the subscribe function\r\n        // can still receive the very first value generated in the executor.\r\n        this.task\r\n            .then(function () {\r\n            executor(_this);\r\n        })\r\n            .catch(function (e) {\r\n            _this.error(e);\r\n        });\r\n    }\r\n    ObserverProxy.prototype.next = function (value) {\r\n        this.forEachObserver(function (observer) {\r\n            observer.next(value);\r\n        });\r\n    };\r\n    ObserverProxy.prototype.error = function (error) {\r\n        this.forEachObserver(function (observer) {\r\n            observer.error(error);\r\n        });\r\n        this.close(error);\r\n    };\r\n    ObserverProxy.prototype.complete = function () {\r\n        this.forEachObserver(function (observer) {\r\n            observer.complete();\r\n        });\r\n        this.close();\r\n    };\r\n    /**\r\n     * Subscribe function that can be used to add an Observer to the fan-out list.\r\n     *\r\n     * - We require that no event is sent to a subscriber sychronously to their\r\n     *   call to subscribe().\r\n     */\r\n    ObserverProxy.prototype.subscribe = function (nextOrObserver, error, complete) {\r\n        var _this = this;\r\n        var observer;\r\n        if (nextOrObserver === undefined &&\r\n            error === undefined &&\r\n            complete === undefined) {\r\n            throw new Error('Missing Observer.');\r\n        }\r\n        // Assemble an Observer object when passed as callback functions.\r\n        if (implementsAnyMethods(nextOrObserver, ['next', 'error', 'complete'])) {\r\n            observer = nextOrObserver;\r\n        }\r\n        else {\r\n            observer = {\r\n                next: nextOrObserver,\r\n                error: error,\r\n                complete: complete\r\n            };\r\n        }\r\n        if (observer.next === undefined) {\r\n            observer.next = noop;\r\n        }\r\n        if (observer.error === undefined) {\r\n            observer.error = noop;\r\n        }\r\n        if (observer.complete === undefined) {\r\n            observer.complete = noop;\r\n        }\r\n        var unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n        // Attempt to subscribe to a terminated Observable - we\r\n        // just respond to the Observer with the final error or complete\r\n        // event.\r\n        if (this.finalized) {\r\n            this.task.then(function () {\r\n                try {\r\n                    if (_this.finalError) {\r\n                        observer.error(_this.finalError);\r\n                    }\r\n                    else {\r\n                        observer.complete();\r\n                    }\r\n                }\r\n                catch (e) {\r\n                    // nothing\r\n                }\r\n                return;\r\n            });\r\n        }\r\n        this.observers.push(observer);\r\n        return unsub;\r\n    };\r\n    // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n    // any unsubscribed Observer.\r\n    ObserverProxy.prototype.unsubscribeOne = function (i) {\r\n        if (this.observers === undefined || this.observers[i] === undefined) {\r\n            return;\r\n        }\r\n        delete this.observers[i];\r\n        this.observerCount -= 1;\r\n        if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n            this.onNoObservers(this);\r\n        }\r\n    };\r\n    ObserverProxy.prototype.forEachObserver = function (fn) {\r\n        if (this.finalized) {\r\n            // Already closed by previous event....just eat the additional values.\r\n            return;\r\n        }\r\n        // Since sendOne calls asynchronously - there is no chance that\r\n        // this.observers will become undefined.\r\n        for (var i = 0; i < this.observers.length; i++) {\r\n            this.sendOne(i, fn);\r\n        }\r\n    };\r\n    // Call the Observer via one of it's callback function. We are careful to\r\n    // confirm that the observe has not been unsubscribed since this asynchronous\r\n    // function had been queued.\r\n    ObserverProxy.prototype.sendOne = function (i, fn) {\r\n        var _this = this;\r\n        // Execute the callback asynchronously\r\n        this.task.then(function () {\r\n            if (_this.observers !== undefined && _this.observers[i] !== undefined) {\r\n                try {\r\n                    fn(_this.observers[i]);\r\n                }\r\n                catch (e) {\r\n                    // Ignore exceptions raised in Observers or missing methods of an\r\n                    // Observer.\r\n                    // Log error to console. b/31404806\r\n                    if (typeof console !== 'undefined' && console.error) {\r\n                        console.error(e);\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    };\r\n    ObserverProxy.prototype.close = function (err) {\r\n        var _this = this;\r\n        if (this.finalized) {\r\n            return;\r\n        }\r\n        this.finalized = true;\r\n        if (err !== undefined) {\r\n            this.finalError = err;\r\n        }\r\n        // Proxy is no longer needed - garbage collect references\r\n        this.task.then(function () {\r\n            _this.observers = undefined;\r\n            _this.onNoObservers = undefined;\r\n        });\r\n    };\r\n    return ObserverProxy;\r\n}());\r\n/** Turn synchronous function into one called asynchronously. */\r\nfunction async(fn, onError) {\r\n    return 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        Promise.resolve(true)\r\n            .then(function () {\r\n            fn.apply(void 0, args);\r\n        })\r\n            .catch(function (error) {\r\n            if (onError) {\r\n                onError(error);\r\n            }\r\n        });\r\n    };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n    if (typeof obj !== 'object' || obj === null) {\r\n        return false;\r\n    }\r\n    for (var _i = 0, methods_1 = methods; _i < methods_1.length; _i++) {\r\n        var method = methods_1[_i];\r\n        if (method in obj && typeof obj[method] === 'function') {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\nfunction noop() {\r\n    // do nothing\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} minCount The minimum number of arguments to allow for the function call\r\n * @param {!number} maxCount The maximum number of argument to allow for the function call\r\n * @param {!number} argCount The actual number of arguments provided.\r\n */\r\nvar validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n    var argError;\r\n    if (argCount < minCount) {\r\n        argError = 'at least ' + minCount;\r\n    }\r\n    else if (argCount > maxCount) {\r\n        argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n    }\r\n    if (argError) {\r\n        var error = fnName +\r\n            ' failed: Was called with ' +\r\n            argCount +\r\n            (argCount === 1 ? ' argument.' : ' arguments.') +\r\n            ' Expects ' +\r\n            argError +\r\n            '.';\r\n        throw new Error(error);\r\n    }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param {!string} fnName The function name\r\n * @param {!number} argumentNumber The index of the argument\r\n * @param {boolean} optional Whether or not the argument is optional\r\n * @return {!string} The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argumentNumber, optional) {\r\n    var argName = '';\r\n    switch (argumentNumber) {\r\n        case 1:\r\n            argName = optional ? 'first' : 'First';\r\n            break;\r\n        case 2:\r\n            argName = optional ? 'second' : 'Second';\r\n            break;\r\n        case 3:\r\n            argName = optional ? 'third' : 'Third';\r\n            break;\r\n        case 4:\r\n            argName = optional ? 'fourth' : 'Fourth';\r\n            break;\r\n        default:\r\n            throw new Error('errorPrefix called with argumentNumber > 4.  Need to update it?');\r\n    }\r\n    var error = fnName + ' failed: ';\r\n    error += argName + ' argument ';\r\n    return error;\r\n}\r\n/**\r\n * @param {!string} fnName\r\n * @param {!number} argumentNumber\r\n * @param {!string} namespace\r\n * @param {boolean} optional\r\n */\r\nfunction validateNamespace(fnName, argumentNumber, namespace, optional) {\r\n    if (optional && !namespace)\r\n        return;\r\n    if (typeof namespace !== 'string') {\r\n        //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n        throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n            'must be a valid firebase namespace.');\r\n    }\r\n}\r\nfunction validateCallback(fnName, argumentNumber, callback, optional) {\r\n    if (optional && !callback)\r\n        return;\r\n    if (typeof callback !== 'function')\r\n        throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n            'must be a valid function.');\r\n}\r\nfunction validateContextObject(fnName, argumentNumber, context, optional) {\r\n    if (optional && !context)\r\n        return;\r\n    if (typeof context !== 'object' || context === null)\r\n        throw new Error(errorPrefix(fnName, argumentNumber, optional) +\r\n            'must be a valid context object.');\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in Javascript.  All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nvar stringToByteArray$1 = function (str) {\r\n    var out = [], p = 0;\r\n    for (var i = 0; i < str.length; i++) {\r\n        var c = str.charCodeAt(i);\r\n        // Is this the lead surrogate in a surrogate pair?\r\n        if (c >= 0xd800 && c <= 0xdbff) {\r\n            var high = c - 0xd800; // the high 10 bits.\r\n            i++;\r\n            assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n            var low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n            c = 0x10000 + (high << 10) + low;\r\n        }\r\n        if (c < 128) {\r\n            out[p++] = c;\r\n        }\r\n        else if (c < 2048) {\r\n            out[p++] = (c >> 6) | 192;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n        else if (c < 65536) {\r\n            out[p++] = (c >> 12) | 224;\r\n            out[p++] = ((c >> 6) & 63) | 128;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n        else {\r\n            out[p++] = (c >> 18) | 240;\r\n            out[p++] = ((c >> 12) & 63) | 128;\r\n            out[p++] = ((c >> 6) & 63) | 128;\r\n            out[p++] = (c & 63) | 128;\r\n        }\r\n    }\r\n    return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nvar stringLength = function (str) {\r\n    var p = 0;\r\n    for (var i = 0; i < str.length; i++) {\r\n        var c = str.charCodeAt(i);\r\n        if (c < 128) {\r\n            p++;\r\n        }\r\n        else if (c < 2048) {\r\n            p += 2;\r\n        }\r\n        else if (c >= 0xd800 && c <= 0xdbff) {\r\n            // Lead surrogate of a surrogate pair.  The pair together will take 4 bytes to represent.\r\n            p += 4;\r\n            i++; // skip trail surrogate.\r\n        }\r\n        else {\r\n            p += 3;\r\n        }\r\n    }\r\n    return p;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nexports.assert = assert;\nexports.assertionError = assertionError;\nexports.base64 = base64;\nexports.base64Decode = base64Decode;\nexports.base64Encode = base64Encode;\nexports.CONSTANTS = CONSTANTS;\nexports.deepCopy = deepCopy;\nexports.deepExtend = deepExtend;\nexports.patchProperty = patchProperty;\nexports.Deferred = Deferred;\nexports.getUA = getUA;\nexports.isMobileCordova = isMobileCordova;\nexports.isNodeSdk = isNodeSdk;\nexports.isReactNative = isReactNative;\nexports.ErrorFactory = ErrorFactory;\nexports.FirebaseError = FirebaseError;\nexports.patchCapture = patchCapture;\nexports.jsonEval = jsonEval;\nexports.stringify = stringify;\nexports.decode = decode;\nexports.isAdmin = isAdmin;\nexports.issuedAtTime = issuedAtTime;\nexports.isValidFormat = isValidFormat;\nexports.isValidTimestamp = isValidTimestamp;\nexports.clone = clone;\nexports.contains = contains;\nexports.every = every;\nexports.extend = extend;\nexports.findKey = findKey;\nexports.findValue = findValue;\nexports.forEach = forEach;\nexports.getAnyKey = getAnyKey;\nexports.getCount = getCount;\nexports.getValues = getValues;\nexports.isEmpty = isEmpty;\nexports.isNonNullObject = isNonNullObject;\nexports.map = map;\nexports.safeGet = safeGet;\nexports.querystring = querystring;\nexports.querystringDecode = querystringDecode;\nexports.Sha1 = Sha1;\nexports.async = async;\nexports.createSubscribe = createSubscribe;\nexports.errorPrefix = errorPrefix;\nexports.validateArgCount = validateArgCount;\nexports.validateCallback = validateCallback;\nexports.validateContextObject = validateContextObject;\nexports.validateNamespace = validateNamespace;\nexports.stringLength = stringLength;\nexports.stringToByteArray = stringToByteArray$1;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar util = require('@firebase/util');\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar contains = function (obj, key) {\r\n    return Object.prototype.hasOwnProperty.call(obj, key);\r\n};\r\nvar DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\n// An array to capture listeners before the true auth functions\r\n// exist\r\nvar tokenListeners = [];\r\n/**\r\n * Global context object for a collection of services using\r\n * a shared authentication state.\r\n */\r\nvar FirebaseAppImpl = /** @class */ (function () {\r\n    function FirebaseAppImpl(options, config, firebase_) {\r\n        this.firebase_ = firebase_;\r\n        this.isDeleted_ = false;\r\n        this.services_ = {};\r\n        this.name_ = config.name;\r\n        this._automaticDataCollectionEnabled =\r\n            config.automaticDataCollectionEnabled || false;\r\n        this.options_ = util.deepCopy(options);\r\n        this.INTERNAL = {\r\n            getUid: function () { return null; },\r\n            getToken: function () { return Promise.resolve(null); },\r\n            addAuthTokenListener: function (callback) {\r\n                tokenListeners.push(callback);\r\n                // Make sure callback is called, asynchronously, in the absence of the auth module\r\n                setTimeout(function () { return callback(null); }, 0);\r\n            },\r\n            removeAuthTokenListener: function (callback) {\r\n                tokenListeners = tokenListeners.filter(function (listener) { return listener !== callback; });\r\n            }\r\n        };\r\n    }\r\n    Object.defineProperty(FirebaseAppImpl.prototype, \"automaticDataCollectionEnabled\", {\r\n        get: function () {\r\n            this.checkDestroyed_();\r\n            return this._automaticDataCollectionEnabled;\r\n        },\r\n        set: function (val) {\r\n            this.checkDestroyed_();\r\n            this._automaticDataCollectionEnabled = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(FirebaseAppImpl.prototype, \"name\", {\r\n        get: function () {\r\n            this.checkDestroyed_();\r\n            return this.name_;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(FirebaseAppImpl.prototype, \"options\", {\r\n        get: function () {\r\n            this.checkDestroyed_();\r\n            return this.options_;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    FirebaseAppImpl.prototype.delete = function () {\r\n        var _this = this;\r\n        return new Promise(function (resolve) {\r\n            _this.checkDestroyed_();\r\n            resolve();\r\n        })\r\n            .then(function () {\r\n            _this.firebase_.INTERNAL.removeApp(_this.name_);\r\n            var services = [];\r\n            Object.keys(_this.services_).forEach(function (serviceKey) {\r\n                Object.keys(_this.services_[serviceKey]).forEach(function (instanceKey) {\r\n                    services.push(_this.services_[serviceKey][instanceKey]);\r\n                });\r\n            });\r\n            return Promise.all(services.map(function (service) {\r\n                return service.INTERNAL.delete();\r\n            }));\r\n        })\r\n            .then(function () {\r\n            _this.isDeleted_ = true;\r\n            _this.services_ = {};\r\n        });\r\n    };\r\n    /**\r\n     * Return a service instance associated with this app (creating it\r\n     * on demand), identified by the passed instanceIdentifier.\r\n     *\r\n     * NOTE: Currently storage is the only one that is leveraging this\r\n     * functionality. They invoke it by calling:\r\n     *\r\n     * ```javascript\r\n     * firebase.app().storage('STORAGE BUCKET ID')\r\n     * ```\r\n     *\r\n     * The service name is passed to this already\r\n     * @internal\r\n     */\r\n    FirebaseAppImpl.prototype._getService = function (name, instanceIdentifier) {\r\n        if (instanceIdentifier === void 0) { instanceIdentifier = DEFAULT_ENTRY_NAME; }\r\n        this.checkDestroyed_();\r\n        if (!this.services_[name]) {\r\n            this.services_[name] = {};\r\n        }\r\n        if (!this.services_[name][instanceIdentifier]) {\r\n            /**\r\n             * If a custom instance has been defined (i.e. not '[DEFAULT]')\r\n             * then we will pass that instance on, otherwise we pass `null`\r\n             */\r\n            var instanceSpecifier = instanceIdentifier !== DEFAULT_ENTRY_NAME\r\n                ? instanceIdentifier\r\n                : undefined;\r\n            var service = this.firebase_.INTERNAL.factories[name](this, this.extendApp.bind(this), instanceSpecifier);\r\n            this.services_[name][instanceIdentifier] = service;\r\n        }\r\n        return this.services_[name][instanceIdentifier];\r\n    };\r\n    /**\r\n     * Callback function used to extend an App instance at the time\r\n     * of service instance creation.\r\n     */\r\n    FirebaseAppImpl.prototype.extendApp = function (props) {\r\n        var _this = this;\r\n        // Copy the object onto the FirebaseAppImpl prototype\r\n        util.deepExtend(this, props);\r\n        /**\r\n         * If the app has overwritten the addAuthTokenListener stub, forward\r\n         * the active token listeners on to the true fxn.\r\n         *\r\n         * TODO: This function is required due to our current module\r\n         * structure. Once we are able to rely strictly upon a single module\r\n         * implementation, this code should be refactored and Auth should\r\n         * provide these stubs and the upgrade logic\r\n         */\r\n        if (props.INTERNAL && props.INTERNAL.addAuthTokenListener) {\r\n            tokenListeners.forEach(function (listener) {\r\n                _this.INTERNAL.addAuthTokenListener(listener);\r\n            });\r\n            tokenListeners = [];\r\n        }\r\n    };\r\n    /**\r\n     * This function will throw an Error if the App has already been deleted -\r\n     * use before performing API actions on the App.\r\n     */\r\n    FirebaseAppImpl.prototype.checkDestroyed_ = function () {\r\n        if (this.isDeleted_) {\r\n            error('app-deleted', { name: this.name_ });\r\n        }\r\n    };\r\n    return FirebaseAppImpl;\r\n}());\r\n// Prevent dead-code elimination of these methods w/o invalid property\r\n// copying.\r\n(FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\r\n    FirebaseAppImpl.prototype.delete ||\r\n    console.log('dc');\r\n/**\r\n * Return a firebase namespace object.\r\n *\r\n * In production, this will be called exactly once and the result\r\n * assigned to the 'firebase' global.  It may be called multiple times\r\n * in unit tests.\r\n */\r\nfunction createFirebaseNamespace() {\r\n    var apps_ = {};\r\n    var factories = {};\r\n    var appHooks = {};\r\n    // A namespace is a plain JavaScript Object.\r\n    var namespace = {\r\n        // Hack to prevent Babel from modifying the object returned\r\n        // as the firebase namespace.\r\n        __esModule: true,\r\n        initializeApp: initializeApp,\r\n        app: app,\r\n        apps: null,\r\n        Promise: Promise,\r\n        SDK_VERSION: '5.5.0',\r\n        INTERNAL: {\r\n            registerService: registerService,\r\n            createFirebaseNamespace: createFirebaseNamespace,\r\n            extendNamespace: extendNamespace,\r\n            createSubscribe: util.createSubscribe,\r\n            ErrorFactory: util.ErrorFactory,\r\n            removeApp: removeApp,\r\n            factories: factories,\r\n            useAsService: useAsService,\r\n            Promise: Promise,\r\n            deepExtend: util.deepExtend\r\n        }\r\n    };\r\n    // Inject a circular default export to allow Babel users who were previously\r\n    // using:\r\n    //\r\n    //   import firebase from 'firebase';\r\n    //   which becomes: var firebase = require('firebase').default;\r\n    //\r\n    // instead of\r\n    //\r\n    //   import * as firebase from 'firebase';\r\n    //   which becomes: var firebase = require('firebase');\r\n    util.patchProperty(namespace, 'default', namespace);\r\n    // firebase.apps is a read-only getter.\r\n    Object.defineProperty(namespace, 'apps', {\r\n        get: getApps\r\n    });\r\n    /**\r\n     * Called by App.delete() - but before any services associated with the App\r\n     * are deleted.\r\n     */\r\n    function removeApp(name) {\r\n        var app = apps_[name];\r\n        callAppHooks(app, 'delete');\r\n        delete apps_[name];\r\n    }\r\n    /**\r\n     * Get the App object for a given name (or DEFAULT).\r\n     */\r\n    function app(name) {\r\n        name = name || DEFAULT_ENTRY_NAME;\r\n        if (!contains(apps_, name)) {\r\n            error('no-app', { name: name });\r\n        }\r\n        return apps_[name];\r\n    }\r\n    util.patchProperty(app, 'App', FirebaseAppImpl);\r\n    function initializeApp(options, rawConfig) {\r\n        if (rawConfig === void 0) { rawConfig = {}; }\r\n        if (typeof rawConfig !== 'object' || rawConfig === null) {\r\n            var name_1 = rawConfig;\r\n            rawConfig = { name: name_1 };\r\n        }\r\n        var config = rawConfig;\r\n        if (config.name === undefined) {\r\n            config.name = DEFAULT_ENTRY_NAME;\r\n        }\r\n        var name = config.name;\r\n        if (typeof name !== 'string' || !name) {\r\n            error('bad-app-name', { name: name + '' });\r\n        }\r\n        if (contains(apps_, name)) {\r\n            error('duplicate-app', { name: name });\r\n        }\r\n        var app = new FirebaseAppImpl(options, config, namespace);\r\n        apps_[name] = app;\r\n        callAppHooks(app, 'create');\r\n        return app;\r\n    }\r\n    /*\r\n     * Return an array of all the non-deleted FirebaseApps.\r\n     */\r\n    function getApps() {\r\n        // Make a copy so caller cannot mutate the apps list.\r\n        return Object.keys(apps_).map(function (name) { return apps_[name]; });\r\n    }\r\n    /*\r\n     * Register a Firebase Service.\r\n     *\r\n     * firebase.INTERNAL.registerService()\r\n     *\r\n     * TODO: Implement serviceProperties.\r\n     */\r\n    function registerService(name, createService, serviceProperties, appHook, allowMultipleInstances) {\r\n        // Cannot re-register a service that already exists\r\n        if (factories[name]) {\r\n            error('duplicate-service', { name: name });\r\n        }\r\n        // Capture the service factory for later service instantiation\r\n        factories[name] = createService;\r\n        // Capture the appHook, if passed\r\n        if (appHook) {\r\n            appHooks[name] = appHook;\r\n            // Run the **new** app hook on all existing apps\r\n            getApps().forEach(function (app) {\r\n                appHook('create', app);\r\n            });\r\n        }\r\n        // The Service namespace is an accessor function ...\r\n        var serviceNamespace = function (appArg) {\r\n            if (appArg === void 0) { appArg = app(); }\r\n            if (typeof appArg[name] !== 'function') {\r\n                // Invalid argument.\r\n                // This happens in the following case: firebase.storage('gs:/')\r\n                error('invalid-app-argument', { name: name });\r\n            }\r\n            // Forward service instance lookup to the FirebaseApp.\r\n            return appArg[name]();\r\n        };\r\n        // ... and a container for service-level properties.\r\n        if (serviceProperties !== undefined) {\r\n            util.deepExtend(serviceNamespace, serviceProperties);\r\n        }\r\n        // Monkey-patch the serviceNamespace onto the firebase namespace\r\n        namespace[name] = serviceNamespace;\r\n        // Patch the FirebaseAppImpl prototype\r\n        FirebaseAppImpl.prototype[name] = 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            var serviceFxn = this._getService.bind(this, name);\r\n            return serviceFxn.apply(this, allowMultipleInstances ? args : []);\r\n        };\r\n        return serviceNamespace;\r\n    }\r\n    /**\r\n     * Patch the top-level firebase namespace with additional properties.\r\n     *\r\n     * firebase.INTERNAL.extendNamespace()\r\n     */\r\n    function extendNamespace(props) {\r\n        util.deepExtend(namespace, props);\r\n    }\r\n    function callAppHooks(app, eventName) {\r\n        Object.keys(factories).forEach(function (serviceName) {\r\n            // Ignore virtual services\r\n            var factoryName = useAsService(app, serviceName);\r\n            if (factoryName === null) {\r\n                return;\r\n            }\r\n            if (appHooks[factoryName]) {\r\n                appHooks[factoryName](eventName, app);\r\n            }\r\n        });\r\n    }\r\n    // Map the requested service to a registered service name\r\n    // (used to map auth to serverAuth service when needed).\r\n    function useAsService(app, name) {\r\n        if (name === 'serverAuth') {\r\n            return null;\r\n        }\r\n        var useService = name;\r\n        var options = app.options;\r\n        return useService;\r\n    }\r\n    return namespace;\r\n}\r\nfunction error(code, args) {\r\n    throw appErrors.create(code, args);\r\n}\r\n// TypeScript does not support non-string indexes!\r\n// let errors: {[code: AppError: string} = {\r\nvar errors = {\r\n    'no-app': \"No Firebase App '{$name}' has been created - \" +\r\n        'call Firebase App.initializeApp()',\r\n    'bad-app-name': \"Illegal App name: '{$name}\",\r\n    'duplicate-app': \"Firebase App named '{$name}' already exists\",\r\n    'app-deleted': \"Firebase App named '{$name}' already deleted\",\r\n    'duplicate-service': \"Firebase service named '{$name}' already registered\",\r\n    'sa-not-supported': 'Initializing the Firebase SDK with a service ' +\r\n        'account is only allowed in a Node.js environment. On client ' +\r\n        'devices, you should instead initialize the SDK with an api key and ' +\r\n        'auth domain',\r\n    'invalid-app-argument': 'firebase.{$name}() takes either no argument or a ' +\r\n        'Firebase App instance.'\r\n};\r\nvar appErrors = new util.ErrorFactory('app', 'Firebase', errors);\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar firebase = createFirebaseNamespace();\n\nexports.firebase = firebase;\nexports.default = firebase;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nrequire('@firebase/polyfill');\nvar firebase = _interopDefault(require('@firebase/app'));\n\n/**\r\n * Copyright 2018 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\nmodule.exports = firebase;\n","/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A container for all of the Logger instances\r\n */\r\nvar instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n    LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n    LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n    LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n    LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n    LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n    LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * The default log level\r\n */\r\nvar defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nvar defaultLogHandler = function (instance, logType) {\r\n    var args = [];\r\n    for (var _i = 2; _i < arguments.length; _i++) {\r\n        args[_i - 2] = arguments[_i];\r\n    }\r\n    if (logType < instance.logLevel)\r\n        return;\r\n    var now = new Date().toISOString();\r\n    switch (logType) {\r\n        /**\r\n         * By default, `console.debug` is not displayed in the developer console (in\r\n         * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n         * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n         * logs to the `console.log` function.\r\n         */\r\n        case LogLevel.DEBUG:\r\n            console.log.apply(console, [\"[\" + now + \"]  \" + instance.name + \":\"].concat(args));\r\n            break;\r\n        case LogLevel.VERBOSE:\r\n            console.log.apply(console, [\"[\" + now + \"]  \" + instance.name + \":\"].concat(args));\r\n            break;\r\n        case LogLevel.INFO:\r\n            console.info.apply(console, [\"[\" + now + \"]  \" + instance.name + \":\"].concat(args));\r\n            break;\r\n        case LogLevel.WARN:\r\n            console.warn.apply(console, [\"[\" + now + \"]  \" + instance.name + \":\"].concat(args));\r\n            break;\r\n        case LogLevel.ERROR:\r\n            console.error.apply(console, [\"[\" + now + \"]  \" + instance.name + \":\"].concat(args));\r\n            break;\r\n        default:\r\n            throw new Error(\"Attempted to log a message with an invalid logType (value: \" + logType + \")\");\r\n    }\r\n};\r\nvar Logger = /** @class */ (function () {\r\n    /**\r\n     * Gives you an instance of a Logger to capture messages according to\r\n     * Firebase's logging scheme.\r\n     *\r\n     * @param name The name that the logs will be associated with\r\n     */\r\n    function Logger(name) {\r\n        this.name = name;\r\n        /**\r\n         * The log level of the given Logger instance.\r\n         */\r\n        this._logLevel = defaultLogLevel;\r\n        /**\r\n         * The log handler for the Logger instance.\r\n         */\r\n        this._logHandler = defaultLogHandler;\r\n        /**\r\n         * Capture the current instance for later use\r\n         */\r\n        instances.push(this);\r\n    }\r\n    Object.defineProperty(Logger.prototype, \"logLevel\", {\r\n        get: function () {\r\n            return this._logLevel;\r\n        },\r\n        set: function (val) {\r\n            if (!(val in LogLevel)) {\r\n                throw new TypeError('Invalid value assigned to `logLevel`');\r\n            }\r\n            this._logLevel = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Logger.prototype, \"logHandler\", {\r\n        get: function () {\r\n            return this._logHandler;\r\n        },\r\n        set: function (val) {\r\n            if (typeof val !== 'function') {\r\n                throw new TypeError('Value assigned to `logHandler` must be a function');\r\n            }\r\n            this._logHandler = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * The functions below are all based on the `console` interface\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        this._logHandler.apply(this, [this, LogLevel.DEBUG].concat(args));\r\n    };\r\n    Logger.prototype.log = 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        this._logHandler.apply(this, [this, LogLevel.VERBOSE].concat(args));\r\n    };\r\n    Logger.prototype.info = 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        this._logHandler.apply(this, [this, LogLevel.INFO].concat(args));\r\n    };\r\n    Logger.prototype.warn = 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        this._logHandler.apply(this, [this, LogLevel.WARN].concat(args));\r\n    };\r\n    Logger.prototype.error = 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        this._logHandler.apply(this, [this, LogLevel.ERROR].concat(args));\r\n    };\r\n    return Logger;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction setLogLevel(level) {\r\n    instances.forEach(function (inst) {\r\n        inst.logLevel = level;\r\n    });\r\n}\n\nexport { setLogLevel, Logger, LogLevel };\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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar util = require('@firebase/util');\nvar logger = require('@firebase/logger');\nvar tslib_1 = require('tslib');\nvar firebase = _interopDefault(require('@firebase/app'));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Wraps a DOM Storage object and:\r\n * - automatically encode objects as JSON strings before storing them to allow us to store arbitrary types.\r\n * - prefixes names with \"firebase:\" to avoid collisions with app data.\r\n *\r\n * We automatically (see storage.js) create two such wrappers, one for sessionStorage,\r\n * and one for localStorage.\r\n *\r\n * @constructor\r\n */\r\nvar DOMStorageWrapper = /** @class */ (function () {\r\n    /**\r\n     * @param {Storage} domStorage_ The underlying storage object (e.g. localStorage or sessionStorage)\r\n     */\r\n    function DOMStorageWrapper(domStorage_) {\r\n        this.domStorage_ = domStorage_;\r\n        // Use a prefix to avoid collisions with other stuff saved by the app.\r\n        this.prefix_ = 'firebase:';\r\n    }\r\n    /**\r\n     * @param {string} key The key to save the value under\r\n     * @param {?Object} value The value being stored, or null to remove the key.\r\n     */\r\n    DOMStorageWrapper.prototype.set = function (key, value) {\r\n        if (value == null) {\r\n            this.domStorage_.removeItem(this.prefixedName_(key));\r\n        }\r\n        else {\r\n            this.domStorage_.setItem(this.prefixedName_(key), util.stringify(value));\r\n        }\r\n    };\r\n    /**\r\n     * @param {string} key\r\n     * @return {*} The value that was stored under this key, or null\r\n     */\r\n    DOMStorageWrapper.prototype.get = function (key) {\r\n        var storedVal = this.domStorage_.getItem(this.prefixedName_(key));\r\n        if (storedVal == null) {\r\n            return null;\r\n        }\r\n        else {\r\n            return util.jsonEval(storedVal);\r\n        }\r\n    };\r\n    /**\r\n     * @param {string} key\r\n     */\r\n    DOMStorageWrapper.prototype.remove = function (key) {\r\n        this.domStorage_.removeItem(this.prefixedName_(key));\r\n    };\r\n    /**\r\n     * @param {string} name\r\n     * @return {string}\r\n     */\r\n    DOMStorageWrapper.prototype.prefixedName_ = function (name) {\r\n        return this.prefix_ + name;\r\n    };\r\n    DOMStorageWrapper.prototype.toString = function () {\r\n        return this.domStorage_.toString();\r\n    };\r\n    return DOMStorageWrapper;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An in-memory storage implementation that matches the API of DOMStorageWrapper\r\n * (TODO: create interface for both to implement).\r\n *\r\n * @constructor\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n    function MemoryStorage() {\r\n        this.cache_ = {};\r\n        this.isInMemoryStorage = true;\r\n    }\r\n    MemoryStorage.prototype.set = function (key, value) {\r\n        if (value == null) {\r\n            delete this.cache_[key];\r\n        }\r\n        else {\r\n            this.cache_[key] = value;\r\n        }\r\n    };\r\n    MemoryStorage.prototype.get = function (key) {\r\n        if (util.contains(this.cache_, key)) {\r\n            return this.cache_[key];\r\n        }\r\n        return null;\r\n    };\r\n    MemoryStorage.prototype.remove = function (key) {\r\n        delete this.cache_[key];\r\n    };\r\n    return MemoryStorage;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Helper to create a DOMStorageWrapper or else fall back to MemoryStorage.\r\n * TODO: Once MemoryStorage and DOMStorageWrapper have a shared interface this method annotation should change\r\n * to reflect this type\r\n *\r\n * @param {string} domStorageName Name of the underlying storage object\r\n *   (e.g. 'localStorage' or 'sessionStorage').\r\n * @return {?} Turning off type information until a common interface is defined.\r\n */\r\nvar createStoragefor = function (domStorageName) {\r\n    try {\r\n        // NOTE: just accessing \"localStorage\" or \"window['localStorage']\" may throw a security exception,\r\n        // so it must be inside the try/catch.\r\n        if (typeof window !== 'undefined' &&\r\n            typeof window[domStorageName] !== 'undefined') {\r\n            // Need to test cache. Just because it's here doesn't mean it works\r\n            var domStorage = window[domStorageName];\r\n            domStorage.setItem('firebase:sentinel', 'cache');\r\n            domStorage.removeItem('firebase:sentinel');\r\n            return new DOMStorageWrapper(domStorage);\r\n        }\r\n    }\r\n    catch (e) { }\r\n    // Failed to create wrapper.  Just return in-memory storage.\r\n    // TODO: log?\r\n    return new MemoryStorage();\r\n};\r\n/** A storage object that lasts across sessions */\r\nvar PersistentStorage = createStoragefor('localStorage');\r\n/** A storage object that only lasts one session */\r\nvar SessionStorage = createStoragefor('sessionStorage');\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar logClient = new logger.Logger('@firebase/database');\r\n/**\r\n * Returns a locally-unique ID (generated by just incrementing up from 0 each time its called).\r\n * @type {function(): number} Generated ID.\r\n */\r\nvar LUIDGenerator = (function () {\r\n    var id = 1;\r\n    return function () {\r\n        return id++;\r\n    };\r\n})();\r\n/**\r\n * Sha1 hash of the input string\r\n * @param {!string} str The string to hash\r\n * @return {!string} The resulting hash\r\n */\r\nvar sha1 = function (str) {\r\n    var utf8Bytes = util.stringToByteArray(str);\r\n    var sha1 = new util.Sha1();\r\n    sha1.update(utf8Bytes);\r\n    var sha1Bytes = sha1.digest();\r\n    return util.base64.encodeByteArray(sha1Bytes);\r\n};\r\n/**\r\n * @param {...*} var_args\r\n * @return {string}\r\n * @private\r\n */\r\nvar buildLogMessage_ = function () {\r\n    var var_args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        var_args[_i] = arguments[_i];\r\n    }\r\n    var message = '';\r\n    for (var i = 0; i < var_args.length; i++) {\r\n        if (Array.isArray(var_args[i]) ||\r\n            (var_args[i] &&\r\n                typeof var_args[i] === 'object' &&\r\n                typeof var_args[i].length === 'number')) {\r\n            message += buildLogMessage_.apply(null, var_args[i]);\r\n        }\r\n        else if (typeof var_args[i] === 'object') {\r\n            message += util.stringify(var_args[i]);\r\n        }\r\n        else {\r\n            message += var_args[i];\r\n        }\r\n        message += ' ';\r\n    }\r\n    return message;\r\n};\r\n/**\r\n * Use this for all debug messages in Firebase.\r\n * @type {?function(string)}\r\n */\r\nvar logger$1 = null;\r\n/**\r\n * Flag to check for log availability on first log message\r\n * @type {boolean}\r\n * @private\r\n */\r\nvar firstLog_ = true;\r\n/**\r\n * The implementation of Firebase.enableLogging (defined here to break dependencies)\r\n * @param {boolean|?function(string)} logger_ A flag to turn on logging, or a custom logger\r\n * @param {boolean=} persistent Whether or not to persist logging settings across refreshes\r\n */\r\nvar enableLogging = function (logger_, persistent) {\r\n    util.assert(!persistent || (logger_ === true || logger_ === false), \"Can't turn on custom loggers persistently.\");\r\n    if (logger_ === true) {\r\n        logClient.logLevel = logger.LogLevel.VERBOSE;\r\n        logger$1 = logClient.log.bind(logClient);\r\n        if (persistent)\r\n            SessionStorage.set('logging_enabled', true);\r\n    }\r\n    else if (typeof logger_ === 'function') {\r\n        logger$1 = logger_;\r\n    }\r\n    else {\r\n        logger$1 = null;\r\n        SessionStorage.remove('logging_enabled');\r\n    }\r\n};\r\n/**\r\n *\r\n * @param {...(string|Arguments)} var_args\r\n */\r\nvar log = function () {\r\n    var var_args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        var_args[_i] = arguments[_i];\r\n    }\r\n    if (firstLog_ === true) {\r\n        firstLog_ = false;\r\n        if (logger$1 === null && SessionStorage.get('logging_enabled') === true)\r\n            enableLogging(true);\r\n    }\r\n    if (logger$1) {\r\n        var message = buildLogMessage_.apply(null, var_args);\r\n        logger$1(message);\r\n    }\r\n};\r\n/**\r\n * @param {!string} prefix\r\n * @return {function(...[*])}\r\n */\r\nvar logWrapper = function (prefix) {\r\n    return function () {\r\n        var var_args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            var_args[_i] = arguments[_i];\r\n        }\r\n        log.apply(void 0, [prefix].concat(var_args));\r\n    };\r\n};\r\n/**\r\n * @param {...string} var_args\r\n */\r\nvar error = function () {\r\n    var var_args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        var_args[_i] = arguments[_i];\r\n    }\r\n    var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, var_args);\r\n    logClient.error(message);\r\n};\r\n/**\r\n * @param {...string} var_args\r\n */\r\nvar fatal = function () {\r\n    var var_args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        var_args[_i] = arguments[_i];\r\n    }\r\n    var message = \"FIREBASE FATAL ERROR: \" + buildLogMessage_.apply(void 0, var_args);\r\n    logClient.error(message);\r\n    throw new Error(message);\r\n};\r\n/**\r\n * @param {...*} var_args\r\n */\r\nvar warn = function () {\r\n    var var_args = [];\r\n    for (var _i = 0; _i < arguments.length; _i++) {\r\n        var_args[_i] = arguments[_i];\r\n    }\r\n    var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, var_args);\r\n    logClient.warn(message);\r\n};\r\n/**\r\n * Logs a warning if the containing page uses https. Called when a call to new Firebase\r\n * does not use https.\r\n */\r\nvar warnIfPageIsSecure = function () {\r\n    // Be very careful accessing browser globals. Who knows what may or may not exist.\r\n    if (typeof window !== 'undefined' &&\r\n        window.location &&\r\n        window.location.protocol &&\r\n        window.location.protocol.indexOf('https:') !== -1) {\r\n        warn('Insecure Firebase access from a secure page. ' +\r\n            'Please use https in calls to new Firebase().');\r\n    }\r\n};\r\n/**\r\n * Returns true if data is NaN, or +/- Infinity.\r\n * @param {*} data\r\n * @return {boolean}\r\n */\r\nvar isInvalidJSONNumber = function (data) {\r\n    return (typeof data === 'number' &&\r\n        (data != data || // NaN\r\n            data == Number.POSITIVE_INFINITY ||\r\n            data == Number.NEGATIVE_INFINITY));\r\n};\r\n/**\r\n * @param {function()} fn\r\n */\r\nvar executeWhenDOMReady = function (fn) {\r\n    if (util.isNodeSdk() || document.readyState === 'complete') {\r\n        fn();\r\n    }\r\n    else {\r\n        // Modeled after jQuery. Try DOMContentLoaded and onreadystatechange (which\r\n        // fire before onload), but fall back to onload.\r\n        var called_1 = false;\r\n        var wrappedFn_1 = function () {\r\n            if (!document.body) {\r\n                setTimeout(wrappedFn_1, Math.floor(10));\r\n                return;\r\n            }\r\n            if (!called_1) {\r\n                called_1 = true;\r\n                fn();\r\n            }\r\n        };\r\n        if (document.addEventListener) {\r\n            document.addEventListener('DOMContentLoaded', wrappedFn_1, false);\r\n            // fallback to onload.\r\n            window.addEventListener('load', wrappedFn_1, false);\r\n        }\r\n        else if (document.attachEvent) {\r\n            // IE.\r\n            document.attachEvent('onreadystatechange', function () {\r\n                if (document.readyState === 'complete')\r\n                    wrappedFn_1();\r\n            });\r\n            // fallback to onload.\r\n            window.attachEvent('onload', wrappedFn_1);\r\n            // jQuery has an extra hack for IE that we could employ (based on\r\n            // http://javascript.nwbox.com/IEContentLoaded/) But it looks really old.\r\n            // I'm hoping we don't need it.\r\n        }\r\n    }\r\n};\r\n/**\r\n * Minimum key name. Invalid for actual data, used as a marker to sort before any valid names\r\n * @type {!string}\r\n */\r\nvar MIN_NAME = '[MIN_NAME]';\r\n/**\r\n * Maximum key name. Invalid for actual data, used as a marker to sort above any valid names\r\n * @type {!string}\r\n */\r\nvar MAX_NAME = '[MAX_NAME]';\r\n/**\r\n * Compares valid Firebase key names, plus min and max name\r\n * @param {!string} a\r\n * @param {!string} b\r\n * @return {!number}\r\n */\r\nvar nameCompare = function (a, b) {\r\n    if (a === b) {\r\n        return 0;\r\n    }\r\n    else if (a === MIN_NAME || b === MAX_NAME) {\r\n        return -1;\r\n    }\r\n    else if (b === MIN_NAME || a === MAX_NAME) {\r\n        return 1;\r\n    }\r\n    else {\r\n        var aAsInt = tryParseInt(a), bAsInt = tryParseInt(b);\r\n        if (aAsInt !== null) {\r\n            if (bAsInt !== null) {\r\n                return aAsInt - bAsInt == 0 ? a.length - b.length : aAsInt - bAsInt;\r\n            }\r\n            else {\r\n                return -1;\r\n            }\r\n        }\r\n        else if (bAsInt !== null) {\r\n            return 1;\r\n        }\r\n        else {\r\n            return a < b ? -1 : 1;\r\n        }\r\n    }\r\n};\r\n/**\r\n * @param {!string} a\r\n * @param {!string} b\r\n * @return {!number} comparison result.\r\n */\r\nvar stringCompare = function (a, b) {\r\n    if (a === b) {\r\n        return 0;\r\n    }\r\n    else if (a < b) {\r\n        return -1;\r\n    }\r\n    else {\r\n        return 1;\r\n    }\r\n};\r\n/**\r\n * @param {string} key\r\n * @param {Object} obj\r\n * @return {*}\r\n */\r\nvar requireKey = function (key, obj) {\r\n    if (obj && key in obj) {\r\n        return obj[key];\r\n    }\r\n    else {\r\n        throw new Error('Missing required key (' + key + ') in object: ' + util.stringify(obj));\r\n    }\r\n};\r\n/**\r\n * @param {*} obj\r\n * @return {string}\r\n */\r\nvar ObjectToUniqueKey = function (obj) {\r\n    if (typeof obj !== 'object' || obj === null)\r\n        return util.stringify(obj);\r\n    var keys = [];\r\n    for (var k in obj) {\r\n        keys.push(k);\r\n    }\r\n    // Export as json, but with the keys sorted.\r\n    keys.sort();\r\n    var key = '{';\r\n    for (var i = 0; i < keys.length; i++) {\r\n        if (i !== 0)\r\n            key += ',';\r\n        key += util.stringify(keys[i]);\r\n        key += ':';\r\n        key += ObjectToUniqueKey(obj[keys[i]]);\r\n    }\r\n    key += '}';\r\n    return key;\r\n};\r\n/**\r\n * Splits a string into a number of smaller segments of maximum size\r\n * @param {!string} str The string\r\n * @param {!number} segsize The maximum number of chars in the string.\r\n * @return {Array.<string>} The string, split into appropriately-sized chunks\r\n */\r\nvar splitStringBySize = function (str, segsize) {\r\n    var len = str.length;\r\n    if (len <= segsize) {\r\n        return [str];\r\n    }\r\n    var dataSegs = [];\r\n    for (var c = 0; c < len; c += segsize) {\r\n        if (c + segsize > len) {\r\n            dataSegs.push(str.substring(c, len));\r\n        }\r\n        else {\r\n            dataSegs.push(str.substring(c, c + segsize));\r\n        }\r\n    }\r\n    return dataSegs;\r\n};\r\n/**\r\n * Apply a function to each (key, value) pair in an object or\r\n * apply a function to each (index, value) pair in an array\r\n * @param {!(Object|Array)} obj The object or array to iterate over\r\n * @param {function(?, ?)} fn The function to apply\r\n */\r\nvar each = function (obj, fn) {\r\n    if (Array.isArray(obj)) {\r\n        for (var i = 0; i < obj.length; ++i) {\r\n            fn(i, obj[i]);\r\n        }\r\n    }\r\n    else {\r\n        /**\r\n         * in the conversion of code we removed the goog.object.forEach\r\n         * function which did a value,key callback. We standardized on\r\n         * a single impl that does a key, value callback. So we invert\r\n         * to not have to touch the `each` code points\r\n         */\r\n        util.forEach(obj, function (key, val) { return fn(val, key); });\r\n    }\r\n};\r\n/**\r\n * Borrowed from http://hg.secondlife.com/llsd/src/tip/js/typedarray.js (MIT License)\r\n * I made one modification at the end and removed the NaN / Infinity\r\n * handling (since it seemed broken [caused an overflow] and we don't need it).  See MJL comments.\r\n * @param {!number} v A double\r\n * @return {string}\r\n */\r\nvar doubleToIEEE754String = function (v) {\r\n    util.assert(!isInvalidJSONNumber(v), 'Invalid JSON number'); // MJL\r\n    var ebits = 11, fbits = 52;\r\n    var bias = (1 << (ebits - 1)) - 1, s, e, f, ln, i, bits, str;\r\n    // Compute sign, exponent, fraction\r\n    // Skip NaN / Infinity handling --MJL.\r\n    if (v === 0) {\r\n        e = 0;\r\n        f = 0;\r\n        s = 1 / v === -Infinity ? 1 : 0;\r\n    }\r\n    else {\r\n        s = v < 0;\r\n        v = Math.abs(v);\r\n        if (v >= Math.pow(2, 1 - bias)) {\r\n            // Normalized\r\n            ln = Math.min(Math.floor(Math.log(v) / Math.LN2), bias);\r\n            e = ln + bias;\r\n            f = Math.round(v * Math.pow(2, fbits - ln) - Math.pow(2, fbits));\r\n        }\r\n        else {\r\n            // Denormalized\r\n            e = 0;\r\n            f = Math.round(v / Math.pow(2, 1 - bias - fbits));\r\n        }\r\n    }\r\n    // Pack sign, exponent, fraction\r\n    bits = [];\r\n    for (i = fbits; i; i -= 1) {\r\n        bits.push(f % 2 ? 1 : 0);\r\n        f = Math.floor(f / 2);\r\n    }\r\n    for (i = ebits; i; i -= 1) {\r\n        bits.push(e % 2 ? 1 : 0);\r\n        e = Math.floor(e / 2);\r\n    }\r\n    bits.push(s ? 1 : 0);\r\n    bits.reverse();\r\n    str = bits.join('');\r\n    // Return the data as a hex string. --MJL\r\n    var hexByteString = '';\r\n    for (i = 0; i < 64; i += 8) {\r\n        var hexByte = parseInt(str.substr(i, 8), 2).toString(16);\r\n        if (hexByte.length === 1)\r\n            hexByte = '0' + hexByte;\r\n        hexByteString = hexByteString + hexByte;\r\n    }\r\n    return hexByteString.toLowerCase();\r\n};\r\n/**\r\n * Used to detect if we're in a Chrome content script (which executes in an\r\n * isolated environment where long-polling doesn't work).\r\n * @return {boolean}\r\n */\r\nvar isChromeExtensionContentScript = function () {\r\n    return !!(typeof window === 'object' &&\r\n        window['chrome'] &&\r\n        window['chrome']['extension'] &&\r\n        !/^chrome/.test(window.location.href));\r\n};\r\n/**\r\n * Used to detect if we're in a Windows 8 Store app.\r\n * @return {boolean}\r\n */\r\nvar isWindowsStoreApp = function () {\r\n    // Check for the presence of a couple WinRT globals\r\n    return typeof Windows === 'object' && typeof Windows.UI === 'object';\r\n};\r\n/**\r\n * Converts a server error code to a Javascript Error\r\n * @param {!string} code\r\n * @param {!Query} query\r\n * @return {Error}\r\n */\r\nvar errorForServerCode = function (code, query) {\r\n    var reason = 'Unknown Error';\r\n    if (code === 'too_big') {\r\n        reason =\r\n            'The data requested exceeds the maximum size ' +\r\n                'that can be accessed with a single request.';\r\n    }\r\n    else if (code == 'permission_denied') {\r\n        reason = \"Client doesn't have permission to access the desired data.\";\r\n    }\r\n    else if (code == 'unavailable') {\r\n        reason = 'The service is unavailable';\r\n    }\r\n    var error = new Error(code + ' at ' + query.path.toString() + ': ' + reason);\r\n    error.code = code.toUpperCase();\r\n    return error;\r\n};\r\n/**\r\n * Used to test for integer-looking strings\r\n * @type {RegExp}\r\n * @private\r\n */\r\nvar INTEGER_REGEXP_ = new RegExp('^-?\\\\d{1,10}$');\r\n/**\r\n * If the string contains a 32-bit integer, return it.  Else return null.\r\n * @param {!string} str\r\n * @return {?number}\r\n */\r\nvar tryParseInt = function (str) {\r\n    if (INTEGER_REGEXP_.test(str)) {\r\n        var intVal = Number(str);\r\n        if (intVal >= -2147483648 && intVal <= 2147483647) {\r\n            return intVal;\r\n        }\r\n    }\r\n    return null;\r\n};\r\n/**\r\n * Helper to run some code but catch any exceptions and re-throw them later.\r\n * Useful for preventing user callbacks from breaking internal code.\r\n *\r\n * Re-throwing the exception from a setTimeout is a little evil, but it's very\r\n * convenient (we don't have to try to figure out when is a safe point to\r\n * re-throw it), and the behavior seems reasonable:\r\n *\r\n * * If you aren't pausing on exceptions, you get an error in the console with\r\n *   the correct stack trace.\r\n * * If you're pausing on all exceptions, the debugger will pause on your\r\n *   exception and then again when we rethrow it.\r\n * * If you're only pausing on uncaught exceptions, the debugger will only pause\r\n *   on us re-throwing it.\r\n *\r\n * @param {!function()} fn The code to guard.\r\n */\r\nvar exceptionGuard = function (fn) {\r\n    try {\r\n        fn();\r\n    }\r\n    catch (e) {\r\n        // Re-throw exception when it's safe.\r\n        setTimeout(function () {\r\n            // It used to be that \"throw e\" would result in a good console error with\r\n            // relevant context, but as of Chrome 39, you just get the firebase.js\r\n            // file/line number where we re-throw it, which is useless. So we log\r\n            // e.stack explicitly.\r\n            var stack = e.stack || '';\r\n            warn('Exception was thrown by user callback.', stack);\r\n            throw e;\r\n        }, Math.floor(0));\r\n    }\r\n};\r\n/**\r\n * @return {boolean} true if we think we're currently being crawled.\r\n */\r\nvar beingCrawled = function () {\r\n    var userAgent = (typeof window === 'object' &&\r\n        window['navigator'] &&\r\n        window['navigator']['userAgent']) ||\r\n        '';\r\n    // For now we whitelist the most popular crawlers.  We should refine this to be the set of crawlers we\r\n    // believe to support JavaScript/AJAX rendering.\r\n    // NOTE: Google Webmaster Tools doesn't really belong, but their \"This is how a visitor to your website\r\n    // would have seen the page\" is flaky if we don't treat it as a crawler.\r\n    return (userAgent.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i) >= 0);\r\n};\r\n/**\r\n * Same as setTimeout() except on Node.JS it will /not/ prevent the process from exiting.\r\n *\r\n * It is removed with clearTimeout() as normal.\r\n *\r\n * @param {Function} fn Function to run.\r\n * @param {number} time Milliseconds to wait before running.\r\n * @return {number|Object} The setTimeout() return value.\r\n */\r\nvar setTimeoutNonBlocking = function (fn, time) {\r\n    var timeout = setTimeout(fn, time);\r\n    if (typeof timeout === 'object' && timeout['unref']) {\r\n        timeout['unref']();\r\n    }\r\n    return timeout;\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An immutable object representing a parsed path.  It's immutable so that you\r\n * can pass them around to other functions without worrying about them changing\r\n * it.\r\n */\r\nvar Path = /** @class */ (function () {\r\n    /**\r\n     * @param {string|Array.<string>} pathOrString Path string to parse,\r\n     *      or another path, or the raw tokens array\r\n     * @param {number=} pieceNum\r\n     */\r\n    function Path(pathOrString, pieceNum) {\r\n        if (pieceNum === void 0) {\r\n            this.pieces_ = pathOrString.split('/');\r\n            // Remove empty pieces.\r\n            var copyTo = 0;\r\n            for (var i = 0; i < this.pieces_.length; i++) {\r\n                if (this.pieces_[i].length > 0) {\r\n                    this.pieces_[copyTo] = this.pieces_[i];\r\n                    copyTo++;\r\n                }\r\n            }\r\n            this.pieces_.length = copyTo;\r\n            this.pieceNum_ = 0;\r\n        }\r\n        else {\r\n            this.pieces_ = pathOrString;\r\n            this.pieceNum_ = pieceNum;\r\n        }\r\n    }\r\n    Object.defineProperty(Path, \"Empty\", {\r\n        /**\r\n         * Singleton to represent an empty path\r\n         *\r\n         * @const\r\n         */\r\n        get: function () {\r\n            return new Path('');\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Path.prototype.getFront = function () {\r\n        if (this.pieceNum_ >= this.pieces_.length)\r\n            return null;\r\n        return this.pieces_[this.pieceNum_];\r\n    };\r\n    /**\r\n     * @return {number} The number of segments in this path\r\n     */\r\n    Path.prototype.getLength = function () {\r\n        return this.pieces_.length - this.pieceNum_;\r\n    };\r\n    /**\r\n     * @return {!Path}\r\n     */\r\n    Path.prototype.popFront = function () {\r\n        var pieceNum = this.pieceNum_;\r\n        if (pieceNum < this.pieces_.length) {\r\n            pieceNum++;\r\n        }\r\n        return new Path(this.pieces_, pieceNum);\r\n    };\r\n    /**\r\n     * @return {?string}\r\n     */\r\n    Path.prototype.getBack = function () {\r\n        if (this.pieceNum_ < this.pieces_.length)\r\n            return this.pieces_[this.pieces_.length - 1];\r\n        return null;\r\n    };\r\n    Path.prototype.toString = function () {\r\n        var pathString = '';\r\n        for (var i = this.pieceNum_; i < this.pieces_.length; i++) {\r\n            if (this.pieces_[i] !== '')\r\n                pathString += '/' + this.pieces_[i];\r\n        }\r\n        return pathString || '/';\r\n    };\r\n    Path.prototype.toUrlEncodedString = function () {\r\n        var pathString = '';\r\n        for (var i = this.pieceNum_; i < this.pieces_.length; i++) {\r\n            if (this.pieces_[i] !== '')\r\n                pathString += '/' + encodeURIComponent(String(this.pieces_[i]));\r\n        }\r\n        return pathString || '/';\r\n    };\r\n    /**\r\n     * Shallow copy of the parts of the path.\r\n     *\r\n     * @param {number=} begin\r\n     * @return {!Array<string>}\r\n     */\r\n    Path.prototype.slice = function (begin) {\r\n        if (begin === void 0) { begin = 0; }\r\n        return this.pieces_.slice(this.pieceNum_ + begin);\r\n    };\r\n    /**\r\n     * @return {?Path}\r\n     */\r\n    Path.prototype.parent = function () {\r\n        if (this.pieceNum_ >= this.pieces_.length)\r\n            return null;\r\n        var pieces = [];\r\n        for (var i = this.pieceNum_; i < this.pieces_.length - 1; i++)\r\n            pieces.push(this.pieces_[i]);\r\n        return new Path(pieces, 0);\r\n    };\r\n    /**\r\n     * @param {string|!Path} childPathObj\r\n     * @return {!Path}\r\n     */\r\n    Path.prototype.child = function (childPathObj) {\r\n        var pieces = [];\r\n        for (var i = this.pieceNum_; i < this.pieces_.length; i++)\r\n            pieces.push(this.pieces_[i]);\r\n        if (childPathObj instanceof Path) {\r\n            for (var i = childPathObj.pieceNum_; i < childPathObj.pieces_.length; i++) {\r\n                pieces.push(childPathObj.pieces_[i]);\r\n            }\r\n        }\r\n        else {\r\n            var childPieces = childPathObj.split('/');\r\n            for (var i = 0; i < childPieces.length; i++) {\r\n                if (childPieces[i].length > 0)\r\n                    pieces.push(childPieces[i]);\r\n            }\r\n        }\r\n        return new Path(pieces, 0);\r\n    };\r\n    /**\r\n     * @return {boolean} True if there are no segments in this path\r\n     */\r\n    Path.prototype.isEmpty = function () {\r\n        return this.pieceNum_ >= this.pieces_.length;\r\n    };\r\n    /**\r\n     * @param {!Path} outerPath\r\n     * @param {!Path} innerPath\r\n     * @return {!Path} The path from outerPath to innerPath\r\n     */\r\n    Path.relativePath = function (outerPath, innerPath) {\r\n        var outer = outerPath.getFront(), inner = innerPath.getFront();\r\n        if (outer === null) {\r\n            return innerPath;\r\n        }\r\n        else if (outer === inner) {\r\n            return Path.relativePath(outerPath.popFront(), innerPath.popFront());\r\n        }\r\n        else {\r\n            throw new Error('INTERNAL ERROR: innerPath (' +\r\n                innerPath +\r\n                ') is not within ' +\r\n                'outerPath (' +\r\n                outerPath +\r\n                ')');\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Path} left\r\n     * @param {!Path} right\r\n     * @return {number} -1, 0, 1 if left is less, equal, or greater than the right.\r\n     */\r\n    Path.comparePaths = function (left, right) {\r\n        var leftKeys = left.slice();\r\n        var rightKeys = right.slice();\r\n        for (var i = 0; i < leftKeys.length && i < rightKeys.length; i++) {\r\n            var cmp = nameCompare(leftKeys[i], rightKeys[i]);\r\n            if (cmp !== 0)\r\n                return cmp;\r\n        }\r\n        if (leftKeys.length === rightKeys.length)\r\n            return 0;\r\n        return leftKeys.length < rightKeys.length ? -1 : 1;\r\n    };\r\n    /**\r\n     *\r\n     * @param {Path} other\r\n     * @return {boolean} true if paths are the same.\r\n     */\r\n    Path.prototype.equals = function (other) {\r\n        if (this.getLength() !== other.getLength()) {\r\n            return false;\r\n        }\r\n        for (var i = this.pieceNum_, j = other.pieceNum_; i <= this.pieces_.length; i++, j++) {\r\n            if (this.pieces_[i] !== other.pieces_[j]) {\r\n                return false;\r\n            }\r\n        }\r\n        return true;\r\n    };\r\n    /**\r\n     *\r\n     * @param {!Path} other\r\n     * @return {boolean} True if this path is a parent (or the same as) other\r\n     */\r\n    Path.prototype.contains = function (other) {\r\n        var i = this.pieceNum_;\r\n        var j = other.pieceNum_;\r\n        if (this.getLength() > other.getLength()) {\r\n            return false;\r\n        }\r\n        while (i < this.pieces_.length) {\r\n            if (this.pieces_[i] !== other.pieces_[j]) {\r\n                return false;\r\n            }\r\n            ++i;\r\n            ++j;\r\n        }\r\n        return true;\r\n    };\r\n    return Path;\r\n}()); // end Path\r\n/**\r\n * Dynamic (mutable) path used to count path lengths.\r\n *\r\n * This class is used to efficiently check paths for valid\r\n * length (in UTF8 bytes) and depth (used in path validation).\r\n *\r\n * Throws Error exception if path is ever invalid.\r\n *\r\n * The definition of a path always begins with '/'.\r\n */\r\nvar ValidationPath = /** @class */ (function () {\r\n    /**\r\n     * @param {!Path} path Initial Path.\r\n     * @param {string} errorPrefix_ Prefix for any error messages.\r\n     */\r\n    function ValidationPath(path, errorPrefix_) {\r\n        this.errorPrefix_ = errorPrefix_;\r\n        /** @type {!Array<string>} */\r\n        this.parts_ = path.slice();\r\n        /** @type {number} Initialize to number of '/' chars needed in path. */\r\n        this.byteLength_ = Math.max(1, this.parts_.length);\r\n        for (var i = 0; i < this.parts_.length; i++) {\r\n            this.byteLength_ += util.stringLength(this.parts_[i]);\r\n        }\r\n        this.checkValid_();\r\n    }\r\n    Object.defineProperty(ValidationPath, \"MAX_PATH_DEPTH\", {\r\n        /** @const {number} Maximum key depth. */\r\n        get: function () {\r\n            return 32;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(ValidationPath, \"MAX_PATH_LENGTH_BYTES\", {\r\n        /** @const {number} Maximum number of (UTF8) bytes in a Firebase path. */\r\n        get: function () {\r\n            return 768;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /** @param {string} child */\r\n    ValidationPath.prototype.push = function (child) {\r\n        // Count the needed '/'\r\n        if (this.parts_.length > 0) {\r\n            this.byteLength_ += 1;\r\n        }\r\n        this.parts_.push(child);\r\n        this.byteLength_ += util.stringLength(child);\r\n        this.checkValid_();\r\n    };\r\n    ValidationPath.prototype.pop = function () {\r\n        var last = this.parts_.pop();\r\n        this.byteLength_ -= util.stringLength(last);\r\n        // Un-count the previous '/'\r\n        if (this.parts_.length > 0) {\r\n            this.byteLength_ -= 1;\r\n        }\r\n    };\r\n    ValidationPath.prototype.checkValid_ = function () {\r\n        if (this.byteLength_ > ValidationPath.MAX_PATH_LENGTH_BYTES) {\r\n            throw new Error(this.errorPrefix_ +\r\n                'has a key path longer than ' +\r\n                ValidationPath.MAX_PATH_LENGTH_BYTES +\r\n                ' bytes (' +\r\n                this.byteLength_ +\r\n                ').');\r\n        }\r\n        if (this.parts_.length > ValidationPath.MAX_PATH_DEPTH) {\r\n            throw new Error(this.errorPrefix_ +\r\n                'path specified exceeds the maximum depth that can be written (' +\r\n                ValidationPath.MAX_PATH_DEPTH +\r\n                ') or object contains a cycle ' +\r\n                this.toErrorString());\r\n        }\r\n    };\r\n    /**\r\n     * String for use in error messages - uses '.' notation for path.\r\n     *\r\n     * @return {string}\r\n     */\r\n    ValidationPath.prototype.toErrorString = function () {\r\n        if (this.parts_.length == 0) {\r\n            return '';\r\n        }\r\n        return \"in property '\" + this.parts_.join('.') + \"'\";\r\n    };\r\n    return ValidationPath;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PROTOCOL_VERSION = '5';\r\nvar VERSION_PARAM = 'v';\r\nvar TRANSPORT_SESSION_PARAM = 's';\r\nvar REFERER_PARAM = 'r';\r\nvar FORGE_REF = 'f';\r\nvar FORGE_DOMAIN = 'firebaseio.com';\r\nvar LAST_SESSION_PARAM = 'ls';\r\nvar WEBSOCKET = 'websocket';\r\nvar LONG_POLLING = 'long_polling';\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A class that holds metadata about a Repo object\r\n *\r\n * @constructor\r\n */\r\nvar RepoInfo = /** @class */ (function () {\r\n    /**\r\n     * @param {string} host Hostname portion of the url for the repo\r\n     * @param {boolean} secure Whether or not this repo is accessed over ssl\r\n     * @param {string} namespace The namespace represented by the repo\r\n     * @param {boolean} webSocketOnly Whether to prefer websockets over all other transports (used by Nest).\r\n     * @param {string=} persistenceKey Override the default session persistence storage key\r\n     */\r\n    function RepoInfo(host, secure, namespace, webSocketOnly, persistenceKey) {\r\n        if (persistenceKey === void 0) { persistenceKey = ''; }\r\n        this.secure = secure;\r\n        this.namespace = namespace;\r\n        this.webSocketOnly = webSocketOnly;\r\n        this.persistenceKey = persistenceKey;\r\n        this.host = host.toLowerCase();\r\n        this.domain = this.host.substr(this.host.indexOf('.') + 1);\r\n        this.internalHost = PersistentStorage.get('host:' + host) || this.host;\r\n    }\r\n    RepoInfo.prototype.needsQueryParam = function () {\r\n        return this.host !== this.internalHost || this.isCustomHost();\r\n    };\r\n    RepoInfo.prototype.isCacheableHost = function () {\r\n        return this.internalHost.substr(0, 2) === 's-';\r\n    };\r\n    RepoInfo.prototype.isDemoHost = function () {\r\n        return this.domain === 'firebaseio-demo.com';\r\n    };\r\n    RepoInfo.prototype.isCustomHost = function () {\r\n        return (this.domain !== 'firebaseio.com' && this.domain !== 'firebaseio-demo.com');\r\n    };\r\n    RepoInfo.prototype.updateHost = function (newHost) {\r\n        if (newHost !== this.internalHost) {\r\n            this.internalHost = newHost;\r\n            if (this.isCacheableHost()) {\r\n                PersistentStorage.set('host:' + this.host, this.internalHost);\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns the websocket URL for this repo\r\n     * @param {string} type of connection\r\n     * @param {Object} params list\r\n     * @return {string} The URL for this repo\r\n     */\r\n    RepoInfo.prototype.connectionURL = function (type, params) {\r\n        util.assert(typeof type === 'string', 'typeof type must == string');\r\n        util.assert(typeof params === 'object', 'typeof params must == object');\r\n        var connURL;\r\n        if (type === WEBSOCKET) {\r\n            connURL =\r\n                (this.secure ? 'wss://' : 'ws://') + this.internalHost + '/.ws?';\r\n        }\r\n        else if (type === LONG_POLLING) {\r\n            connURL =\r\n                (this.secure ? 'https://' : 'http://') + this.internalHost + '/.lp?';\r\n        }\r\n        else {\r\n            throw new Error('Unknown connection type: ' + type);\r\n        }\r\n        if (this.needsQueryParam()) {\r\n            params['ns'] = this.namespace;\r\n        }\r\n        var pairs = [];\r\n        util.forEach(params, function (key, value) {\r\n            pairs.push(key + '=' + value);\r\n        });\r\n        return connURL + pairs.join('&');\r\n    };\r\n    /** @return {string} */\r\n    RepoInfo.prototype.toString = function () {\r\n        var str = this.toURLString();\r\n        if (this.persistenceKey) {\r\n            str += '<' + this.persistenceKey + '>';\r\n        }\r\n        return str;\r\n    };\r\n    /** @return {string} */\r\n    RepoInfo.prototype.toURLString = function () {\r\n        return (this.secure ? 'https://' : 'http://') + this.host;\r\n    };\r\n    return RepoInfo;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param {!string} pathString\r\n * @return {string}\r\n */\r\nfunction decodePath(pathString) {\r\n    var pathStringDecoded = '';\r\n    var pieces = pathString.split('/');\r\n    for (var i = 0; i < pieces.length; i++) {\r\n        if (pieces[i].length > 0) {\r\n            var piece = pieces[i];\r\n            try {\r\n                piece = decodeURIComponent(piece.replace(/\\+/g, ' '));\r\n            }\r\n            catch (e) { }\r\n            pathStringDecoded += '/' + piece;\r\n        }\r\n    }\r\n    return pathStringDecoded;\r\n}\r\n/**\r\n * @param {!string} queryString\r\n * @return {!{[key:string]:string}} key value hash\r\n */\r\nfunction decodeQuery(queryString) {\r\n    var results = {};\r\n    if (queryString.charAt(0) === '?') {\r\n        queryString = queryString.substring(1);\r\n    }\r\n    for (var _i = 0, _a = queryString.split('&'); _i < _a.length; _i++) {\r\n        var segment = _a[_i];\r\n        if (segment.length === 0) {\r\n            continue;\r\n        }\r\n        var kv = segment.split('=');\r\n        if (kv.length === 2) {\r\n            results[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1]);\r\n        }\r\n        else {\r\n            warn(\"Invalid query segment '\" + segment + \"' in query '\" + queryString + \"'\");\r\n        }\r\n    }\r\n    return results;\r\n}\r\n/**\r\n *\r\n * @param {!string} dataURL\r\n * @return {{repoInfo: !RepoInfo, path: !Path}}\r\n */\r\nvar parseRepoInfo = function (dataURL) {\r\n    var parsedUrl = parseURL(dataURL), namespace = parsedUrl.subdomain;\r\n    if (parsedUrl.domain === 'firebase') {\r\n        fatal(parsedUrl.host +\r\n            ' is no longer supported. ' +\r\n            'Please use <YOUR FIREBASE>.firebaseio.com instead');\r\n    }\r\n    // Catch common error of uninitialized namespace value.\r\n    if ((!namespace || namespace == 'undefined') &&\r\n        parsedUrl.domain !== 'localhost') {\r\n        fatal('Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com');\r\n    }\r\n    if (!parsedUrl.secure) {\r\n        warnIfPageIsSecure();\r\n    }\r\n    var webSocketOnly = parsedUrl.scheme === 'ws' || parsedUrl.scheme === 'wss';\r\n    return {\r\n        repoInfo: new RepoInfo(parsedUrl.host, parsedUrl.secure, namespace, webSocketOnly),\r\n        path: new Path(parsedUrl.pathString)\r\n    };\r\n};\r\n/**\r\n *\r\n * @param {!string} dataURL\r\n * @return {{host: string, port: number, domain: string, subdomain: string, secure: boolean, scheme: string, pathString: string}}\r\n */\r\nvar parseURL = function (dataURL) {\r\n    // Default to empty strings in the event of a malformed string.\r\n    var host = '', domain = '', subdomain = '', pathString = '';\r\n    // Always default to SSL, unless otherwise specified.\r\n    var secure = true, scheme = 'https', port = 443;\r\n    // Don't do any validation here. The caller is responsible for validating the result of parsing.\r\n    if (typeof dataURL === 'string') {\r\n        // Parse scheme.\r\n        var colonInd = dataURL.indexOf('//');\r\n        if (colonInd >= 0) {\r\n            scheme = dataURL.substring(0, colonInd - 1);\r\n            dataURL = dataURL.substring(colonInd + 2);\r\n        }\r\n        // Parse host, path, and query string.\r\n        var slashInd = dataURL.indexOf('/');\r\n        if (slashInd === -1) {\r\n            slashInd = dataURL.length;\r\n        }\r\n        var questionMarkInd = dataURL.indexOf('?');\r\n        if (questionMarkInd === -1) {\r\n            questionMarkInd = dataURL.length;\r\n        }\r\n        host = dataURL.substring(0, Math.min(slashInd, questionMarkInd));\r\n        if (slashInd < questionMarkInd) {\r\n            // For pathString, questionMarkInd will always come after slashInd\r\n            pathString = decodePath(dataURL.substring(slashInd, questionMarkInd));\r\n        }\r\n        var queryParams = decodeQuery(dataURL.substring(Math.min(dataURL.length, questionMarkInd)));\r\n        // If we have a port, use scheme for determining if it's secure.\r\n        colonInd = host.indexOf(':');\r\n        if (colonInd >= 0) {\r\n            secure = scheme === 'https' || scheme === 'wss';\r\n            port = parseInt(host.substring(colonInd + 1), 10);\r\n        }\r\n        else {\r\n            colonInd = dataURL.length;\r\n        }\r\n        var parts = host.split('.');\r\n        if (parts.length === 3) {\r\n            // Normalize namespaces to lowercase to share storage / connection.\r\n            domain = parts[1];\r\n            subdomain = parts[0].toLowerCase();\r\n        }\r\n        else if (parts.length === 2) {\r\n            domain = parts[0];\r\n        }\r\n        else if (parts[0].slice(0, colonInd).toLowerCase() === 'localhost') {\r\n            domain = 'localhost';\r\n        }\r\n        // Support `ns` query param if subdomain not already set\r\n        if (subdomain === '' && 'ns' in queryParams) {\r\n            subdomain = queryParams['ns'];\r\n        }\r\n    }\r\n    return {\r\n        host: host,\r\n        port: port,\r\n        domain: domain,\r\n        subdomain: subdomain,\r\n        secure: secure,\r\n        scheme: scheme,\r\n        pathString: pathString\r\n    };\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * True for invalid Firebase keys\r\n * @type {RegExp}\r\n * @private\r\n */\r\nvar INVALID_KEY_REGEX_ = /[\\[\\].#$\\/\\u0000-\\u001F\\u007F]/;\r\n/**\r\n * True for invalid Firebase paths.\r\n * Allows '/' in paths.\r\n * @type {RegExp}\r\n * @private\r\n */\r\nvar INVALID_PATH_REGEX_ = /[\\[\\].#$\\u0000-\\u001F\\u007F]/;\r\n/**\r\n * Maximum number of characters to allow in leaf value\r\n * @type {number}\r\n * @private\r\n */\r\nvar MAX_LEAF_SIZE_ = 10 * 1024 * 1024;\r\n/**\r\n * @param {*} key\r\n * @return {boolean}\r\n */\r\nvar isValidKey = function (key) {\r\n    return (typeof key === 'string' && key.length !== 0 && !INVALID_KEY_REGEX_.test(key));\r\n};\r\n/**\r\n * @param {string} pathString\r\n * @return {boolean}\r\n */\r\nvar isValidPathString = function (pathString) {\r\n    return (typeof pathString === 'string' &&\r\n        pathString.length !== 0 &&\r\n        !INVALID_PATH_REGEX_.test(pathString));\r\n};\r\n/**\r\n * @param {string} pathString\r\n * @return {boolean}\r\n */\r\nvar isValidRootPathString = function (pathString) {\r\n    if (pathString) {\r\n        // Allow '/.info/' at the beginning.\r\n        pathString = pathString.replace(/^\\/*\\.info(\\/|$)/, '/');\r\n    }\r\n    return isValidPathString(pathString);\r\n};\r\n/**\r\n * @param {*} priority\r\n * @return {boolean}\r\n */\r\nvar isValidPriority = function (priority) {\r\n    return (priority === null ||\r\n        typeof priority === 'string' ||\r\n        (typeof priority === 'number' && !isInvalidJSONNumber(priority)) ||\r\n        (priority && typeof priority === 'object' && util.contains(priority, '.sv')));\r\n};\r\n/**\r\n * Pre-validate a datum passed as an argument to Firebase function.\r\n *\r\n * @param {string} fnName\r\n * @param {number} argumentNumber\r\n * @param {*} data\r\n * @param {!Path} path\r\n * @param {boolean} optional\r\n */\r\nvar validateFirebaseDataArg = function (fnName, argumentNumber, data, path, optional) {\r\n    if (optional && data === undefined)\r\n        return;\r\n    validateFirebaseData(util.errorPrefix(fnName, argumentNumber, optional), data, path);\r\n};\r\n/**\r\n * Validate a data object client-side before sending to server.\r\n *\r\n * @param {string} errorPrefix\r\n * @param {*} data\r\n * @param {!Path|!ValidationPath} path_\r\n */\r\nvar validateFirebaseData = function (errorPrefix, data, path_) {\r\n    var path = path_ instanceof Path ? new ValidationPath(path_, errorPrefix) : path_;\r\n    if (data === undefined) {\r\n        throw new Error(errorPrefix + 'contains undefined ' + path.toErrorString());\r\n    }\r\n    if (typeof data === 'function') {\r\n        throw new Error(errorPrefix +\r\n            'contains a function ' +\r\n            path.toErrorString() +\r\n            ' with contents = ' +\r\n            data.toString());\r\n    }\r\n    if (isInvalidJSONNumber(data)) {\r\n        throw new Error(errorPrefix + 'contains ' + data.toString() + ' ' + path.toErrorString());\r\n    }\r\n    // Check max leaf size, but try to avoid the utf8 conversion if we can.\r\n    if (typeof data === 'string' &&\r\n        data.length > MAX_LEAF_SIZE_ / 3 &&\r\n        util.stringLength(data) > MAX_LEAF_SIZE_) {\r\n        throw new Error(errorPrefix +\r\n            'contains a string greater than ' +\r\n            MAX_LEAF_SIZE_ +\r\n            ' utf8 bytes ' +\r\n            path.toErrorString() +\r\n            \" ('\" +\r\n            data.substring(0, 50) +\r\n            \"...')\");\r\n    }\r\n    // TODO = Perf = Consider combining the recursive validation of keys into NodeFromJSON\r\n    // to save extra walking of large objects.\r\n    if (data && typeof data === 'object') {\r\n        var hasDotValue_1 = false, hasActualChild_1 = false;\r\n        util.forEach(data, function (key, value) {\r\n            if (key === '.value') {\r\n                hasDotValue_1 = true;\r\n            }\r\n            else if (key !== '.priority' && key !== '.sv') {\r\n                hasActualChild_1 = true;\r\n                if (!isValidKey(key)) {\r\n                    throw new Error(errorPrefix +\r\n                        ' contains an invalid key (' +\r\n                        key +\r\n                        ') ' +\r\n                        path.toErrorString() +\r\n                        '.  Keys must be non-empty strings ' +\r\n                        'and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"');\r\n                }\r\n            }\r\n            path.push(key);\r\n            validateFirebaseData(errorPrefix, value, path);\r\n            path.pop();\r\n        });\r\n        if (hasDotValue_1 && hasActualChild_1) {\r\n            throw new Error(errorPrefix +\r\n                ' contains \".value\" child ' +\r\n                path.toErrorString() +\r\n                ' in addition to actual children.');\r\n        }\r\n    }\r\n};\r\n/**\r\n * Pre-validate paths passed in the firebase function.\r\n *\r\n * @param {string} errorPrefix\r\n * @param {Array<!Path>} mergePaths\r\n */\r\nvar validateFirebaseMergePaths = function (errorPrefix, mergePaths) {\r\n    var i, curPath;\r\n    for (i = 0; i < mergePaths.length; i++) {\r\n        curPath = mergePaths[i];\r\n        var keys = curPath.slice();\r\n        for (var j = 0; j < keys.length; j++) {\r\n            if (keys[j] === '.priority' && j === keys.length - 1) {\r\n                // .priority is OK\r\n            }\r\n            else if (!isValidKey(keys[j])) {\r\n                throw new Error(errorPrefix +\r\n                    'contains an invalid key (' +\r\n                    keys[j] +\r\n                    ') in path ' +\r\n                    curPath.toString() +\r\n                    '. Keys must be non-empty strings ' +\r\n                    'and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"');\r\n            }\r\n        }\r\n    }\r\n    // Check that update keys are not descendants of each other.\r\n    // We rely on the property that sorting guarantees that ancestors come\r\n    // right before descendants.\r\n    mergePaths.sort(Path.comparePaths);\r\n    var prevPath = null;\r\n    for (i = 0; i < mergePaths.length; i++) {\r\n        curPath = mergePaths[i];\r\n        if (prevPath !== null && prevPath.contains(curPath)) {\r\n            throw new Error(errorPrefix +\r\n                'contains a path ' +\r\n                prevPath.toString() +\r\n                ' that is ancestor of another path ' +\r\n                curPath.toString());\r\n        }\r\n        prevPath = curPath;\r\n    }\r\n};\r\n/**\r\n * pre-validate an object passed as an argument to firebase function (\r\n * must be an object - e.g. for firebase.update()).\r\n *\r\n * @param {string} fnName\r\n * @param {number} argumentNumber\r\n * @param {*} data\r\n * @param {!Path} path\r\n * @param {boolean} optional\r\n */\r\nvar validateFirebaseMergeDataArg = function (fnName, argumentNumber, data, path, optional) {\r\n    if (optional && data === undefined)\r\n        return;\r\n    var errorPrefix = util.errorPrefix(fnName, argumentNumber, optional);\r\n    if (!(data && typeof data === 'object') || Array.isArray(data)) {\r\n        throw new Error(errorPrefix + ' must be an object containing the children to replace.');\r\n    }\r\n    var mergePaths = [];\r\n    util.forEach(data, function (key, value) {\r\n        var curPath = new Path(key);\r\n        validateFirebaseData(errorPrefix, value, path.child(curPath));\r\n        if (curPath.getBack() === '.priority') {\r\n            if (!isValidPriority(value)) {\r\n                throw new Error(errorPrefix +\r\n                    \"contains an invalid value for '\" +\r\n                    curPath.toString() +\r\n                    \"', which must be a valid \" +\r\n                    'Firebase priority (a string, finite number, server value, or null).');\r\n            }\r\n        }\r\n        mergePaths.push(curPath);\r\n    });\r\n    validateFirebaseMergePaths(errorPrefix, mergePaths);\r\n};\r\nvar validatePriority = function (fnName, argumentNumber, priority, optional) {\r\n    if (optional && priority === undefined)\r\n        return;\r\n    if (isInvalidJSONNumber(priority))\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, optional) +\r\n            'is ' +\r\n            priority.toString() +\r\n            ', but must be a valid Firebase priority (a string, finite number, ' +\r\n            'server value, or null).');\r\n    // Special case to allow importing data with a .sv.\r\n    if (!isValidPriority(priority))\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, optional) +\r\n            'must be a valid Firebase priority ' +\r\n            '(a string, finite number, server value, or null).');\r\n};\r\nvar validateEventType = function (fnName, argumentNumber, eventType, optional) {\r\n    if (optional && eventType === undefined)\r\n        return;\r\n    switch (eventType) {\r\n        case 'value':\r\n        case 'child_added':\r\n        case 'child_removed':\r\n        case 'child_changed':\r\n        case 'child_moved':\r\n            break;\r\n        default:\r\n            throw new Error(util.errorPrefix(fnName, argumentNumber, optional) +\r\n                'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n                '\"child_changed\", or \"child_moved\".');\r\n    }\r\n};\r\nvar validateKey = function (fnName, argumentNumber, key, optional) {\r\n    if (optional && key === undefined)\r\n        return;\r\n    if (!isValidKey(key))\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, optional) +\r\n            'was an invalid key = \"' +\r\n            key +\r\n            '\".  Firebase keys must be non-empty strings and ' +\r\n            'can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\").');\r\n};\r\nvar validatePathString = function (fnName, argumentNumber, pathString, optional) {\r\n    if (optional && pathString === undefined)\r\n        return;\r\n    if (!isValidPathString(pathString))\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, optional) +\r\n            'was an invalid path = \"' +\r\n            pathString +\r\n            '\". Paths must be non-empty strings and ' +\r\n            'can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\"');\r\n};\r\nvar validateRootPathString = function (fnName, argumentNumber, pathString, optional) {\r\n    if (pathString) {\r\n        // Allow '/.info/' at the beginning.\r\n        pathString = pathString.replace(/^\\/*\\.info(\\/|$)/, '/');\r\n    }\r\n    validatePathString(fnName, argumentNumber, pathString, optional);\r\n};\r\nvar validateWritablePath = function (fnName, path) {\r\n    if (path.getFront() === '.info') {\r\n        throw new Error(fnName + \" failed = Can't modify data under /.info/\");\r\n    }\r\n};\r\nvar validateUrl = function (fnName, argumentNumber, parsedUrl) {\r\n    // TODO = Validate server better.\r\n    var pathString = parsedUrl.path.toString();\r\n    if (!(typeof parsedUrl.repoInfo.host === 'string') ||\r\n        parsedUrl.repoInfo.host.length === 0 ||\r\n        (!isValidKey(parsedUrl.repoInfo.namespace) &&\r\n            parsedUrl.repoInfo.host.split(':')[0] !== 'localhost') ||\r\n        (pathString.length !== 0 && !isValidRootPathString(pathString))) {\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, false) +\r\n            'must be a valid firebase URL and ' +\r\n            'the path can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\".');\r\n    }\r\n};\r\nvar validateBoolean = function (fnName, argumentNumber, bool, optional) {\r\n    if (optional && bool === undefined)\r\n        return;\r\n    if (typeof bool !== 'boolean')\r\n        throw new Error(util.errorPrefix(fnName, argumentNumber, optional) + 'must be a boolean.');\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @constructor\r\n */\r\nvar OnDisconnect = /** @class */ (function () {\r\n    /**\r\n     * @param {!Repo} repo_\r\n     * @param {!Path} path_\r\n     */\r\n    function OnDisconnect(repo_, path_) {\r\n        this.repo_ = repo_;\r\n        this.path_ = path_;\r\n    }\r\n    /**\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!firebase.Promise}\r\n     */\r\n    OnDisconnect.prototype.cancel = function (onComplete) {\r\n        util.validateArgCount('OnDisconnect.cancel', 0, 1, arguments.length);\r\n        util.validateCallback('OnDisconnect.cancel', 1, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo_.onDisconnectCancel(this.path_, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!firebase.Promise}\r\n     */\r\n    OnDisconnect.prototype.remove = function (onComplete) {\r\n        util.validateArgCount('OnDisconnect.remove', 0, 1, arguments.length);\r\n        validateWritablePath('OnDisconnect.remove', this.path_);\r\n        util.validateCallback('OnDisconnect.remove', 1, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo_.onDisconnectSet(this.path_, null, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {*} value\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!firebase.Promise}\r\n     */\r\n    OnDisconnect.prototype.set = function (value, onComplete) {\r\n        util.validateArgCount('OnDisconnect.set', 1, 2, arguments.length);\r\n        validateWritablePath('OnDisconnect.set', this.path_);\r\n        validateFirebaseDataArg('OnDisconnect.set', 1, value, this.path_, false);\r\n        util.validateCallback('OnDisconnect.set', 2, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo_.onDisconnectSet(this.path_, value, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {*} value\r\n     * @param {number|string|null} priority\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!firebase.Promise}\r\n     */\r\n    OnDisconnect.prototype.setWithPriority = function (value, priority, onComplete) {\r\n        util.validateArgCount('OnDisconnect.setWithPriority', 2, 3, arguments.length);\r\n        validateWritablePath('OnDisconnect.setWithPriority', this.path_);\r\n        validateFirebaseDataArg('OnDisconnect.setWithPriority', 1, value, this.path_, false);\r\n        validatePriority('OnDisconnect.setWithPriority', 2, priority, false);\r\n        util.validateCallback('OnDisconnect.setWithPriority', 3, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo_.onDisconnectSetWithPriority(this.path_, value, priority, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {!Object} objectToMerge\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!firebase.Promise}\r\n     */\r\n    OnDisconnect.prototype.update = function (objectToMerge, onComplete) {\r\n        util.validateArgCount('OnDisconnect.update', 1, 2, arguments.length);\r\n        validateWritablePath('OnDisconnect.update', this.path_);\r\n        if (Array.isArray(objectToMerge)) {\r\n            var newObjectToMerge = {};\r\n            for (var i = 0; i < objectToMerge.length; ++i) {\r\n                newObjectToMerge['' + i] = objectToMerge[i];\r\n            }\r\n            objectToMerge = newObjectToMerge;\r\n            warn('Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +\r\n                'existing data, or an Object with integer keys if you really do want to only update some of the children.');\r\n        }\r\n        validateFirebaseMergeDataArg('OnDisconnect.update', 1, objectToMerge, this.path_, false);\r\n        util.validateCallback('OnDisconnect.update', 2, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo_.onDisconnectUpdate(this.path_, objectToMerge, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    return OnDisconnect;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar TransactionResult = /** @class */ (function () {\r\n    /**\r\n     * A type for the resolve value of Firebase.transaction.\r\n     * @constructor\r\n     * @dict\r\n     * @param {boolean} committed\r\n     * @param {DataSnapshot} snapshot\r\n     */\r\n    function TransactionResult(committed, snapshot) {\r\n        this.committed = committed;\r\n        this.snapshot = snapshot;\r\n    }\r\n    // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n    // for end-users\r\n    TransactionResult.prototype.toJSON = function () {\r\n        util.validateArgCount('TransactionResult.toJSON', 0, 1, arguments.length);\r\n        return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n    };\r\n    return TransactionResult;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Fancy ID generator that creates 20-character string identifiers with the\r\n * following properties:\r\n *\r\n * 1. They're based on timestamp so that they sort *after* any existing ids.\r\n * 2. They contain 72-bits of random data after the timestamp so that IDs won't\r\n *    collide with other clients' IDs.\r\n * 3. They sort *lexicographically* (so the timestamp is converted to characters\r\n *    that will sort properly).\r\n * 4. They're monotonically increasing. Even if you generate more than one in\r\n *    the same timestamp, the latter ones will sort after the former ones. We do\r\n *    this by using the previous random bits but \"incrementing\" them by 1 (only\r\n *    in the case of a timestamp collision).\r\n */\r\nvar nextPushId = (function () {\r\n    // Modeled after base64 web-safe chars, but ordered by ASCII.\r\n    var PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';\r\n    // Timestamp of last push, used to prevent local collisions if you push twice\r\n    // in one ms.\r\n    var lastPushTime = 0;\r\n    // We generate 72-bits of randomness which get turned into 12 characters and\r\n    // appended to the timestamp to prevent collisions with other clients. We\r\n    // store the last characters we generated because in the event of a collision,\r\n    // we'll use those same characters except \"incremented\" by one.\r\n    var lastRandChars = [];\r\n    return function (now) {\r\n        var duplicateTime = now === lastPushTime;\r\n        lastPushTime = now;\r\n        var i;\r\n        var timeStampChars = new Array(8);\r\n        for (i = 7; i >= 0; i--) {\r\n            timeStampChars[i] = PUSH_CHARS.charAt(now % 64);\r\n            // NOTE: Can't use << here because javascript will convert to int and lose\r\n            // the upper bits.\r\n            now = Math.floor(now / 64);\r\n        }\r\n        util.assert(now === 0, 'Cannot push at time == 0');\r\n        var id = timeStampChars.join('');\r\n        if (!duplicateTime) {\r\n            for (i = 0; i < 12; i++) {\r\n                lastRandChars[i] = Math.floor(Math.random() * 64);\r\n            }\r\n        }\r\n        else {\r\n            // If the timestamp hasn't changed since last push, use the same random\r\n            // number, except incremented by 1.\r\n            for (i = 11; i >= 0 && lastRandChars[i] === 63; i--) {\r\n                lastRandChars[i] = 0;\r\n            }\r\n            lastRandChars[i]++;\r\n        }\r\n        for (i = 0; i < 12; i++) {\r\n            id += PUSH_CHARS.charAt(lastRandChars[i]);\r\n        }\r\n        util.assert(id.length === 20, 'nextPushId: Length should be 20.');\r\n        return id;\r\n    };\r\n})();\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n *\r\n * @param {!string} name\r\n * @param {!Node} node\r\n * @constructor\r\n * @struct\r\n */\r\nvar NamedNode = /** @class */ (function () {\r\n    function NamedNode(name, node) {\r\n        this.name = name;\r\n        this.node = node;\r\n    }\r\n    /**\r\n     *\r\n     * @param {!string} name\r\n     * @param {!Node} node\r\n     * @return {NamedNode}\r\n     */\r\n    NamedNode.Wrap = function (name, node) {\r\n        return new NamedNode(name, node);\r\n    };\r\n    return NamedNode;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n *\r\n * @constructor\r\n */\r\nvar Index = /** @class */ (function () {\r\n    function Index() {\r\n    }\r\n    /**\r\n     * @return {function(!NamedNode, !NamedNode):number} A standalone comparison function for\r\n     * this index\r\n     */\r\n    Index.prototype.getCompare = function () {\r\n        return this.compare.bind(this);\r\n    };\r\n    /**\r\n     * Given a before and after value for a node, determine if the indexed value has changed. Even if they are different,\r\n     * it's possible that the changes are isolated to parts of the snapshot that are not indexed.\r\n     *\r\n     * @param {!Node} oldNode\r\n     * @param {!Node} newNode\r\n     * @return {boolean} True if the portion of the snapshot being indexed changed between oldNode and newNode\r\n     */\r\n    Index.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n        var oldWrapped = new NamedNode(MIN_NAME, oldNode);\r\n        var newWrapped = new NamedNode(MIN_NAME, newNode);\r\n        return this.compare(oldWrapped, newWrapped) !== 0;\r\n    };\r\n    /**\r\n     * @return {!NamedNode} a node wrapper that will sort equal to or less than\r\n     * any other node wrapper, using this index\r\n     */\r\n    Index.prototype.minPost = function () {\r\n        return NamedNode.MIN;\r\n    };\r\n    return Index;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __EMPTY_NODE;\r\nvar KeyIndex = /** @class */ (function (_super) {\r\n    tslib_1.__extends(KeyIndex, _super);\r\n    function KeyIndex() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    Object.defineProperty(KeyIndex, \"__EMPTY_NODE\", {\r\n        get: function () {\r\n            return __EMPTY_NODE;\r\n        },\r\n        set: function (val) {\r\n            __EMPTY_NODE = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    KeyIndex.prototype.compare = function (a, b) {\r\n        return nameCompare(a.name, b.name);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    KeyIndex.prototype.isDefinedOn = function (node) {\r\n        // We could probably return true here (since every node has a key), but it's never called\r\n        // so just leaving unimplemented for now.\r\n        throw util.assertionError('KeyIndex.isDefinedOn not expected to be called.');\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    KeyIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n        return false; // The key for a node never changes.\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    KeyIndex.prototype.minPost = function () {\r\n        return NamedNode.MIN;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    KeyIndex.prototype.maxPost = function () {\r\n        // TODO: This should really be created once and cached in a static property, but\r\n        // NamedNode isn't defined yet, so I can't use it in a static.  Bleh.\r\n        return new NamedNode(MAX_NAME, __EMPTY_NODE);\r\n    };\r\n    /**\r\n     * @param {*} indexValue\r\n     * @param {string} name\r\n     * @return {!NamedNode}\r\n     */\r\n    KeyIndex.prototype.makePost = function (indexValue, name) {\r\n        util.assert(typeof indexValue === 'string', 'KeyIndex indexValue must always be a string.');\r\n        // We just use empty node, but it'll never be compared, since our comparator only looks at name.\r\n        return new NamedNode(indexValue, __EMPTY_NODE);\r\n    };\r\n    /**\r\n     * @return {!string} String representation for inclusion in a query spec\r\n     */\r\n    KeyIndex.prototype.toString = function () {\r\n        return '.key';\r\n    };\r\n    return KeyIndex;\r\n}(Index));\r\nvar KEY_INDEX = new KeyIndex();\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar MAX_NODE;\r\nfunction setMaxNode(val) {\r\n    MAX_NODE = val;\r\n}\r\n/**\r\n * @param {(!string|!number)} priority\r\n * @return {!string}\r\n */\r\nvar priorityHashText = function (priority) {\r\n    if (typeof priority === 'number')\r\n        return 'number:' + doubleToIEEE754String(priority);\r\n    else\r\n        return 'string:' + priority;\r\n};\r\n/**\r\n * Validates that a priority snapshot Node is valid.\r\n *\r\n * @param {!Node} priorityNode\r\n */\r\nvar validatePriorityNode = function (priorityNode) {\r\n    if (priorityNode.isLeafNode()) {\r\n        var val = priorityNode.val();\r\n        util.assert(typeof val === 'string' ||\r\n            typeof val === 'number' ||\r\n            (typeof val === 'object' && util.contains(val, '.sv')), 'Priority must be a string or number.');\r\n    }\r\n    else {\r\n        util.assert(priorityNode === MAX_NODE || priorityNode.isEmpty(), 'priority of unexpected type.');\r\n    }\r\n    // Don't call getPriority() on MAX_NODE to avoid hitting assertion.\r\n    util.assert(priorityNode === MAX_NODE || priorityNode.getPriority().isEmpty(), \"Priority nodes can't have a priority of their own.\");\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __childrenNodeConstructor;\r\n/**\r\n * LeafNode is a class for storing leaf nodes in a DataSnapshot.  It\r\n * implements Node and stores the value of the node (a string,\r\n * number, or boolean) accessible via getValue().\r\n */\r\nvar LeafNode = /** @class */ (function () {\r\n    /**\r\n     * @implements {Node}\r\n     * @param {!(string|number|boolean|Object)} value_ The value to store in this leaf node.\r\n     *                                         The object type is possible in the event of a deferred value\r\n     * @param {!Node=} priorityNode_ The priority of this node.\r\n     */\r\n    function LeafNode(value_, priorityNode_) {\r\n        if (priorityNode_ === void 0) { priorityNode_ = LeafNode.__childrenNodeConstructor.EMPTY_NODE; }\r\n        this.value_ = value_;\r\n        this.priorityNode_ = priorityNode_;\r\n        this.lazyHash_ = null;\r\n        util.assert(this.value_ !== undefined && this.value_ !== null, \"LeafNode shouldn't be created with null/undefined value.\");\r\n        validatePriorityNode(this.priorityNode_);\r\n    }\r\n    Object.defineProperty(LeafNode, \"__childrenNodeConstructor\", {\r\n        get: function () {\r\n            return __childrenNodeConstructor;\r\n        },\r\n        set: function (val) {\r\n            __childrenNodeConstructor = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.isLeafNode = function () {\r\n        return true;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.getPriority = function () {\r\n        return this.priorityNode_;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.updatePriority = function (newPriorityNode) {\r\n        return new LeafNode(this.value_, newPriorityNode);\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.getImmediateChild = function (childName) {\r\n        // Hack to treat priority as a regular child\r\n        if (childName === '.priority') {\r\n            return this.priorityNode_;\r\n        }\r\n        else {\r\n            return LeafNode.__childrenNodeConstructor.EMPTY_NODE;\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.getChild = function (path) {\r\n        if (path.isEmpty()) {\r\n            return this;\r\n        }\r\n        else if (path.getFront() === '.priority') {\r\n            return this.priorityNode_;\r\n        }\r\n        else {\r\n            return LeafNode.__childrenNodeConstructor.EMPTY_NODE;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.hasChild = function () {\r\n        return false;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.getPredecessorChildName = function (childName, childNode) {\r\n        return null;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.updateImmediateChild = function (childName, newChildNode) {\r\n        if (childName === '.priority') {\r\n            return this.updatePriority(newChildNode);\r\n        }\r\n        else if (newChildNode.isEmpty() && childName !== '.priority') {\r\n            return this;\r\n        }\r\n        else {\r\n            return LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(childName, newChildNode).updatePriority(this.priorityNode_);\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.updateChild = function (path, newChildNode) {\r\n        var front = path.getFront();\r\n        if (front === null) {\r\n            return newChildNode;\r\n        }\r\n        else if (newChildNode.isEmpty() && front !== '.priority') {\r\n            return this;\r\n        }\r\n        else {\r\n            util.assert(front !== '.priority' || path.getLength() === 1, '.priority must be the last token in a path');\r\n            return this.updateImmediateChild(front, LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateChild(path.popFront(), newChildNode));\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.isEmpty = function () {\r\n        return false;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.numChildren = function () {\r\n        return 0;\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.forEachChild = function (index, action) {\r\n        return false;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.val = function (exportFormat) {\r\n        if (exportFormat && !this.getPriority().isEmpty())\r\n            return {\r\n                '.value': this.getValue(),\r\n                '.priority': this.getPriority().val()\r\n            };\r\n        else\r\n            return this.getValue();\r\n    };\r\n    /** @inheritDoc */\r\n    LeafNode.prototype.hash = function () {\r\n        if (this.lazyHash_ === null) {\r\n            var toHash = '';\r\n            if (!this.priorityNode_.isEmpty())\r\n                toHash +=\r\n                    'priority:' +\r\n                        priorityHashText(this.priorityNode_.val()) +\r\n                        ':';\r\n            var type = typeof this.value_;\r\n            toHash += type + ':';\r\n            if (type === 'number') {\r\n                toHash += doubleToIEEE754String(this.value_);\r\n            }\r\n            else {\r\n                toHash += this.value_;\r\n            }\r\n            this.lazyHash_ = sha1(toHash);\r\n        }\r\n        return this.lazyHash_;\r\n    };\r\n    /**\r\n     * Returns the value of the leaf node.\r\n     * @return {Object|string|number|boolean} The value of the node.\r\n     */\r\n    LeafNode.prototype.getValue = function () {\r\n        return this.value_;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.compareTo = function (other) {\r\n        if (other === LeafNode.__childrenNodeConstructor.EMPTY_NODE) {\r\n            return 1;\r\n        }\r\n        else if (other instanceof LeafNode.__childrenNodeConstructor) {\r\n            return -1;\r\n        }\r\n        else {\r\n            util.assert(other.isLeafNode(), 'Unknown node type');\r\n            return this.compareToLeafNode_(other);\r\n        }\r\n    };\r\n    /**\r\n     * Comparison specifically for two leaf nodes\r\n     * @param {!LeafNode} otherLeaf\r\n     * @return {!number}\r\n     * @private\r\n     */\r\n    LeafNode.prototype.compareToLeafNode_ = function (otherLeaf) {\r\n        var otherLeafType = typeof otherLeaf.value_;\r\n        var thisLeafType = typeof this.value_;\r\n        var otherIndex = LeafNode.VALUE_TYPE_ORDER.indexOf(otherLeafType);\r\n        var thisIndex = LeafNode.VALUE_TYPE_ORDER.indexOf(thisLeafType);\r\n        util.assert(otherIndex >= 0, 'Unknown leaf type: ' + otherLeafType);\r\n        util.assert(thisIndex >= 0, 'Unknown leaf type: ' + thisLeafType);\r\n        if (otherIndex === thisIndex) {\r\n            // Same type, compare values\r\n            if (thisLeafType === 'object') {\r\n                // Deferred value nodes are all equal, but we should also never get to this point...\r\n                return 0;\r\n            }\r\n            else {\r\n                // Note that this works because true > false, all others are number or string comparisons\r\n                if (this.value_ < otherLeaf.value_) {\r\n                    return -1;\r\n                }\r\n                else if (this.value_ === otherLeaf.value_) {\r\n                    return 0;\r\n                }\r\n                else {\r\n                    return 1;\r\n                }\r\n            }\r\n        }\r\n        else {\r\n            return thisIndex - otherIndex;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.withIndex = function () {\r\n        return this;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.isIndexed = function () {\r\n        return true;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LeafNode.prototype.equals = function (other) {\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        if (other === this) {\r\n            return true;\r\n        }\r\n        else if (other.isLeafNode()) {\r\n            var otherLeaf = other;\r\n            return (this.value_ === otherLeaf.value_ &&\r\n                this.priorityNode_.equals(otherLeaf.priorityNode_));\r\n        }\r\n        else {\r\n            return false;\r\n        }\r\n    };\r\n    /**\r\n     * The sort order for comparing leaf nodes of different types. If two leaf nodes have\r\n     * the same type, the comparison falls back to their value\r\n     * @type {Array.<!string>}\r\n     * @const\r\n     */\r\n    LeafNode.VALUE_TYPE_ORDER = ['object', 'boolean', 'number', 'string'];\r\n    return LeafNode;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar nodeFromJSON;\r\nvar MAX_NODE$1;\r\nfunction setNodeFromJSON(val) {\r\n    nodeFromJSON = val;\r\n}\r\nfunction setMaxNode$1(val) {\r\n    MAX_NODE$1 = val;\r\n}\r\n/**\r\n * @constructor\r\n * @extends {Index}\r\n * @private\r\n */\r\nvar PriorityIndex = /** @class */ (function (_super) {\r\n    tslib_1.__extends(PriorityIndex, _super);\r\n    function PriorityIndex() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PriorityIndex.prototype.compare = function (a, b) {\r\n        var aPriority = a.node.getPriority();\r\n        var bPriority = b.node.getPriority();\r\n        var indexCmp = aPriority.compareTo(bPriority);\r\n        if (indexCmp === 0) {\r\n            return nameCompare(a.name, b.name);\r\n        }\r\n        else {\r\n            return indexCmp;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PriorityIndex.prototype.isDefinedOn = function (node) {\r\n        return !node.getPriority().isEmpty();\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PriorityIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n        return !oldNode.getPriority().equals(newNode.getPriority());\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PriorityIndex.prototype.minPost = function () {\r\n        return NamedNode.MIN;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PriorityIndex.prototype.maxPost = function () {\r\n        return new NamedNode(MAX_NAME, new LeafNode('[PRIORITY-POST]', MAX_NODE$1));\r\n    };\r\n    /**\r\n     * @param {*} indexValue\r\n     * @param {string} name\r\n     * @return {!NamedNode}\r\n     */\r\n    PriorityIndex.prototype.makePost = function (indexValue, name) {\r\n        var priorityNode = nodeFromJSON(indexValue);\r\n        return new NamedNode(name, new LeafNode('[PRIORITY-POST]', priorityNode));\r\n    };\r\n    /**\r\n     * @return {!string} String representation for inclusion in a query spec\r\n     */\r\n    PriorityIndex.prototype.toString = function () {\r\n        return '.priority';\r\n    };\r\n    return PriorityIndex;\r\n}(Index));\r\nvar PRIORITY_INDEX = new PriorityIndex();\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An iterator over an LLRBNode.\r\n */\r\nvar SortedMapIterator = /** @class */ (function () {\r\n    /**\r\n     * @template K, V, T\r\n     * @param {LLRBNode|LLRBEmptyNode} node Node to iterate.\r\n     * @param {?K} startKey\r\n     * @param {function(K, K): number} comparator\r\n     * @param {boolean} isReverse_ Whether or not to iterate in reverse\r\n     * @param {(function(K, V):T)=} resultGenerator_\r\n     */\r\n    function SortedMapIterator(node, startKey, comparator, isReverse_, resultGenerator_) {\r\n        if (resultGenerator_ === void 0) { resultGenerator_ = null; }\r\n        this.isReverse_ = isReverse_;\r\n        this.resultGenerator_ = resultGenerator_;\r\n        /** @private\r\n         * @type {Array.<!LLRBNode>}\r\n         */\r\n        this.nodeStack_ = [];\r\n        var cmp = 1;\r\n        while (!node.isEmpty()) {\r\n            node = node;\r\n            cmp = startKey ? comparator(node.key, startKey) : 1;\r\n            // flip the comparison if we're going in reverse\r\n            if (isReverse_)\r\n                cmp *= -1;\r\n            if (cmp < 0) {\r\n                // This node is less than our start key. ignore it\r\n                if (this.isReverse_) {\r\n                    node = node.left;\r\n                }\r\n                else {\r\n                    node = node.right;\r\n                }\r\n            }\r\n            else if (cmp === 0) {\r\n                // This node is exactly equal to our start key. Push it on the stack, but stop iterating;\r\n                this.nodeStack_.push(node);\r\n                break;\r\n            }\r\n            else {\r\n                // This node is greater than our start key, add it to the stack and move to the next one\r\n                this.nodeStack_.push(node);\r\n                if (this.isReverse_) {\r\n                    node = node.right;\r\n                }\r\n                else {\r\n                    node = node.left;\r\n                }\r\n            }\r\n        }\r\n    }\r\n    SortedMapIterator.prototype.getNext = function () {\r\n        if (this.nodeStack_.length === 0)\r\n            return null;\r\n        var node = this.nodeStack_.pop();\r\n        var result;\r\n        if (this.resultGenerator_)\r\n            result = this.resultGenerator_(node.key, node.value);\r\n        else\r\n            result = { key: node.key, value: node.value };\r\n        if (this.isReverse_) {\r\n            node = node.left;\r\n            while (!node.isEmpty()) {\r\n                this.nodeStack_.push(node);\r\n                node = node.right;\r\n            }\r\n        }\r\n        else {\r\n            node = node.right;\r\n            while (!node.isEmpty()) {\r\n                this.nodeStack_.push(node);\r\n                node = node.left;\r\n            }\r\n        }\r\n        return result;\r\n    };\r\n    SortedMapIterator.prototype.hasNext = function () {\r\n        return this.nodeStack_.length > 0;\r\n    };\r\n    SortedMapIterator.prototype.peek = function () {\r\n        if (this.nodeStack_.length === 0)\r\n            return null;\r\n        var node = this.nodeStack_[this.nodeStack_.length - 1];\r\n        if (this.resultGenerator_) {\r\n            return this.resultGenerator_(node.key, node.value);\r\n        }\r\n        else {\r\n            return { key: node.key, value: node.value };\r\n        }\r\n    };\r\n    return SortedMapIterator;\r\n}());\r\n/**\r\n * Represents a node in a Left-leaning Red-Black tree.\r\n */\r\nvar LLRBNode = /** @class */ (function () {\r\n    /**\r\n     * @template K, V\r\n     * @param {!K} key Key associated with this node.\r\n     * @param {!V} value Value associated with this node.\r\n     * @param {?boolean} color Whether this node is red.\r\n     * @param {?(LLRBNode|LLRBEmptyNode)=} left Left child.\r\n     * @param {?(LLRBNode|LLRBEmptyNode)=} right Right child.\r\n     */\r\n    function LLRBNode(key, value, color, left, right) {\r\n        this.key = key;\r\n        this.value = value;\r\n        this.color = color != null ? color : LLRBNode.RED;\r\n        this.left =\r\n            left != null ? left : SortedMap.EMPTY_NODE;\r\n        this.right =\r\n            right != null ? right : SortedMap.EMPTY_NODE;\r\n    }\r\n    /**\r\n     * Returns a copy of the current node, optionally replacing pieces of it.\r\n     *\r\n     * @param {?K} key New key for the node, or null.\r\n     * @param {?V} value New value for the node, or null.\r\n     * @param {?boolean} color New color for the node, or null.\r\n     * @param {?LLRBNode|LLRBEmptyNode} left New left child for the node, or null.\r\n     * @param {?LLRBNode|LLRBEmptyNode} right New right child for the node, or null.\r\n     * @return {!LLRBNode} The node copy.\r\n     */\r\n    LLRBNode.prototype.copy = function (key, value, color, left, right) {\r\n        return new LLRBNode(key != null ? key : this.key, value != null ? value : this.value, color != null ? color : this.color, left != null ? left : this.left, right != null ? right : this.right);\r\n    };\r\n    /**\r\n     * @return {number} The total number of nodes in the tree.\r\n     */\r\n    LLRBNode.prototype.count = function () {\r\n        return this.left.count() + 1 + this.right.count();\r\n    };\r\n    /**\r\n     * @return {boolean} True if the tree is empty.\r\n     */\r\n    LLRBNode.prototype.isEmpty = function () {\r\n        return false;\r\n    };\r\n    /**\r\n     * Traverses the tree in key order and calls the specified action function\r\n     * for each node.\r\n     *\r\n     * @param {function(!K, !V):*} action Callback function to be called for each\r\n     *   node.  If it returns true, traversal is aborted.\r\n     * @return {*} The first truthy value returned by action, or the last falsey\r\n     *   value returned by action\r\n     */\r\n    LLRBNode.prototype.inorderTraversal = function (action) {\r\n        return (this.left.inorderTraversal(action) ||\r\n            action(this.key, this.value) ||\r\n            this.right.inorderTraversal(action));\r\n    };\r\n    /**\r\n     * Traverses the tree in reverse key order and calls the specified action function\r\n     * for each node.\r\n     *\r\n     * @param {function(!Object, !Object)} action Callback function to be called for each\r\n     * node.  If it returns true, traversal is aborted.\r\n     * @return {*} True if traversal was aborted.\r\n     */\r\n    LLRBNode.prototype.reverseTraversal = function (action) {\r\n        return (this.right.reverseTraversal(action) ||\r\n            action(this.key, this.value) ||\r\n            this.left.reverseTraversal(action));\r\n    };\r\n    /**\r\n     * @return {!Object} The minimum node in the tree.\r\n     * @private\r\n     */\r\n    LLRBNode.prototype.min_ = function () {\r\n        if (this.left.isEmpty()) {\r\n            return this;\r\n        }\r\n        else {\r\n            return this.left.min_();\r\n        }\r\n    };\r\n    /**\r\n     * @return {!K} The maximum key in the tree.\r\n     */\r\n    LLRBNode.prototype.minKey = function () {\r\n        return this.min_().key;\r\n    };\r\n    /**\r\n     * @return {!K} The maximum key in the tree.\r\n     */\r\n    LLRBNode.prototype.maxKey = function () {\r\n        if (this.right.isEmpty()) {\r\n            return this.key;\r\n        }\r\n        else {\r\n            return this.right.maxKey();\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @param {!Object} key Key to insert.\r\n     * @param {!Object} value Value to insert.\r\n     * @param {Comparator} comparator Comparator.\r\n     * @return {!LLRBNode} New tree, with the key/value added.\r\n     */\r\n    LLRBNode.prototype.insert = function (key, value, comparator) {\r\n        var cmp, n;\r\n        n = this;\r\n        cmp = comparator(key, n.key);\r\n        if (cmp < 0) {\r\n            n = n.copy(null, null, null, n.left.insert(key, value, comparator), null);\r\n        }\r\n        else if (cmp === 0) {\r\n            n = n.copy(null, value, null, null, null);\r\n        }\r\n        else {\r\n            n = n.copy(null, null, null, null, n.right.insert(key, value, comparator));\r\n        }\r\n        return n.fixUp_();\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode|LLRBEmptyNode} New tree, with the minimum key removed.\r\n     */\r\n    LLRBNode.prototype.removeMin_ = function () {\r\n        if (this.left.isEmpty()) {\r\n            return SortedMap.EMPTY_NODE;\r\n        }\r\n        var n = this;\r\n        if (!n.left.isRed_() && !n.left.left.isRed_())\r\n            n = n.moveRedLeft_();\r\n        n = n.copy(null, null, null, n.left.removeMin_(), null);\r\n        return n.fixUp_();\r\n    };\r\n    /**\r\n     * @param {!Object} key The key of the item to remove.\r\n     * @param {Comparator} comparator Comparator.\r\n     * @return {!LLRBNode|LLRBEmptyNode} New tree, with the specified item removed.\r\n     */\r\n    LLRBNode.prototype.remove = function (key, comparator) {\r\n        var n, smallest;\r\n        n = this;\r\n        if (comparator(key, n.key) < 0) {\r\n            if (!n.left.isEmpty() && !n.left.isRed_() && !n.left.left.isRed_()) {\r\n                n = n.moveRedLeft_();\r\n            }\r\n            n = n.copy(null, null, null, n.left.remove(key, comparator), null);\r\n        }\r\n        else {\r\n            if (n.left.isRed_())\r\n                n = n.rotateRight_();\r\n            if (!n.right.isEmpty() && !n.right.isRed_() && !n.right.left.isRed_()) {\r\n                n = n.moveRedRight_();\r\n            }\r\n            if (comparator(key, n.key) === 0) {\r\n                if (n.right.isEmpty()) {\r\n                    return SortedMap.EMPTY_NODE;\r\n                }\r\n                else {\r\n                    smallest = n.right.min_();\r\n                    n = n.copy(smallest.key, smallest.value, null, null, n.right.removeMin_());\r\n                }\r\n            }\r\n            n = n.copy(null, null, null, null, n.right.remove(key, comparator));\r\n        }\r\n        return n.fixUp_();\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {boolean} Whether this is a RED node.\r\n     */\r\n    LLRBNode.prototype.isRed_ = function () {\r\n        return this.color;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree after performing any needed rotations.\r\n     */\r\n    LLRBNode.prototype.fixUp_ = function () {\r\n        var n = this;\r\n        if (n.right.isRed_() && !n.left.isRed_())\r\n            n = n.rotateLeft_();\r\n        if (n.left.isRed_() && n.left.left.isRed_())\r\n            n = n.rotateRight_();\r\n        if (n.left.isRed_() && n.right.isRed_())\r\n            n = n.colorFlip_();\r\n        return n;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree, after moveRedLeft.\r\n     */\r\n    LLRBNode.prototype.moveRedLeft_ = function () {\r\n        var n = this.colorFlip_();\r\n        if (n.right.left.isRed_()) {\r\n            n = n.copy(null, null, null, null, n.right.rotateRight_());\r\n            n = n.rotateLeft_();\r\n            n = n.colorFlip_();\r\n        }\r\n        return n;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree, after moveRedRight.\r\n     */\r\n    LLRBNode.prototype.moveRedRight_ = function () {\r\n        var n = this.colorFlip_();\r\n        if (n.left.left.isRed_()) {\r\n            n = n.rotateRight_();\r\n            n = n.colorFlip_();\r\n        }\r\n        return n;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree, after rotateLeft.\r\n     */\r\n    LLRBNode.prototype.rotateLeft_ = function () {\r\n        var nl = this.copy(null, null, LLRBNode.RED, null, this.right.left);\r\n        return this.right.copy(null, null, this.color, nl, null);\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree, after rotateRight.\r\n     */\r\n    LLRBNode.prototype.rotateRight_ = function () {\r\n        var nr = this.copy(null, null, LLRBNode.RED, this.left.right, null);\r\n        return this.left.copy(null, null, this.color, null, nr);\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {!LLRBNode} New tree, after colorFlip.\r\n     */\r\n    LLRBNode.prototype.colorFlip_ = function () {\r\n        var left = this.left.copy(null, null, !this.left.color, null, null);\r\n        var right = this.right.copy(null, null, !this.right.color, null, null);\r\n        return this.copy(null, null, !this.color, left, right);\r\n    };\r\n    /**\r\n     * For testing.\r\n     *\r\n     * @private\r\n     * @return {boolean} True if all is well.\r\n     */\r\n    LLRBNode.prototype.checkMaxDepth_ = function () {\r\n        var blackDepth = this.check_();\r\n        return Math.pow(2.0, blackDepth) <= this.count() + 1;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {number} Not sure what this returns exactly. :-).\r\n     */\r\n    LLRBNode.prototype.check_ = function () {\r\n        var blackDepth;\r\n        if (this.isRed_() && this.left.isRed_()) {\r\n            throw new Error('Red node has red child(' + this.key + ',' + this.value + ')');\r\n        }\r\n        if (this.right.isRed_()) {\r\n            throw new Error('Right child of (' + this.key + ',' + this.value + ') is red');\r\n        }\r\n        blackDepth = this.left.check_();\r\n        if (blackDepth !== this.right.check_()) {\r\n            throw new Error('Black depths differ');\r\n        }\r\n        else {\r\n            return blackDepth + (this.isRed_() ? 0 : 1);\r\n        }\r\n    };\r\n    LLRBNode.RED = true;\r\n    LLRBNode.BLACK = false;\r\n    return LLRBNode;\r\n}());\r\n/**\r\n * Represents an empty node (a leaf node in the Red-Black Tree).\r\n */\r\nvar LLRBEmptyNode = /** @class */ (function () {\r\n    function LLRBEmptyNode() {\r\n    }\r\n    /**\r\n     * Returns a copy of the current node.\r\n     *\r\n     * @return {!LLRBEmptyNode} The node copy.\r\n     */\r\n    LLRBEmptyNode.prototype.copy = function (key, value, color, left, right) {\r\n        return this;\r\n    };\r\n    /**\r\n     * Returns a copy of the tree, with the specified key/value added.\r\n     *\r\n     * @param {!K} key Key to be added.\r\n     * @param {!V} value Value to be added.\r\n     * @param {Comparator} comparator Comparator.\r\n     * @return {!LLRBNode} New tree, with item added.\r\n     */\r\n    LLRBEmptyNode.prototype.insert = function (key, value, comparator) {\r\n        return new LLRBNode(key, value, null);\r\n    };\r\n    /**\r\n     * Returns a copy of the tree, with the specified key removed.\r\n     *\r\n     * @param {!K} key The key to remove.\r\n     * @param {Comparator} comparator Comparator.\r\n     * @return {!LLRBEmptyNode} New tree, with item removed.\r\n     */\r\n    LLRBEmptyNode.prototype.remove = function (key, comparator) {\r\n        return this;\r\n    };\r\n    /**\r\n     * @return {number} The total number of nodes in the tree.\r\n     */\r\n    LLRBEmptyNode.prototype.count = function () {\r\n        return 0;\r\n    };\r\n    /**\r\n     * @return {boolean} True if the tree is empty.\r\n     */\r\n    LLRBEmptyNode.prototype.isEmpty = function () {\r\n        return true;\r\n    };\r\n    /**\r\n     * Traverses the tree in key order and calls the specified action function\r\n     * for each node.\r\n     *\r\n     * @param {function(!K, !V):*} action Callback function to be called for each\r\n     * node.  If it returns true, traversal is aborted.\r\n     * @return {boolean} True if traversal was aborted.\r\n     */\r\n    LLRBEmptyNode.prototype.inorderTraversal = function (action) {\r\n        return false;\r\n    };\r\n    /**\r\n     * Traverses the tree in reverse key order and calls the specified action function\r\n     * for each node.\r\n     *\r\n     * @param {function(!K, !V)} action Callback function to be called for each\r\n     * node.  If it returns true, traversal is aborted.\r\n     * @return {boolean} True if traversal was aborted.\r\n     */\r\n    LLRBEmptyNode.prototype.reverseTraversal = function (action) {\r\n        return false;\r\n    };\r\n    /**\r\n     * @return {null}\r\n     */\r\n    LLRBEmptyNode.prototype.minKey = function () {\r\n        return null;\r\n    };\r\n    /**\r\n     * @return {null}\r\n     */\r\n    LLRBEmptyNode.prototype.maxKey = function () {\r\n        return null;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {number} Not sure what this returns exactly. :-).\r\n     */\r\n    LLRBEmptyNode.prototype.check_ = function () {\r\n        return 0;\r\n    };\r\n    /**\r\n     * @private\r\n     * @return {boolean} Whether this node is red.\r\n     */\r\n    LLRBEmptyNode.prototype.isRed_ = function () {\r\n        return false;\r\n    };\r\n    return LLRBEmptyNode;\r\n}());\r\n/**\r\n * An immutable sorted map implementation, based on a Left-leaning Red-Black\r\n * tree.\r\n */\r\nvar SortedMap = /** @class */ (function () {\r\n    /**\r\n     * @template K, V\r\n     * @param {function(K, K):number} comparator_ Key comparator.\r\n     * @param {LLRBNode=} root_ (Optional) Root node for the map.\r\n     */\r\n    function SortedMap(comparator_, root_) {\r\n        if (root_ === void 0) { root_ = SortedMap.EMPTY_NODE; }\r\n        this.comparator_ = comparator_;\r\n        this.root_ = root_;\r\n    }\r\n    /**\r\n     * Returns a copy of the map, with the specified key/value added or replaced.\r\n     * (TODO: We should perhaps rename this method to 'put')\r\n     *\r\n     * @param {!K} key Key to be added.\r\n     * @param {!V} value Value to be added.\r\n     * @return {!SortedMap.<K, V>} New map, with item added.\r\n     */\r\n    SortedMap.prototype.insert = function (key, value) {\r\n        return new SortedMap(this.comparator_, this.root_\r\n            .insert(key, value, this.comparator_)\r\n            .copy(null, null, LLRBNode.BLACK, null, null));\r\n    };\r\n    /**\r\n     * Returns a copy of the map, with the specified key removed.\r\n     *\r\n     * @param {!K} key The key to remove.\r\n     * @return {!SortedMap.<K, V>} New map, with item removed.\r\n     */\r\n    SortedMap.prototype.remove = function (key) {\r\n        return new SortedMap(this.comparator_, this.root_\r\n            .remove(key, this.comparator_)\r\n            .copy(null, null, LLRBNode.BLACK, null, null));\r\n    };\r\n    /**\r\n     * Returns the value of the node with the given key, or null.\r\n     *\r\n     * @param {!K} key The key to look up.\r\n     * @return {?V} The value of the node with the given key, or null if the\r\n     * key doesn't exist.\r\n     */\r\n    SortedMap.prototype.get = function (key) {\r\n        var cmp;\r\n        var node = this.root_;\r\n        while (!node.isEmpty()) {\r\n            cmp = this.comparator_(key, node.key);\r\n            if (cmp === 0) {\r\n                return node.value;\r\n            }\r\n            else if (cmp < 0) {\r\n                node = node.left;\r\n            }\r\n            else if (cmp > 0) {\r\n                node = node.right;\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Returns the key of the item *before* the specified key, or null if key is the first item.\r\n     * @param {K} key The key to find the predecessor of\r\n     * @return {?K} The predecessor key.\r\n     */\r\n    SortedMap.prototype.getPredecessorKey = function (key) {\r\n        var cmp, node = this.root_, rightParent = null;\r\n        while (!node.isEmpty()) {\r\n            cmp = this.comparator_(key, node.key);\r\n            if (cmp === 0) {\r\n                if (!node.left.isEmpty()) {\r\n                    node = node.left;\r\n                    while (!node.right.isEmpty())\r\n                        node = node.right;\r\n                    return node.key;\r\n                }\r\n                else if (rightParent) {\r\n                    return rightParent.key;\r\n                }\r\n                else {\r\n                    return null; // first item.\r\n                }\r\n            }\r\n            else if (cmp < 0) {\r\n                node = node.left;\r\n            }\r\n            else if (cmp > 0) {\r\n                rightParent = node;\r\n                node = node.right;\r\n            }\r\n        }\r\n        throw new Error('Attempted to find predecessor key for a nonexistent key.  What gives?');\r\n    };\r\n    /**\r\n     * @return {boolean} True if the map is empty.\r\n     */\r\n    SortedMap.prototype.isEmpty = function () {\r\n        return this.root_.isEmpty();\r\n    };\r\n    /**\r\n     * @return {number} The total number of nodes in the map.\r\n     */\r\n    SortedMap.prototype.count = function () {\r\n        return this.root_.count();\r\n    };\r\n    /**\r\n     * @return {?K} The minimum key in the map.\r\n     */\r\n    SortedMap.prototype.minKey = function () {\r\n        return this.root_.minKey();\r\n    };\r\n    /**\r\n     * @return {?K} The maximum key in the map.\r\n     */\r\n    SortedMap.prototype.maxKey = function () {\r\n        return this.root_.maxKey();\r\n    };\r\n    /**\r\n     * Traverses the map in key order and calls the specified action function\r\n     * for each key/value pair.\r\n     *\r\n     * @param {function(!K, !V):*} action Callback function to be called\r\n     * for each key/value pair.  If action returns true, traversal is aborted.\r\n     * @return {*} The first truthy value returned by action, or the last falsey\r\n     *   value returned by action\r\n     */\r\n    SortedMap.prototype.inorderTraversal = function (action) {\r\n        return this.root_.inorderTraversal(action);\r\n    };\r\n    /**\r\n     * Traverses the map in reverse key order and calls the specified action function\r\n     * for each key/value pair.\r\n     *\r\n     * @param {function(!Object, !Object)} action Callback function to be called\r\n     * for each key/value pair.  If action returns true, traversal is aborted.\r\n     * @return {*} True if the traversal was aborted.\r\n     */\r\n    SortedMap.prototype.reverseTraversal = function (action) {\r\n        return this.root_.reverseTraversal(action);\r\n    };\r\n    /**\r\n     * Returns an iterator over the SortedMap.\r\n     * @template T\r\n     * @param {(function(K, V):T)=} resultGenerator\r\n     * @return {SortedMapIterator.<K, V, T>} The iterator.\r\n     */\r\n    SortedMap.prototype.getIterator = function (resultGenerator) {\r\n        return new SortedMapIterator(this.root_, null, this.comparator_, false, resultGenerator);\r\n    };\r\n    SortedMap.prototype.getIteratorFrom = function (key, resultGenerator) {\r\n        return new SortedMapIterator(this.root_, key, this.comparator_, false, resultGenerator);\r\n    };\r\n    SortedMap.prototype.getReverseIteratorFrom = function (key, resultGenerator) {\r\n        return new SortedMapIterator(this.root_, key, this.comparator_, true, resultGenerator);\r\n    };\r\n    SortedMap.prototype.getReverseIterator = function (resultGenerator) {\r\n        return new SortedMapIterator(this.root_, null, this.comparator_, true, resultGenerator);\r\n    };\r\n    /**\r\n     * Always use the same empty node, to reduce memory.\r\n     * @const\r\n     */\r\n    SortedMap.EMPTY_NODE = new LLRBEmptyNode();\r\n    return SortedMap;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar LOG_2 = Math.log(2);\r\n/**\r\n * @constructor\r\n */\r\nvar Base12Num = /** @class */ (function () {\r\n    /**\r\n     * @param {number} length\r\n     */\r\n    function Base12Num(length) {\r\n        var logBase2 = function (num) {\r\n            return parseInt((Math.log(num) / LOG_2), 10);\r\n        };\r\n        var bitMask = function (bits) { return parseInt(Array(bits + 1).join('1'), 2); };\r\n        this.count = logBase2(length + 1);\r\n        this.current_ = this.count - 1;\r\n        var mask = bitMask(this.count);\r\n        this.bits_ = (length + 1) & mask;\r\n    }\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    Base12Num.prototype.nextBitIsOne = function () {\r\n        //noinspection JSBitwiseOperatorUsage\r\n        var result = !(this.bits_ & (0x1 << this.current_));\r\n        this.current_--;\r\n        return result;\r\n    };\r\n    return Base12Num;\r\n}());\r\n/**\r\n * Takes a list of child nodes and constructs a SortedSet using the given comparison\r\n * function\r\n *\r\n * Uses the algorithm described in the paper linked here:\r\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1458\r\n *\r\n * @template K, V\r\n * @param {Array.<!NamedNode>} childList Unsorted list of children\r\n * @param {function(!NamedNode, !NamedNode):number} cmp The comparison method to be used\r\n * @param {(function(NamedNode):K)=} keyFn An optional function to extract K from a node wrapper, if K's\r\n *                                                        type is not NamedNode\r\n * @param {(function(K, K):number)=} mapSortFn An optional override for comparator used by the generated sorted map\r\n * @return {SortedMap.<K, V>}\r\n */\r\nvar buildChildSet = function (childList, cmp, keyFn, mapSortFn) {\r\n    childList.sort(cmp);\r\n    var buildBalancedTree = function (low, high) {\r\n        var length = high - low;\r\n        var namedNode;\r\n        var key;\r\n        if (length == 0) {\r\n            return null;\r\n        }\r\n        else if (length == 1) {\r\n            namedNode = childList[low];\r\n            key = keyFn ? keyFn(namedNode) : namedNode;\r\n            return new LLRBNode(key, namedNode.node, LLRBNode.BLACK, null, null);\r\n        }\r\n        else {\r\n            var middle = parseInt((length / 2), 10) + low;\r\n            var left = buildBalancedTree(low, middle);\r\n            var right = buildBalancedTree(middle + 1, high);\r\n            namedNode = childList[middle];\r\n            key = keyFn ? keyFn(namedNode) : namedNode;\r\n            return new LLRBNode(key, namedNode.node, LLRBNode.BLACK, left, right);\r\n        }\r\n    };\r\n    var buildFrom12Array = function (base12) {\r\n        var node = null;\r\n        var root = null;\r\n        var index = childList.length;\r\n        var buildPennant = function (chunkSize, color) {\r\n            var low = index - chunkSize;\r\n            var high = index;\r\n            index -= chunkSize;\r\n            var childTree = buildBalancedTree(low + 1, high);\r\n            var namedNode = childList[low];\r\n            var key = keyFn ? keyFn(namedNode) : namedNode;\r\n            attachPennant(new LLRBNode(key, namedNode.node, color, null, childTree));\r\n        };\r\n        var attachPennant = function (pennant) {\r\n            if (node) {\r\n                node.left = pennant;\r\n                node = pennant;\r\n            }\r\n            else {\r\n                root = pennant;\r\n                node = pennant;\r\n            }\r\n        };\r\n        for (var i = 0; i < base12.count; ++i) {\r\n            var isOne = base12.nextBitIsOne();\r\n            // The number of nodes taken in each slice is 2^(arr.length - (i + 1))\r\n            var chunkSize = Math.pow(2, base12.count - (i + 1));\r\n            if (isOne) {\r\n                buildPennant(chunkSize, LLRBNode.BLACK);\r\n            }\r\n            else {\r\n                // current == 2\r\n                buildPennant(chunkSize, LLRBNode.BLACK);\r\n                buildPennant(chunkSize, LLRBNode.RED);\r\n            }\r\n        }\r\n        return root;\r\n    };\r\n    var base12 = new Base12Num(childList.length);\r\n    var root = buildFrom12Array(base12);\r\n    return new SortedMap(mapSortFn || cmp, root);\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar _defaultIndexMap;\r\nvar fallbackObject = {};\r\n/**\r\n *\r\n * @param {Object.<string, FallbackType|SortedMap.<NamedNode, Node>>} indexes\r\n * @param {Object.<string, Index>} indexSet\r\n * @constructor\r\n */\r\nvar IndexMap = /** @class */ (function () {\r\n    function IndexMap(indexes_, indexSet_) {\r\n        this.indexes_ = indexes_;\r\n        this.indexSet_ = indexSet_;\r\n    }\r\n    Object.defineProperty(IndexMap, \"Default\", {\r\n        /**\r\n         * The default IndexMap for nodes without a priority\r\n         * @type {!IndexMap}\r\n         * @const\r\n         */\r\n        get: function () {\r\n            util.assert(fallbackObject && PRIORITY_INDEX, 'ChildrenNode.ts has not been loaded');\r\n            _defaultIndexMap =\r\n                _defaultIndexMap ||\r\n                    new IndexMap({ '.priority': fallbackObject }, { '.priority': PRIORITY_INDEX });\r\n            return _defaultIndexMap;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     *\r\n     * @param {!string} indexKey\r\n     * @return {?SortedMap.<NamedNode, Node>}\r\n     */\r\n    IndexMap.prototype.get = function (indexKey) {\r\n        var sortedMap = util.safeGet(this.indexes_, indexKey);\r\n        if (!sortedMap)\r\n            throw new Error('No index defined for ' + indexKey);\r\n        if (sortedMap === fallbackObject) {\r\n            // The index exists, but it falls back to just name comparison. Return null so that the calling code uses the\r\n            // regular child map\r\n            return null;\r\n        }\r\n        else {\r\n            return sortedMap;\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {boolean}\r\n     */\r\n    IndexMap.prototype.hasIndex = function (indexDefinition) {\r\n        return util.contains(this.indexSet_, indexDefinition.toString());\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @param {!SortedMap.<string, !Node>} existingChildren\r\n     * @return {!IndexMap}\r\n     */\r\n    IndexMap.prototype.addIndex = function (indexDefinition, existingChildren) {\r\n        util.assert(indexDefinition !== KEY_INDEX, \"KeyIndex always exists and isn't meant to be added to the IndexMap.\");\r\n        var childList = [];\r\n        var sawIndexedValue = false;\r\n        var iter = existingChildren.getIterator(NamedNode.Wrap);\r\n        var next = iter.getNext();\r\n        while (next) {\r\n            sawIndexedValue =\r\n                sawIndexedValue || indexDefinition.isDefinedOn(next.node);\r\n            childList.push(next);\r\n            next = iter.getNext();\r\n        }\r\n        var newIndex;\r\n        if (sawIndexedValue) {\r\n            newIndex = buildChildSet(childList, indexDefinition.getCompare());\r\n        }\r\n        else {\r\n            newIndex = fallbackObject;\r\n        }\r\n        var indexName = indexDefinition.toString();\r\n        var newIndexSet = util.clone(this.indexSet_);\r\n        newIndexSet[indexName] = indexDefinition;\r\n        var newIndexes = util.clone(this.indexes_);\r\n        newIndexes[indexName] = newIndex;\r\n        return new IndexMap(newIndexes, newIndexSet);\r\n    };\r\n    /**\r\n     * Ensure that this node is properly tracked in any indexes that we're maintaining\r\n     * @param {!NamedNode} namedNode\r\n     * @param {!SortedMap.<string, !Node>} existingChildren\r\n     * @return {!IndexMap}\r\n     */\r\n    IndexMap.prototype.addToIndexes = function (namedNode, existingChildren) {\r\n        var _this = this;\r\n        var newIndexes = util.map(this.indexes_, function (indexedChildren, indexName) {\r\n            var index = util.safeGet(_this.indexSet_, indexName);\r\n            util.assert(index, 'Missing index implementation for ' + indexName);\r\n            if (indexedChildren === fallbackObject) {\r\n                // Check to see if we need to index everything\r\n                if (index.isDefinedOn(namedNode.node)) {\r\n                    // We need to build this index\r\n                    var childList = [];\r\n                    var iter = existingChildren.getIterator(NamedNode.Wrap);\r\n                    var next = iter.getNext();\r\n                    while (next) {\r\n                        if (next.name != namedNode.name) {\r\n                            childList.push(next);\r\n                        }\r\n                        next = iter.getNext();\r\n                    }\r\n                    childList.push(namedNode);\r\n                    return buildChildSet(childList, index.getCompare());\r\n                }\r\n                else {\r\n                    // No change, this remains a fallback\r\n                    return fallbackObject;\r\n                }\r\n            }\r\n            else {\r\n                var existingSnap = existingChildren.get(namedNode.name);\r\n                var newChildren = indexedChildren;\r\n                if (existingSnap) {\r\n                    newChildren = newChildren.remove(new NamedNode(namedNode.name, existingSnap));\r\n                }\r\n                return newChildren.insert(namedNode, namedNode.node);\r\n            }\r\n        });\r\n        return new IndexMap(newIndexes, this.indexSet_);\r\n    };\r\n    /**\r\n     * Create a new IndexMap instance with the given value removed\r\n     * @param {!NamedNode} namedNode\r\n     * @param {!SortedMap.<string, !Node>} existingChildren\r\n     * @return {!IndexMap}\r\n     */\r\n    IndexMap.prototype.removeFromIndexes = function (namedNode, existingChildren) {\r\n        var newIndexes = util.map(this.indexes_, function (indexedChildren) {\r\n            if (indexedChildren === fallbackObject) {\r\n                // This is the fallback. Just return it, nothing to do in this case\r\n                return indexedChildren;\r\n            }\r\n            else {\r\n                var existingSnap = existingChildren.get(namedNode.name);\r\n                if (existingSnap) {\r\n                    return indexedChildren.remove(new NamedNode(namedNode.name, existingSnap));\r\n                }\r\n                else {\r\n                    // No record of this child\r\n                    return indexedChildren;\r\n                }\r\n            }\r\n        });\r\n        return new IndexMap(newIndexes, this.indexSet_);\r\n    };\r\n    return IndexMap;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nfunction NAME_ONLY_COMPARATOR(left, right) {\r\n    return nameCompare(left.name, right.name);\r\n}\r\nfunction NAME_COMPARATOR(left, right) {\r\n    return nameCompare(left, right);\r\n}\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// TODO: For memory savings, don't store priorityNode_ if it's empty.\r\nvar EMPTY_NODE;\r\n/**\r\n * ChildrenNode is a class for storing internal nodes in a DataSnapshot\r\n * (i.e. nodes with children).  It implements Node and stores the\r\n * list of children in the children property, sorted by child name.\r\n *\r\n * @constructor\r\n * @implements {Node}\r\n */\r\nvar ChildrenNode = /** @class */ (function () {\r\n    /**\r\n     *\r\n     * @param {!SortedMap.<string, !Node>} children_ List of children\r\n     * of this node..\r\n     * @param {?Node} priorityNode_ The priority of this node (as a snapshot node).\r\n     * @param {!IndexMap} indexMap_\r\n     */\r\n    function ChildrenNode(children_, priorityNode_, indexMap_) {\r\n        this.children_ = children_;\r\n        this.priorityNode_ = priorityNode_;\r\n        this.indexMap_ = indexMap_;\r\n        this.lazyHash_ = null;\r\n        /**\r\n         * Note: The only reason we allow null priority is for EMPTY_NODE, since we can't use\r\n         * EMPTY_NODE as the priority of EMPTY_NODE.  We might want to consider making EMPTY_NODE its own\r\n         * class instead of an empty ChildrenNode.\r\n         */\r\n        if (this.priorityNode_) {\r\n            validatePriorityNode(this.priorityNode_);\r\n        }\r\n        if (this.children_.isEmpty()) {\r\n            util.assert(!this.priorityNode_ || this.priorityNode_.isEmpty(), 'An empty node cannot have a priority');\r\n        }\r\n    }\r\n    Object.defineProperty(ChildrenNode, \"EMPTY_NODE\", {\r\n        get: function () {\r\n            return (EMPTY_NODE ||\r\n                (EMPTY_NODE = new ChildrenNode(new SortedMap(NAME_COMPARATOR), null, IndexMap.Default)));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.isLeafNode = function () {\r\n        return false;\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.getPriority = function () {\r\n        return this.priorityNode_ || EMPTY_NODE;\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.updatePriority = function (newPriorityNode) {\r\n        if (this.children_.isEmpty()) {\r\n            // Don't allow priorities on empty nodes\r\n            return this;\r\n        }\r\n        else {\r\n            return new ChildrenNode(this.children_, newPriorityNode, this.indexMap_);\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.getImmediateChild = function (childName) {\r\n        // Hack to treat priority as a regular child\r\n        if (childName === '.priority') {\r\n            return this.getPriority();\r\n        }\r\n        else {\r\n            var child = this.children_.get(childName);\r\n            return child === null ? EMPTY_NODE : child;\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.getChild = function (path) {\r\n        var front = path.getFront();\r\n        if (front === null)\r\n            return this;\r\n        return this.getImmediateChild(front).getChild(path.popFront());\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.hasChild = function (childName) {\r\n        return this.children_.get(childName) !== null;\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.updateImmediateChild = function (childName, newChildNode) {\r\n        util.assert(newChildNode, 'We should always be passing snapshot nodes');\r\n        if (childName === '.priority') {\r\n            return this.updatePriority(newChildNode);\r\n        }\r\n        else {\r\n            var namedNode = new NamedNode(childName, newChildNode);\r\n            var newChildren = void 0, newIndexMap = void 0, newPriority = void 0;\r\n            if (newChildNode.isEmpty()) {\r\n                newChildren = this.children_.remove(childName);\r\n                newIndexMap = this.indexMap_.removeFromIndexes(namedNode, this.children_);\r\n            }\r\n            else {\r\n                newChildren = this.children_.insert(childName, newChildNode);\r\n                newIndexMap = this.indexMap_.addToIndexes(namedNode, this.children_);\r\n            }\r\n            newPriority = newChildren.isEmpty() ? EMPTY_NODE : this.priorityNode_;\r\n            return new ChildrenNode(newChildren, newPriority, newIndexMap);\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.updateChild = function (path, newChildNode) {\r\n        var front = path.getFront();\r\n        if (front === null) {\r\n            return newChildNode;\r\n        }\r\n        else {\r\n            util.assert(path.getFront() !== '.priority' || path.getLength() === 1, '.priority must be the last token in a path');\r\n            var newImmediateChild = this.getImmediateChild(front).updateChild(path.popFront(), newChildNode);\r\n            return this.updateImmediateChild(front, newImmediateChild);\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.isEmpty = function () {\r\n        return this.children_.isEmpty();\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.numChildren = function () {\r\n        return this.children_.count();\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.val = function (exportFormat) {\r\n        if (this.isEmpty())\r\n            return null;\r\n        var obj = {};\r\n        var numKeys = 0, maxKey = 0, allIntegerKeys = true;\r\n        this.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n            obj[key] = childNode.val(exportFormat);\r\n            numKeys++;\r\n            if (allIntegerKeys && ChildrenNode.INTEGER_REGEXP_.test(key)) {\r\n                maxKey = Math.max(maxKey, Number(key));\r\n            }\r\n            else {\r\n                allIntegerKeys = false;\r\n            }\r\n        });\r\n        if (!exportFormat && allIntegerKeys && maxKey < 2 * numKeys) {\r\n            // convert to array.\r\n            var array = [];\r\n            for (var key in obj)\r\n                array[key] = obj[key];\r\n            return array;\r\n        }\r\n        else {\r\n            if (exportFormat && !this.getPriority().isEmpty()) {\r\n                obj['.priority'] = this.getPriority().val();\r\n            }\r\n            return obj;\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.hash = function () {\r\n        if (this.lazyHash_ === null) {\r\n            var toHash_1 = '';\r\n            if (!this.getPriority().isEmpty())\r\n                toHash_1 +=\r\n                    'priority:' +\r\n                        priorityHashText(this.getPriority().val()) +\r\n                        ':';\r\n            this.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n                var childHash = childNode.hash();\r\n                if (childHash !== '')\r\n                    toHash_1 += ':' + key + ':' + childHash;\r\n            });\r\n            this.lazyHash_ = toHash_1 === '' ? '' : sha1(toHash_1);\r\n        }\r\n        return this.lazyHash_;\r\n    };\r\n    /** @inheritDoc */\r\n    ChildrenNode.prototype.getPredecessorChildName = function (childName, childNode, index) {\r\n        var idx = this.resolveIndex_(index);\r\n        if (idx) {\r\n            var predecessor = idx.getPredecessorKey(new NamedNode(childName, childNode));\r\n            return predecessor ? predecessor.name : null;\r\n        }\r\n        else {\r\n            return this.children_.getPredecessorKey(childName);\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {?string}\r\n     */\r\n    ChildrenNode.prototype.getFirstChildName = function (indexDefinition) {\r\n        var idx = this.resolveIndex_(indexDefinition);\r\n        if (idx) {\r\n            var minKey = idx.minKey();\r\n            return minKey && minKey.name;\r\n        }\r\n        else {\r\n            return this.children_.minKey();\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {?NamedNode}\r\n     */\r\n    ChildrenNode.prototype.getFirstChild = function (indexDefinition) {\r\n        var minKey = this.getFirstChildName(indexDefinition);\r\n        if (minKey) {\r\n            return new NamedNode(minKey, this.children_.get(minKey));\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Given an index, return the key name of the largest value we have, according to that index\r\n     * @param {!Index} indexDefinition\r\n     * @return {?string}\r\n     */\r\n    ChildrenNode.prototype.getLastChildName = function (indexDefinition) {\r\n        var idx = this.resolveIndex_(indexDefinition);\r\n        if (idx) {\r\n            var maxKey = idx.maxKey();\r\n            return maxKey && maxKey.name;\r\n        }\r\n        else {\r\n            return this.children_.maxKey();\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {?NamedNode}\r\n     */\r\n    ChildrenNode.prototype.getLastChild = function (indexDefinition) {\r\n        var maxKey = this.getLastChildName(indexDefinition);\r\n        if (maxKey) {\r\n            return new NamedNode(maxKey, this.children_.get(maxKey));\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildrenNode.prototype.forEachChild = function (index, action) {\r\n        var idx = this.resolveIndex_(index);\r\n        if (idx) {\r\n            return idx.inorderTraversal(function (wrappedNode) {\r\n                return action(wrappedNode.name, wrappedNode.node);\r\n            });\r\n        }\r\n        else {\r\n            return this.children_.inorderTraversal(action);\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {SortedMapIterator}\r\n     */\r\n    ChildrenNode.prototype.getIterator = function (indexDefinition) {\r\n        return this.getIteratorFrom(indexDefinition.minPost(), indexDefinition);\r\n    };\r\n    /**\r\n     *\r\n     * @param {!NamedNode} startPost\r\n     * @param {!Index} indexDefinition\r\n     * @return {!SortedMapIterator}\r\n     */\r\n    ChildrenNode.prototype.getIteratorFrom = function (startPost, indexDefinition) {\r\n        var idx = this.resolveIndex_(indexDefinition);\r\n        if (idx) {\r\n            return idx.getIteratorFrom(startPost, function (key) { return key; });\r\n        }\r\n        else {\r\n            var iterator = this.children_.getIteratorFrom(startPost.name, NamedNode.Wrap);\r\n            var next = iterator.peek();\r\n            while (next != null && indexDefinition.compare(next, startPost) < 0) {\r\n                iterator.getNext();\r\n                next = iterator.peek();\r\n            }\r\n            return iterator;\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Index} indexDefinition\r\n     * @return {!SortedMapIterator}\r\n     */\r\n    ChildrenNode.prototype.getReverseIterator = function (indexDefinition) {\r\n        return this.getReverseIteratorFrom(indexDefinition.maxPost(), indexDefinition);\r\n    };\r\n    /**\r\n     * @param {!NamedNode} endPost\r\n     * @param {!Index} indexDefinition\r\n     * @return {!SortedMapIterator}\r\n     */\r\n    ChildrenNode.prototype.getReverseIteratorFrom = function (endPost, indexDefinition) {\r\n        var idx = this.resolveIndex_(indexDefinition);\r\n        if (idx) {\r\n            return idx.getReverseIteratorFrom(endPost, function (key) {\r\n                return key;\r\n            });\r\n        }\r\n        else {\r\n            var iterator = this.children_.getReverseIteratorFrom(endPost.name, NamedNode.Wrap);\r\n            var next = iterator.peek();\r\n            while (next != null && indexDefinition.compare(next, endPost) > 0) {\r\n                iterator.getNext();\r\n                next = iterator.peek();\r\n            }\r\n            return iterator;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildrenNode.prototype.compareTo = function (other) {\r\n        if (this.isEmpty()) {\r\n            if (other.isEmpty()) {\r\n                return 0;\r\n            }\r\n            else {\r\n                return -1;\r\n            }\r\n        }\r\n        else if (other.isLeafNode() || other.isEmpty()) {\r\n            return 1;\r\n        }\r\n        else if (other === MAX_NODE$2) {\r\n            return -1;\r\n        }\r\n        else {\r\n            // Must be another node with children.\r\n            return 0;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildrenNode.prototype.withIndex = function (indexDefinition) {\r\n        if (indexDefinition === KEY_INDEX ||\r\n            this.indexMap_.hasIndex(indexDefinition)) {\r\n            return this;\r\n        }\r\n        else {\r\n            var newIndexMap = this.indexMap_.addIndex(indexDefinition, this.children_);\r\n            return new ChildrenNode(this.children_, this.priorityNode_, newIndexMap);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildrenNode.prototype.isIndexed = function (index) {\r\n        return index === KEY_INDEX || this.indexMap_.hasIndex(index);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildrenNode.prototype.equals = function (other) {\r\n        if (other === this) {\r\n            return true;\r\n        }\r\n        else if (other.isLeafNode()) {\r\n            return false;\r\n        }\r\n        else {\r\n            var otherChildrenNode = other;\r\n            if (!this.getPriority().equals(otherChildrenNode.getPriority())) {\r\n                return false;\r\n            }\r\n            else if (this.children_.count() === otherChildrenNode.children_.count()) {\r\n                var thisIter = this.getIterator(PRIORITY_INDEX);\r\n                var otherIter = otherChildrenNode.getIterator(PRIORITY_INDEX);\r\n                var thisCurrent = thisIter.getNext();\r\n                var otherCurrent = otherIter.getNext();\r\n                while (thisCurrent && otherCurrent) {\r\n                    if (thisCurrent.name !== otherCurrent.name ||\r\n                        !thisCurrent.node.equals(otherCurrent.node)) {\r\n                        return false;\r\n                    }\r\n                    thisCurrent = thisIter.getNext();\r\n                    otherCurrent = otherIter.getNext();\r\n                }\r\n                return thisCurrent === null && otherCurrent === null;\r\n            }\r\n            else {\r\n                return false;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns a SortedMap ordered by index, or null if the default (by-key) ordering can be used\r\n     * instead.\r\n     *\r\n     * @private\r\n     * @param {!Index} indexDefinition\r\n     * @return {?SortedMap.<NamedNode, Node>}\r\n     */\r\n    ChildrenNode.prototype.resolveIndex_ = function (indexDefinition) {\r\n        if (indexDefinition === KEY_INDEX) {\r\n            return null;\r\n        }\r\n        else {\r\n            return this.indexMap_.get(indexDefinition.toString());\r\n        }\r\n    };\r\n    /**\r\n     * @private\r\n     * @type {RegExp}\r\n     */\r\n    ChildrenNode.INTEGER_REGEXP_ = /^(0|[1-9]\\d*)$/;\r\n    return ChildrenNode;\r\n}());\r\n/**\r\n * @constructor\r\n * @extends {ChildrenNode}\r\n * @private\r\n */\r\nvar MaxNode = /** @class */ (function (_super) {\r\n    tslib_1.__extends(MaxNode, _super);\r\n    function MaxNode() {\r\n        return _super.call(this, new SortedMap(NAME_COMPARATOR), ChildrenNode.EMPTY_NODE, IndexMap.Default) || this;\r\n    }\r\n    MaxNode.prototype.compareTo = function (other) {\r\n        if (other === this) {\r\n            return 0;\r\n        }\r\n        else {\r\n            return 1;\r\n        }\r\n    };\r\n    MaxNode.prototype.equals = function (other) {\r\n        // Not that we every compare it, but MAX_NODE is only ever equal to itself\r\n        return other === this;\r\n    };\r\n    MaxNode.prototype.getPriority = function () {\r\n        return this;\r\n    };\r\n    MaxNode.prototype.getImmediateChild = function (childName) {\r\n        return ChildrenNode.EMPTY_NODE;\r\n    };\r\n    MaxNode.prototype.isEmpty = function () {\r\n        return false;\r\n    };\r\n    return MaxNode;\r\n}(ChildrenNode));\r\n/**\r\n * Marker that will sort higher than any other snapshot.\r\n * @type {!MAX_NODE}\r\n * @const\r\n */\r\nvar MAX_NODE$2 = new MaxNode();\r\nObject.defineProperties(NamedNode, {\r\n    MIN: {\r\n        value: new NamedNode(MIN_NAME, ChildrenNode.EMPTY_NODE)\r\n    },\r\n    MAX: {\r\n        value: new NamedNode(MAX_NAME, MAX_NODE$2)\r\n    }\r\n});\r\n/**\r\n * Reference Extensions\r\n */\r\nKeyIndex.__EMPTY_NODE = ChildrenNode.EMPTY_NODE;\r\nLeafNode.__childrenNodeConstructor = ChildrenNode;\r\nsetMaxNode(MAX_NODE$2);\r\nsetMaxNode$1(MAX_NODE$2);\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar USE_HINZE = true;\r\n/**\r\n * Constructs a snapshot node representing the passed JSON and returns it.\r\n * @param {*} json JSON to create a node for.\r\n * @param {?string|?number=} priority Optional priority to use.  This will be ignored if the\r\n * passed JSON contains a .priority property.\r\n * @return {!Node}\r\n */\r\nfunction nodeFromJSON$1(json, priority) {\r\n    if (priority === void 0) { priority = null; }\r\n    if (json === null) {\r\n        return ChildrenNode.EMPTY_NODE;\r\n    }\r\n    if (typeof json === 'object' && '.priority' in json) {\r\n        priority = json['.priority'];\r\n    }\r\n    util.assert(priority === null ||\r\n        typeof priority === 'string' ||\r\n        typeof priority === 'number' ||\r\n        (typeof priority === 'object' && '.sv' in priority), 'Invalid priority type found: ' + typeof priority);\r\n    if (typeof json === 'object' && '.value' in json && json['.value'] !== null) {\r\n        json = json['.value'];\r\n    }\r\n    // Valid leaf nodes include non-objects or server-value wrapper objects\r\n    if (typeof json !== 'object' || '.sv' in json) {\r\n        var jsonLeaf = json;\r\n        return new LeafNode(jsonLeaf, nodeFromJSON$1(priority));\r\n    }\r\n    if (!(json instanceof Array) && USE_HINZE) {\r\n        var children_1 = [];\r\n        var childrenHavePriority_1 = false;\r\n        var hinzeJsonObj_1 = json;\r\n        util.forEach(hinzeJsonObj_1, function (key, child) {\r\n            if (typeof key !== 'string' || key.substring(0, 1) !== '.') {\r\n                // Ignore metadata nodes\r\n                var childNode = nodeFromJSON$1(hinzeJsonObj_1[key]);\r\n                if (!childNode.isEmpty()) {\r\n                    childrenHavePriority_1 =\r\n                        childrenHavePriority_1 || !childNode.getPriority().isEmpty();\r\n                    children_1.push(new NamedNode(key, childNode));\r\n                }\r\n            }\r\n        });\r\n        if (children_1.length == 0) {\r\n            return ChildrenNode.EMPTY_NODE;\r\n        }\r\n        var childSet = buildChildSet(children_1, NAME_ONLY_COMPARATOR, function (namedNode) { return namedNode.name; }, NAME_COMPARATOR);\r\n        if (childrenHavePriority_1) {\r\n            var sortedChildSet = buildChildSet(children_1, PRIORITY_INDEX.getCompare());\r\n            return new ChildrenNode(childSet, nodeFromJSON$1(priority), new IndexMap({ '.priority': sortedChildSet }, { '.priority': PRIORITY_INDEX }));\r\n        }\r\n        else {\r\n            return new ChildrenNode(childSet, nodeFromJSON$1(priority), IndexMap.Default);\r\n        }\r\n    }\r\n    else {\r\n        var node_1 = ChildrenNode.EMPTY_NODE;\r\n        var jsonObj_1 = json;\r\n        util.forEach(jsonObj_1, function (key, childData) {\r\n            if (util.contains(jsonObj_1, key)) {\r\n                if (key.substring(0, 1) !== '.') {\r\n                    // ignore metadata nodes.\r\n                    var childNode = nodeFromJSON$1(childData);\r\n                    if (childNode.isLeafNode() || !childNode.isEmpty())\r\n                        node_1 = node_1.updateImmediateChild(key, childNode);\r\n                }\r\n            }\r\n        });\r\n        return node_1.updatePriority(nodeFromJSON$1(priority));\r\n    }\r\n}\r\nsetNodeFromJSON(nodeFromJSON$1);\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @constructor\r\n * @extends {Index}\r\n * @private\r\n */\r\nvar ValueIndex = /** @class */ (function (_super) {\r\n    tslib_1.__extends(ValueIndex, _super);\r\n    function ValueIndex() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueIndex.prototype.compare = function (a, b) {\r\n        var indexCmp = a.node.compareTo(b.node);\r\n        if (indexCmp === 0) {\r\n            return nameCompare(a.name, b.name);\r\n        }\r\n        else {\r\n            return indexCmp;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueIndex.prototype.isDefinedOn = function (node) {\r\n        return true;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueIndex.prototype.indexedValueChanged = function (oldNode, newNode) {\r\n        return !oldNode.equals(newNode);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueIndex.prototype.minPost = function () {\r\n        return NamedNode.MIN;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueIndex.prototype.maxPost = function () {\r\n        return NamedNode.MAX;\r\n    };\r\n    /**\r\n     * @param {*} indexValue\r\n     * @param {string} name\r\n     * @return {!NamedNode}\r\n     */\r\n    ValueIndex.prototype.makePost = function (indexValue, name) {\r\n        var valueNode = nodeFromJSON$1(indexValue);\r\n        return new NamedNode(name, valueNode);\r\n    };\r\n    /**\r\n     * @return {!string} String representation for inclusion in a query spec\r\n     */\r\n    ValueIndex.prototype.toString = function () {\r\n        return '.value';\r\n    };\r\n    return ValueIndex;\r\n}(Index));\r\nvar VALUE_INDEX = new ValueIndex();\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param {!Path} indexPath\r\n * @constructor\r\n * @extends {Index}\r\n */\r\nvar PathIndex = /** @class */ (function (_super) {\r\n    tslib_1.__extends(PathIndex, _super);\r\n    function PathIndex(indexPath_) {\r\n        var _this = _super.call(this) || this;\r\n        _this.indexPath_ = indexPath_;\r\n        util.assert(!indexPath_.isEmpty() && indexPath_.getFront() !== '.priority', \"Can't create PathIndex with empty path or .priority key\");\r\n        return _this;\r\n    }\r\n    /**\r\n     * @param {!Node} snap\r\n     * @return {!Node}\r\n     * @protected\r\n     */\r\n    PathIndex.prototype.extractChild = function (snap) {\r\n        return snap.getChild(this.indexPath_);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PathIndex.prototype.isDefinedOn = function (node) {\r\n        return !node.getChild(this.indexPath_).isEmpty();\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PathIndex.prototype.compare = function (a, b) {\r\n        var aChild = this.extractChild(a.node);\r\n        var bChild = this.extractChild(b.node);\r\n        var indexCmp = aChild.compareTo(bChild);\r\n        if (indexCmp === 0) {\r\n            return nameCompare(a.name, b.name);\r\n        }\r\n        else {\r\n            return indexCmp;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PathIndex.prototype.makePost = function (indexValue, name) {\r\n        var valueNode = nodeFromJSON$1(indexValue);\r\n        var node = ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_, valueNode);\r\n        return new NamedNode(name, node);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PathIndex.prototype.maxPost = function () {\r\n        var node = ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_, MAX_NODE$2);\r\n        return new NamedNode(MAX_NAME, node);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PathIndex.prototype.toString = function () {\r\n        return this.indexPath_.slice().join('/');\r\n    };\r\n    return PathIndex;\r\n}(Index));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Class representing a firebase data snapshot.  It wraps a SnapshotNode and\r\n * surfaces the public methods (val, forEach, etc.) we want to expose.\r\n */\r\nvar DataSnapshot = /** @class */ (function () {\r\n    /**\r\n     * @param {!Node} node_ A SnapshotNode to wrap.\r\n     * @param {!Reference} ref_ The ref of the location this snapshot came from.\r\n     * @param {!Index} index_ The iteration order for this snapshot\r\n     */\r\n    function DataSnapshot(node_, ref_, index_) {\r\n        this.node_ = node_;\r\n        this.ref_ = ref_;\r\n        this.index_ = index_;\r\n    }\r\n    /**\r\n     * Retrieves the snapshot contents as JSON.  Returns null if the snapshot is\r\n     * empty.\r\n     *\r\n     * @return {*} JSON representation of the DataSnapshot contents, or null if empty.\r\n     */\r\n    DataSnapshot.prototype.val = function () {\r\n        util.validateArgCount('DataSnapshot.val', 0, 0, arguments.length);\r\n        return this.node_.val();\r\n    };\r\n    /**\r\n     * Returns the snapshot contents as JSON, including priorities of node.  Suitable for exporting\r\n     * the entire node contents.\r\n     * @return {*} JSON representation of the DataSnapshot contents, or null if empty.\r\n     */\r\n    DataSnapshot.prototype.exportVal = function () {\r\n        util.validateArgCount('DataSnapshot.exportVal', 0, 0, arguments.length);\r\n        return this.node_.val(true);\r\n    };\r\n    // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n    // for end-users\r\n    DataSnapshot.prototype.toJSON = function () {\r\n        // Optional spacer argument is unnecessary because we're depending on recursion rather than stringifying the content\r\n        util.validateArgCount('DataSnapshot.toJSON', 0, 1, arguments.length);\r\n        return this.exportVal();\r\n    };\r\n    /**\r\n     * Returns whether the snapshot contains a non-null value.\r\n     *\r\n     * @return {boolean} Whether the snapshot contains a non-null value, or is empty.\r\n     */\r\n    DataSnapshot.prototype.exists = function () {\r\n        util.validateArgCount('DataSnapshot.exists', 0, 0, arguments.length);\r\n        return !this.node_.isEmpty();\r\n    };\r\n    /**\r\n     * Returns a DataSnapshot of the specified child node's contents.\r\n     *\r\n     * @param {!string} childPathString Path to a child.\r\n     * @return {!DataSnapshot} DataSnapshot for child node.\r\n     */\r\n    DataSnapshot.prototype.child = function (childPathString) {\r\n        util.validateArgCount('DataSnapshot.child', 0, 1, arguments.length);\r\n        // Ensure the childPath is a string (can be a number)\r\n        childPathString = String(childPathString);\r\n        validatePathString('DataSnapshot.child', 1, childPathString, false);\r\n        var childPath = new Path(childPathString);\r\n        var childRef = this.ref_.child(childPath);\r\n        return new DataSnapshot(this.node_.getChild(childPath), childRef, PRIORITY_INDEX);\r\n    };\r\n    /**\r\n     * Returns whether the snapshot contains a child at the specified path.\r\n     *\r\n     * @param {!string} childPathString Path to a child.\r\n     * @return {boolean} Whether the child exists.\r\n     */\r\n    DataSnapshot.prototype.hasChild = function (childPathString) {\r\n        util.validateArgCount('DataSnapshot.hasChild', 1, 1, arguments.length);\r\n        validatePathString('DataSnapshot.hasChild', 1, childPathString, false);\r\n        var childPath = new Path(childPathString);\r\n        return !this.node_.getChild(childPath).isEmpty();\r\n    };\r\n    /**\r\n     * Returns the priority of the object, or null if no priority was set.\r\n     *\r\n     * @return {string|number|null} The priority.\r\n     */\r\n    DataSnapshot.prototype.getPriority = function () {\r\n        util.validateArgCount('DataSnapshot.getPriority', 0, 0, arguments.length);\r\n        // typecast here because we never return deferred values or internal priorities (MAX_PRIORITY)\r\n        return this.node_.getPriority().val();\r\n    };\r\n    /**\r\n     * Iterates through child nodes and calls the specified action for each one.\r\n     *\r\n     * @param {function(!DataSnapshot)} action Callback function to be called\r\n     * for each child.\r\n     * @return {boolean} True if forEach was canceled by action returning true for\r\n     * one of the child nodes.\r\n     */\r\n    DataSnapshot.prototype.forEach = function (action) {\r\n        var _this = this;\r\n        util.validateArgCount('DataSnapshot.forEach', 1, 1, arguments.length);\r\n        util.validateCallback('DataSnapshot.forEach', 1, action, false);\r\n        if (this.node_.isLeafNode())\r\n            return false;\r\n        var childrenNode = this.node_;\r\n        // Sanitize the return value to a boolean. ChildrenNode.forEachChild has a weird return type...\r\n        return !!childrenNode.forEachChild(this.index_, function (key, node) {\r\n            return action(new DataSnapshot(node, _this.ref_.child(key), PRIORITY_INDEX));\r\n        });\r\n    };\r\n    /**\r\n     * Returns whether this DataSnapshot has children.\r\n     * @return {boolean} True if the DataSnapshot contains 1 or more child nodes.\r\n     */\r\n    DataSnapshot.prototype.hasChildren = function () {\r\n        util.validateArgCount('DataSnapshot.hasChildren', 0, 0, arguments.length);\r\n        if (this.node_.isLeafNode())\r\n            return false;\r\n        else\r\n            return !this.node_.isEmpty();\r\n    };\r\n    Object.defineProperty(DataSnapshot.prototype, \"key\", {\r\n        get: function () {\r\n            return this.ref_.getKey();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * Returns the number of children for this DataSnapshot.\r\n     * @return {number} The number of children that this DataSnapshot contains.\r\n     */\r\n    DataSnapshot.prototype.numChildren = function () {\r\n        util.validateArgCount('DataSnapshot.numChildren', 0, 0, arguments.length);\r\n        return this.node_.numChildren();\r\n    };\r\n    /**\r\n     * @return {Reference} The Firebase reference for the location this snapshot's data came from.\r\n     */\r\n    DataSnapshot.prototype.getRef = function () {\r\n        util.validateArgCount('DataSnapshot.ref', 0, 0, arguments.length);\r\n        return this.ref_;\r\n    };\r\n    Object.defineProperty(DataSnapshot.prototype, \"ref\", {\r\n        get: function () {\r\n            return this.getRef();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return DataSnapshot;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Encapsulates the data needed to raise an event\r\n * @implements {Event}\r\n */\r\nvar DataEvent = /** @class */ (function () {\r\n    /**\r\n     * @param {!string} eventType One of: value, child_added, child_changed, child_moved, child_removed\r\n     * @param {!EventRegistration} eventRegistration The function to call to with the event data. User provided\r\n     * @param {!DataSnapshot} snapshot The data backing the event\r\n     * @param {?string=} prevName Optional, the name of the previous child for child_* events.\r\n     */\r\n    function DataEvent(eventType, eventRegistration, snapshot, prevName) {\r\n        this.eventType = eventType;\r\n        this.eventRegistration = eventRegistration;\r\n        this.snapshot = snapshot;\r\n        this.prevName = prevName;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    DataEvent.prototype.getPath = function () {\r\n        var ref = this.snapshot.getRef();\r\n        if (this.eventType === 'value') {\r\n            return ref.path;\r\n        }\r\n        else {\r\n            return ref.getParent().path;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    DataEvent.prototype.getEventType = function () {\r\n        return this.eventType;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    DataEvent.prototype.getEventRunner = function () {\r\n        return this.eventRegistration.getEventRunner(this);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    DataEvent.prototype.toString = function () {\r\n        return (this.getPath().toString() +\r\n            ':' +\r\n            this.eventType +\r\n            ':' +\r\n            util.stringify(this.snapshot.exportVal()));\r\n    };\r\n    return DataEvent;\r\n}());\r\nvar CancelEvent = /** @class */ (function () {\r\n    /**\r\n     * @param {EventRegistration} eventRegistration\r\n     * @param {Error} error\r\n     * @param {!Path} path\r\n     */\r\n    function CancelEvent(eventRegistration, error, path) {\r\n        this.eventRegistration = eventRegistration;\r\n        this.error = error;\r\n        this.path = path;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    CancelEvent.prototype.getPath = function () {\r\n        return this.path;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    CancelEvent.prototype.getEventType = function () {\r\n        return 'cancel';\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    CancelEvent.prototype.getEventRunner = function () {\r\n        return this.eventRegistration.getEventRunner(this);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    CancelEvent.prototype.toString = function () {\r\n        return this.path.toString() + ':cancel';\r\n    };\r\n    return CancelEvent;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Represents registration for 'value' events.\r\n */\r\nvar ValueEventRegistration = /** @class */ (function () {\r\n    /**\r\n     * @param {?function(!DataSnapshot)} callback_\r\n     * @param {?function(Error)} cancelCallback_\r\n     * @param {?Object} context_\r\n     */\r\n    function ValueEventRegistration(callback_, cancelCallback_, context_) {\r\n        this.callback_ = callback_;\r\n        this.cancelCallback_ = cancelCallback_;\r\n        this.context_ = context_;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.respondsTo = function (eventType) {\r\n        return eventType === 'value';\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.createEvent = function (change, query) {\r\n        var index = query.getQueryParams().getIndex();\r\n        return new DataEvent('value', this, new DataSnapshot(change.snapshotNode, query.getRef(), index));\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.getEventRunner = function (eventData) {\r\n        var ctx = this.context_;\r\n        if (eventData.getEventType() === 'cancel') {\r\n            util.assert(this.cancelCallback_, 'Raising a cancel event on a listener with no cancel callback');\r\n            var cancelCB_1 = this.cancelCallback_;\r\n            return function () {\r\n                // We know that error exists, we checked above that this is a cancel event\r\n                cancelCB_1.call(ctx, eventData.error);\r\n            };\r\n        }\r\n        else {\r\n            var cb_1 = this.callback_;\r\n            return function () {\r\n                cb_1.call(ctx, eventData.snapshot);\r\n            };\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.createCancelEvent = function (error, path) {\r\n        if (this.cancelCallback_) {\r\n            return new CancelEvent(this, error, path);\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.matches = function (other) {\r\n        if (!(other instanceof ValueEventRegistration)) {\r\n            return false;\r\n        }\r\n        else if (!other.callback_ || !this.callback_) {\r\n            // If no callback specified, we consider it to match any callback.\r\n            return true;\r\n        }\r\n        else {\r\n            return (other.callback_ === this.callback_ && other.context_ === this.context_);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ValueEventRegistration.prototype.hasAnyCallback = function () {\r\n        return this.callback_ !== null;\r\n    };\r\n    return ValueEventRegistration;\r\n}());\r\n/**\r\n * Represents the registration of 1 or more child_xxx events.\r\n *\r\n * Currently, it is always exactly 1 child_xxx event, but the idea is we might let you\r\n * register a group of callbacks together in the future.\r\n *\r\n * @constructor\r\n * @implements {EventRegistration}\r\n */\r\nvar ChildEventRegistration = /** @class */ (function () {\r\n    /**\r\n     * @param {?Object.<string, function(!DataSnapshot, ?string=)>} callbacks_\r\n     * @param {?function(Error)} cancelCallback_\r\n     * @param {Object=} context_\r\n     */\r\n    function ChildEventRegistration(callbacks_, cancelCallback_, context_) {\r\n        this.callbacks_ = callbacks_;\r\n        this.cancelCallback_ = cancelCallback_;\r\n        this.context_ = context_;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.respondsTo = function (eventType) {\r\n        var eventToCheck = eventType === 'children_added' ? 'child_added' : eventType;\r\n        eventToCheck =\r\n            eventToCheck === 'children_removed' ? 'child_removed' : eventToCheck;\r\n        return util.contains(this.callbacks_, eventToCheck);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.createCancelEvent = function (error, path) {\r\n        if (this.cancelCallback_) {\r\n            return new CancelEvent(this, error, path);\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.createEvent = function (change, query) {\r\n        util.assert(change.childName != null, 'Child events should have a childName.');\r\n        var ref = query.getRef().child(/** @type {!string} */ (change.childName));\r\n        var index = query.getQueryParams().getIndex();\r\n        return new DataEvent(change.type, this, new DataSnapshot(change.snapshotNode, ref, index), change.prevName);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.getEventRunner = function (eventData) {\r\n        var ctx = this.context_;\r\n        if (eventData.getEventType() === 'cancel') {\r\n            util.assert(this.cancelCallback_, 'Raising a cancel event on a listener with no cancel callback');\r\n            var cancelCB_2 = this.cancelCallback_;\r\n            return function () {\r\n                // We know that error exists, we checked above that this is a cancel event\r\n                cancelCB_2.call(ctx, eventData.error);\r\n            };\r\n        }\r\n        else {\r\n            var cb_2 = this.callbacks_[eventData.eventType];\r\n            return function () {\r\n                cb_2.call(ctx, eventData.snapshot, eventData.prevName);\r\n            };\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.matches = function (other) {\r\n        if (other instanceof ChildEventRegistration) {\r\n            if (!this.callbacks_ || !other.callbacks_) {\r\n                return true;\r\n            }\r\n            else if (this.context_ === other.context_) {\r\n                var otherCount = util.getCount(other.callbacks_);\r\n                var thisCount = util.getCount(this.callbacks_);\r\n                if (otherCount === thisCount) {\r\n                    // If count is 1, do an exact match on eventType, if either is defined but null, it's a match.\r\n                    //  If event types don't match, not a match\r\n                    // If count is not 1, exact match across all\r\n                    if (otherCount === 1) {\r\n                        var otherKey /** @type {!string} */ = util.getAnyKey(other.callbacks_);\r\n                        var thisKey /** @type {!string} */ = util.getAnyKey(this.callbacks_);\r\n                        return (thisKey === otherKey &&\r\n                            (!other.callbacks_[otherKey] ||\r\n                                !this.callbacks_[thisKey] ||\r\n                                other.callbacks_[otherKey] === this.callbacks_[thisKey]));\r\n                    }\r\n                    else {\r\n                        // Exact match on each key.\r\n                        return util.every(this.callbacks_, function (eventType, cb) { return other.callbacks_[eventType] === cb; });\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ChildEventRegistration.prototype.hasAnyCallback = function () {\r\n        return this.callbacks_ !== null;\r\n    };\r\n    return ChildEventRegistration;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __referenceConstructor;\r\n/**\r\n * A Query represents a filter to be applied to a firebase location.  This object purely represents the\r\n * query expression (and exposes our public API to build the query).  The actual query logic is in ViewBase.js.\r\n *\r\n * Since every Firebase reference is a query, Firebase inherits from this object.\r\n */\r\nvar Query = /** @class */ (function () {\r\n    function Query(repo, path, queryParams_, orderByCalled_) {\r\n        this.repo = repo;\r\n        this.path = path;\r\n        this.queryParams_ = queryParams_;\r\n        this.orderByCalled_ = orderByCalled_;\r\n    }\r\n    Object.defineProperty(Query, \"__referenceConstructor\", {\r\n        get: function () {\r\n            util.assert(__referenceConstructor, 'Reference.ts has not been loaded');\r\n            return __referenceConstructor;\r\n        },\r\n        set: function (val) {\r\n            __referenceConstructor = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * Validates start/end values for queries.\r\n     * @param {!QueryParams} params\r\n     * @private\r\n     */\r\n    Query.validateQueryEndpoints_ = function (params) {\r\n        var startNode = null;\r\n        var endNode = null;\r\n        if (params.hasStart()) {\r\n            startNode = params.getIndexStartValue();\r\n        }\r\n        if (params.hasEnd()) {\r\n            endNode = params.getIndexEndValue();\r\n        }\r\n        if (params.getIndex() === KEY_INDEX) {\r\n            var tooManyArgsError = 'Query: When ordering by key, you may only pass one argument to ' +\r\n                'startAt(), endAt(), or equalTo().';\r\n            var wrongArgTypeError = 'Query: When ordering by key, the argument passed to startAt(), endAt(),' +\r\n                'or equalTo() must be a string.';\r\n            if (params.hasStart()) {\r\n                var startName = params.getIndexStartName();\r\n                if (startName != MIN_NAME) {\r\n                    throw new Error(tooManyArgsError);\r\n                }\r\n                else if (typeof startNode !== 'string') {\r\n                    throw new Error(wrongArgTypeError);\r\n                }\r\n            }\r\n            if (params.hasEnd()) {\r\n                var endName = params.getIndexEndName();\r\n                if (endName != MAX_NAME) {\r\n                    throw new Error(tooManyArgsError);\r\n                }\r\n                else if (typeof endNode !== 'string') {\r\n                    throw new Error(wrongArgTypeError);\r\n                }\r\n            }\r\n        }\r\n        else if (params.getIndex() === PRIORITY_INDEX) {\r\n            if ((startNode != null && !isValidPriority(startNode)) ||\r\n                (endNode != null && !isValidPriority(endNode))) {\r\n                throw new Error('Query: When ordering by priority, the first argument passed to startAt(), ' +\r\n                    'endAt(), or equalTo() must be a valid priority value (null, a number, or a string).');\r\n            }\r\n        }\r\n        else {\r\n            util.assert(params.getIndex() instanceof PathIndex ||\r\n                params.getIndex() === VALUE_INDEX, 'unknown index type.');\r\n            if ((startNode != null && typeof startNode === 'object') ||\r\n                (endNode != null && typeof endNode === 'object')) {\r\n                throw new Error('Query: First argument passed to startAt(), endAt(), or equalTo() cannot be ' +\r\n                    'an object.');\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Validates that limit* has been called with the correct combination of parameters\r\n     * @param {!QueryParams} params\r\n     * @private\r\n     */\r\n    Query.validateLimit_ = function (params) {\r\n        if (params.hasStart() &&\r\n            params.hasEnd() &&\r\n            params.hasLimit() &&\r\n            !params.hasAnchoredLimit()) {\r\n            throw new Error(\"Query: Can't combine startAt(), endAt(), and limit(). Use limitToFirst() or limitToLast() instead.\");\r\n        }\r\n    };\r\n    /**\r\n     * Validates that no other order by call has been made\r\n     * @param {!string} fnName\r\n     * @private\r\n     */\r\n    Query.prototype.validateNoPreviousOrderByCall_ = function (fnName) {\r\n        if (this.orderByCalled_ === true) {\r\n            throw new Error(fnName + \": You can't combine multiple orderBy calls.\");\r\n        }\r\n    };\r\n    /**\r\n     * @return {!QueryParams}\r\n     */\r\n    Query.prototype.getQueryParams = function () {\r\n        return this.queryParams_;\r\n    };\r\n    /**\r\n     * @return {!Reference}\r\n     */\r\n    Query.prototype.getRef = function () {\r\n        util.validateArgCount('Query.ref', 0, 0, arguments.length);\r\n        // This is a slight hack. We cannot goog.require('fb.api.Firebase'), since Firebase requires fb.api.Query.\r\n        // However, we will always export 'Firebase' to the global namespace, so it's guaranteed to exist by the time this\r\n        // method gets called.\r\n        return new Query.__referenceConstructor(this.repo, this.path);\r\n    };\r\n    /**\r\n     * @param {!string} eventType\r\n     * @param {!function(DataSnapshot, string=)} callback\r\n     * @param {(function(Error)|Object)=} cancelCallbackOrContext\r\n     * @param {Object=} context\r\n     * @return {!function(DataSnapshot, string=)}\r\n     */\r\n    Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) {\r\n        util.validateArgCount('Query.on', 2, 4, arguments.length);\r\n        validateEventType('Query.on', 1, eventType, false);\r\n        util.validateCallback('Query.on', 2, callback, false);\r\n        var ret = Query.getCancelAndContextArgs_('Query.on', cancelCallbackOrContext, context);\r\n        if (eventType === 'value') {\r\n            this.onValueEvent(callback, ret.cancel, ret.context);\r\n        }\r\n        else {\r\n            var callbacks = {};\r\n            callbacks[eventType] = callback;\r\n            this.onChildEvent(callbacks, ret.cancel, ret.context);\r\n        }\r\n        return callback;\r\n    };\r\n    /**\r\n     * @param {!function(!DataSnapshot)} callback\r\n     * @param {?function(Error)} cancelCallback\r\n     * @param {?Object} context\r\n     * @protected\r\n     */\r\n    Query.prototype.onValueEvent = function (callback, cancelCallback, context) {\r\n        var container = new ValueEventRegistration(callback, cancelCallback || null, context || null);\r\n        this.repo.addEventCallbackForQuery(this, container);\r\n    };\r\n    /**\r\n     * @param {!Object.<string, !function(!DataSnapshot, ?string)>} callbacks\r\n     * @param {?function(Error)} cancelCallback\r\n     * @param {?Object} context\r\n     * @protected\r\n     */\r\n    Query.prototype.onChildEvent = function (callbacks, cancelCallback, context) {\r\n        var container = new ChildEventRegistration(callbacks, cancelCallback, context);\r\n        this.repo.addEventCallbackForQuery(this, container);\r\n    };\r\n    /**\r\n     * @param {string=} eventType\r\n     * @param {(function(!DataSnapshot, ?string=))=} callback\r\n     * @param {Object=} context\r\n     */\r\n    Query.prototype.off = function (eventType, callback, context) {\r\n        util.validateArgCount('Query.off', 0, 3, arguments.length);\r\n        validateEventType('Query.off', 1, eventType, true);\r\n        util.validateCallback('Query.off', 2, callback, true);\r\n        util.validateContextObject('Query.off', 3, context, true);\r\n        var container = null;\r\n        var callbacks = null;\r\n        if (eventType === 'value') {\r\n            var valueCallback = callback || null;\r\n            container = new ValueEventRegistration(valueCallback, null, context || null);\r\n        }\r\n        else if (eventType) {\r\n            if (callback) {\r\n                callbacks = {};\r\n                callbacks[eventType] = callback;\r\n            }\r\n            container = new ChildEventRegistration(callbacks, null, context || null);\r\n        }\r\n        this.repo.removeEventCallbackForQuery(this, container);\r\n    };\r\n    /**\r\n     * Attaches a listener, waits for the first event, and then removes the listener\r\n     * @param {!string} eventType\r\n     * @param {!function(!DataSnapshot, string=)} userCallback\r\n     * @param cancelOrContext\r\n     * @param context\r\n     * @return {!firebase.Promise}\r\n     */\r\n    Query.prototype.once = function (eventType, userCallback, cancelOrContext, context) {\r\n        var _this = this;\r\n        util.validateArgCount('Query.once', 1, 4, arguments.length);\r\n        validateEventType('Query.once', 1, eventType, false);\r\n        util.validateCallback('Query.once', 2, userCallback, true);\r\n        var ret = Query.getCancelAndContextArgs_('Query.once', cancelOrContext, context);\r\n        // TODO: Implement this more efficiently (in particular, use 'get' wire protocol for 'value' event)\r\n        // TODO: consider actually wiring the callbacks into the promise. We cannot do this without a breaking change\r\n        // because the API currently expects callbacks will be called synchronously if the data is cached, but this is\r\n        // against the Promise specification.\r\n        var firstCall = true;\r\n        var deferred = new util.Deferred();\r\n        // A dummy error handler in case a user wasn't expecting promises\r\n        deferred.promise.catch(function () { });\r\n        var onceCallback = function (snapshot) {\r\n            // NOTE: Even though we unsubscribe, we may get called multiple times if a single action (e.g. set() with JSON)\r\n            // triggers multiple events (e.g. child_added or child_changed).\r\n            if (firstCall) {\r\n                firstCall = false;\r\n                _this.off(eventType, onceCallback);\r\n                if (userCallback) {\r\n                    userCallback.bind(ret.context)(snapshot);\r\n                }\r\n                deferred.resolve(snapshot);\r\n            }\r\n        };\r\n        this.on(eventType, onceCallback, \r\n        /*cancel=*/ function (err) {\r\n            _this.off(eventType, onceCallback);\r\n            if (ret.cancel)\r\n                ret.cancel.bind(ret.context)(err);\r\n            deferred.reject(err);\r\n        });\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * Set a limit and anchor it to the start of the window.\r\n     * @param {!number} limit\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.limitToFirst = function (limit) {\r\n        util.validateArgCount('Query.limitToFirst', 1, 1, arguments.length);\r\n        if (typeof limit !== 'number' ||\r\n            Math.floor(limit) !== limit ||\r\n            limit <= 0) {\r\n            throw new Error('Query.limitToFirst: First argument must be a positive integer.');\r\n        }\r\n        if (this.queryParams_.hasLimit()) {\r\n            throw new Error('Query.limitToFirst: Limit was already set (by another call to limit, ' +\r\n                'limitToFirst, or limitToLast).');\r\n        }\r\n        return new Query(this.repo, this.path, this.queryParams_.limitToFirst(limit), this.orderByCalled_);\r\n    };\r\n    /**\r\n     * Set a limit and anchor it to the end of the window.\r\n     * @param {!number} limit\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.limitToLast = function (limit) {\r\n        util.validateArgCount('Query.limitToLast', 1, 1, arguments.length);\r\n        if (typeof limit !== 'number' ||\r\n            Math.floor(limit) !== limit ||\r\n            limit <= 0) {\r\n            throw new Error('Query.limitToLast: First argument must be a positive integer.');\r\n        }\r\n        if (this.queryParams_.hasLimit()) {\r\n            throw new Error('Query.limitToLast: Limit was already set (by another call to limit, ' +\r\n                'limitToFirst, or limitToLast).');\r\n        }\r\n        return new Query(this.repo, this.path, this.queryParams_.limitToLast(limit), this.orderByCalled_);\r\n    };\r\n    /**\r\n     * Given a child path, return a new query ordered by the specified grandchild path.\r\n     * @param {!string} path\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.orderByChild = function (path) {\r\n        util.validateArgCount('Query.orderByChild', 1, 1, arguments.length);\r\n        if (path === '$key') {\r\n            throw new Error('Query.orderByChild: \"$key\" is invalid.  Use Query.orderByKey() instead.');\r\n        }\r\n        else if (path === '$priority') {\r\n            throw new Error('Query.orderByChild: \"$priority\" is invalid.  Use Query.orderByPriority() instead.');\r\n        }\r\n        else if (path === '$value') {\r\n            throw new Error('Query.orderByChild: \"$value\" is invalid.  Use Query.orderByValue() instead.');\r\n        }\r\n        validatePathString('Query.orderByChild', 1, path, false);\r\n        this.validateNoPreviousOrderByCall_('Query.orderByChild');\r\n        var parsedPath = new Path(path);\r\n        if (parsedPath.isEmpty()) {\r\n            throw new Error('Query.orderByChild: cannot pass in empty path.  Use Query.orderByValue() instead.');\r\n        }\r\n        var index = new PathIndex(parsedPath);\r\n        var newParams = this.queryParams_.orderBy(index);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        return new Query(this.repo, this.path, newParams, /*orderByCalled=*/ true);\r\n    };\r\n    /**\r\n     * Return a new query ordered by the KeyIndex\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.orderByKey = function () {\r\n        util.validateArgCount('Query.orderByKey', 0, 0, arguments.length);\r\n        this.validateNoPreviousOrderByCall_('Query.orderByKey');\r\n        var newParams = this.queryParams_.orderBy(KEY_INDEX);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        return new Query(this.repo, this.path, newParams, /*orderByCalled=*/ true);\r\n    };\r\n    /**\r\n     * Return a new query ordered by the PriorityIndex\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.orderByPriority = function () {\r\n        util.validateArgCount('Query.orderByPriority', 0, 0, arguments.length);\r\n        this.validateNoPreviousOrderByCall_('Query.orderByPriority');\r\n        var newParams = this.queryParams_.orderBy(PRIORITY_INDEX);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        return new Query(this.repo, this.path, newParams, /*orderByCalled=*/ true);\r\n    };\r\n    /**\r\n     * Return a new query ordered by the ValueIndex\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.orderByValue = function () {\r\n        util.validateArgCount('Query.orderByValue', 0, 0, arguments.length);\r\n        this.validateNoPreviousOrderByCall_('Query.orderByValue');\r\n        var newParams = this.queryParams_.orderBy(VALUE_INDEX);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        return new Query(this.repo, this.path, newParams, /*orderByCalled=*/ true);\r\n    };\r\n    /**\r\n     * @param {number|string|boolean|null} value\r\n     * @param {?string=} name\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.startAt = function (value, name) {\r\n        if (value === void 0) { value = null; }\r\n        util.validateArgCount('Query.startAt', 0, 2, arguments.length);\r\n        validateFirebaseDataArg('Query.startAt', 1, value, this.path, true);\r\n        validateKey('Query.startAt', 2, name, true);\r\n        var newParams = this.queryParams_.startAt(value, name);\r\n        Query.validateLimit_(newParams);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        if (this.queryParams_.hasStart()) {\r\n            throw new Error('Query.startAt: Starting point was already set (by another call to startAt ' +\r\n                'or equalTo).');\r\n        }\r\n        // Calling with no params tells us to start at the beginning.\r\n        if (value === undefined) {\r\n            value = null;\r\n            name = null;\r\n        }\r\n        return new Query(this.repo, this.path, newParams, this.orderByCalled_);\r\n    };\r\n    /**\r\n     * @param {number|string|boolean|null} value\r\n     * @param {?string=} name\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.endAt = function (value, name) {\r\n        if (value === void 0) { value = null; }\r\n        util.validateArgCount('Query.endAt', 0, 2, arguments.length);\r\n        validateFirebaseDataArg('Query.endAt', 1, value, this.path, true);\r\n        validateKey('Query.endAt', 2, name, true);\r\n        var newParams = this.queryParams_.endAt(value, name);\r\n        Query.validateLimit_(newParams);\r\n        Query.validateQueryEndpoints_(newParams);\r\n        if (this.queryParams_.hasEnd()) {\r\n            throw new Error('Query.endAt: Ending point was already set (by another call to endAt or ' +\r\n                'equalTo).');\r\n        }\r\n        return new Query(this.repo, this.path, newParams, this.orderByCalled_);\r\n    };\r\n    /**\r\n     * Load the selection of children with exactly the specified value, and, optionally,\r\n     * the specified name.\r\n     * @param {number|string|boolean|null} value\r\n     * @param {string=} name\r\n     * @return {!Query}\r\n     */\r\n    Query.prototype.equalTo = function (value, name) {\r\n        util.validateArgCount('Query.equalTo', 1, 2, arguments.length);\r\n        validateFirebaseDataArg('Query.equalTo', 1, value, this.path, false);\r\n        validateKey('Query.equalTo', 2, name, true);\r\n        if (this.queryParams_.hasStart()) {\r\n            throw new Error('Query.equalTo: Starting point was already set (by another call to startAt or ' +\r\n                'equalTo).');\r\n        }\r\n        if (this.queryParams_.hasEnd()) {\r\n            throw new Error('Query.equalTo: Ending point was already set (by another call to endAt or ' +\r\n                'equalTo).');\r\n        }\r\n        return this.startAt(value, name).endAt(value, name);\r\n    };\r\n    /**\r\n     * @return {!string} URL for this location.\r\n     */\r\n    Query.prototype.toString = function () {\r\n        util.validateArgCount('Query.toString', 0, 0, arguments.length);\r\n        return this.repo.toString() + this.path.toUrlEncodedString();\r\n    };\r\n    // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n    // for end-users.\r\n    Query.prototype.toJSON = function () {\r\n        // An optional spacer argument is unnecessary for a string.\r\n        util.validateArgCount('Query.toJSON', 0, 1, arguments.length);\r\n        return this.toString();\r\n    };\r\n    /**\r\n     * An object representation of the query parameters used by this Query.\r\n     * @return {!Object}\r\n     */\r\n    Query.prototype.queryObject = function () {\r\n        return this.queryParams_.getQueryObject();\r\n    };\r\n    /**\r\n     * @return {!string}\r\n     */\r\n    Query.prototype.queryIdentifier = function () {\r\n        var obj = this.queryObject();\r\n        var id = ObjectToUniqueKey(obj);\r\n        return id === '{}' ? 'default' : id;\r\n    };\r\n    /**\r\n     * Return true if this query and the provided query are equivalent; otherwise, return false.\r\n     * @param {Query} other\r\n     * @return {boolean}\r\n     */\r\n    Query.prototype.isEqual = function (other) {\r\n        util.validateArgCount('Query.isEqual', 1, 1, arguments.length);\r\n        if (!(other instanceof Query)) {\r\n            var error$$1 = 'Query.isEqual failed: First argument must be an instance of firebase.database.Query.';\r\n            throw new Error(error$$1);\r\n        }\r\n        var sameRepo = this.repo === other.repo;\r\n        var samePath = this.path.equals(other.path);\r\n        var sameQueryIdentifier = this.queryIdentifier() === other.queryIdentifier();\r\n        return sameRepo && samePath && sameQueryIdentifier;\r\n    };\r\n    /**\r\n     * Helper used by .on and .once to extract the context and or cancel arguments.\r\n     * @param {!string} fnName The function name (on or once)\r\n     * @param {(function(Error)|Object)=} cancelOrContext\r\n     * @param {Object=} context\r\n     * @return {{cancel: ?function(Error), context: ?Object}}\r\n     * @private\r\n     */\r\n    Query.getCancelAndContextArgs_ = function (fnName, cancelOrContext, context) {\r\n        var ret = { cancel: null, context: null };\r\n        if (cancelOrContext && context) {\r\n            ret.cancel = cancelOrContext;\r\n            util.validateCallback(fnName, 3, ret.cancel, true);\r\n            ret.context = context;\r\n            util.validateContextObject(fnName, 4, ret.context, true);\r\n        }\r\n        else if (cancelOrContext) {\r\n            // we have either a cancel callback or a context.\r\n            if (typeof cancelOrContext === 'object' && cancelOrContext !== null) {\r\n                // it's a context!\r\n                ret.context = cancelOrContext;\r\n            }\r\n            else if (typeof cancelOrContext === 'function') {\r\n                ret.cancel = cancelOrContext;\r\n            }\r\n            else {\r\n                throw new Error(util.errorPrefix(fnName, 3, true) +\r\n                    ' must either be a cancel callback or a context object.');\r\n            }\r\n        }\r\n        return ret;\r\n    };\r\n    Object.defineProperty(Query.prototype, \"ref\", {\r\n        get: function () {\r\n            return this.getRef();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return Query;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Implements a set with a count of elements.\r\n *\r\n * @template K, V\r\n */\r\nvar CountedSet = /** @class */ (function () {\r\n    function CountedSet() {\r\n        this.set = {};\r\n    }\r\n    /**\r\n     * @param {!K} item\r\n     * @param {V} val\r\n     */\r\n    CountedSet.prototype.add = function (item, val) {\r\n        this.set[item] = val !== null ? val : true;\r\n    };\r\n    /**\r\n     * @param {!K} key\r\n     * @return {boolean}\r\n     */\r\n    CountedSet.prototype.contains = function (key) {\r\n        return util.contains(this.set, key);\r\n    };\r\n    /**\r\n     * @param {!K} item\r\n     * @return {V}\r\n     */\r\n    CountedSet.prototype.get = function (item) {\r\n        return this.contains(item) ? this.set[item] : undefined;\r\n    };\r\n    /**\r\n     * @param {!K} item\r\n     */\r\n    CountedSet.prototype.remove = function (item) {\r\n        delete this.set[item];\r\n    };\r\n    /**\r\n     * Deletes everything in the set\r\n     */\r\n    CountedSet.prototype.clear = function () {\r\n        this.set = {};\r\n    };\r\n    /**\r\n     * True if there's nothing in the set\r\n     * @return {boolean}\r\n     */\r\n    CountedSet.prototype.isEmpty = function () {\r\n        return util.isEmpty(this.set);\r\n    };\r\n    /**\r\n     * @return {number} The number of items in the set\r\n     */\r\n    CountedSet.prototype.count = function () {\r\n        return util.getCount(this.set);\r\n    };\r\n    /**\r\n     * Run a function on each k,v pair in the set\r\n     * @param {function(K, V)} fn\r\n     */\r\n    CountedSet.prototype.each = function (fn) {\r\n        util.forEach(this.set, function (k, v) { return fn(k, v); });\r\n    };\r\n    /**\r\n     * Mostly for debugging\r\n     * @return {Array.<K>} The keys present in this CountedSet\r\n     */\r\n    CountedSet.prototype.keys = function () {\r\n        var keys = [];\r\n        util.forEach(this.set, function (k) {\r\n            keys.push(k);\r\n        });\r\n        return keys;\r\n    };\r\n    return CountedSet;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Helper class to store a sparse set of snapshots.\r\n *\r\n * @constructor\r\n */\r\nvar SparseSnapshotTree = /** @class */ (function () {\r\n    function SparseSnapshotTree() {\r\n        /**\r\n         * @private\r\n         * @type {Node}\r\n         */\r\n        this.value_ = null;\r\n        /**\r\n         * @private\r\n         * @type {CountedSet}\r\n         */\r\n        this.children_ = null;\r\n    }\r\n    /**\r\n     * Gets the node stored at the given path if one exists.\r\n     *\r\n     * @param {!Path} path Path to look up snapshot for.\r\n     * @return {?Node} The retrieved node, or null.\r\n     */\r\n    SparseSnapshotTree.prototype.find = function (path) {\r\n        if (this.value_ != null) {\r\n            return this.value_.getChild(path);\r\n        }\r\n        else if (!path.isEmpty() && this.children_ != null) {\r\n            var childKey = path.getFront();\r\n            path = path.popFront();\r\n            if (this.children_.contains(childKey)) {\r\n                var childTree = this.children_.get(childKey);\r\n                return childTree.find(path);\r\n            }\r\n            else {\r\n                return null;\r\n            }\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Stores the given node at the specified path. If there is already a node\r\n     * at a shallower path, it merges the new data into that snapshot node.\r\n     *\r\n     * @param {!Path} path Path to look up snapshot for.\r\n     * @param {!Node} data The new data, or null.\r\n     */\r\n    SparseSnapshotTree.prototype.remember = function (path, data) {\r\n        if (path.isEmpty()) {\r\n            this.value_ = data;\r\n            this.children_ = null;\r\n        }\r\n        else if (this.value_ !== null) {\r\n            this.value_ = this.value_.updateChild(path, data);\r\n        }\r\n        else {\r\n            if (this.children_ == null) {\r\n                this.children_ = new CountedSet();\r\n            }\r\n            var childKey = path.getFront();\r\n            if (!this.children_.contains(childKey)) {\r\n                this.children_.add(childKey, new SparseSnapshotTree());\r\n            }\r\n            var child = this.children_.get(childKey);\r\n            path = path.popFront();\r\n            child.remember(path, data);\r\n        }\r\n    };\r\n    /**\r\n     * Purge the data at path from the cache.\r\n     *\r\n     * @param {!Path} path Path to look up snapshot for.\r\n     * @return {boolean} True if this node should now be removed.\r\n     */\r\n    SparseSnapshotTree.prototype.forget = function (path) {\r\n        if (path.isEmpty()) {\r\n            this.value_ = null;\r\n            this.children_ = null;\r\n            return true;\r\n        }\r\n        else {\r\n            if (this.value_ !== null) {\r\n                if (this.value_.isLeafNode()) {\r\n                    // We're trying to forget a node that doesn't exist\r\n                    return false;\r\n                }\r\n                else {\r\n                    var value = this.value_;\r\n                    this.value_ = null;\r\n                    var self_1 = this;\r\n                    value.forEachChild(PRIORITY_INDEX, function (key, tree) {\r\n                        self_1.remember(new Path(key), tree);\r\n                    });\r\n                    return this.forget(path);\r\n                }\r\n            }\r\n            else if (this.children_ !== null) {\r\n                var childKey = path.getFront();\r\n                path = path.popFront();\r\n                if (this.children_.contains(childKey)) {\r\n                    var safeToRemove = this.children_.get(childKey).forget(path);\r\n                    if (safeToRemove) {\r\n                        this.children_.remove(childKey);\r\n                    }\r\n                }\r\n                if (this.children_.isEmpty()) {\r\n                    this.children_ = null;\r\n                    return true;\r\n                }\r\n                else {\r\n                    return false;\r\n                }\r\n            }\r\n            else {\r\n                return true;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Recursively iterates through all of the stored tree and calls the\r\n     * callback on each one.\r\n     *\r\n     * @param {!Path} prefixPath Path to look up node for.\r\n     * @param {!Function} func The function to invoke for each tree.\r\n     */\r\n    SparseSnapshotTree.prototype.forEachTree = function (prefixPath, func) {\r\n        if (this.value_ !== null) {\r\n            func(prefixPath, this.value_);\r\n        }\r\n        else {\r\n            this.forEachChild(function (key, tree) {\r\n                var path = new Path(prefixPath.toString() + '/' + key);\r\n                tree.forEachTree(path, func);\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * Iterates through each immediate child and triggers the callback.\r\n     *\r\n     * @param {!Function} func The function to invoke for each child.\r\n     */\r\n    SparseSnapshotTree.prototype.forEachChild = function (func) {\r\n        if (this.children_ !== null) {\r\n            this.children_.each(function (key, tree) {\r\n                func(key, tree);\r\n            });\r\n        }\r\n    };\r\n    return SparseSnapshotTree;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Generate placeholders for deferred values.\r\n * @param {?Object} values\r\n * @return {!Object}\r\n */\r\nvar generateWithValues = function (values) {\r\n    values = values || {};\r\n    values['timestamp'] = values['timestamp'] || new Date().getTime();\r\n    return values;\r\n};\r\n/**\r\n * Value to use when firing local events. When writing server values, fire\r\n * local events with an approximate value, otherwise return value as-is.\r\n * @param {(Object|string|number|boolean)} value\r\n * @param {!Object} serverValues\r\n * @return {!(string|number|boolean)}\r\n */\r\nvar resolveDeferredValue = function (value, serverValues) {\r\n    if (!value || typeof value !== 'object') {\r\n        return value;\r\n    }\r\n    else {\r\n        util.assert('.sv' in value, 'Unexpected leaf node or priority contents');\r\n        return serverValues[value['.sv']];\r\n    }\r\n};\r\n/**\r\n * Recursively replace all deferred values and priorities in the tree with the\r\n * specified generated replacement values.\r\n * @param {!SparseSnapshotTree} tree\r\n * @param {!Object} serverValues\r\n * @return {!SparseSnapshotTree}\r\n */\r\nvar resolveDeferredValueTree = function (tree, serverValues) {\r\n    var resolvedTree = new SparseSnapshotTree();\r\n    tree.forEachTree(new Path(''), function (path, node) {\r\n        resolvedTree.remember(path, resolveDeferredValueSnapshot(node, serverValues));\r\n    });\r\n    return resolvedTree;\r\n};\r\n/**\r\n * Recursively replace all deferred values and priorities in the node with the\r\n * specified generated replacement values.  If there are no server values in the node,\r\n * it'll be returned as-is.\r\n * @param {!Node} node\r\n * @param {!Object} serverValues\r\n * @return {!Node}\r\n */\r\nvar resolveDeferredValueSnapshot = function (node, serverValues) {\r\n    var rawPri = node.getPriority().val();\r\n    var priority = resolveDeferredValue(rawPri, serverValues);\r\n    var newNode;\r\n    if (node.isLeafNode()) {\r\n        var leafNode = node;\r\n        var value = resolveDeferredValue(leafNode.getValue(), serverValues);\r\n        if (value !== leafNode.getValue() ||\r\n            priority !== leafNode.getPriority().val()) {\r\n            return new LeafNode(value, nodeFromJSON$1(priority));\r\n        }\r\n        else {\r\n            return node;\r\n        }\r\n    }\r\n    else {\r\n        var childrenNode = node;\r\n        newNode = childrenNode;\r\n        if (priority !== childrenNode.getPriority().val()) {\r\n            newNode = newNode.updatePriority(new LeafNode(priority));\r\n        }\r\n        childrenNode.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n            var newChildNode = resolveDeferredValueSnapshot(childNode, serverValues);\r\n            if (newChildNode !== childNode) {\r\n                newNode = newNode.updateImmediateChild(childName, newChildNode);\r\n            }\r\n        });\r\n        return newNode;\r\n    }\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n *\r\n * @enum\r\n */\r\nvar OperationType;\r\n(function (OperationType) {\r\n    OperationType[OperationType[\"OVERWRITE\"] = 0] = \"OVERWRITE\";\r\n    OperationType[OperationType[\"MERGE\"] = 1] = \"MERGE\";\r\n    OperationType[OperationType[\"ACK_USER_WRITE\"] = 2] = \"ACK_USER_WRITE\";\r\n    OperationType[OperationType[\"LISTEN_COMPLETE\"] = 3] = \"LISTEN_COMPLETE\";\r\n})(OperationType || (OperationType = {}));\r\n/**\r\n * @param {boolean} fromUser\r\n * @param {boolean} fromServer\r\n * @param {?string} queryId\r\n * @param {boolean} tagged\r\n * @constructor\r\n */\r\nvar OperationSource = /** @class */ (function () {\r\n    function OperationSource(fromUser, fromServer, queryId, tagged) {\r\n        this.fromUser = fromUser;\r\n        this.fromServer = fromServer;\r\n        this.queryId = queryId;\r\n        this.tagged = tagged;\r\n        util.assert(!tagged || fromServer, 'Tagged queries must be from server.');\r\n    }\r\n    /**\r\n     * @const\r\n     * @type {!OperationSource}\r\n     */\r\n    OperationSource.User = new OperationSource(\r\n    /*fromUser=*/ true, false, null, \r\n    /*tagged=*/ false);\r\n    /**\r\n     * @const\r\n     * @type {!OperationSource}\r\n     */\r\n    OperationSource.Server = new OperationSource(false, \r\n    /*fromServer=*/ true, null, \r\n    /*tagged=*/ false);\r\n    /**\r\n     * @param {string} queryId\r\n     * @return {!OperationSource}\r\n     */\r\n    OperationSource.forServerTaggedQuery = function (queryId) {\r\n        return new OperationSource(false, \r\n        /*fromServer=*/ true, queryId, \r\n        /*tagged=*/ true);\r\n    };\r\n    return OperationSource;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar AckUserWrite = /** @class */ (function () {\r\n    /**\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!ImmutableTree<!boolean>} affectedTree A tree containing true for each affected path. Affected paths can't overlap.\r\n     * @param {!boolean} revert\r\n     */\r\n    function AckUserWrite(\r\n    /**@inheritDoc */ path, \r\n    /**@inheritDoc */ affectedTree, \r\n    /**@inheritDoc */ revert) {\r\n        this.path = path;\r\n        this.affectedTree = affectedTree;\r\n        this.revert = revert;\r\n        /** @inheritDoc */\r\n        this.type = OperationType.ACK_USER_WRITE;\r\n        /** @inheritDoc */\r\n        this.source = OperationSource.User;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    AckUserWrite.prototype.operationForChild = function (childName) {\r\n        if (!this.path.isEmpty()) {\r\n            util.assert(this.path.getFront() === childName, 'operationForChild called for unrelated child.');\r\n            return new AckUserWrite(this.path.popFront(), this.affectedTree, this.revert);\r\n        }\r\n        else if (this.affectedTree.value != null) {\r\n            util.assert(this.affectedTree.children.isEmpty(), 'affectedTree should not have overlapping affected paths.');\r\n            // All child locations are affected as well; just return same operation.\r\n            return this;\r\n        }\r\n        else {\r\n            var childTree = this.affectedTree.subtree(new Path(childName));\r\n            return new AckUserWrite(Path.Empty, childTree, this.revert);\r\n        }\r\n    };\r\n    return AckUserWrite;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar emptyChildrenSingleton;\r\n/**\r\n * Singleton empty children collection.\r\n *\r\n * @const\r\n * @type {!SortedMap.<string, !ImmutableTree.<?>>}\r\n */\r\nvar EmptyChildren = function () {\r\n    if (!emptyChildrenSingleton) {\r\n        emptyChildrenSingleton = new SortedMap(stringCompare);\r\n    }\r\n    return emptyChildrenSingleton;\r\n};\r\n/**\r\n * A tree with immutable elements.\r\n */\r\nvar ImmutableTree = /** @class */ (function () {\r\n    /**\r\n     * @template T\r\n     * @param {?T} value\r\n     * @param {SortedMap.<string, !ImmutableTree.<T>>=} children\r\n     */\r\n    function ImmutableTree(value, children) {\r\n        if (children === void 0) { children = EmptyChildren(); }\r\n        this.value = value;\r\n        this.children = children;\r\n    }\r\n    /**\r\n     * @template T\r\n     * @param {!Object.<string, !T>} obj\r\n     * @return {!ImmutableTree.<!T>}\r\n     */\r\n    ImmutableTree.fromObject = function (obj) {\r\n        var tree = ImmutableTree.Empty;\r\n        util.forEach(obj, function (childPath, childSnap) {\r\n            tree = tree.set(new Path(childPath), childSnap);\r\n        });\r\n        return tree;\r\n    };\r\n    /**\r\n     * True if the value is empty and there are no children\r\n     * @return {boolean}\r\n     */\r\n    ImmutableTree.prototype.isEmpty = function () {\r\n        return this.value === null && this.children.isEmpty();\r\n    };\r\n    /**\r\n     * Given a path and predicate, return the first node and the path to that node\r\n     * where the predicate returns true.\r\n     *\r\n     * TODO Do a perf test -- If we're creating a bunch of {path: value:} objects\r\n     * on the way back out, it may be better to pass down a pathSoFar obj.\r\n     *\r\n     * @param {!Path} relativePath The remainder of the path\r\n     * @param {function(T):boolean} predicate The predicate to satisfy to return a\r\n     *   node\r\n     * @return {?{path:!Path, value:!T}}\r\n     */\r\n    ImmutableTree.prototype.findRootMostMatchingPathAndValue = function (relativePath, predicate) {\r\n        if (this.value != null && predicate(this.value)) {\r\n            return { path: Path.Empty, value: this.value };\r\n        }\r\n        else {\r\n            if (relativePath.isEmpty()) {\r\n                return null;\r\n            }\r\n            else {\r\n                var front = relativePath.getFront();\r\n                var child = this.children.get(front);\r\n                if (child !== null) {\r\n                    var childExistingPathAndValue = child.findRootMostMatchingPathAndValue(relativePath.popFront(), predicate);\r\n                    if (childExistingPathAndValue != null) {\r\n                        var fullPath = new Path(front).child(childExistingPathAndValue.path);\r\n                        return { path: fullPath, value: childExistingPathAndValue.value };\r\n                    }\r\n                    else {\r\n                        return null;\r\n                    }\r\n                }\r\n                else {\r\n                    return null;\r\n                }\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Find, if it exists, the shortest subpath of the given path that points a defined\r\n     * value in the tree\r\n     * @param {!Path} relativePath\r\n     * @return {?{path: !Path, value: !T}}\r\n     */\r\n    ImmutableTree.prototype.findRootMostValueAndPath = function (relativePath) {\r\n        return this.findRootMostMatchingPathAndValue(relativePath, function () { return true; });\r\n    };\r\n    /**\r\n     * @param {!Path} relativePath\r\n     * @return {!ImmutableTree.<T>} The subtree at the given path\r\n     */\r\n    ImmutableTree.prototype.subtree = function (relativePath) {\r\n        if (relativePath.isEmpty()) {\r\n            return this;\r\n        }\r\n        else {\r\n            var front = relativePath.getFront();\r\n            var childTree = this.children.get(front);\r\n            if (childTree !== null) {\r\n                return childTree.subtree(relativePath.popFront());\r\n            }\r\n            else {\r\n                return ImmutableTree.Empty;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Sets a value at the specified path.\r\n     *\r\n     * @param {!Path} relativePath Path to set value at.\r\n     * @param {?T} toSet Value to set.\r\n     * @return {!ImmutableTree.<T>} Resulting tree.\r\n     */\r\n    ImmutableTree.prototype.set = function (relativePath, toSet) {\r\n        if (relativePath.isEmpty()) {\r\n            return new ImmutableTree(toSet, this.children);\r\n        }\r\n        else {\r\n            var front = relativePath.getFront();\r\n            var child = this.children.get(front) || ImmutableTree.Empty;\r\n            var newChild = child.set(relativePath.popFront(), toSet);\r\n            var newChildren = this.children.insert(front, newChild);\r\n            return new ImmutableTree(this.value, newChildren);\r\n        }\r\n    };\r\n    /**\r\n     * Removes the value at the specified path.\r\n     *\r\n     * @param {!Path} relativePath Path to value to remove.\r\n     * @return {!ImmutableTree.<T>} Resulting tree.\r\n     */\r\n    ImmutableTree.prototype.remove = function (relativePath) {\r\n        if (relativePath.isEmpty()) {\r\n            if (this.children.isEmpty()) {\r\n                return ImmutableTree.Empty;\r\n            }\r\n            else {\r\n                return new ImmutableTree(null, this.children);\r\n            }\r\n        }\r\n        else {\r\n            var front = relativePath.getFront();\r\n            var child = this.children.get(front);\r\n            if (child) {\r\n                var newChild = child.remove(relativePath.popFront());\r\n                var newChildren = void 0;\r\n                if (newChild.isEmpty()) {\r\n                    newChildren = this.children.remove(front);\r\n                }\r\n                else {\r\n                    newChildren = this.children.insert(front, newChild);\r\n                }\r\n                if (this.value === null && newChildren.isEmpty()) {\r\n                    return ImmutableTree.Empty;\r\n                }\r\n                else {\r\n                    return new ImmutableTree(this.value, newChildren);\r\n                }\r\n            }\r\n            else {\r\n                return this;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Gets a value from the tree.\r\n     *\r\n     * @param {!Path} relativePath Path to get value for.\r\n     * @return {?T} Value at path, or null.\r\n     */\r\n    ImmutableTree.prototype.get = function (relativePath) {\r\n        if (relativePath.isEmpty()) {\r\n            return this.value;\r\n        }\r\n        else {\r\n            var front = relativePath.getFront();\r\n            var child = this.children.get(front);\r\n            if (child) {\r\n                return child.get(relativePath.popFront());\r\n            }\r\n            else {\r\n                return null;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Replace the subtree at the specified path with the given new tree.\r\n     *\r\n     * @param {!Path} relativePath Path to replace subtree for.\r\n     * @param {!ImmutableTree} newTree New tree.\r\n     * @return {!ImmutableTree} Resulting tree.\r\n     */\r\n    ImmutableTree.prototype.setTree = function (relativePath, newTree) {\r\n        if (relativePath.isEmpty()) {\r\n            return newTree;\r\n        }\r\n        else {\r\n            var front = relativePath.getFront();\r\n            var child = this.children.get(front) || ImmutableTree.Empty;\r\n            var newChild = child.setTree(relativePath.popFront(), newTree);\r\n            var newChildren = void 0;\r\n            if (newChild.isEmpty()) {\r\n                newChildren = this.children.remove(front);\r\n            }\r\n            else {\r\n                newChildren = this.children.insert(front, newChild);\r\n            }\r\n            return new ImmutableTree(this.value, newChildren);\r\n        }\r\n    };\r\n    /**\r\n     * Performs a depth first fold on this tree. Transforms a tree into a single\r\n     * value, given a function that operates on the path to a node, an optional\r\n     * current value, and a map of child names to folded subtrees\r\n     * @template V\r\n     * @param {function(Path, ?T, Object.<string, V>):V} fn\r\n     * @return {V}\r\n     */\r\n    ImmutableTree.prototype.fold = function (fn) {\r\n        return this.fold_(Path.Empty, fn);\r\n    };\r\n    /**\r\n     * Recursive helper for public-facing fold() method\r\n     * @template V\r\n     * @param {!Path} pathSoFar\r\n     * @param {function(Path, ?T, Object.<string, V>):V} fn\r\n     * @return {V}\r\n     * @private\r\n     */\r\n    ImmutableTree.prototype.fold_ = function (pathSoFar, fn) {\r\n        var accum = {};\r\n        this.children.inorderTraversal(function (childKey, childTree) {\r\n            accum[childKey] = childTree.fold_(pathSoFar.child(childKey), fn);\r\n        });\r\n        return fn(pathSoFar, this.value, accum);\r\n    };\r\n    /**\r\n     * Find the first matching value on the given path. Return the result of applying f to it.\r\n     * @template V\r\n     * @param {!Path} path\r\n     * @param {!function(!Path, !T):?V} f\r\n     * @return {?V}\r\n     */\r\n    ImmutableTree.prototype.findOnPath = function (path, f) {\r\n        return this.findOnPath_(path, Path.Empty, f);\r\n    };\r\n    ImmutableTree.prototype.findOnPath_ = function (pathToFollow, pathSoFar, f) {\r\n        var result = this.value ? f(pathSoFar, this.value) : false;\r\n        if (result) {\r\n            return result;\r\n        }\r\n        else {\r\n            if (pathToFollow.isEmpty()) {\r\n                return null;\r\n            }\r\n            else {\r\n                var front = pathToFollow.getFront();\r\n                var nextChild = this.children.get(front);\r\n                if (nextChild) {\r\n                    return nextChild.findOnPath_(pathToFollow.popFront(), pathSoFar.child(front), f);\r\n                }\r\n                else {\r\n                    return null;\r\n                }\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!function(!Path, !T)} f\r\n     * @returns {!ImmutableTree.<T>}\r\n     */\r\n    ImmutableTree.prototype.foreachOnPath = function (path, f) {\r\n        return this.foreachOnPath_(path, Path.Empty, f);\r\n    };\r\n    ImmutableTree.prototype.foreachOnPath_ = function (pathToFollow, currentRelativePath, f) {\r\n        if (pathToFollow.isEmpty()) {\r\n            return this;\r\n        }\r\n        else {\r\n            if (this.value) {\r\n                f(currentRelativePath, this.value);\r\n            }\r\n            var front = pathToFollow.getFront();\r\n            var nextChild = this.children.get(front);\r\n            if (nextChild) {\r\n                return nextChild.foreachOnPath_(pathToFollow.popFront(), currentRelativePath.child(front), f);\r\n            }\r\n            else {\r\n                return ImmutableTree.Empty;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Calls the given function for each node in the tree that has a value.\r\n     *\r\n     * @param {function(!Path, !T)} f A function to be called with\r\n     *   the path from the root of the tree to a node, and the value at that node.\r\n     *   Called in depth-first order.\r\n     */\r\n    ImmutableTree.prototype.foreach = function (f) {\r\n        this.foreach_(Path.Empty, f);\r\n    };\r\n    ImmutableTree.prototype.foreach_ = function (currentRelativePath, f) {\r\n        this.children.inorderTraversal(function (childName, childTree) {\r\n            childTree.foreach_(currentRelativePath.child(childName), f);\r\n        });\r\n        if (this.value) {\r\n            f(currentRelativePath, this.value);\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @param {function(string, !T)} f\r\n     */\r\n    ImmutableTree.prototype.foreachChild = function (f) {\r\n        this.children.inorderTraversal(function (childName, childTree) {\r\n            if (childTree.value) {\r\n                f(childName, childTree.value);\r\n            }\r\n        });\r\n    };\r\n    ImmutableTree.Empty = new ImmutableTree(null);\r\n    return ImmutableTree;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param {!OperationSource} source\r\n * @param {!Path} path\r\n * @constructor\r\n * @implements {Operation}\r\n */\r\nvar ListenComplete = /** @class */ (function () {\r\n    function ListenComplete(source, path) {\r\n        this.source = source;\r\n        this.path = path;\r\n        /** @inheritDoc */\r\n        this.type = OperationType.LISTEN_COMPLETE;\r\n    }\r\n    ListenComplete.prototype.operationForChild = function (childName) {\r\n        if (this.path.isEmpty()) {\r\n            return new ListenComplete(this.source, Path.Empty);\r\n        }\r\n        else {\r\n            return new ListenComplete(this.source, this.path.popFront());\r\n        }\r\n    };\r\n    return ListenComplete;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param {!OperationSource} source\r\n * @param {!Path} path\r\n * @param {!Node} snap\r\n * @constructor\r\n * @implements {Operation}\r\n */\r\nvar Overwrite = /** @class */ (function () {\r\n    function Overwrite(source, path, snap) {\r\n        this.source = source;\r\n        this.path = path;\r\n        this.snap = snap;\r\n        /** @inheritDoc */\r\n        this.type = OperationType.OVERWRITE;\r\n    }\r\n    Overwrite.prototype.operationForChild = function (childName) {\r\n        if (this.path.isEmpty()) {\r\n            return new Overwrite(this.source, Path.Empty, this.snap.getImmediateChild(childName));\r\n        }\r\n        else {\r\n            return new Overwrite(this.source, this.path.popFront(), this.snap);\r\n        }\r\n    };\r\n    return Overwrite;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @param {!OperationSource} source\r\n * @param {!Path} path\r\n * @param {!ImmutableTree.<!Node>} children\r\n * @constructor\r\n * @implements {Operation}\r\n */\r\nvar Merge = /** @class */ (function () {\r\n    function Merge(\r\n    /**@inheritDoc */ source, \r\n    /**@inheritDoc */ path, \r\n    /**@inheritDoc */ children) {\r\n        this.source = source;\r\n        this.path = path;\r\n        this.children = children;\r\n        /** @inheritDoc */\r\n        this.type = OperationType.MERGE;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Merge.prototype.operationForChild = function (childName) {\r\n        if (this.path.isEmpty()) {\r\n            var childTree = this.children.subtree(new Path(childName));\r\n            if (childTree.isEmpty()) {\r\n                // This child is unaffected\r\n                return null;\r\n            }\r\n            else if (childTree.value) {\r\n                // We have a snapshot for the child in question.  This becomes an overwrite of the child.\r\n                return new Overwrite(this.source, Path.Empty, childTree.value);\r\n            }\r\n            else {\r\n                // This is a merge at a deeper level\r\n                return new Merge(this.source, Path.Empty, childTree);\r\n            }\r\n        }\r\n        else {\r\n            util.assert(this.path.getFront() === childName, \"Can't get a merge for a child not on the path of the operation\");\r\n            return new Merge(this.source, this.path.popFront(), this.children);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Merge.prototype.toString = function () {\r\n        return ('Operation(' +\r\n            this.path +\r\n            ': ' +\r\n            this.source.toString() +\r\n            ' merge: ' +\r\n            this.children.toString() +\r\n            ')');\r\n    };\r\n    return Merge;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A cache node only stores complete children. Additionally it holds a flag whether the node can be considered fully\r\n * initialized in the sense that we know at one point in time this represented a valid state of the world, e.g.\r\n * initialized with data from the server, or a complete overwrite by the client. The filtered flag also tracks\r\n * whether a node potentially had children removed due to a filter.\r\n */\r\nvar CacheNode = /** @class */ (function () {\r\n    /**\r\n     * @param {!Node} node_\r\n     * @param {boolean} fullyInitialized_\r\n     * @param {boolean} filtered_\r\n     */\r\n    function CacheNode(node_, fullyInitialized_, filtered_) {\r\n        this.node_ = node_;\r\n        this.fullyInitialized_ = fullyInitialized_;\r\n        this.filtered_ = filtered_;\r\n    }\r\n    /**\r\n     * Returns whether this node was fully initialized with either server data or a complete overwrite by the client\r\n     * @return {boolean}\r\n     */\r\n    CacheNode.prototype.isFullyInitialized = function () {\r\n        return this.fullyInitialized_;\r\n    };\r\n    /**\r\n     * Returns whether this node is potentially missing children due to a filter applied to the node\r\n     * @return {boolean}\r\n     */\r\n    CacheNode.prototype.isFiltered = function () {\r\n        return this.filtered_;\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @return {boolean}\r\n     */\r\n    CacheNode.prototype.isCompleteForPath = function (path) {\r\n        if (path.isEmpty()) {\r\n            return this.isFullyInitialized() && !this.filtered_;\r\n        }\r\n        var childKey = path.getFront();\r\n        return this.isCompleteForChild(childKey);\r\n    };\r\n    /**\r\n     * @param {!string} key\r\n     * @return {boolean}\r\n     */\r\n    CacheNode.prototype.isCompleteForChild = function (key) {\r\n        return ((this.isFullyInitialized() && !this.filtered_) || this.node_.hasChild(key));\r\n    };\r\n    /**\r\n     * @return {!Node}\r\n     */\r\n    CacheNode.prototype.getNode = function () {\r\n        return this.node_;\r\n    };\r\n    return CacheNode;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Stores the data we have cached for a view.\r\n *\r\n * serverSnap is the cached server data, eventSnap is the cached event data (server data plus any local writes).\r\n *\r\n * @constructor\r\n */\r\nvar ViewCache = /** @class */ (function () {\r\n    /**\r\n     *\r\n     * @param {!CacheNode} eventCache_\r\n     * @param {!CacheNode} serverCache_\r\n     */\r\n    function ViewCache(eventCache_, serverCache_) {\r\n        this.eventCache_ = eventCache_;\r\n        this.serverCache_ = serverCache_;\r\n    }\r\n    /**\r\n     * @param {!Node} eventSnap\r\n     * @param {boolean} complete\r\n     * @param {boolean} filtered\r\n     * @return {!ViewCache}\r\n     */\r\n    ViewCache.prototype.updateEventSnap = function (eventSnap, complete, filtered) {\r\n        return new ViewCache(new CacheNode(eventSnap, complete, filtered), this.serverCache_);\r\n    };\r\n    /**\r\n     * @param {!Node} serverSnap\r\n     * @param {boolean} complete\r\n     * @param {boolean} filtered\r\n     * @return {!ViewCache}\r\n     */\r\n    ViewCache.prototype.updateServerSnap = function (serverSnap, complete, filtered) {\r\n        return new ViewCache(this.eventCache_, new CacheNode(serverSnap, complete, filtered));\r\n    };\r\n    /**\r\n     * @return {!CacheNode}\r\n     */\r\n    ViewCache.prototype.getEventCache = function () {\r\n        return this.eventCache_;\r\n    };\r\n    /**\r\n     * @return {?Node}\r\n     */\r\n    ViewCache.prototype.getCompleteEventSnap = function () {\r\n        return this.eventCache_.isFullyInitialized()\r\n            ? this.eventCache_.getNode()\r\n            : null;\r\n    };\r\n    /**\r\n     * @return {!CacheNode}\r\n     */\r\n    ViewCache.prototype.getServerCache = function () {\r\n        return this.serverCache_;\r\n    };\r\n    /**\r\n     * @return {?Node}\r\n     */\r\n    ViewCache.prototype.getCompleteServerSnap = function () {\r\n        return this.serverCache_.isFullyInitialized()\r\n            ? this.serverCache_.getNode()\r\n            : null;\r\n    };\r\n    /**\r\n     * @const\r\n     * @type {ViewCache}\r\n     */\r\n    ViewCache.Empty = new ViewCache(new CacheNode(ChildrenNode.EMPTY_NODE, \r\n    /*fullyInitialized=*/ false, \r\n    /*filtered=*/ false), new CacheNode(ChildrenNode.EMPTY_NODE, \r\n    /*fullyInitialized=*/ false, \r\n    /*filtered=*/ false));\r\n    return ViewCache;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @constructor\r\n * @struct\r\n * @param {!string} type The event type\r\n * @param {!Node} snapshotNode The data\r\n * @param {string=} childName The name for this child, if it's a child event\r\n * @param {Node=} oldSnap Used for intermediate processing of child changed events\r\n * @param {string=} prevName The name for the previous child, if applicable\r\n */\r\nvar Change = /** @class */ (function () {\r\n    function Change(type, snapshotNode, childName, oldSnap, prevName) {\r\n        this.type = type;\r\n        this.snapshotNode = snapshotNode;\r\n        this.childName = childName;\r\n        this.oldSnap = oldSnap;\r\n        this.prevName = prevName;\r\n    }\r\n    /**\r\n     * @param {!Node} snapshot\r\n     * @return {!Change}\r\n     */\r\n    Change.valueChange = function (snapshot) {\r\n        return new Change(Change.VALUE, snapshot);\r\n    };\r\n    /**\r\n     * @param {string} childKey\r\n     * @param {!Node} snapshot\r\n     * @return {!Change}\r\n     */\r\n    Change.childAddedChange = function (childKey, snapshot) {\r\n        return new Change(Change.CHILD_ADDED, snapshot, childKey);\r\n    };\r\n    /**\r\n     * @param {string} childKey\r\n     * @param {!Node} snapshot\r\n     * @return {!Change}\r\n     */\r\n    Change.childRemovedChange = function (childKey, snapshot) {\r\n        return new Change(Change.CHILD_REMOVED, snapshot, childKey);\r\n    };\r\n    /**\r\n     * @param {string} childKey\r\n     * @param {!Node} newSnapshot\r\n     * @param {!Node} oldSnapshot\r\n     * @return {!Change}\r\n     */\r\n    Change.childChangedChange = function (childKey, newSnapshot, oldSnapshot) {\r\n        return new Change(Change.CHILD_CHANGED, newSnapshot, childKey, oldSnapshot);\r\n    };\r\n    /**\r\n     * @param {string} childKey\r\n     * @param {!Node} snapshot\r\n     * @return {!Change}\r\n     */\r\n    Change.childMovedChange = function (childKey, snapshot) {\r\n        return new Change(Change.CHILD_MOVED, snapshot, childKey);\r\n    };\r\n    //event types\r\n    /** Event type for a child added */\r\n    Change.CHILD_ADDED = 'child_added';\r\n    /** Event type for a child removed */\r\n    Change.CHILD_REMOVED = 'child_removed';\r\n    /** Event type for a child changed */\r\n    Change.CHILD_CHANGED = 'child_changed';\r\n    /** Event type for a child moved */\r\n    Change.CHILD_MOVED = 'child_moved';\r\n    /** Event type for a value change */\r\n    Change.VALUE = 'value';\r\n    return Change;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Doesn't really filter nodes but applies an index to the node and keeps track of any changes\r\n *\r\n * @constructor\r\n * @implements {NodeFilter}\r\n * @param {!Index} index\r\n */\r\nvar IndexedFilter = /** @class */ (function () {\r\n    function IndexedFilter(index_) {\r\n        this.index_ = index_;\r\n    }\r\n    IndexedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n        util.assert(snap.isIndexed(this.index_), 'A node must be indexed if only a child is updated');\r\n        var oldChild = snap.getImmediateChild(key);\r\n        // Check if anything actually changed.\r\n        if (oldChild.getChild(affectedPath).equals(newChild.getChild(affectedPath))) {\r\n            // There's an edge case where a child can enter or leave the view because affectedPath was set to null.\r\n            // In this case, affectedPath will appear null in both the old and new snapshots.  So we need\r\n            // to avoid treating these cases as \"nothing changed.\"\r\n            if (oldChild.isEmpty() == newChild.isEmpty()) {\r\n                // Nothing changed.\r\n                // This assert should be valid, but it's expensive (can dominate perf testing) so don't actually do it.\r\n                //assert(oldChild.equals(newChild), 'Old and new snapshots should be equal.');\r\n                return snap;\r\n            }\r\n        }\r\n        if (optChangeAccumulator != null) {\r\n            if (newChild.isEmpty()) {\r\n                if (snap.hasChild(key)) {\r\n                    optChangeAccumulator.trackChildChange(Change.childRemovedChange(key, oldChild));\r\n                }\r\n                else {\r\n                    util.assert(snap.isLeafNode(), 'A child remove without an old child only makes sense on a leaf node');\r\n                }\r\n            }\r\n            else if (oldChild.isEmpty()) {\r\n                optChangeAccumulator.trackChildChange(Change.childAddedChange(key, newChild));\r\n            }\r\n            else {\r\n                optChangeAccumulator.trackChildChange(Change.childChangedChange(key, newChild, oldChild));\r\n            }\r\n        }\r\n        if (snap.isLeafNode() && newChild.isEmpty()) {\r\n            return snap;\r\n        }\r\n        else {\r\n            // Make sure the node is indexed\r\n            return snap.updateImmediateChild(key, newChild).withIndex(this.index_);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    IndexedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n        if (optChangeAccumulator != null) {\r\n            if (!oldSnap.isLeafNode()) {\r\n                oldSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n                    if (!newSnap.hasChild(key)) {\r\n                        optChangeAccumulator.trackChildChange(Change.childRemovedChange(key, childNode));\r\n                    }\r\n                });\r\n            }\r\n            if (!newSnap.isLeafNode()) {\r\n                newSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n                    if (oldSnap.hasChild(key)) {\r\n                        var oldChild = oldSnap.getImmediateChild(key);\r\n                        if (!oldChild.equals(childNode)) {\r\n                            optChangeAccumulator.trackChildChange(Change.childChangedChange(key, childNode, oldChild));\r\n                        }\r\n                    }\r\n                    else {\r\n                        optChangeAccumulator.trackChildChange(Change.childAddedChange(key, childNode));\r\n                    }\r\n                });\r\n            }\r\n        }\r\n        return newSnap.withIndex(this.index_);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    IndexedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n        if (oldSnap.isEmpty()) {\r\n            return ChildrenNode.EMPTY_NODE;\r\n        }\r\n        else {\r\n            return oldSnap.updatePriority(newPriority);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    IndexedFilter.prototype.filtersNodes = function () {\r\n        return false;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    IndexedFilter.prototype.getIndexedFilter = function () {\r\n        return this;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    IndexedFilter.prototype.getIndex = function () {\r\n        return this.index_;\r\n    };\r\n    return IndexedFilter;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @constructor\r\n */\r\nvar ChildChangeAccumulator = /** @class */ (function () {\r\n    function ChildChangeAccumulator() {\r\n        this.changeMap_ = {};\r\n    }\r\n    /**\r\n     * @param {!Change} change\r\n     */\r\n    ChildChangeAccumulator.prototype.trackChildChange = function (change) {\r\n        var type = change.type;\r\n        var childKey /** @type {!string} */ = change.childName;\r\n        util.assert(type == Change.CHILD_ADDED ||\r\n            type == Change.CHILD_CHANGED ||\r\n            type == Change.CHILD_REMOVED, 'Only child changes supported for tracking');\r\n        util.assert(childKey !== '.priority', 'Only non-priority child changes can be tracked.');\r\n        var oldChange = util.safeGet(this.changeMap_, childKey);\r\n        if (oldChange) {\r\n            var oldType = oldChange.type;\r\n            if (type == Change.CHILD_ADDED && oldType == Change.CHILD_REMOVED) {\r\n                this.changeMap_[childKey] = Change.childChangedChange(childKey, change.snapshotNode, oldChange.snapshotNode);\r\n            }\r\n            else if (type == Change.CHILD_REMOVED &&\r\n                oldType == Change.CHILD_ADDED) {\r\n                delete this.changeMap_[childKey];\r\n            }\r\n            else if (type == Change.CHILD_REMOVED &&\r\n                oldType == Change.CHILD_CHANGED) {\r\n                this.changeMap_[childKey] = Change.childRemovedChange(childKey, oldChange.oldSnap);\r\n            }\r\n            else if (type == Change.CHILD_CHANGED &&\r\n                oldType == Change.CHILD_ADDED) {\r\n                this.changeMap_[childKey] = Change.childAddedChange(childKey, change.snapshotNode);\r\n            }\r\n            else if (type == Change.CHILD_CHANGED &&\r\n                oldType == Change.CHILD_CHANGED) {\r\n                this.changeMap_[childKey] = Change.childChangedChange(childKey, change.snapshotNode, oldChange.oldSnap);\r\n            }\r\n            else {\r\n                throw util.assertionError('Illegal combination of changes: ' +\r\n                    change +\r\n                    ' occurred after ' +\r\n                    oldChange);\r\n            }\r\n        }\r\n        else {\r\n            this.changeMap_[childKey] = change;\r\n        }\r\n    };\r\n    /**\r\n     * @return {!Array.<!Change>}\r\n     */\r\n    ChildChangeAccumulator.prototype.getChanges = function () {\r\n        return util.getValues(this.changeMap_);\r\n    };\r\n    return ChildChangeAccumulator;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An implementation of CompleteChildSource that never returns any additional children\r\n *\r\n * @private\r\n * @constructor\r\n * @implements CompleteChildSource\r\n */\r\nvar NoCompleteChildSource_ = /** @class */ (function () {\r\n    function NoCompleteChildSource_() {\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    NoCompleteChildSource_.prototype.getCompleteChild = function (childKey) {\r\n        return null;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    NoCompleteChildSource_.prototype.getChildAfterChild = function (index, child, reverse) {\r\n        return null;\r\n    };\r\n    return NoCompleteChildSource_;\r\n}());\r\n/**\r\n * Singleton instance.\r\n * @const\r\n * @type {!CompleteChildSource}\r\n */\r\nvar NO_COMPLETE_CHILD_SOURCE = new NoCompleteChildSource_();\r\n/**\r\n * An implementation of CompleteChildSource that uses a WriteTree in addition to any other server data or\r\n * old event caches available to calculate complete children.\r\n *\r\n *\r\n * @implements CompleteChildSource\r\n */\r\nvar WriteTreeCompleteChildSource = /** @class */ (function () {\r\n    /**\r\n     * @param {!WriteTreeRef} writes_\r\n     * @param {!ViewCache} viewCache_\r\n     * @param {?Node} optCompleteServerCache_\r\n     */\r\n    function WriteTreeCompleteChildSource(writes_, viewCache_, optCompleteServerCache_) {\r\n        if (optCompleteServerCache_ === void 0) { optCompleteServerCache_ = null; }\r\n        this.writes_ = writes_;\r\n        this.viewCache_ = viewCache_;\r\n        this.optCompleteServerCache_ = optCompleteServerCache_;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    WriteTreeCompleteChildSource.prototype.getCompleteChild = function (childKey) {\r\n        var node = this.viewCache_.getEventCache();\r\n        if (node.isCompleteForChild(childKey)) {\r\n            return node.getNode().getImmediateChild(childKey);\r\n        }\r\n        else {\r\n            var serverNode = this.optCompleteServerCache_ != null\r\n                ? new CacheNode(this.optCompleteServerCache_, true, false)\r\n                : this.viewCache_.getServerCache();\r\n            return this.writes_.calcCompleteChild(childKey, serverNode);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    WriteTreeCompleteChildSource.prototype.getChildAfterChild = function (index, child, reverse) {\r\n        var completeServerData = this.optCompleteServerCache_ != null\r\n            ? this.optCompleteServerCache_\r\n            : this.viewCache_.getCompleteServerSnap();\r\n        var nodes = this.writes_.calcIndexedSlice(completeServerData, child, 1, reverse, index);\r\n        if (nodes.length === 0) {\r\n            return null;\r\n        }\r\n        else {\r\n            return nodes[0];\r\n        }\r\n    };\r\n    return WriteTreeCompleteChildSource;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @constructor\r\n * @struct\r\n */\r\nvar ProcessorResult = /** @class */ (function () {\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Array.<!Change>} changes\r\n     */\r\n    function ProcessorResult(viewCache, changes) {\r\n        this.viewCache = viewCache;\r\n        this.changes = changes;\r\n    }\r\n    return ProcessorResult;\r\n}());\r\n/**\r\n * @constructor\r\n */\r\nvar ViewProcessor = /** @class */ (function () {\r\n    /**\r\n     * @param {!NodeFilter} filter_\r\n     */\r\n    function ViewProcessor(filter_) {\r\n        this.filter_ = filter_;\r\n    }\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     */\r\n    ViewProcessor.prototype.assertIndexed = function (viewCache) {\r\n        util.assert(viewCache\r\n            .getEventCache()\r\n            .getNode()\r\n            .isIndexed(this.filter_.getIndex()), 'Event snap not indexed');\r\n        util.assert(viewCache\r\n            .getServerCache()\r\n            .getNode()\r\n            .isIndexed(this.filter_.getIndex()), 'Server snap not indexed');\r\n    };\r\n    /**\r\n     * @param {!ViewCache} oldViewCache\r\n     * @param {!Operation} operation\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeCache\r\n     * @return {!ProcessorResult}\r\n     */\r\n    ViewProcessor.prototype.applyOperation = function (oldViewCache, operation, writesCache, completeCache) {\r\n        var accumulator = new ChildChangeAccumulator();\r\n        var newViewCache, filterServerNode;\r\n        if (operation.type === OperationType.OVERWRITE) {\r\n            var overwrite = operation;\r\n            if (overwrite.source.fromUser) {\r\n                newViewCache = this.applyUserOverwrite_(oldViewCache, overwrite.path, overwrite.snap, writesCache, completeCache, accumulator);\r\n            }\r\n            else {\r\n                util.assert(overwrite.source.fromServer, 'Unknown source.');\r\n                // We filter the node if it's a tagged update or the node has been previously filtered  and the\r\n                // update is not at the root in which case it is ok (and necessary) to mark the node unfiltered\r\n                // again\r\n                filterServerNode =\r\n                    overwrite.source.tagged ||\r\n                        (oldViewCache.getServerCache().isFiltered() &&\r\n                            !overwrite.path.isEmpty());\r\n                newViewCache = this.applyServerOverwrite_(oldViewCache, overwrite.path, overwrite.snap, writesCache, completeCache, filterServerNode, accumulator);\r\n            }\r\n        }\r\n        else if (operation.type === OperationType.MERGE) {\r\n            var merge = operation;\r\n            if (merge.source.fromUser) {\r\n                newViewCache = this.applyUserMerge_(oldViewCache, merge.path, merge.children, writesCache, completeCache, accumulator);\r\n            }\r\n            else {\r\n                util.assert(merge.source.fromServer, 'Unknown source.');\r\n                // We filter the node if it's a tagged update or the node has been previously filtered\r\n                filterServerNode =\r\n                    merge.source.tagged || oldViewCache.getServerCache().isFiltered();\r\n                newViewCache = this.applyServerMerge_(oldViewCache, merge.path, merge.children, writesCache, completeCache, filterServerNode, accumulator);\r\n            }\r\n        }\r\n        else if (operation.type === OperationType.ACK_USER_WRITE) {\r\n            var ackUserWrite = operation;\r\n            if (!ackUserWrite.revert) {\r\n                newViewCache = this.ackUserWrite_(oldViewCache, ackUserWrite.path, ackUserWrite.affectedTree, writesCache, completeCache, accumulator);\r\n            }\r\n            else {\r\n                newViewCache = this.revertUserWrite_(oldViewCache, ackUserWrite.path, writesCache, completeCache, accumulator);\r\n            }\r\n        }\r\n        else if (operation.type === OperationType.LISTEN_COMPLETE) {\r\n            newViewCache = this.listenComplete_(oldViewCache, operation.path, writesCache, accumulator);\r\n        }\r\n        else {\r\n            throw util.assertionError('Unknown operation type: ' + operation.type);\r\n        }\r\n        var changes = accumulator.getChanges();\r\n        ViewProcessor.maybeAddValueEvent_(oldViewCache, newViewCache, changes);\r\n        return new ProcessorResult(newViewCache, changes);\r\n    };\r\n    /**\r\n     * @param {!ViewCache} oldViewCache\r\n     * @param {!ViewCache} newViewCache\r\n     * @param {!Array.<!Change>} accumulator\r\n     * @private\r\n     */\r\n    ViewProcessor.maybeAddValueEvent_ = function (oldViewCache, newViewCache, accumulator) {\r\n        var eventSnap = newViewCache.getEventCache();\r\n        if (eventSnap.isFullyInitialized()) {\r\n            var isLeafOrEmpty = eventSnap.getNode().isLeafNode() || eventSnap.getNode().isEmpty();\r\n            var oldCompleteSnap = oldViewCache.getCompleteEventSnap();\r\n            if (accumulator.length > 0 ||\r\n                !oldViewCache.getEventCache().isFullyInitialized() ||\r\n                (isLeafOrEmpty &&\r\n                    !eventSnap\r\n                        .getNode()\r\n                        .equals(/** @type {!Node} */ (oldCompleteSnap))) ||\r\n                !eventSnap\r\n                    .getNode()\r\n                    .getPriority()\r\n                    .equals(oldCompleteSnap.getPriority())) {\r\n                accumulator.push(Change.valueChange(\r\n                /** @type {!Node} */ newViewCache.getCompleteEventSnap()));\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} changePath\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {!CompleteChildSource} source\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.generateEventCacheAfterServerEvent_ = function (viewCache, changePath, writesCache, source, accumulator) {\r\n        var oldEventSnap = viewCache.getEventCache();\r\n        if (writesCache.shadowingWrite(changePath) != null) {\r\n            // we have a shadowing write, ignore changes\r\n            return viewCache;\r\n        }\r\n        else {\r\n            var newEventCache = void 0, serverNode = void 0;\r\n            if (changePath.isEmpty()) {\r\n                // TODO: figure out how this plays with \"sliding ack windows\"\r\n                util.assert(viewCache.getServerCache().isFullyInitialized(), 'If change path is empty, we must have complete server data');\r\n                if (viewCache.getServerCache().isFiltered()) {\r\n                    // We need to special case this, because we need to only apply writes to complete children, or\r\n                    // we might end up raising events for incomplete children. If the server data is filtered deep\r\n                    // writes cannot be guaranteed to be complete\r\n                    var serverCache = viewCache.getCompleteServerSnap();\r\n                    var completeChildren = serverCache instanceof ChildrenNode\r\n                        ? serverCache\r\n                        : ChildrenNode.EMPTY_NODE;\r\n                    var completeEventChildren = writesCache.calcCompleteEventChildren(completeChildren);\r\n                    newEventCache = this.filter_.updateFullNode(viewCache.getEventCache().getNode(), completeEventChildren, accumulator);\r\n                }\r\n                else {\r\n                    var completeNode = writesCache.calcCompleteEventCache(viewCache.getCompleteServerSnap());\r\n                    newEventCache = this.filter_.updateFullNode(viewCache.getEventCache().getNode(), completeNode, accumulator);\r\n                }\r\n            }\r\n            else {\r\n                var childKey = changePath.getFront();\r\n                if (childKey == '.priority') {\r\n                    util.assert(changePath.getLength() == 1, \"Can't have a priority with additional path components\");\r\n                    var oldEventNode = oldEventSnap.getNode();\r\n                    serverNode = viewCache.getServerCache().getNode();\r\n                    // we might have overwrites for this priority\r\n                    var updatedPriority = writesCache.calcEventCacheAfterServerOverwrite(changePath, oldEventNode, serverNode);\r\n                    if (updatedPriority != null) {\r\n                        newEventCache = this.filter_.updatePriority(oldEventNode, updatedPriority);\r\n                    }\r\n                    else {\r\n                        // priority didn't change, keep old node\r\n                        newEventCache = oldEventSnap.getNode();\r\n                    }\r\n                }\r\n                else {\r\n                    var childChangePath = changePath.popFront();\r\n                    // update child\r\n                    var newEventChild = void 0;\r\n                    if (oldEventSnap.isCompleteForChild(childKey)) {\r\n                        serverNode = viewCache.getServerCache().getNode();\r\n                        var eventChildUpdate = writesCache.calcEventCacheAfterServerOverwrite(changePath, oldEventSnap.getNode(), serverNode);\r\n                        if (eventChildUpdate != null) {\r\n                            newEventChild = oldEventSnap\r\n                                .getNode()\r\n                                .getImmediateChild(childKey)\r\n                                .updateChild(childChangePath, eventChildUpdate);\r\n                        }\r\n                        else {\r\n                            // Nothing changed, just keep the old child\r\n                            newEventChild = oldEventSnap\r\n                                .getNode()\r\n                                .getImmediateChild(childKey);\r\n                        }\r\n                    }\r\n                    else {\r\n                        newEventChild = writesCache.calcCompleteChild(childKey, viewCache.getServerCache());\r\n                    }\r\n                    if (newEventChild != null) {\r\n                        newEventCache = this.filter_.updateChild(oldEventSnap.getNode(), childKey, newEventChild, childChangePath, source, accumulator);\r\n                    }\r\n                    else {\r\n                        // no complete child available or no change\r\n                        newEventCache = oldEventSnap.getNode();\r\n                    }\r\n                }\r\n            }\r\n            return viewCache.updateEventSnap(newEventCache, oldEventSnap.isFullyInitialized() || changePath.isEmpty(), this.filter_.filtersNodes());\r\n        }\r\n    };\r\n    /**\r\n     * @param {!ViewCache} oldViewCache\r\n     * @param {!Path} changePath\r\n     * @param {!Node} changedSnap\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeCache\r\n     * @param {boolean} filterServerNode\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.applyServerOverwrite_ = function (oldViewCache, changePath, changedSnap, writesCache, completeCache, filterServerNode, accumulator) {\r\n        var oldServerSnap = oldViewCache.getServerCache();\r\n        var newServerCache;\r\n        var serverFilter = filterServerNode\r\n            ? this.filter_\r\n            : this.filter_.getIndexedFilter();\r\n        if (changePath.isEmpty()) {\r\n            newServerCache = serverFilter.updateFullNode(oldServerSnap.getNode(), changedSnap, null);\r\n        }\r\n        else if (serverFilter.filtersNodes() && !oldServerSnap.isFiltered()) {\r\n            // we want to filter the server node, but we didn't filter the server node yet, so simulate a full update\r\n            var newServerNode = oldServerSnap\r\n                .getNode()\r\n                .updateChild(changePath, changedSnap);\r\n            newServerCache = serverFilter.updateFullNode(oldServerSnap.getNode(), newServerNode, null);\r\n        }\r\n        else {\r\n            var childKey = changePath.getFront();\r\n            if (!oldServerSnap.isCompleteForPath(changePath) &&\r\n                changePath.getLength() > 1) {\r\n                // We don't update incomplete nodes with updates intended for other listeners\r\n                return oldViewCache;\r\n            }\r\n            var childChangePath = changePath.popFront();\r\n            var childNode = oldServerSnap.getNode().getImmediateChild(childKey);\r\n            var newChildNode = childNode.updateChild(childChangePath, changedSnap);\r\n            if (childKey == '.priority') {\r\n                newServerCache = serverFilter.updatePriority(oldServerSnap.getNode(), newChildNode);\r\n            }\r\n            else {\r\n                newServerCache = serverFilter.updateChild(oldServerSnap.getNode(), childKey, newChildNode, childChangePath, NO_COMPLETE_CHILD_SOURCE, null);\r\n            }\r\n        }\r\n        var newViewCache = oldViewCache.updateServerSnap(newServerCache, oldServerSnap.isFullyInitialized() || changePath.isEmpty(), serverFilter.filtersNodes());\r\n        var source = new WriteTreeCompleteChildSource(writesCache, newViewCache, completeCache);\r\n        return this.generateEventCacheAfterServerEvent_(newViewCache, changePath, writesCache, source, accumulator);\r\n    };\r\n    /**\r\n     * @param {!ViewCache} oldViewCache\r\n     * @param {!Path} changePath\r\n     * @param {!Node} changedSnap\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeCache\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.applyUserOverwrite_ = function (oldViewCache, changePath, changedSnap, writesCache, completeCache, accumulator) {\r\n        var oldEventSnap = oldViewCache.getEventCache();\r\n        var newViewCache, newEventCache;\r\n        var source = new WriteTreeCompleteChildSource(writesCache, oldViewCache, completeCache);\r\n        if (changePath.isEmpty()) {\r\n            newEventCache = this.filter_.updateFullNode(oldViewCache.getEventCache().getNode(), changedSnap, accumulator);\r\n            newViewCache = oldViewCache.updateEventSnap(newEventCache, true, this.filter_.filtersNodes());\r\n        }\r\n        else {\r\n            var childKey = changePath.getFront();\r\n            if (childKey === '.priority') {\r\n                newEventCache = this.filter_.updatePriority(oldViewCache.getEventCache().getNode(), changedSnap);\r\n                newViewCache = oldViewCache.updateEventSnap(newEventCache, oldEventSnap.isFullyInitialized(), oldEventSnap.isFiltered());\r\n            }\r\n            else {\r\n                var childChangePath = changePath.popFront();\r\n                var oldChild = oldEventSnap.getNode().getImmediateChild(childKey);\r\n                var newChild = void 0;\r\n                if (childChangePath.isEmpty()) {\r\n                    // Child overwrite, we can replace the child\r\n                    newChild = changedSnap;\r\n                }\r\n                else {\r\n                    var childNode = source.getCompleteChild(childKey);\r\n                    if (childNode != null) {\r\n                        if (childChangePath.getBack() === '.priority' &&\r\n                            childNode.getChild(childChangePath.parent()).isEmpty()) {\r\n                            // This is a priority update on an empty node. If this node exists on the server, the\r\n                            // server will send down the priority in the update, so ignore for now\r\n                            newChild = childNode;\r\n                        }\r\n                        else {\r\n                            newChild = childNode.updateChild(childChangePath, changedSnap);\r\n                        }\r\n                    }\r\n                    else {\r\n                        // There is no complete child node available\r\n                        newChild = ChildrenNode.EMPTY_NODE;\r\n                    }\r\n                }\r\n                if (!oldChild.equals(newChild)) {\r\n                    var newEventSnap = this.filter_.updateChild(oldEventSnap.getNode(), childKey, newChild, childChangePath, source, accumulator);\r\n                    newViewCache = oldViewCache.updateEventSnap(newEventSnap, oldEventSnap.isFullyInitialized(), this.filter_.filtersNodes());\r\n                }\r\n                else {\r\n                    newViewCache = oldViewCache;\r\n                }\r\n            }\r\n        }\r\n        return newViewCache;\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {string} childKey\r\n     * @return {boolean}\r\n     * @private\r\n     */\r\n    ViewProcessor.cacheHasChild_ = function (viewCache, childKey) {\r\n        return viewCache.getEventCache().isCompleteForChild(childKey);\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} path\r\n     * @param {ImmutableTree.<!Node>} changedChildren\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} serverCache\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.applyUserMerge_ = function (viewCache, path, changedChildren, writesCache, serverCache, accumulator) {\r\n        var _this = this;\r\n        // HACK: In the case of a limit query, there may be some changes that bump things out of the\r\n        // window leaving room for new items.  It's important we process these changes first, so we\r\n        // iterate the changes twice, first processing any that affect items currently in view.\r\n        // TODO: I consider an item \"in view\" if cacheHasChild is true, which checks both the server\r\n        // and event snap.  I'm not sure if this will result in edge cases when a child is in one but\r\n        // not the other.\r\n        var curViewCache = viewCache;\r\n        changedChildren.foreach(function (relativePath, childNode) {\r\n            var writePath = path.child(relativePath);\r\n            if (ViewProcessor.cacheHasChild_(viewCache, writePath.getFront())) {\r\n                curViewCache = _this.applyUserOverwrite_(curViewCache, writePath, childNode, writesCache, serverCache, accumulator);\r\n            }\r\n        });\r\n        changedChildren.foreach(function (relativePath, childNode) {\r\n            var writePath = path.child(relativePath);\r\n            if (!ViewProcessor.cacheHasChild_(viewCache, writePath.getFront())) {\r\n                curViewCache = _this.applyUserOverwrite_(curViewCache, writePath, childNode, writesCache, serverCache, accumulator);\r\n            }\r\n        });\r\n        return curViewCache;\r\n    };\r\n    /**\r\n     * @param {!Node} node\r\n     * @param {ImmutableTree.<!Node>} merge\r\n     * @return {!Node}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.applyMerge_ = function (node, merge) {\r\n        merge.foreach(function (relativePath, childNode) {\r\n            node = node.updateChild(relativePath, childNode);\r\n        });\r\n        return node;\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} path\r\n     * @param {!ImmutableTree.<!Node>} changedChildren\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} serverCache\r\n     * @param {boolean} filterServerNode\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.applyServerMerge_ = function (viewCache, path, changedChildren, writesCache, serverCache, filterServerNode, accumulator) {\r\n        var _this = this;\r\n        // If we don't have a cache yet, this merge was intended for a previously listen in the same location. Ignore it and\r\n        // wait for the complete data update coming soon.\r\n        if (viewCache\r\n            .getServerCache()\r\n            .getNode()\r\n            .isEmpty() &&\r\n            !viewCache.getServerCache().isFullyInitialized()) {\r\n            return viewCache;\r\n        }\r\n        // HACK: In the case of a limit query, there may be some changes that bump things out of the\r\n        // window leaving room for new items.  It's important we process these changes first, so we\r\n        // iterate the changes twice, first processing any that affect items currently in view.\r\n        // TODO: I consider an item \"in view\" if cacheHasChild is true, which checks both the server\r\n        // and event snap.  I'm not sure if this will result in edge cases when a child is in one but\r\n        // not the other.\r\n        var curViewCache = viewCache;\r\n        var viewMergeTree;\r\n        if (path.isEmpty()) {\r\n            viewMergeTree = changedChildren;\r\n        }\r\n        else {\r\n            viewMergeTree = ImmutableTree.Empty.setTree(path, changedChildren);\r\n        }\r\n        var serverNode = viewCache.getServerCache().getNode();\r\n        viewMergeTree.children.inorderTraversal(function (childKey, childTree) {\r\n            if (serverNode.hasChild(childKey)) {\r\n                var serverChild = viewCache\r\n                    .getServerCache()\r\n                    .getNode()\r\n                    .getImmediateChild(childKey);\r\n                var newChild = _this.applyMerge_(serverChild, childTree);\r\n                curViewCache = _this.applyServerOverwrite_(curViewCache, new Path(childKey), newChild, writesCache, serverCache, filterServerNode, accumulator);\r\n            }\r\n        });\r\n        viewMergeTree.children.inorderTraversal(function (childKey, childMergeTree) {\r\n            var isUnknownDeepMerge = !viewCache.getServerCache().isCompleteForChild(childKey) &&\r\n                childMergeTree.value == null;\r\n            if (!serverNode.hasChild(childKey) && !isUnknownDeepMerge) {\r\n                var serverChild = viewCache\r\n                    .getServerCache()\r\n                    .getNode()\r\n                    .getImmediateChild(childKey);\r\n                var newChild = _this.applyMerge_(serverChild, childMergeTree);\r\n                curViewCache = _this.applyServerOverwrite_(curViewCache, new Path(childKey), newChild, writesCache, serverCache, filterServerNode, accumulator);\r\n            }\r\n        });\r\n        return curViewCache;\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} ackPath\r\n     * @param {!ImmutableTree<!boolean>} affectedTree\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeCache\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.ackUserWrite_ = function (viewCache, ackPath, affectedTree, writesCache, completeCache, accumulator) {\r\n        if (writesCache.shadowingWrite(ackPath) != null) {\r\n            return viewCache;\r\n        }\r\n        // Only filter server node if it is currently filtered\r\n        var filterServerNode = viewCache.getServerCache().isFiltered();\r\n        // Essentially we'll just get our existing server cache for the affected paths and re-apply it as a server update\r\n        // now that it won't be shadowed.\r\n        var serverCache = viewCache.getServerCache();\r\n        if (affectedTree.value != null) {\r\n            // This is an overwrite.\r\n            if ((ackPath.isEmpty() && serverCache.isFullyInitialized()) ||\r\n                serverCache.isCompleteForPath(ackPath)) {\r\n                return this.applyServerOverwrite_(viewCache, ackPath, serverCache.getNode().getChild(ackPath), writesCache, completeCache, filterServerNode, accumulator);\r\n            }\r\n            else if (ackPath.isEmpty()) {\r\n                // This is a goofy edge case where we are acking data at this location but don't have full data.  We\r\n                // should just re-apply whatever we have in our cache as a merge.\r\n                var changedChildren_1 = ImmutableTree.Empty;\r\n                serverCache.getNode().forEachChild(KEY_INDEX, function (name, node) {\r\n                    changedChildren_1 = changedChildren_1.set(new Path(name), node);\r\n                });\r\n                return this.applyServerMerge_(viewCache, ackPath, changedChildren_1, writesCache, completeCache, filterServerNode, accumulator);\r\n            }\r\n            else {\r\n                return viewCache;\r\n            }\r\n        }\r\n        else {\r\n            // This is a merge.\r\n            var changedChildren_2 = ImmutableTree.Empty;\r\n            affectedTree.foreach(function (mergePath, value) {\r\n                var serverCachePath = ackPath.child(mergePath);\r\n                if (serverCache.isCompleteForPath(serverCachePath)) {\r\n                    changedChildren_2 = changedChildren_2.set(mergePath, serverCache.getNode().getChild(serverCachePath));\r\n                }\r\n            });\r\n            return this.applyServerMerge_(viewCache, ackPath, changedChildren_2, writesCache, completeCache, filterServerNode, accumulator);\r\n        }\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} path\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.listenComplete_ = function (viewCache, path, writesCache, accumulator) {\r\n        var oldServerNode = viewCache.getServerCache();\r\n        var newViewCache = viewCache.updateServerSnap(oldServerNode.getNode(), oldServerNode.isFullyInitialized() || path.isEmpty(), oldServerNode.isFiltered());\r\n        return this.generateEventCacheAfterServerEvent_(newViewCache, path, writesCache, NO_COMPLETE_CHILD_SOURCE, accumulator);\r\n    };\r\n    /**\r\n     * @param {!ViewCache} viewCache\r\n     * @param {!Path} path\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeServerCache\r\n     * @param {!ChildChangeAccumulator} accumulator\r\n     * @return {!ViewCache}\r\n     * @private\r\n     */\r\n    ViewProcessor.prototype.revertUserWrite_ = function (viewCache, path, writesCache, completeServerCache, accumulator) {\r\n        var complete;\r\n        if (writesCache.shadowingWrite(path) != null) {\r\n            return viewCache;\r\n        }\r\n        else {\r\n            var source = new WriteTreeCompleteChildSource(writesCache, viewCache, completeServerCache);\r\n            var oldEventCache = viewCache.getEventCache().getNode();\r\n            var newEventCache = void 0;\r\n            if (path.isEmpty() || path.getFront() === '.priority') {\r\n                var newNode = void 0;\r\n                if (viewCache.getServerCache().isFullyInitialized()) {\r\n                    newNode = writesCache.calcCompleteEventCache(viewCache.getCompleteServerSnap());\r\n                }\r\n                else {\r\n                    var serverChildren = viewCache.getServerCache().getNode();\r\n                    util.assert(serverChildren instanceof ChildrenNode, 'serverChildren would be complete if leaf node');\r\n                    newNode = writesCache.calcCompleteEventChildren(serverChildren);\r\n                }\r\n                newNode = newNode;\r\n                newEventCache = this.filter_.updateFullNode(oldEventCache, newNode, accumulator);\r\n            }\r\n            else {\r\n                var childKey = path.getFront();\r\n                var newChild = writesCache.calcCompleteChild(childKey, viewCache.getServerCache());\r\n                if (newChild == null &&\r\n                    viewCache.getServerCache().isCompleteForChild(childKey)) {\r\n                    newChild = oldEventCache.getImmediateChild(childKey);\r\n                }\r\n                if (newChild != null) {\r\n                    newEventCache = this.filter_.updateChild(oldEventCache, childKey, newChild, path.popFront(), source, accumulator);\r\n                }\r\n                else if (viewCache\r\n                    .getEventCache()\r\n                    .getNode()\r\n                    .hasChild(childKey)) {\r\n                    // No complete child available, delete the existing one, if any\r\n                    newEventCache = this.filter_.updateChild(oldEventCache, childKey, ChildrenNode.EMPTY_NODE, path.popFront(), source, accumulator);\r\n                }\r\n                else {\r\n                    newEventCache = oldEventCache;\r\n                }\r\n                if (newEventCache.isEmpty() &&\r\n                    viewCache.getServerCache().isFullyInitialized()) {\r\n                    // We might have reverted all child writes. Maybe the old event was a leaf node\r\n                    complete = writesCache.calcCompleteEventCache(viewCache.getCompleteServerSnap());\r\n                    if (complete.isLeafNode()) {\r\n                        newEventCache = this.filter_.updateFullNode(newEventCache, complete, accumulator);\r\n                    }\r\n                }\r\n            }\r\n            complete =\r\n                viewCache.getServerCache().isFullyInitialized() ||\r\n                    writesCache.shadowingWrite(Path.Empty) != null;\r\n            return viewCache.updateEventSnap(newEventCache, complete, this.filter_.filtersNodes());\r\n        }\r\n    };\r\n    return ViewProcessor;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An EventGenerator is used to convert \"raw\" changes (Change) as computed by the\r\n * CacheDiffer into actual events (Event) that can be raised.  See generateEventsForChanges()\r\n * for details.\r\n *\r\n * @constructor\r\n */\r\nvar EventGenerator = /** @class */ (function () {\r\n    /**\r\n     *\r\n     * @param {!Query} query_\r\n     */\r\n    function EventGenerator(query_) {\r\n        this.query_ = query_;\r\n        /**\r\n         * @private\r\n         * @type {!Index}\r\n         */\r\n        this.index_ = this.query_.getQueryParams().getIndex();\r\n    }\r\n    /**\r\n     * Given a set of raw changes (no moved events and prevName not specified yet), and a set of\r\n     * EventRegistrations that should be notified of these changes, generate the actual events to be raised.\r\n     *\r\n     * Notes:\r\n     *  - child_moved events will be synthesized at this time for any child_changed events that affect\r\n     *    our index.\r\n     *  - prevName will be calculated based on the index ordering.\r\n     *\r\n     * @param {!Array.<!Change>} changes\r\n     * @param {!Node} eventCache\r\n     * @param {!Array.<!EventRegistration>} eventRegistrations\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    EventGenerator.prototype.generateEventsForChanges = function (changes, eventCache, eventRegistrations) {\r\n        var _this = this;\r\n        var events = [];\r\n        var moves = [];\r\n        changes.forEach(function (change) {\r\n            if (change.type === Change.CHILD_CHANGED &&\r\n                _this.index_.indexedValueChanged(change.oldSnap, change.snapshotNode)) {\r\n                moves.push(Change.childMovedChange(change.childName, change.snapshotNode));\r\n            }\r\n        });\r\n        this.generateEventsForType_(events, Change.CHILD_REMOVED, changes, eventRegistrations, eventCache);\r\n        this.generateEventsForType_(events, Change.CHILD_ADDED, changes, eventRegistrations, eventCache);\r\n        this.generateEventsForType_(events, Change.CHILD_MOVED, moves, eventRegistrations, eventCache);\r\n        this.generateEventsForType_(events, Change.CHILD_CHANGED, changes, eventRegistrations, eventCache);\r\n        this.generateEventsForType_(events, Change.VALUE, changes, eventRegistrations, eventCache);\r\n        return events;\r\n    };\r\n    /**\r\n     * Given changes of a single change type, generate the corresponding events.\r\n     *\r\n     * @param {!Array.<!Event>} events\r\n     * @param {!string} eventType\r\n     * @param {!Array.<!Change>} changes\r\n     * @param {!Array.<!EventRegistration>} registrations\r\n     * @param {!Node} eventCache\r\n     * @private\r\n     */\r\n    EventGenerator.prototype.generateEventsForType_ = function (events, eventType, changes, registrations, eventCache) {\r\n        var _this = this;\r\n        var filteredChanges = changes.filter(function (change) { return change.type === eventType; });\r\n        filteredChanges.sort(this.compareChanges_.bind(this));\r\n        filteredChanges.forEach(function (change) {\r\n            var materializedChange = _this.materializeSingleChange_(change, eventCache);\r\n            registrations.forEach(function (registration) {\r\n                if (registration.respondsTo(change.type)) {\r\n                    events.push(registration.createEvent(materializedChange, _this.query_));\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Change} change\r\n     * @param {!Node} eventCache\r\n     * @return {!Change}\r\n     * @private\r\n     */\r\n    EventGenerator.prototype.materializeSingleChange_ = function (change, eventCache) {\r\n        if (change.type === 'value' || change.type === 'child_removed') {\r\n            return change;\r\n        }\r\n        else {\r\n            change.prevName = eventCache.getPredecessorChildName(\r\n            /** @type {!string} */\r\n            change.childName, change.snapshotNode, this.index_);\r\n            return change;\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Change} a\r\n     * @param {!Change} b\r\n     * @return {number}\r\n     * @private\r\n     */\r\n    EventGenerator.prototype.compareChanges_ = function (a, b) {\r\n        if (a.childName == null || b.childName == null) {\r\n            throw util.assertionError('Should only compare child_ events.');\r\n        }\r\n        var aWrapped = new NamedNode(a.childName, a.snapshotNode);\r\n        var bWrapped = new NamedNode(b.childName, b.snapshotNode);\r\n        return this.index_.compare(aWrapped, bWrapped);\r\n    };\r\n    return EventGenerator;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A view represents a specific location and query that has 1 or more event registrations.\r\n *\r\n * It does several things:\r\n *  - Maintains the list of event registrations for this location/query.\r\n *  - Maintains a cache of the data visible for this location/query.\r\n *  - Applies new operations (via applyOperation), updates the cache, and based on the event\r\n *    registrations returns the set of events to be raised.\r\n * @constructor\r\n */\r\nvar View = /** @class */ (function () {\r\n    /**\r\n     *\r\n     * @param {!Query} query_\r\n     * @param {!ViewCache} initialViewCache\r\n     */\r\n    function View(query_, initialViewCache) {\r\n        this.query_ = query_;\r\n        this.eventRegistrations_ = [];\r\n        var params = this.query_.getQueryParams();\r\n        var indexFilter = new IndexedFilter(params.getIndex());\r\n        var filter = params.getNodeFilter();\r\n        /**\r\n         * @type {ViewProcessor}\r\n         * @private\r\n         */\r\n        this.processor_ = new ViewProcessor(filter);\r\n        var initialServerCache = initialViewCache.getServerCache();\r\n        var initialEventCache = initialViewCache.getEventCache();\r\n        // Don't filter server node with other filter than index, wait for tagged listen\r\n        var serverSnap = indexFilter.updateFullNode(ChildrenNode.EMPTY_NODE, initialServerCache.getNode(), null);\r\n        var eventSnap = filter.updateFullNode(ChildrenNode.EMPTY_NODE, initialEventCache.getNode(), null);\r\n        var newServerCache = new CacheNode(serverSnap, initialServerCache.isFullyInitialized(), indexFilter.filtersNodes());\r\n        var newEventCache = new CacheNode(eventSnap, initialEventCache.isFullyInitialized(), filter.filtersNodes());\r\n        /**\r\n         * @type {!ViewCache}\r\n         * @private\r\n         */\r\n        this.viewCache_ = new ViewCache(newEventCache, newServerCache);\r\n        /**\r\n         * @type {!EventGenerator}\r\n         * @private\r\n         */\r\n        this.eventGenerator_ = new EventGenerator(this.query_);\r\n    }\r\n    /**\r\n     * @return {!Query}\r\n     */\r\n    View.prototype.getQuery = function () {\r\n        return this.query_;\r\n    };\r\n    /**\r\n     * @return {?Node}\r\n     */\r\n    View.prototype.getServerCache = function () {\r\n        return this.viewCache_.getServerCache().getNode();\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @return {?Node}\r\n     */\r\n    View.prototype.getCompleteServerCache = function (path) {\r\n        var cache = this.viewCache_.getCompleteServerSnap();\r\n        if (cache) {\r\n            // If this isn't a \"loadsAllData\" view, then cache isn't actually a complete cache and\r\n            // we need to see if it contains the child we're interested in.\r\n            if (this.query_.getQueryParams().loadsAllData() ||\r\n                (!path.isEmpty() && !cache.getImmediateChild(path.getFront()).isEmpty())) {\r\n                return cache.getChild(path);\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    View.prototype.isEmpty = function () {\r\n        return this.eventRegistrations_.length === 0;\r\n    };\r\n    /**\r\n     * @param {!EventRegistration} eventRegistration\r\n     */\r\n    View.prototype.addEventRegistration = function (eventRegistration) {\r\n        this.eventRegistrations_.push(eventRegistration);\r\n    };\r\n    /**\r\n     * @param {?EventRegistration} eventRegistration If null, remove all callbacks.\r\n     * @param {Error=} cancelError If a cancelError is provided, appropriate cancel events will be returned.\r\n     * @return {!Array.<!Event>} Cancel events, if cancelError was provided.\r\n     */\r\n    View.prototype.removeEventRegistration = function (eventRegistration, cancelError) {\r\n        var cancelEvents = [];\r\n        if (cancelError) {\r\n            util.assert(eventRegistration == null, 'A cancel should cancel all event registrations.');\r\n            var path_1 = this.query_.path;\r\n            this.eventRegistrations_.forEach(function (registration) {\r\n                cancelError /** @type {!Error} */ = cancelError;\r\n                var maybeEvent = registration.createCancelEvent(cancelError, path_1);\r\n                if (maybeEvent) {\r\n                    cancelEvents.push(maybeEvent);\r\n                }\r\n            });\r\n        }\r\n        if (eventRegistration) {\r\n            var remaining = [];\r\n            for (var i = 0; i < this.eventRegistrations_.length; ++i) {\r\n                var existing = this.eventRegistrations_[i];\r\n                if (!existing.matches(eventRegistration)) {\r\n                    remaining.push(existing);\r\n                }\r\n                else if (eventRegistration.hasAnyCallback()) {\r\n                    // We're removing just this one\r\n                    remaining = remaining.concat(this.eventRegistrations_.slice(i + 1));\r\n                    break;\r\n                }\r\n            }\r\n            this.eventRegistrations_ = remaining;\r\n        }\r\n        else {\r\n            this.eventRegistrations_ = [];\r\n        }\r\n        return cancelEvents;\r\n    };\r\n    /**\r\n     * Applies the given Operation, updates our cache, and returns the appropriate events.\r\n     *\r\n     * @param {!Operation} operation\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} completeServerCache\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    View.prototype.applyOperation = function (operation, writesCache, completeServerCache) {\r\n        if (operation.type === OperationType.MERGE &&\r\n            operation.source.queryId !== null) {\r\n            util.assert(this.viewCache_.getCompleteServerSnap(), 'We should always have a full cache before handling merges');\r\n            util.assert(this.viewCache_.getCompleteEventSnap(), 'Missing event cache, even though we have a server cache');\r\n        }\r\n        var oldViewCache = this.viewCache_;\r\n        var result = this.processor_.applyOperation(oldViewCache, operation, writesCache, completeServerCache);\r\n        this.processor_.assertIndexed(result.viewCache);\r\n        util.assert(result.viewCache.getServerCache().isFullyInitialized() ||\r\n            !oldViewCache.getServerCache().isFullyInitialized(), 'Once a server snap is complete, it should never go back');\r\n        this.viewCache_ = result.viewCache;\r\n        return this.generateEventsForChanges_(result.changes, result.viewCache.getEventCache().getNode(), null);\r\n    };\r\n    /**\r\n     * @param {!EventRegistration} registration\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    View.prototype.getInitialEvents = function (registration) {\r\n        var eventSnap = this.viewCache_.getEventCache();\r\n        var initialChanges = [];\r\n        if (!eventSnap.getNode().isLeafNode()) {\r\n            var eventNode = eventSnap.getNode();\r\n            eventNode.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n                initialChanges.push(Change.childAddedChange(key, childNode));\r\n            });\r\n        }\r\n        if (eventSnap.isFullyInitialized()) {\r\n            initialChanges.push(Change.valueChange(eventSnap.getNode()));\r\n        }\r\n        return this.generateEventsForChanges_(initialChanges, eventSnap.getNode(), registration);\r\n    };\r\n    /**\r\n     * @private\r\n     * @param {!Array.<!Change>} changes\r\n     * @param {!Node} eventCache\r\n     * @param {EventRegistration=} eventRegistration\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    View.prototype.generateEventsForChanges_ = function (changes, eventCache, eventRegistration) {\r\n        var registrations = eventRegistration\r\n            ? [eventRegistration]\r\n            : this.eventRegistrations_;\r\n        return this.eventGenerator_.generateEventsForChanges(changes, eventCache, registrations);\r\n    };\r\n    return View;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __referenceConstructor$1;\r\n/**\r\n * SyncPoint represents a single location in a SyncTree with 1 or more event registrations, meaning we need to\r\n * maintain 1 or more Views at this location to cache server data and raise appropriate events for server changes\r\n * and user writes (set, transaction, update).\r\n *\r\n * It's responsible for:\r\n *  - Maintaining the set of 1 or more views necessary at this location (a SyncPoint with 0 views should be removed).\r\n *  - Proxying user / server operations to the views as appropriate (i.e. applyServerOverwrite,\r\n *    applyUserOverwrite, etc.)\r\n */\r\nvar SyncPoint = /** @class */ (function () {\r\n    function SyncPoint() {\r\n        /**\r\n         * The Views being tracked at this location in the tree, stored as a map where the key is a\r\n         * queryId and the value is the View for that query.\r\n         *\r\n         * NOTE: This list will be quite small (usually 1, but perhaps 2 or 3; any more is an odd use case).\r\n         *\r\n         * @type {!Object.<!string, !View>}\r\n         * @private\r\n         */\r\n        this.views_ = {};\r\n    }\r\n    Object.defineProperty(SyncPoint, \"__referenceConstructor\", {\r\n        get: function () {\r\n            util.assert(__referenceConstructor$1, 'Reference.ts has not been loaded');\r\n            return __referenceConstructor$1;\r\n        },\r\n        set: function (val) {\r\n            util.assert(!__referenceConstructor$1, '__referenceConstructor has already been defined');\r\n            __referenceConstructor$1 = val;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    SyncPoint.prototype.isEmpty = function () {\r\n        return util.isEmpty(this.views_);\r\n    };\r\n    /**\r\n     *\r\n     * @param {!Operation} operation\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} optCompleteServerCache\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    SyncPoint.prototype.applyOperation = function (operation, writesCache, optCompleteServerCache) {\r\n        var queryId = operation.source.queryId;\r\n        if (queryId !== null) {\r\n            var view = util.safeGet(this.views_, queryId);\r\n            util.assert(view != null, 'SyncTree gave us an op for an invalid query.');\r\n            return view.applyOperation(operation, writesCache, optCompleteServerCache);\r\n        }\r\n        else {\r\n            var events_1 = [];\r\n            util.forEach(this.views_, function (key, view) {\r\n                events_1 = events_1.concat(view.applyOperation(operation, writesCache, optCompleteServerCache));\r\n            });\r\n            return events_1;\r\n        }\r\n    };\r\n    /**\r\n     * Add an event callback for the specified query.\r\n     *\r\n     * @param {!Query} query\r\n     * @param {!EventRegistration} eventRegistration\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @param {?Node} serverCache Complete server cache, if we have it.\r\n     * @param {boolean} serverCacheComplete\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncPoint.prototype.addEventRegistration = function (query, eventRegistration, writesCache, serverCache, serverCacheComplete) {\r\n        var queryId = query.queryIdentifier();\r\n        var view = util.safeGet(this.views_, queryId);\r\n        if (!view) {\r\n            // TODO: make writesCache take flag for complete server node\r\n            var eventCache = writesCache.calcCompleteEventCache(serverCacheComplete ? serverCache : null);\r\n            var eventCacheComplete = false;\r\n            if (eventCache) {\r\n                eventCacheComplete = true;\r\n            }\r\n            else if (serverCache instanceof ChildrenNode) {\r\n                eventCache = writesCache.calcCompleteEventChildren(serverCache);\r\n                eventCacheComplete = false;\r\n            }\r\n            else {\r\n                eventCache = ChildrenNode.EMPTY_NODE;\r\n                eventCacheComplete = false;\r\n            }\r\n            var viewCache = new ViewCache(new CacheNode(\r\n            /** @type {!Node} */ (eventCache), eventCacheComplete, false), new CacheNode(\r\n            /** @type {!Node} */ (serverCache), serverCacheComplete, false));\r\n            view = new View(query, viewCache);\r\n            this.views_[queryId] = view;\r\n        }\r\n        // This is guaranteed to exist now, we just created anything that was missing\r\n        view.addEventRegistration(eventRegistration);\r\n        return view.getInitialEvents(eventRegistration);\r\n    };\r\n    /**\r\n     * Remove event callback(s).  Return cancelEvents if a cancelError is specified.\r\n     *\r\n     * If query is the default query, we'll check all views for the specified eventRegistration.\r\n     * If eventRegistration is null, we'll remove all callbacks for the specified view(s).\r\n     *\r\n     * @param {!Query} query\r\n     * @param {?EventRegistration} eventRegistration If null, remove all callbacks.\r\n     * @param {Error=} cancelError If a cancelError is provided, appropriate cancel events will be returned.\r\n     * @return {{removed:!Array.<!Query>, events:!Array.<!Event>}} removed queries and any cancel events\r\n     */\r\n    SyncPoint.prototype.removeEventRegistration = function (query, eventRegistration, cancelError) {\r\n        var queryId = query.queryIdentifier();\r\n        var removed = [];\r\n        var cancelEvents = [];\r\n        var hadCompleteView = this.hasCompleteView();\r\n        if (queryId === 'default') {\r\n            // When you do ref.off(...), we search all views for the registration to remove.\r\n            var self_1 = this;\r\n            util.forEach(this.views_, function (viewQueryId, view) {\r\n                cancelEvents = cancelEvents.concat(view.removeEventRegistration(eventRegistration, cancelError));\r\n                if (view.isEmpty()) {\r\n                    delete self_1.views_[viewQueryId];\r\n                    // We'll deal with complete views later.\r\n                    if (!view\r\n                        .getQuery()\r\n                        .getQueryParams()\r\n                        .loadsAllData()) {\r\n                        removed.push(view.getQuery());\r\n                    }\r\n                }\r\n            });\r\n        }\r\n        else {\r\n            // remove the callback from the specific view.\r\n            var view = util.safeGet(this.views_, queryId);\r\n            if (view) {\r\n                cancelEvents = cancelEvents.concat(view.removeEventRegistration(eventRegistration, cancelError));\r\n                if (view.isEmpty()) {\r\n                    delete this.views_[queryId];\r\n                    // We'll deal with complete views later.\r\n                    if (!view\r\n                        .getQuery()\r\n                        .getQueryParams()\r\n                        .loadsAllData()) {\r\n                        removed.push(view.getQuery());\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        if (hadCompleteView && !this.hasCompleteView()) {\r\n            // We removed our last complete view.\r\n            removed.push(new SyncPoint.__referenceConstructor(query.repo, query.path));\r\n        }\r\n        return { removed: removed, events: cancelEvents };\r\n    };\r\n    /**\r\n     * @return {!Array.<!View>}\r\n     */\r\n    SyncPoint.prototype.getQueryViews = function () {\r\n        var _this = this;\r\n        var values = Object.keys(this.views_).map(function (key) { return _this.views_[key]; });\r\n        return values.filter(function (view) {\r\n            return !view\r\n                .getQuery()\r\n                .getQueryParams()\r\n                .loadsAllData();\r\n        });\r\n    };\r\n    /**\r\n     *\r\n     * @param {!Path} path The path to the desired complete snapshot\r\n     * @return {?Node} A complete cache, if it exists\r\n     */\r\n    SyncPoint.prototype.getCompleteServerCache = function (path) {\r\n        var serverCache = null;\r\n        util.forEach(this.views_, function (key, view) {\r\n            serverCache = serverCache || view.getCompleteServerCache(path);\r\n        });\r\n        return serverCache;\r\n    };\r\n    /**\r\n     * @param {!Query} query\r\n     * @return {?View}\r\n     */\r\n    SyncPoint.prototype.viewForQuery = function (query) {\r\n        var params = query.getQueryParams();\r\n        if (params.loadsAllData()) {\r\n            return this.getCompleteView();\r\n        }\r\n        else {\r\n            var queryId = query.queryIdentifier();\r\n            return util.safeGet(this.views_, queryId);\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Query} query\r\n     * @return {boolean}\r\n     */\r\n    SyncPoint.prototype.viewExistsForQuery = function (query) {\r\n        return this.viewForQuery(query) != null;\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    SyncPoint.prototype.hasCompleteView = function () {\r\n        return this.getCompleteView() != null;\r\n    };\r\n    /**\r\n     * @return {?View}\r\n     */\r\n    SyncPoint.prototype.getCompleteView = function () {\r\n        var completeView = util.findValue(this.views_, function (view) {\r\n            return view\r\n                .getQuery()\r\n                .getQueryParams()\r\n                .loadsAllData();\r\n        });\r\n        return completeView || null;\r\n    };\r\n    return SyncPoint;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class holds a collection of writes that can be applied to nodes in unison. It abstracts away the logic with\r\n * dealing with priority writes and multiple nested writes. At any given path there is only allowed to be one write\r\n * modifying that path. Any write to an existing path or shadowing an existing path will modify that existing write\r\n * to reflect the write added.\r\n *\r\n * @constructor\r\n * @param {!ImmutableTree.<!Node>} writeTree\r\n */\r\nvar CompoundWrite = /** @class */ (function () {\r\n    function CompoundWrite(writeTree_) {\r\n        this.writeTree_ = writeTree_;\r\n    }\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {!Node} node\r\n     * @return {!CompoundWrite}\r\n     */\r\n    CompoundWrite.prototype.addWrite = function (path, node) {\r\n        if (path.isEmpty()) {\r\n            return new CompoundWrite(new ImmutableTree(node));\r\n        }\r\n        else {\r\n            var rootmost = this.writeTree_.findRootMostValueAndPath(path);\r\n            if (rootmost != null) {\r\n                var rootMostPath = rootmost.path;\r\n                var value = rootmost.value;\r\n                var relativePath = Path.relativePath(rootMostPath, path);\r\n                value = value.updateChild(relativePath, node);\r\n                return new CompoundWrite(this.writeTree_.set(rootMostPath, value));\r\n            }\r\n            else {\r\n                var subtree = new ImmutableTree(node);\r\n                var newWriteTree = this.writeTree_.setTree(path, subtree);\r\n                return new CompoundWrite(newWriteTree);\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {!Object.<string, !Node>} updates\r\n     * @return {!CompoundWrite}\r\n     */\r\n    CompoundWrite.prototype.addWrites = function (path, updates) {\r\n        var newWrite = this;\r\n        util.forEach(updates, function (childKey, node) {\r\n            newWrite = newWrite.addWrite(path.child(childKey), node);\r\n        });\r\n        return newWrite;\r\n    };\r\n    /**\r\n     * Will remove a write at the given path and deeper paths. This will <em>not</em> modify a write at a higher\r\n     * location, which must be removed by calling this method with that path.\r\n     *\r\n     * @param {!Path} path The path at which a write and all deeper writes should be removed\r\n     * @return {!CompoundWrite} The new CompoundWrite with the removed path\r\n     */\r\n    CompoundWrite.prototype.removeWrite = function (path) {\r\n        if (path.isEmpty()) {\r\n            return CompoundWrite.Empty;\r\n        }\r\n        else {\r\n            var newWriteTree = this.writeTree_.setTree(path, ImmutableTree.Empty);\r\n            return new CompoundWrite(newWriteTree);\r\n        }\r\n    };\r\n    /**\r\n     * Returns whether this CompoundWrite will fully overwrite a node at a given location and can therefore be\r\n     * considered \"complete\".\r\n     *\r\n     * @param {!Path} path The path to check for\r\n     * @return {boolean} Whether there is a complete write at that path\r\n     */\r\n    CompoundWrite.prototype.hasCompleteWrite = function (path) {\r\n        return this.getCompleteNode(path) != null;\r\n    };\r\n    /**\r\n     * Returns a node for a path if and only if the node is a \"complete\" overwrite at that path. This will not aggregate\r\n     * writes from deeper paths, but will return child nodes from a more shallow path.\r\n     *\r\n     * @param {!Path} path The path to get a complete write\r\n     * @return {?Node} The node if complete at that path, or null otherwise.\r\n     */\r\n    CompoundWrite.prototype.getCompleteNode = function (path) {\r\n        var rootmost = this.writeTree_.findRootMostValueAndPath(path);\r\n        if (rootmost != null) {\r\n            return this.writeTree_\r\n                .get(rootmost.path)\r\n                .getChild(Path.relativePath(rootmost.path, path));\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    /**\r\n     * Returns all children that are guaranteed to be a complete overwrite.\r\n     *\r\n     * @return {!Array.<NamedNode>} A list of all complete children.\r\n     */\r\n    CompoundWrite.prototype.getCompleteChildren = function () {\r\n        var children = [];\r\n        var node = this.writeTree_.value;\r\n        if (node != null) {\r\n            // If it's a leaf node, it has no children; so nothing to do.\r\n            if (!node.isLeafNode()) {\r\n                node.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n                    children.push(new NamedNode(childName, childNode));\r\n                });\r\n            }\r\n        }\r\n        else {\r\n            this.writeTree_.children.inorderTraversal(function (childName, childTree) {\r\n                if (childTree.value != null) {\r\n                    children.push(new NamedNode(childName, childTree.value));\r\n                }\r\n            });\r\n        }\r\n        return children;\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @return {!CompoundWrite}\r\n     */\r\n    CompoundWrite.prototype.childCompoundWrite = function (path) {\r\n        if (path.isEmpty()) {\r\n            return this;\r\n        }\r\n        else {\r\n            var shadowingNode = this.getCompleteNode(path);\r\n            if (shadowingNode != null) {\r\n                return new CompoundWrite(new ImmutableTree(shadowingNode));\r\n            }\r\n            else {\r\n                return new CompoundWrite(this.writeTree_.subtree(path));\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns true if this CompoundWrite is empty and therefore does not modify any nodes.\r\n     * @return {boolean} Whether this CompoundWrite is empty\r\n     */\r\n    CompoundWrite.prototype.isEmpty = function () {\r\n        return this.writeTree_.isEmpty();\r\n    };\r\n    /**\r\n     * Applies this CompoundWrite to a node. The node is returned with all writes from this CompoundWrite applied to the\r\n     * node\r\n     * @param {!Node} node The node to apply this CompoundWrite to\r\n     * @return {!Node} The node with all writes applied\r\n     */\r\n    CompoundWrite.prototype.apply = function (node) {\r\n        return CompoundWrite.applySubtreeWrite_(Path.Empty, this.writeTree_, node);\r\n    };\r\n    /**\r\n     * @type {!CompoundWrite}\r\n     */\r\n    CompoundWrite.Empty = new CompoundWrite(new ImmutableTree(null));\r\n    /**\r\n     * @param {!Path} relativePath\r\n     * @param {!ImmutableTree.<!Node>} writeTree\r\n     * @param {!Node} node\r\n     * @return {!Node}\r\n     * @private\r\n     */\r\n    CompoundWrite.applySubtreeWrite_ = function (relativePath, writeTree, node) {\r\n        if (writeTree.value != null) {\r\n            // Since there a write is always a leaf, we're done here\r\n            return node.updateChild(relativePath, writeTree.value);\r\n        }\r\n        else {\r\n            var priorityWrite_1 = null;\r\n            writeTree.children.inorderTraversal(function (childKey, childTree) {\r\n                if (childKey === '.priority') {\r\n                    // Apply priorities at the end so we don't update priorities for either empty nodes or forget\r\n                    // to apply priorities to empty nodes that are later filled\r\n                    util.assert(childTree.value !== null, 'Priority writes must always be leaf nodes');\r\n                    priorityWrite_1 = childTree.value;\r\n                }\r\n                else {\r\n                    node = CompoundWrite.applySubtreeWrite_(relativePath.child(childKey), childTree, node);\r\n                }\r\n            });\r\n            // If there was a priority write, we only apply it if the node is not empty\r\n            if (!node.getChild(relativePath).isEmpty() && priorityWrite_1 !== null) {\r\n                node = node.updateChild(relativePath.child('.priority'), priorityWrite_1);\r\n            }\r\n            return node;\r\n        }\r\n    };\r\n    return CompoundWrite;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * WriteTree tracks all pending user-initiated writes and has methods to calculate the result of merging them\r\n * with underlying server data (to create \"event cache\" data).  Pending writes are added with addOverwrite()\r\n * and addMerge(), and removed with removeWrite().\r\n *\r\n * @constructor\r\n */\r\nvar WriteTree = /** @class */ (function () {\r\n    function WriteTree() {\r\n        /**\r\n         * A tree tracking the result of applying all visible writes.  This does not include transactions with\r\n         * applyLocally=false or writes that are completely shadowed by other writes.\r\n         *\r\n         * @type {!CompoundWrite}\r\n         * @private\r\n         */\r\n        this.visibleWrites_ = CompoundWrite.Empty;\r\n        /**\r\n         * A list of all pending writes, regardless of visibility and shadowed-ness.  Used to calculate arbitrary\r\n         * sets of the changed data, such as hidden writes (from transactions) or changes with certain writes excluded (also\r\n         * used by transactions).\r\n         *\r\n         * @type {!Array.<!WriteRecord>}\r\n         * @private\r\n         */\r\n        this.allWrites_ = [];\r\n        this.lastWriteId_ = -1;\r\n    }\r\n    /**\r\n     * Create a new WriteTreeRef for the given path. For use with a new sync point at the given path.\r\n     *\r\n     * @param {!Path} path\r\n     * @return {!WriteTreeRef}\r\n     */\r\n    WriteTree.prototype.childWrites = function (path) {\r\n        return new WriteTreeRef(path, this);\r\n    };\r\n    /**\r\n     * Record a new overwrite from user code.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Node} snap\r\n     * @param {!number} writeId\r\n     * @param {boolean=} visible This is set to false by some transactions. It should be excluded from event caches\r\n     */\r\n    WriteTree.prototype.addOverwrite = function (path, snap, writeId, visible) {\r\n        util.assert(writeId > this.lastWriteId_, 'Stacking an older write on top of newer ones');\r\n        if (visible === undefined) {\r\n            visible = true;\r\n        }\r\n        this.allWrites_.push({\r\n            path: path,\r\n            snap: snap,\r\n            writeId: writeId,\r\n            visible: visible\r\n        });\r\n        if (visible) {\r\n            this.visibleWrites_ = this.visibleWrites_.addWrite(path, snap);\r\n        }\r\n        this.lastWriteId_ = writeId;\r\n    };\r\n    /**\r\n     * Record a new merge from user code.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Object.<string, !Node>} changedChildren\r\n     * @param {!number} writeId\r\n     */\r\n    WriteTree.prototype.addMerge = function (path, changedChildren, writeId) {\r\n        util.assert(writeId > this.lastWriteId_, 'Stacking an older merge on top of newer ones');\r\n        this.allWrites_.push({\r\n            path: path,\r\n            children: changedChildren,\r\n            writeId: writeId,\r\n            visible: true\r\n        });\r\n        this.visibleWrites_ = this.visibleWrites_.addWrites(path, changedChildren);\r\n        this.lastWriteId_ = writeId;\r\n    };\r\n    /**\r\n     * @param {!number} writeId\r\n     * @return {?WriteRecord}\r\n     */\r\n    WriteTree.prototype.getWrite = function (writeId) {\r\n        for (var i = 0; i < this.allWrites_.length; i++) {\r\n            var record = this.allWrites_[i];\r\n            if (record.writeId === writeId) {\r\n                return record;\r\n            }\r\n        }\r\n        return null;\r\n    };\r\n    /**\r\n     * Remove a write (either an overwrite or merge) that has been successfully acknowledge by the server. Recalculates\r\n     * the tree if necessary.  We return true if it may have been visible, meaning views need to reevaluate.\r\n     *\r\n     * @param {!number} writeId\r\n     * @return {boolean} true if the write may have been visible (meaning we'll need to reevaluate / raise\r\n     * events as a result).\r\n     */\r\n    WriteTree.prototype.removeWrite = function (writeId) {\r\n        // Note: disabling this check. It could be a transaction that preempted another transaction, and thus was applied\r\n        // out of order.\r\n        //const validClear = revert || this.allWrites_.length === 0 || writeId <= this.allWrites_[0].writeId;\r\n        //assert(validClear, \"Either we don't have this write, or it's the first one in the queue\");\r\n        var _this = this;\r\n        var idx = this.allWrites_.findIndex(function (s) {\r\n            return s.writeId === writeId;\r\n        });\r\n        util.assert(idx >= 0, 'removeWrite called with nonexistent writeId.');\r\n        var writeToRemove = this.allWrites_[idx];\r\n        this.allWrites_.splice(idx, 1);\r\n        var removedWriteWasVisible = writeToRemove.visible;\r\n        var removedWriteOverlapsWithOtherWrites = false;\r\n        var i = this.allWrites_.length - 1;\r\n        while (removedWriteWasVisible && i >= 0) {\r\n            var currentWrite = this.allWrites_[i];\r\n            if (currentWrite.visible) {\r\n                if (i >= idx &&\r\n                    this.recordContainsPath_(currentWrite, writeToRemove.path)) {\r\n                    // The removed write was completely shadowed by a subsequent write.\r\n                    removedWriteWasVisible = false;\r\n                }\r\n                else if (writeToRemove.path.contains(currentWrite.path)) {\r\n                    // Either we're covering some writes or they're covering part of us (depending on which came first).\r\n                    removedWriteOverlapsWithOtherWrites = true;\r\n                }\r\n            }\r\n            i--;\r\n        }\r\n        if (!removedWriteWasVisible) {\r\n            return false;\r\n        }\r\n        else if (removedWriteOverlapsWithOtherWrites) {\r\n            // There's some shadowing going on. Just rebuild the visible writes from scratch.\r\n            this.resetTree_();\r\n            return true;\r\n        }\r\n        else {\r\n            // There's no shadowing.  We can safely just remove the write(s) from visibleWrites.\r\n            if (writeToRemove.snap) {\r\n                this.visibleWrites_ = this.visibleWrites_.removeWrite(writeToRemove.path);\r\n            }\r\n            else {\r\n                var children = writeToRemove.children;\r\n                util.forEach(children, function (childName) {\r\n                    _this.visibleWrites_ = _this.visibleWrites_.removeWrite(writeToRemove.path.child(childName));\r\n                });\r\n            }\r\n            return true;\r\n        }\r\n    };\r\n    /**\r\n     * Return a complete snapshot for the given path if there's visible write data at that path, else null.\r\n     * No server data is considered.\r\n     *\r\n     * @param {!Path} path\r\n     * @return {?Node}\r\n     */\r\n    WriteTree.prototype.getCompleteWriteData = function (path) {\r\n        return this.visibleWrites_.getCompleteNode(path);\r\n    };\r\n    /**\r\n     * Given optional, underlying server data, and an optional set of constraints (exclude some sets, include hidden\r\n     * writes), attempt to calculate a complete snapshot for the given path\r\n     *\r\n     * @param {!Path} treePath\r\n     * @param {?Node} completeServerCache\r\n     * @param {Array.<number>=} writeIdsToExclude An optional set to be excluded\r\n     * @param {boolean=} includeHiddenWrites Defaults to false, whether or not to layer on writes with visible set to false\r\n     * @return {?Node}\r\n     */\r\n    WriteTree.prototype.calcCompleteEventCache = function (treePath, completeServerCache, writeIdsToExclude, includeHiddenWrites) {\r\n        if (!writeIdsToExclude && !includeHiddenWrites) {\r\n            var shadowingNode = this.visibleWrites_.getCompleteNode(treePath);\r\n            if (shadowingNode != null) {\r\n                return shadowingNode;\r\n            }\r\n            else {\r\n                var subMerge = this.visibleWrites_.childCompoundWrite(treePath);\r\n                if (subMerge.isEmpty()) {\r\n                    return completeServerCache;\r\n                }\r\n                else if (completeServerCache == null &&\r\n                    !subMerge.hasCompleteWrite(Path.Empty)) {\r\n                    // We wouldn't have a complete snapshot, since there's no underlying data and no complete shadow\r\n                    return null;\r\n                }\r\n                else {\r\n                    var layeredCache = completeServerCache || ChildrenNode.EMPTY_NODE;\r\n                    return subMerge.apply(layeredCache);\r\n                }\r\n            }\r\n        }\r\n        else {\r\n            var merge = this.visibleWrites_.childCompoundWrite(treePath);\r\n            if (!includeHiddenWrites && merge.isEmpty()) {\r\n                return completeServerCache;\r\n            }\r\n            else {\r\n                // If the server cache is null, and we don't have a complete cache, we need to return null\r\n                if (!includeHiddenWrites &&\r\n                    completeServerCache == null &&\r\n                    !merge.hasCompleteWrite(Path.Empty)) {\r\n                    return null;\r\n                }\r\n                else {\r\n                    var filter = function (write) {\r\n                        return ((write.visible || includeHiddenWrites) &&\r\n                            (!writeIdsToExclude ||\r\n                                !~writeIdsToExclude.indexOf(write.writeId)) &&\r\n                            (write.path.contains(treePath) || treePath.contains(write.path)));\r\n                    };\r\n                    var mergeAtPath = WriteTree.layerTree_(this.allWrites_, filter, treePath);\r\n                    var layeredCache = completeServerCache || ChildrenNode.EMPTY_NODE;\r\n                    return mergeAtPath.apply(layeredCache);\r\n                }\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * With optional, underlying server data, attempt to return a children node of children that we have complete data for.\r\n     * Used when creating new views, to pre-fill their complete event children snapshot.\r\n     *\r\n     * @param {!Path} treePath\r\n     * @param {?ChildrenNode} completeServerChildren\r\n     * @return {!ChildrenNode}\r\n     */\r\n    WriteTree.prototype.calcCompleteEventChildren = function (treePath, completeServerChildren) {\r\n        var completeChildren = ChildrenNode.EMPTY_NODE;\r\n        var topLevelSet = this.visibleWrites_.getCompleteNode(treePath);\r\n        if (topLevelSet) {\r\n            if (!topLevelSet.isLeafNode()) {\r\n                // we're shadowing everything. Return the children.\r\n                topLevelSet.forEachChild(PRIORITY_INDEX, function (childName, childSnap) {\r\n                    completeChildren = completeChildren.updateImmediateChild(childName, childSnap);\r\n                });\r\n            }\r\n            return completeChildren;\r\n        }\r\n        else if (completeServerChildren) {\r\n            // Layer any children we have on top of this\r\n            // We know we don't have a top-level set, so just enumerate existing children\r\n            var merge_1 = this.visibleWrites_.childCompoundWrite(treePath);\r\n            completeServerChildren.forEachChild(PRIORITY_INDEX, function (childName, childNode) {\r\n                var node = merge_1\r\n                    .childCompoundWrite(new Path(childName))\r\n                    .apply(childNode);\r\n                completeChildren = completeChildren.updateImmediateChild(childName, node);\r\n            });\r\n            // Add any complete children we have from the set\r\n            merge_1.getCompleteChildren().forEach(function (namedNode) {\r\n                completeChildren = completeChildren.updateImmediateChild(namedNode.name, namedNode.node);\r\n            });\r\n            return completeChildren;\r\n        }\r\n        else {\r\n            // We don't have anything to layer on top of. Layer on any children we have\r\n            // Note that we can return an empty snap if we have a defined delete\r\n            var merge = this.visibleWrites_.childCompoundWrite(treePath);\r\n            merge.getCompleteChildren().forEach(function (namedNode) {\r\n                completeChildren = completeChildren.updateImmediateChild(namedNode.name, namedNode.node);\r\n            });\r\n            return completeChildren;\r\n        }\r\n    };\r\n    /**\r\n     * Given that the underlying server data has updated, determine what, if anything, needs to be\r\n     * applied to the event cache.\r\n     *\r\n     * Possibilities:\r\n     *\r\n     * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data\r\n     *\r\n     * 2. Some write is completely shadowing. No events to be raised\r\n     *\r\n     * 3. Is partially shadowed. Events\r\n     *\r\n     * Either existingEventSnap or existingServerSnap must exist\r\n     *\r\n     * @param {!Path} treePath\r\n     * @param {!Path} childPath\r\n     * @param {?Node} existingEventSnap\r\n     * @param {?Node} existingServerSnap\r\n     * @return {?Node}\r\n     */\r\n    WriteTree.prototype.calcEventCacheAfterServerOverwrite = function (treePath, childPath, existingEventSnap, existingServerSnap) {\r\n        util.assert(existingEventSnap || existingServerSnap, 'Either existingEventSnap or existingServerSnap must exist');\r\n        var path = treePath.child(childPath);\r\n        if (this.visibleWrites_.hasCompleteWrite(path)) {\r\n            // At this point we can probably guarantee that we're in case 2, meaning no events\r\n            // May need to check visibility while doing the findRootMostValueAndPath call\r\n            return null;\r\n        }\r\n        else {\r\n            // No complete shadowing. We're either partially shadowing or not shadowing at all.\r\n            var childMerge = this.visibleWrites_.childCompoundWrite(path);\r\n            if (childMerge.isEmpty()) {\r\n                // We're not shadowing at all. Case 1\r\n                return existingServerSnap.getChild(childPath);\r\n            }\r\n            else {\r\n                // This could be more efficient if the serverNode + updates doesn't change the eventSnap\r\n                // However this is tricky to find out, since user updates don't necessary change the server\r\n                // snap, e.g. priority updates on empty nodes, or deep deletes. Another special case is if the server\r\n                // adds nodes, but doesn't change any existing writes. It is therefore not enough to\r\n                // only check if the updates change the serverNode.\r\n                // Maybe check if the merge tree contains these special cases and only do a full overwrite in that case?\r\n                return childMerge.apply(existingServerSnap.getChild(childPath));\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns a complete child for a given server snap after applying all user writes or null if there is no\r\n     * complete child for this ChildKey.\r\n     *\r\n     * @param {!Path} treePath\r\n     * @param {!string} childKey\r\n     * @param {!CacheNode} existingServerSnap\r\n     * @return {?Node}\r\n     */\r\n    WriteTree.prototype.calcCompleteChild = function (treePath, childKey, existingServerSnap) {\r\n        var path = treePath.child(childKey);\r\n        var shadowingNode = this.visibleWrites_.getCompleteNode(path);\r\n        if (shadowingNode != null) {\r\n            return shadowingNode;\r\n        }\r\n        else {\r\n            if (existingServerSnap.isCompleteForChild(childKey)) {\r\n                var childMerge = this.visibleWrites_.childCompoundWrite(path);\r\n                return childMerge.apply(existingServerSnap.getNode().getImmediateChild(childKey));\r\n            }\r\n            else {\r\n                return null;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at\r\n     * a higher path, this will return the child of that write relative to the write and this path.\r\n     * Returns null if there is no write at this path.\r\n     *\r\n     * @param {!Path} path\r\n     * @return {?Node}\r\n     */\r\n    WriteTree.prototype.shadowingWrite = function (path) {\r\n        return this.visibleWrites_.getCompleteNode(path);\r\n    };\r\n    /**\r\n     * This method is used when processing child remove events on a query. If we can, we pull in children that were outside\r\n     * the window, but may now be in the window.\r\n     *\r\n     * @param {!Path} treePath\r\n     * @param {?Node} completeServerData\r\n     * @param {!NamedNode} startPost\r\n     * @param {!number} count\r\n     * @param {boolean} reverse\r\n     * @param {!Index} index\r\n     * @return {!Array.<!NamedNode>}\r\n     */\r\n    WriteTree.prototype.calcIndexedSlice = function (treePath, completeServerData, startPost, count, reverse, index) {\r\n        var toIterate;\r\n        var merge = this.visibleWrites_.childCompoundWrite(treePath);\r\n        var shadowingNode = merge.getCompleteNode(Path.Empty);\r\n        if (shadowingNode != null) {\r\n            toIterate = shadowingNode;\r\n        }\r\n        else if (completeServerData != null) {\r\n            toIterate = merge.apply(completeServerData);\r\n        }\r\n        else {\r\n            // no children to iterate on\r\n            return [];\r\n        }\r\n        toIterate = toIterate.withIndex(index);\r\n        if (!toIterate.isEmpty() && !toIterate.isLeafNode()) {\r\n            var nodes = [];\r\n            var cmp = index.getCompare();\r\n            var iter = reverse\r\n                ? toIterate.getReverseIteratorFrom(startPost, index)\r\n                : toIterate.getIteratorFrom(startPost, index);\r\n            var next = iter.getNext();\r\n            while (next && nodes.length < count) {\r\n                if (cmp(next, startPost) !== 0) {\r\n                    nodes.push(next);\r\n                }\r\n                next = iter.getNext();\r\n            }\r\n            return nodes;\r\n        }\r\n        else {\r\n            return [];\r\n        }\r\n    };\r\n    /**\r\n     * @param {!WriteRecord} writeRecord\r\n     * @param {!Path} path\r\n     * @return {boolean}\r\n     * @private\r\n     */\r\n    WriteTree.prototype.recordContainsPath_ = function (writeRecord, path) {\r\n        if (writeRecord.snap) {\r\n            return writeRecord.path.contains(path);\r\n        }\r\n        else {\r\n            // findKey can return undefined, so use !! to coerce to boolean\r\n            return !!util.findKey(writeRecord.children, function (childSnap, childName) {\r\n                return writeRecord.path.child(childName).contains(path);\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * Re-layer the writes and merges into a tree so we can efficiently calculate event snapshots\r\n     * @private\r\n     */\r\n    WriteTree.prototype.resetTree_ = function () {\r\n        this.visibleWrites_ = WriteTree.layerTree_(this.allWrites_, WriteTree.DefaultFilter_, Path.Empty);\r\n        if (this.allWrites_.length > 0) {\r\n            this.lastWriteId_ = this.allWrites_[this.allWrites_.length - 1].writeId;\r\n        }\r\n        else {\r\n            this.lastWriteId_ = -1;\r\n        }\r\n    };\r\n    /**\r\n     * The default filter used when constructing the tree. Keep everything that's visible.\r\n     *\r\n     * @param {!WriteRecord} write\r\n     * @return {boolean}\r\n     * @private\r\n     */\r\n    WriteTree.DefaultFilter_ = function (write) {\r\n        return write.visible;\r\n    };\r\n    /**\r\n     * Static method. Given an array of WriteRecords, a filter for which ones to include, and a path, construct the tree of\r\n     * event data at that path.\r\n     *\r\n     * @param {!Array.<!WriteRecord>} writes\r\n     * @param {!function(!WriteRecord):boolean} filter\r\n     * @param {!Path} treeRoot\r\n     * @return {!CompoundWrite}\r\n     * @private\r\n     */\r\n    WriteTree.layerTree_ = function (writes, filter, treeRoot) {\r\n        var compoundWrite = CompoundWrite.Empty;\r\n        for (var i = 0; i < writes.length; ++i) {\r\n            var write = writes[i];\r\n            // Theory, a later set will either:\r\n            // a) abort a relevant transaction, so no need to worry about excluding it from calculating that transaction\r\n            // b) not be relevant to a transaction (separate branch), so again will not affect the data for that transaction\r\n            if (filter(write)) {\r\n                var writePath = write.path;\r\n                var relativePath = void 0;\r\n                if (write.snap) {\r\n                    if (treeRoot.contains(writePath)) {\r\n                        relativePath = Path.relativePath(treeRoot, writePath);\r\n                        compoundWrite = compoundWrite.addWrite(relativePath, write.snap);\r\n                    }\r\n                    else if (writePath.contains(treeRoot)) {\r\n                        relativePath = Path.relativePath(writePath, treeRoot);\r\n                        compoundWrite = compoundWrite.addWrite(Path.Empty, write.snap.getChild(relativePath));\r\n                    }\r\n                    else {\r\n                        // There is no overlap between root path and write path, ignore write\r\n                    }\r\n                }\r\n                else if (write.children) {\r\n                    if (treeRoot.contains(writePath)) {\r\n                        relativePath = Path.relativePath(treeRoot, writePath);\r\n                        compoundWrite = compoundWrite.addWrites(relativePath, write.children);\r\n                    }\r\n                    else if (writePath.contains(treeRoot)) {\r\n                        relativePath = Path.relativePath(writePath, treeRoot);\r\n                        if (relativePath.isEmpty()) {\r\n                            compoundWrite = compoundWrite.addWrites(Path.Empty, write.children);\r\n                        }\r\n                        else {\r\n                            var child = util.safeGet(write.children, relativePath.getFront());\r\n                            if (child) {\r\n                                // There exists a child in this node that matches the root path\r\n                                var deepNode = child.getChild(relativePath.popFront());\r\n                                compoundWrite = compoundWrite.addWrite(Path.Empty, deepNode);\r\n                            }\r\n                        }\r\n                    }\r\n                    else {\r\n                        // There is no overlap between root path and write path, ignore write\r\n                    }\r\n                }\r\n                else {\r\n                    throw util.assertionError('WriteRecord should have .snap or .children');\r\n                }\r\n            }\r\n        }\r\n        return compoundWrite;\r\n    };\r\n    return WriteTree;\r\n}());\r\n/**\r\n * A WriteTreeRef wraps a WriteTree and a path, for convenient access to a particular subtree.  All of the methods\r\n * just proxy to the underlying WriteTree.\r\n *\r\n * @constructor\r\n */\r\nvar WriteTreeRef = /** @class */ (function () {\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {!WriteTree} writeTree\r\n     */\r\n    function WriteTreeRef(path, writeTree) {\r\n        this.treePath_ = path;\r\n        this.writeTree_ = writeTree;\r\n    }\r\n    /**\r\n     * If possible, returns a complete event cache, using the underlying server data if possible. In addition, can be used\r\n     * to get a cache that includes hidden writes, and excludes arbitrary writes. Note that customizing the returned node\r\n     * can lead to a more expensive calculation.\r\n     *\r\n     * @param {?Node} completeServerCache\r\n     * @param {Array.<number>=} writeIdsToExclude Optional writes to exclude.\r\n     * @param {boolean=} includeHiddenWrites Defaults to false, whether or not to layer on writes with visible set to false\r\n     * @return {?Node}\r\n     */\r\n    WriteTreeRef.prototype.calcCompleteEventCache = function (completeServerCache, writeIdsToExclude, includeHiddenWrites) {\r\n        return this.writeTree_.calcCompleteEventCache(this.treePath_, completeServerCache, writeIdsToExclude, includeHiddenWrites);\r\n    };\r\n    /**\r\n     * If possible, returns a children node containing all of the complete children we have data for. The returned data is a\r\n     * mix of the given server data and write data.\r\n     *\r\n     * @param {?ChildrenNode} completeServerChildren\r\n     * @return {!ChildrenNode}\r\n     */\r\n    WriteTreeRef.prototype.calcCompleteEventChildren = function (completeServerChildren) {\r\n        return this.writeTree_.calcCompleteEventChildren(this.treePath_, completeServerChildren);\r\n    };\r\n    /**\r\n     * Given that either the underlying server data has updated or the outstanding writes have updated, determine what,\r\n     * if anything, needs to be applied to the event cache.\r\n     *\r\n     * Possibilities:\r\n     *\r\n     * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data\r\n     *\r\n     * 2. Some write is completely shadowing. No events to be raised\r\n     *\r\n     * 3. Is partially shadowed. Events should be raised\r\n     *\r\n     * Either existingEventSnap or existingServerSnap must exist, this is validated via an assert\r\n     *\r\n     * @param {!Path} path\r\n     * @param {?Node} existingEventSnap\r\n     * @param {?Node} existingServerSnap\r\n     * @return {?Node}\r\n     */\r\n    WriteTreeRef.prototype.calcEventCacheAfterServerOverwrite = function (path, existingEventSnap, existingServerSnap) {\r\n        return this.writeTree_.calcEventCacheAfterServerOverwrite(this.treePath_, path, existingEventSnap, existingServerSnap);\r\n    };\r\n    /**\r\n     * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at\r\n     * a higher path, this will return the child of that write relative to the write and this path.\r\n     * Returns null if there is no write at this path.\r\n     *\r\n     * @param {!Path} path\r\n     * @return {?Node}\r\n     */\r\n    WriteTreeRef.prototype.shadowingWrite = function (path) {\r\n        return this.writeTree_.shadowingWrite(this.treePath_.child(path));\r\n    };\r\n    /**\r\n     * This method is used when processing child remove events on a query. If we can, we pull in children that were outside\r\n     * the window, but may now be in the window\r\n     *\r\n     * @param {?Node} completeServerData\r\n     * @param {!NamedNode} startPost\r\n     * @param {!number} count\r\n     * @param {boolean} reverse\r\n     * @param {!Index} index\r\n     * @return {!Array.<!NamedNode>}\r\n     */\r\n    WriteTreeRef.prototype.calcIndexedSlice = function (completeServerData, startPost, count, reverse, index) {\r\n        return this.writeTree_.calcIndexedSlice(this.treePath_, completeServerData, startPost, count, reverse, index);\r\n    };\r\n    /**\r\n     * Returns a complete child for a given server snap after applying all user writes or null if there is no\r\n     * complete child for this ChildKey.\r\n     *\r\n     * @param {!string} childKey\r\n     * @param {!CacheNode} existingServerCache\r\n     * @return {?Node}\r\n     */\r\n    WriteTreeRef.prototype.calcCompleteChild = function (childKey, existingServerCache) {\r\n        return this.writeTree_.calcCompleteChild(this.treePath_, childKey, existingServerCache);\r\n    };\r\n    /**\r\n     * Return a WriteTreeRef for a child.\r\n     *\r\n     * @param {string} childName\r\n     * @return {!WriteTreeRef}\r\n     */\r\n    WriteTreeRef.prototype.child = function (childName) {\r\n        return new WriteTreeRef(this.treePath_.child(childName), this.writeTree_);\r\n    };\r\n    return WriteTreeRef;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * SyncTree is the central class for managing event callback registration, data caching, views\r\n * (query processing), and event generation.  There are typically two SyncTree instances for\r\n * each Repo, one for the normal Firebase data, and one for the .info data.\r\n *\r\n * It has a number of responsibilities, including:\r\n *  - Tracking all user event callbacks (registered via addEventRegistration() and removeEventRegistration()).\r\n *  - Applying and caching data changes for user set(), transaction(), and update() calls\r\n *    (applyUserOverwrite(), applyUserMerge()).\r\n *  - Applying and caching data changes for server data changes (applyServerOverwrite(),\r\n *    applyServerMerge()).\r\n *  - Generating user-facing events for server and user changes (all of the apply* methods\r\n *    return the set of events that need to be raised as a result).\r\n *  - Maintaining the appropriate set of server listens to ensure we are always subscribed\r\n *    to the correct set of paths and queries to satisfy the current set of user event\r\n *    callbacks (listens are started/stopped using the provided listenProvider).\r\n *\r\n * NOTE: Although SyncTree tracks event callbacks and calculates events to raise, the actual\r\n * events are returned to the caller rather than raised synchronously.\r\n *\r\n * @constructor\r\n */\r\nvar SyncTree = /** @class */ (function () {\r\n    /**\r\n     * @param {!ListenProvider} listenProvider_ Used by SyncTree to start / stop listening\r\n     *   to server data.\r\n     */\r\n    function SyncTree(listenProvider_) {\r\n        this.listenProvider_ = listenProvider_;\r\n        /**\r\n         * Tree of SyncPoints.  There's a SyncPoint at any location that has 1 or more views.\r\n         * @type {!ImmutableTree.<!SyncPoint>}\r\n         * @private\r\n         */\r\n        this.syncPointTree_ = ImmutableTree.Empty;\r\n        /**\r\n         * A tree of all pending user writes (user-initiated set()'s, transaction()'s, update()'s, etc.).\r\n         * @type {!WriteTree}\r\n         * @private\r\n         */\r\n        this.pendingWriteTree_ = new WriteTree();\r\n        this.tagToQueryMap_ = {};\r\n        this.queryToTagMap_ = {};\r\n    }\r\n    /**\r\n     * Apply the data changes for a user-generated set() or transaction() call.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Node} newData\r\n     * @param {number} writeId\r\n     * @param {boolean=} visible\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyUserOverwrite = function (path, newData, writeId, visible) {\r\n        // Record pending write.\r\n        this.pendingWriteTree_.addOverwrite(path, newData, writeId, visible);\r\n        if (!visible) {\r\n            return [];\r\n        }\r\n        else {\r\n            return this.applyOperationToSyncPoints_(new Overwrite(OperationSource.User, path, newData));\r\n        }\r\n    };\r\n    /**\r\n     * Apply the data from a user-generated update() call\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Object.<string, !Node>} changedChildren\r\n     * @param {!number} writeId\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyUserMerge = function (path, changedChildren, writeId) {\r\n        // Record pending merge.\r\n        this.pendingWriteTree_.addMerge(path, changedChildren, writeId);\r\n        var changeTree = ImmutableTree.fromObject(changedChildren);\r\n        return this.applyOperationToSyncPoints_(new Merge(OperationSource.User, path, changeTree));\r\n    };\r\n    /**\r\n     * Acknowledge a pending user write that was previously registered with applyUserOverwrite() or applyUserMerge().\r\n     *\r\n     * @param {!number} writeId\r\n     * @param {boolean=} revert True if the given write failed and needs to be reverted\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.ackUserWrite = function (writeId, revert) {\r\n        if (revert === void 0) { revert = false; }\r\n        var write = this.pendingWriteTree_.getWrite(writeId);\r\n        var needToReevaluate = this.pendingWriteTree_.removeWrite(writeId);\r\n        if (!needToReevaluate) {\r\n            return [];\r\n        }\r\n        else {\r\n            var affectedTree_1 = ImmutableTree.Empty;\r\n            if (write.snap != null) {\r\n                // overwrite\r\n                affectedTree_1 = affectedTree_1.set(Path.Empty, true);\r\n            }\r\n            else {\r\n                util.forEach(write.children, function (pathString, node) {\r\n                    affectedTree_1 = affectedTree_1.set(new Path(pathString), node);\r\n                });\r\n            }\r\n            return this.applyOperationToSyncPoints_(new AckUserWrite(write.path, affectedTree_1, revert));\r\n        }\r\n    };\r\n    /**\r\n     * Apply new server data for the specified path..\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Node} newData\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyServerOverwrite = function (path, newData) {\r\n        return this.applyOperationToSyncPoints_(new Overwrite(OperationSource.Server, path, newData));\r\n    };\r\n    /**\r\n     * Apply new server data to be merged in at the specified path.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Object.<string, !Node>} changedChildren\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyServerMerge = function (path, changedChildren) {\r\n        var changeTree = ImmutableTree.fromObject(changedChildren);\r\n        return this.applyOperationToSyncPoints_(new Merge(OperationSource.Server, path, changeTree));\r\n    };\r\n    /**\r\n     * Apply a listen complete for a query\r\n     *\r\n     * @param {!Path} path\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyListenComplete = function (path) {\r\n        return this.applyOperationToSyncPoints_(new ListenComplete(OperationSource.Server, path));\r\n    };\r\n    /**\r\n     * Apply new server data for the specified tagged query.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Node} snap\r\n     * @param {!number} tag\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyTaggedQueryOverwrite = function (path, snap, tag) {\r\n        var queryKey = this.queryKeyForTag_(tag);\r\n        if (queryKey != null) {\r\n            var r = SyncTree.parseQueryKey_(queryKey);\r\n            var queryPath = r.path, queryId = r.queryId;\r\n            var relativePath = Path.relativePath(queryPath, path);\r\n            var op = new Overwrite(OperationSource.forServerTaggedQuery(queryId), relativePath, snap);\r\n            return this.applyTaggedOperation_(queryPath, op);\r\n        }\r\n        else {\r\n            // Query must have been removed already\r\n            return [];\r\n        }\r\n    };\r\n    /**\r\n     * Apply server data to be merged in for the specified tagged query.\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!Object.<string, !Node>} changedChildren\r\n     * @param {!number} tag\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyTaggedQueryMerge = function (path, changedChildren, tag) {\r\n        var queryKey = this.queryKeyForTag_(tag);\r\n        if (queryKey) {\r\n            var r = SyncTree.parseQueryKey_(queryKey);\r\n            var queryPath = r.path, queryId = r.queryId;\r\n            var relativePath = Path.relativePath(queryPath, path);\r\n            var changeTree = ImmutableTree.fromObject(changedChildren);\r\n            var op = new Merge(OperationSource.forServerTaggedQuery(queryId), relativePath, changeTree);\r\n            return this.applyTaggedOperation_(queryPath, op);\r\n        }\r\n        else {\r\n            // We've already removed the query. No big deal, ignore the update\r\n            return [];\r\n        }\r\n    };\r\n    /**\r\n     * Apply a listen complete for a tagged query\r\n     *\r\n     * @param {!Path} path\r\n     * @param {!number} tag\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.applyTaggedListenComplete = function (path, tag) {\r\n        var queryKey = this.queryKeyForTag_(tag);\r\n        if (queryKey) {\r\n            var r = SyncTree.parseQueryKey_(queryKey);\r\n            var queryPath = r.path, queryId = r.queryId;\r\n            var relativePath = Path.relativePath(queryPath, path);\r\n            var op = new ListenComplete(OperationSource.forServerTaggedQuery(queryId), relativePath);\r\n            return this.applyTaggedOperation_(queryPath, op);\r\n        }\r\n        else {\r\n            // We've already removed the query. No big deal, ignore the update\r\n            return [];\r\n        }\r\n    };\r\n    /**\r\n     * Add an event callback for the specified query.\r\n     *\r\n     * @param {!Query} query\r\n     * @param {!EventRegistration} eventRegistration\r\n     * @return {!Array.<!Event>} Events to raise.\r\n     */\r\n    SyncTree.prototype.addEventRegistration = function (query, eventRegistration) {\r\n        var path = query.path;\r\n        var serverCache = null;\r\n        var foundAncestorDefaultView = false;\r\n        // Any covering writes will necessarily be at the root, so really all we need to find is the server cache.\r\n        // Consider optimizing this once there's a better understanding of what actual behavior will be.\r\n        this.syncPointTree_.foreachOnPath(path, function (pathToSyncPoint, sp) {\r\n            var relativePath = Path.relativePath(pathToSyncPoint, path);\r\n            serverCache = serverCache || sp.getCompleteServerCache(relativePath);\r\n            foundAncestorDefaultView =\r\n                foundAncestorDefaultView || sp.hasCompleteView();\r\n        });\r\n        var syncPoint = this.syncPointTree_.get(path);\r\n        if (!syncPoint) {\r\n            syncPoint = new SyncPoint();\r\n            this.syncPointTree_ = this.syncPointTree_.set(path, syncPoint);\r\n        }\r\n        else {\r\n            foundAncestorDefaultView =\r\n                foundAncestorDefaultView || syncPoint.hasCompleteView();\r\n            serverCache = serverCache || syncPoint.getCompleteServerCache(Path.Empty);\r\n        }\r\n        var serverCacheComplete;\r\n        if (serverCache != null) {\r\n            serverCacheComplete = true;\r\n        }\r\n        else {\r\n            serverCacheComplete = false;\r\n            serverCache = ChildrenNode.EMPTY_NODE;\r\n            var subtree = this.syncPointTree_.subtree(path);\r\n            subtree.foreachChild(function (childName, childSyncPoint) {\r\n                var completeCache = childSyncPoint.getCompleteServerCache(Path.Empty);\r\n                if (completeCache) {\r\n                    serverCache = serverCache.updateImmediateChild(childName, completeCache);\r\n                }\r\n            });\r\n        }\r\n        var viewAlreadyExists = syncPoint.viewExistsForQuery(query);\r\n        if (!viewAlreadyExists && !query.getQueryParams().loadsAllData()) {\r\n            // We need to track a tag for this query\r\n            var queryKey = SyncTree.makeQueryKey_(query);\r\n            util.assert(!(queryKey in this.queryToTagMap_), 'View does not exist, but we have a tag');\r\n            var tag = SyncTree.getNextQueryTag_();\r\n            this.queryToTagMap_[queryKey] = tag;\r\n            // Coerce to string to avoid sparse arrays.\r\n            this.tagToQueryMap_['_' + tag] = queryKey;\r\n        }\r\n        var writesCache = this.pendingWriteTree_.childWrites(path);\r\n        var events = syncPoint.addEventRegistration(query, eventRegistration, writesCache, serverCache, serverCacheComplete);\r\n        if (!viewAlreadyExists && !foundAncestorDefaultView) {\r\n            var view /** @type !View */ = syncPoint.viewForQuery(query);\r\n            events = events.concat(this.setupListener_(query, view));\r\n        }\r\n        return events;\r\n    };\r\n    /**\r\n     * Remove event callback(s).\r\n     *\r\n     * If query is the default query, we'll check all queries for the specified eventRegistration.\r\n     * If eventRegistration is null, we'll remove all callbacks for the specified query/queries.\r\n     *\r\n     * @param {!Query} query\r\n     * @param {?EventRegistration} eventRegistration If null, all callbacks are removed.\r\n     * @param {Error=} cancelError If a cancelError is provided, appropriate cancel events will be returned.\r\n     * @return {!Array.<!Event>} Cancel events, if cancelError was provided.\r\n     */\r\n    SyncTree.prototype.removeEventRegistration = function (query, eventRegistration, cancelError) {\r\n        var _this = this;\r\n        // Find the syncPoint first. Then deal with whether or not it has matching listeners\r\n        var path = query.path;\r\n        var maybeSyncPoint = this.syncPointTree_.get(path);\r\n        var cancelEvents = [];\r\n        // A removal on a default query affects all queries at that location. A removal on an indexed query, even one without\r\n        // other query constraints, does *not* affect all queries at that location. So this check must be for 'default', and\r\n        // not loadsAllData().\r\n        if (maybeSyncPoint &&\r\n            (query.queryIdentifier() === 'default' ||\r\n                maybeSyncPoint.viewExistsForQuery(query))) {\r\n            /**\r\n             * @type {{removed: !Array.<!Query>, events: !Array.<!Event>}}\r\n             */\r\n            var removedAndEvents = maybeSyncPoint.removeEventRegistration(query, eventRegistration, cancelError);\r\n            if (maybeSyncPoint.isEmpty()) {\r\n                this.syncPointTree_ = this.syncPointTree_.remove(path);\r\n            }\r\n            var removed = removedAndEvents.removed;\r\n            cancelEvents = removedAndEvents.events;\r\n            // We may have just removed one of many listeners and can short-circuit this whole process\r\n            // We may also not have removed a default listener, in which case all of the descendant listeners should already be\r\n            // properly set up.\r\n            //\r\n            // Since indexed queries can shadow if they don't have other query constraints, check for loadsAllData(), instead of\r\n            // queryId === 'default'\r\n            var removingDefault = -1 !==\r\n                removed.findIndex(function (query) {\r\n                    return query.getQueryParams().loadsAllData();\r\n                });\r\n            var covered = this.syncPointTree_.findOnPath(path, function (relativePath, parentSyncPoint) {\r\n                return parentSyncPoint.hasCompleteView();\r\n            });\r\n            if (removingDefault && !covered) {\r\n                var subtree = this.syncPointTree_.subtree(path);\r\n                // There are potentially child listeners. Determine what if any listens we need to send before executing the\r\n                // removal\r\n                if (!subtree.isEmpty()) {\r\n                    // We need to fold over our subtree and collect the listeners to send\r\n                    var newViews = this.collectDistinctViewsForSubTree_(subtree);\r\n                    // Ok, we've collected all the listens we need. Set them up.\r\n                    for (var i = 0; i < newViews.length; ++i) {\r\n                        var view = newViews[i], newQuery = view.getQuery();\r\n                        var listener = this.createListenerForView_(view);\r\n                        this.listenProvider_.startListening(SyncTree.queryForListening_(newQuery), this.tagForQuery_(newQuery), listener.hashFn, listener.onComplete);\r\n                    }\r\n                }\r\n                else {\r\n                    // There's nothing below us, so nothing we need to start listening on\r\n                }\r\n            }\r\n            // If we removed anything and we're not covered by a higher up listen, we need to stop listening on this query\r\n            // The above block has us covered in terms of making sure we're set up on listens lower in the tree.\r\n            // Also, note that if we have a cancelError, it's already been removed at the provider level.\r\n            if (!covered && removed.length > 0 && !cancelError) {\r\n                // If we removed a default, then we weren't listening on any of the other queries here. Just cancel the one\r\n                // default. Otherwise, we need to iterate through and cancel each individual query\r\n                if (removingDefault) {\r\n                    // We don't tag default listeners\r\n                    var defaultTag = null;\r\n                    this.listenProvider_.stopListening(SyncTree.queryForListening_(query), defaultTag);\r\n                }\r\n                else {\r\n                    removed.forEach(function (queryToRemove) {\r\n                        var tagToRemove = _this.queryToTagMap_[SyncTree.makeQueryKey_(queryToRemove)];\r\n                        _this.listenProvider_.stopListening(SyncTree.queryForListening_(queryToRemove), tagToRemove);\r\n                    });\r\n                }\r\n            }\r\n            // Now, clear all of the tags we're tracking for the removed listens\r\n            this.removeTags_(removed);\r\n        }\r\n        else {\r\n            // No-op, this listener must've been already removed\r\n        }\r\n        return cancelEvents;\r\n    };\r\n    /**\r\n     * Returns a complete cache, if we have one, of the data at a particular path. The location must have a listener above\r\n     * it, but as this is only used by transaction code, that should always be the case anyways.\r\n     *\r\n     * Note: this method will *include* hidden writes from transaction with applyLocally set to false.\r\n     * @param {!Path} path The path to the data we want\r\n     * @param {Array.<number>=} writeIdsToExclude A specific set to be excluded\r\n     * @return {?Node}\r\n     */\r\n    SyncTree.prototype.calcCompleteEventCache = function (path, writeIdsToExclude) {\r\n        var includeHiddenSets = true;\r\n        var writeTree = this.pendingWriteTree_;\r\n        var serverCache = this.syncPointTree_.findOnPath(path, function (pathSoFar, syncPoint) {\r\n            var relativePath = Path.relativePath(pathSoFar, path);\r\n            var serverCache = syncPoint.getCompleteServerCache(relativePath);\r\n            if (serverCache) {\r\n                return serverCache;\r\n            }\r\n        });\r\n        return writeTree.calcCompleteEventCache(path, serverCache, writeIdsToExclude, includeHiddenSets);\r\n    };\r\n    /**\r\n     * This collapses multiple unfiltered views into a single view, since we only need a single\r\n     * listener for them.\r\n     *\r\n     * @param {!ImmutableTree.<!SyncPoint>} subtree\r\n     * @return {!Array.<!View>}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.collectDistinctViewsForSubTree_ = function (subtree) {\r\n        return subtree.fold(function (relativePath, maybeChildSyncPoint, childMap) {\r\n            if (maybeChildSyncPoint && maybeChildSyncPoint.hasCompleteView()) {\r\n                var completeView = maybeChildSyncPoint.getCompleteView();\r\n                return [completeView];\r\n            }\r\n            else {\r\n                // No complete view here, flatten any deeper listens into an array\r\n                var views_1 = [];\r\n                if (maybeChildSyncPoint) {\r\n                    views_1 = maybeChildSyncPoint.getQueryViews();\r\n                }\r\n                util.forEach(childMap, function (key, childViews) {\r\n                    views_1 = views_1.concat(childViews);\r\n                });\r\n                return views_1;\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Array.<!Query>} queries\r\n     * @private\r\n     */\r\n    SyncTree.prototype.removeTags_ = function (queries) {\r\n        for (var j = 0; j < queries.length; ++j) {\r\n            var removedQuery = queries[j];\r\n            if (!removedQuery.getQueryParams().loadsAllData()) {\r\n                // We should have a tag for this\r\n                var removedQueryKey = SyncTree.makeQueryKey_(removedQuery);\r\n                var removedQueryTag = this.queryToTagMap_[removedQueryKey];\r\n                delete this.queryToTagMap_[removedQueryKey];\r\n                delete this.tagToQueryMap_['_' + removedQueryTag];\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Normalizes a query to a query we send the server for listening\r\n     * @param {!Query} query\r\n     * @return {!Query} The normalized query\r\n     * @private\r\n     */\r\n    SyncTree.queryForListening_ = function (query) {\r\n        if (query.getQueryParams().loadsAllData() &&\r\n            !query.getQueryParams().isDefault()) {\r\n            // We treat queries that load all data as default queries\r\n            // Cast is necessary because ref() technically returns Firebase which is actually fb.api.Firebase which inherits\r\n            // from Query\r\n            return /** @type {!Query} */ query.getRef();\r\n        }\r\n        else {\r\n            return query;\r\n        }\r\n    };\r\n    /**\r\n     * For a given new listen, manage the de-duplication of outstanding subscriptions.\r\n     *\r\n     * @param {!Query} query\r\n     * @param {!View} view\r\n     * @return {!Array.<!Event>} This method can return events to support synchronous data sources\r\n     * @private\r\n     */\r\n    SyncTree.prototype.setupListener_ = function (query, view) {\r\n        var path = query.path;\r\n        var tag = this.tagForQuery_(query);\r\n        var listener = this.createListenerForView_(view);\r\n        var events = this.listenProvider_.startListening(SyncTree.queryForListening_(query), tag, listener.hashFn, listener.onComplete);\r\n        var subtree = this.syncPointTree_.subtree(path);\r\n        // The root of this subtree has our query. We're here because we definitely need to send a listen for that, but we\r\n        // may need to shadow other listens as well.\r\n        if (tag) {\r\n            util.assert(!subtree.value.hasCompleteView(), \"If we're adding a query, it shouldn't be shadowed\");\r\n        }\r\n        else {\r\n            // Shadow everything at or below this location, this is a default listener.\r\n            var queriesToStop = subtree.fold(function (relativePath, maybeChildSyncPoint, childMap) {\r\n                if (!relativePath.isEmpty() &&\r\n                    maybeChildSyncPoint &&\r\n                    maybeChildSyncPoint.hasCompleteView()) {\r\n                    return [maybeChildSyncPoint.getCompleteView().getQuery()];\r\n                }\r\n                else {\r\n                    // No default listener here, flatten any deeper queries into an array\r\n                    var queries_1 = [];\r\n                    if (maybeChildSyncPoint) {\r\n                        queries_1 = queries_1.concat(maybeChildSyncPoint.getQueryViews().map(function (view) { return view.getQuery(); }));\r\n                    }\r\n                    util.forEach(childMap, function (key, childQueries) {\r\n                        queries_1 = queries_1.concat(childQueries);\r\n                    });\r\n                    return queries_1;\r\n                }\r\n            });\r\n            for (var i = 0; i < queriesToStop.length; ++i) {\r\n                var queryToStop = queriesToStop[i];\r\n                this.listenProvider_.stopListening(SyncTree.queryForListening_(queryToStop), this.tagForQuery_(queryToStop));\r\n            }\r\n        }\r\n        return events;\r\n    };\r\n    /**\r\n     *\r\n     * @param {!View} view\r\n     * @return {{hashFn: function(), onComplete: function(!string, *)}}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.createListenerForView_ = function (view) {\r\n        var _this = this;\r\n        var query = view.getQuery();\r\n        var tag = this.tagForQuery_(query);\r\n        return {\r\n            hashFn: function () {\r\n                var cache = view.getServerCache() || ChildrenNode.EMPTY_NODE;\r\n                return cache.hash();\r\n            },\r\n            onComplete: function (status) {\r\n                if (status === 'ok') {\r\n                    if (tag) {\r\n                        return _this.applyTaggedListenComplete(query.path, tag);\r\n                    }\r\n                    else {\r\n                        return _this.applyListenComplete(query.path);\r\n                    }\r\n                }\r\n                else {\r\n                    // If a listen failed, kill all of the listeners here, not just the one that triggered the error.\r\n                    // Note that this may need to be scoped to just this listener if we change permissions on filtered children\r\n                    var error$$1 = errorForServerCode(status, query);\r\n                    return _this.removeEventRegistration(query, \r\n                    /*eventRegistration*/ null, error$$1);\r\n                }\r\n            }\r\n        };\r\n    };\r\n    /**\r\n     * Given a query, computes a \"queryKey\" suitable for use in our queryToTagMap_.\r\n     * @private\r\n     * @param {!Query} query\r\n     * @return {string}\r\n     */\r\n    SyncTree.makeQueryKey_ = function (query) {\r\n        return query.path.toString() + '$' + query.queryIdentifier();\r\n    };\r\n    /**\r\n     * Given a queryKey (created by makeQueryKey), parse it back into a path and queryId.\r\n     * @private\r\n     * @param {!string} queryKey\r\n     * @return {{queryId: !string, path: !Path}}\r\n     */\r\n    SyncTree.parseQueryKey_ = function (queryKey) {\r\n        var splitIndex = queryKey.indexOf('$');\r\n        util.assert(splitIndex !== -1 && splitIndex < queryKey.length - 1, 'Bad queryKey.');\r\n        return {\r\n            queryId: queryKey.substr(splitIndex + 1),\r\n            path: new Path(queryKey.substr(0, splitIndex))\r\n        };\r\n    };\r\n    /**\r\n     * Return the query associated with the given tag, if we have one\r\n     * @param {!number} tag\r\n     * @return {?string}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.queryKeyForTag_ = function (tag) {\r\n        return this.tagToQueryMap_['_' + tag];\r\n    };\r\n    /**\r\n     * Return the tag associated with the given query.\r\n     * @param {!Query} query\r\n     * @return {?number}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.tagForQuery_ = function (query) {\r\n        var queryKey = SyncTree.makeQueryKey_(query);\r\n        return util.safeGet(this.queryToTagMap_, queryKey);\r\n    };\r\n    /**\r\n     * Static accessor for query tags.\r\n     * @return {number}\r\n     * @private\r\n     */\r\n    SyncTree.getNextQueryTag_ = function () {\r\n        return SyncTree.nextQueryTag_++;\r\n    };\r\n    /**\r\n     * A helper method to apply tagged operations\r\n     *\r\n     * @param {!Path} queryPath\r\n     * @param {!Operation} operation\r\n     * @return {!Array.<!Event>}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.applyTaggedOperation_ = function (queryPath, operation) {\r\n        var syncPoint = this.syncPointTree_.get(queryPath);\r\n        util.assert(syncPoint, \"Missing sync point for query tag that we're tracking\");\r\n        var writesCache = this.pendingWriteTree_.childWrites(queryPath);\r\n        return syncPoint.applyOperation(operation, writesCache, \r\n        /*serverCache=*/ null);\r\n    };\r\n    /**\r\n     * A helper method that visits all descendant and ancestor SyncPoints, applying the operation.\r\n     *\r\n     * NOTES:\r\n     * - Descendant SyncPoints will be visited first (since we raise events depth-first).\r\n  \n     * - We call applyOperation() on each SyncPoint passing three things:\r\n     *   1. A version of the Operation that has been made relative to the SyncPoint location.\r\n     *   2. A WriteTreeRef of any writes we have cached at the SyncPoint location.\r\n     *   3. A snapshot Node with cached server data, if we have it.\r\n  \n     * - We concatenate all of the events returned by each SyncPoint and return the result.\r\n     *\r\n     * @param {!Operation} operation\r\n     * @return {!Array.<!Event>}\r\n     * @private\r\n     */\r\n    SyncTree.prototype.applyOperationToSyncPoints_ = function (operation) {\r\n        return this.applyOperationHelper_(operation, this.syncPointTree_, \r\n        /*serverCache=*/ null, this.pendingWriteTree_.childWrites(Path.Empty));\r\n    };\r\n    /**\r\n     * Recursive helper for applyOperationToSyncPoints_\r\n     *\r\n     * @private\r\n     * @param {!Operation} operation\r\n     * @param {ImmutableTree.<!SyncPoint>} syncPointTree\r\n     * @param {?Node} serverCache\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    SyncTree.prototype.applyOperationHelper_ = function (operation, syncPointTree, serverCache, writesCache) {\r\n        if (operation.path.isEmpty()) {\r\n            return this.applyOperationDescendantsHelper_(operation, syncPointTree, serverCache, writesCache);\r\n        }\r\n        else {\r\n            var syncPoint = syncPointTree.get(Path.Empty);\r\n            // If we don't have cached server data, see if we can get it from this SyncPoint.\r\n            if (serverCache == null && syncPoint != null) {\r\n                serverCache = syncPoint.getCompleteServerCache(Path.Empty);\r\n            }\r\n            var events = [];\r\n            var childName = operation.path.getFront();\r\n            var childOperation = operation.operationForChild(childName);\r\n            var childTree = syncPointTree.children.get(childName);\r\n            if (childTree && childOperation) {\r\n                var childServerCache = serverCache\r\n                    ? serverCache.getImmediateChild(childName)\r\n                    : null;\r\n                var childWritesCache = writesCache.child(childName);\r\n                events = events.concat(this.applyOperationHelper_(childOperation, childTree, childServerCache, childWritesCache));\r\n            }\r\n            if (syncPoint) {\r\n                events = events.concat(syncPoint.applyOperation(operation, writesCache, serverCache));\r\n            }\r\n            return events;\r\n        }\r\n    };\r\n    /**\r\n     * Recursive helper for applyOperationToSyncPoints_\r\n     *\r\n     * @private\r\n     * @param {!Operation} operation\r\n     * @param {ImmutableTree.<!SyncPoint>} syncPointTree\r\n     * @param {?Node} serverCache\r\n     * @param {!WriteTreeRef} writesCache\r\n     * @return {!Array.<!Event>}\r\n     */\r\n    SyncTree.prototype.applyOperationDescendantsHelper_ = function (operation, syncPointTree, serverCache, writesCache) {\r\n        var _this = this;\r\n        var syncPoint = syncPointTree.get(Path.Empty);\r\n        // If we don't have cached server data, see if we can get it from this SyncPoint.\r\n        if (serverCache == null && syncPoint != null) {\r\n            serverCache = syncPoint.getCompleteServerCache(Path.Empty);\r\n        }\r\n        var events = [];\r\n        syncPointTree.children.inorderTraversal(function (childName, childTree) {\r\n            var childServerCache = serverCache\r\n                ? serverCache.getImmediateChild(childName)\r\n                : null;\r\n            var childWritesCache = writesCache.child(childName);\r\n            var childOperation = operation.operationForChild(childName);\r\n            if (childOperation) {\r\n                events = events.concat(_this.applyOperationDescendantsHelper_(childOperation, childTree, childServerCache, childWritesCache));\r\n            }\r\n        });\r\n        if (syncPoint) {\r\n            events = events.concat(syncPoint.applyOperation(operation, writesCache, serverCache));\r\n        }\r\n        return events;\r\n    };\r\n    /**\r\n     * Static tracker for next query tag.\r\n     * @type {number}\r\n     * @private\r\n     */\r\n    SyncTree.nextQueryTag_ = 1;\r\n    return SyncTree;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Mutable object which basically just stores a reference to the \"latest\" immutable snapshot.\r\n *\r\n * @constructor\r\n */\r\nvar SnapshotHolder = /** @class */ (function () {\r\n    function SnapshotHolder() {\r\n        this.rootNode_ = ChildrenNode.EMPTY_NODE;\r\n    }\r\n    SnapshotHolder.prototype.getNode = function (path) {\r\n        return this.rootNode_.getChild(path);\r\n    };\r\n    SnapshotHolder.prototype.updateSnapshot = function (path, newSnapshotNode) {\r\n        this.rootNode_ = this.rootNode_.updateChild(path, newSnapshotNode);\r\n    };\r\n    return SnapshotHolder;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Abstraction around FirebaseApp's token fetching capabilities.\r\n */\r\nvar AuthTokenProvider = /** @class */ (function () {\r\n    /**\r\n     * @param {!FirebaseApp} app_\r\n     */\r\n    function AuthTokenProvider(app_) {\r\n        this.app_ = app_;\r\n    }\r\n    /**\r\n     * @param {boolean} forceRefresh\r\n     * @return {!Promise<FirebaseAuthTokenData>}\r\n     */\r\n    AuthTokenProvider.prototype.getToken = function (forceRefresh) {\r\n        return this.app_['INTERNAL']['getToken'](forceRefresh).then(null, \r\n        // .catch\r\n        function (error$$1) {\r\n            // TODO: Need to figure out all the cases this is raised and whether\r\n            // this makes sense.\r\n            if (error$$1 && error$$1.code === 'auth/token-not-initialized') {\r\n                log('Got auth/token-not-initialized error.  Treating as null token.');\r\n                return null;\r\n            }\r\n            else {\r\n                return Promise.reject(error$$1);\r\n            }\r\n        });\r\n    };\r\n    AuthTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n        // TODO: We might want to wrap the listener and call it with no args to\r\n        // avoid a leaky abstraction, but that makes removing the listener harder.\r\n        this.app_['INTERNAL']['addAuthTokenListener'](listener);\r\n    };\r\n    AuthTokenProvider.prototype.removeTokenChangeListener = function (listener) {\r\n        this.app_['INTERNAL']['removeAuthTokenListener'](listener);\r\n    };\r\n    AuthTokenProvider.prototype.notifyForInvalidToken = function () {\r\n        var errorMessage = 'Provided authentication credentials for the app named \"' +\r\n            this.app_.name +\r\n            '\" are invalid. This usually indicates your app was not ' +\r\n            'initialized correctly. ';\r\n        if ('credential' in this.app_.options) {\r\n            errorMessage +=\r\n                'Make sure the \"credential\" property provided to initializeApp() ' +\r\n                    'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n                    'project.';\r\n        }\r\n        else if ('serviceAccount' in this.app_.options) {\r\n            errorMessage +=\r\n                'Make sure the \"serviceAccount\" property provided to initializeApp() ' +\r\n                    'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n                    'project.';\r\n        }\r\n        else {\r\n            errorMessage +=\r\n                'Make sure the \"apiKey\" and \"databaseURL\" properties provided to ' +\r\n                    'initializeApp() match the values provided for your app at ' +\r\n                    'https://console.firebase.google.com/.';\r\n        }\r\n        warn(errorMessage);\r\n    };\r\n    return AuthTokenProvider;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Tracks a collection of stats.\r\n *\r\n * @constructor\r\n */\r\nvar StatsCollection = /** @class */ (function () {\r\n    function StatsCollection() {\r\n        this.counters_ = {};\r\n    }\r\n    StatsCollection.prototype.incrementCounter = function (name, amount) {\r\n        if (amount === void 0) { amount = 1; }\r\n        if (!util.contains(this.counters_, name))\r\n            this.counters_[name] = 0;\r\n        this.counters_[name] += amount;\r\n    };\r\n    StatsCollection.prototype.get = function () {\r\n        return util.deepCopy(this.counters_);\r\n    };\r\n    return StatsCollection;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar StatsManager = /** @class */ (function () {\r\n    function StatsManager() {\r\n    }\r\n    StatsManager.getCollection = function (repoInfo) {\r\n        var hashString = repoInfo.toString();\r\n        if (!this.collections_[hashString]) {\r\n            this.collections_[hashString] = new StatsCollection();\r\n        }\r\n        return this.collections_[hashString];\r\n    };\r\n    StatsManager.getOrCreateReporter = function (repoInfo, creatorFunction) {\r\n        var hashString = repoInfo.toString();\r\n        if (!this.reporters_[hashString]) {\r\n            this.reporters_[hashString] = creatorFunction();\r\n        }\r\n        return this.reporters_[hashString];\r\n    };\r\n    StatsManager.collections_ = {};\r\n    StatsManager.reporters_ = {};\r\n    return StatsManager;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Returns the delta from the previous call to get stats.\r\n *\r\n * @param collection_ The collection to \"listen\" to.\r\n * @constructor\r\n */\r\nvar StatsListener = /** @class */ (function () {\r\n    function StatsListener(collection_) {\r\n        this.collection_ = collection_;\r\n        this.last_ = null;\r\n    }\r\n    StatsListener.prototype.get = function () {\r\n        var newStats = this.collection_.get();\r\n        var delta = util.clone(newStats);\r\n        if (this.last_) {\r\n            util.forEach(this.last_, function (stat, value) {\r\n                delta[stat] = delta[stat] - value;\r\n            });\r\n        }\r\n        this.last_ = newStats;\r\n        return delta;\r\n    };\r\n    return StatsListener;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Assuming some apps may have a short amount of time on page, and a bulk of firebase operations probably\r\n// happen on page load, we try to report our first set of stats pretty quickly, but we wait at least 10\r\n// seconds to try to ensure the Firebase connection is established / settled.\r\nvar FIRST_STATS_MIN_TIME = 10 * 1000;\r\nvar FIRST_STATS_MAX_TIME = 30 * 1000;\r\n// We'll continue to report stats on average every 5 minutes.\r\nvar REPORT_STATS_INTERVAL = 5 * 60 * 1000;\r\n/**\r\n * @constructor\r\n */\r\nvar StatsReporter = /** @class */ (function () {\r\n    /**\r\n     * @param collection\r\n     * @param server_\r\n     */\r\n    function StatsReporter(collection, server_) {\r\n        this.server_ = server_;\r\n        this.statsToReport_ = {};\r\n        this.statsListener_ = new StatsListener(collection);\r\n        var timeout = FIRST_STATS_MIN_TIME +\r\n            (FIRST_STATS_MAX_TIME - FIRST_STATS_MIN_TIME) * Math.random();\r\n        setTimeoutNonBlocking(this.reportStats_.bind(this), Math.floor(timeout));\r\n    }\r\n    StatsReporter.prototype.includeStat = function (stat) {\r\n        this.statsToReport_[stat] = true;\r\n    };\r\n    StatsReporter.prototype.reportStats_ = function () {\r\n        var _this = this;\r\n        var stats = this.statsListener_.get();\r\n        var reportedStats = {};\r\n        var haveStatsToReport = false;\r\n        util.forEach(stats, function (stat, value) {\r\n            if (value > 0 && util.contains(_this.statsToReport_, stat)) {\r\n                reportedStats[stat] = value;\r\n                haveStatsToReport = true;\r\n            }\r\n        });\r\n        if (haveStatsToReport) {\r\n            this.server_.reportStats(reportedStats);\r\n        }\r\n        // queue our next run.\r\n        setTimeoutNonBlocking(this.reportStats_.bind(this), Math.floor(Math.random() * 2 * REPORT_STATS_INTERVAL));\r\n    };\r\n    return StatsReporter;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * The event queue serves a few purposes:\r\n * 1. It ensures we maintain event order in the face of event callbacks doing operations that result in more\r\n *    events being queued.\r\n * 2. raiseQueuedEvents() handles being called reentrantly nicely.  That is, if in the course of raising events,\r\n *    raiseQueuedEvents() is called again, the \"inner\" call will pick up raising events where the \"outer\" call\r\n *    left off, ensuring that the events are still raised synchronously and in order.\r\n * 3. You can use raiseEventsAtPath and raiseEventsForChangedPath to ensure only relevant previously-queued\r\n *    events are raised synchronously.\r\n *\r\n * NOTE: This can all go away if/when we move to async events.\r\n *\r\n * @constructor\r\n */\r\nvar EventQueue = /** @class */ (function () {\r\n    function EventQueue() {\r\n        /**\r\n         * @private\r\n         * @type {!Array.<EventList>}\r\n         */\r\n        this.eventLists_ = [];\r\n        /**\r\n         * Tracks recursion depth of raiseQueuedEvents_, for debugging purposes.\r\n         * @private\r\n         * @type {!number}\r\n         */\r\n        this.recursionDepth_ = 0;\r\n    }\r\n    /**\r\n     * @param {!Array.<Event>} eventDataList The new events to queue.\r\n     */\r\n    EventQueue.prototype.queueEvents = function (eventDataList) {\r\n        // We group events by path, storing them in a single EventList, to make it easier to skip over them quickly.\r\n        var currList = null;\r\n        for (var i = 0; i < eventDataList.length; i++) {\r\n            var eventData = eventDataList[i];\r\n            var eventPath = eventData.getPath();\r\n            if (currList !== null && !eventPath.equals(currList.getPath())) {\r\n                this.eventLists_.push(currList);\r\n                currList = null;\r\n            }\r\n            if (currList === null) {\r\n                currList = new EventList(eventPath);\r\n            }\r\n            currList.add(eventData);\r\n        }\r\n        if (currList) {\r\n            this.eventLists_.push(currList);\r\n        }\r\n    };\r\n    /**\r\n     * Queues the specified events and synchronously raises all events (including previously queued ones)\r\n     * for the specified path.\r\n     *\r\n     * It is assumed that the new events are all for the specified path.\r\n     *\r\n     * @param {!Path} path The path to raise events for.\r\n     * @param {!Array.<Event>} eventDataList The new events to raise.\r\n     */\r\n    EventQueue.prototype.raiseEventsAtPath = function (path, eventDataList) {\r\n        this.queueEvents(eventDataList);\r\n        this.raiseQueuedEventsMatchingPredicate_(function (eventPath) {\r\n            return eventPath.equals(path);\r\n        });\r\n    };\r\n    /**\r\n     * Queues the specified events and synchronously raises all events (including previously queued ones) for\r\n     * locations related to the specified change path (i.e. all ancestors and descendants).\r\n     *\r\n     * It is assumed that the new events are all related (ancestor or descendant) to the specified path.\r\n     *\r\n     * @param {!Path} changedPath The path to raise events for.\r\n     * @param {!Array.<!Event>} eventDataList The events to raise\r\n     */\r\n    EventQueue.prototype.raiseEventsForChangedPath = function (changedPath, eventDataList) {\r\n        this.queueEvents(eventDataList);\r\n        this.raiseQueuedEventsMatchingPredicate_(function (eventPath) {\r\n            return eventPath.contains(changedPath) || changedPath.contains(eventPath);\r\n        });\r\n    };\r\n    /**\r\n     * @param {!function(!Path):boolean} predicate\r\n     * @private\r\n     */\r\n    EventQueue.prototype.raiseQueuedEventsMatchingPredicate_ = function (predicate) {\r\n        this.recursionDepth_++;\r\n        var sentAll = true;\r\n        for (var i = 0; i < this.eventLists_.length; i++) {\r\n            var eventList = this.eventLists_[i];\r\n            if (eventList) {\r\n                var eventPath = eventList.getPath();\r\n                if (predicate(eventPath)) {\r\n                    this.eventLists_[i].raise();\r\n                    this.eventLists_[i] = null;\r\n                }\r\n                else {\r\n                    sentAll = false;\r\n                }\r\n            }\r\n        }\r\n        if (sentAll) {\r\n            this.eventLists_ = [];\r\n        }\r\n        this.recursionDepth_--;\r\n    };\r\n    return EventQueue;\r\n}());\r\n/**\r\n * @param {!Path} path\r\n * @constructor\r\n */\r\nvar EventList = /** @class */ (function () {\r\n    function EventList(path_) {\r\n        this.path_ = path_;\r\n        /**\r\n         * @type {!Array.<Event>}\r\n         * @private\r\n         */\r\n        this.events_ = [];\r\n    }\r\n    /**\r\n     * @param {!Event} eventData\r\n     */\r\n    EventList.prototype.add = function (eventData) {\r\n        this.events_.push(eventData);\r\n    };\r\n    /**\r\n     * Iterates through the list and raises each event\r\n     */\r\n    EventList.prototype.raise = function () {\r\n        for (var i = 0; i < this.events_.length; i++) {\r\n            var eventData = this.events_[i];\r\n            if (eventData !== null) {\r\n                this.events_[i] = null;\r\n                var eventFn = eventData.getEventRunner();\r\n                if (logger$1) {\r\n                    log('event: ' + eventData.toString());\r\n                }\r\n                exceptionGuard(eventFn);\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * @return {!Path}\r\n     */\r\n    EventList.prototype.getPath = function () {\r\n        return this.path_;\r\n    };\r\n    return EventList;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Base class to be used if you want to emit events. Call the constructor with\r\n * the set of allowed event names.\r\n */\r\nvar EventEmitter = /** @class */ (function () {\r\n    /**\r\n     * @param {!Array.<string>} allowedEvents_\r\n     */\r\n    function EventEmitter(allowedEvents_) {\r\n        this.allowedEvents_ = allowedEvents_;\r\n        this.listeners_ = {};\r\n        util.assert(Array.isArray(allowedEvents_) && allowedEvents_.length > 0, 'Requires a non-empty array');\r\n    }\r\n    /**\r\n     * To be called by derived classes to trigger events.\r\n     * @param {!string} eventType\r\n     * @param {...*} var_args\r\n     */\r\n    EventEmitter.prototype.trigger = function (eventType) {\r\n        var var_args = [];\r\n        for (var _i = 1; _i < arguments.length; _i++) {\r\n            var_args[_i - 1] = arguments[_i];\r\n        }\r\n        if (Array.isArray(this.listeners_[eventType])) {\r\n            // Clone the list, since callbacks could add/remove listeners.\r\n            var listeners = this.listeners_[eventType].slice();\r\n            for (var i = 0; i < listeners.length; i++) {\r\n                listeners[i].callback.apply(listeners[i].context, var_args);\r\n            }\r\n        }\r\n    };\r\n    EventEmitter.prototype.on = function (eventType, callback, context) {\r\n        this.validateEventType_(eventType);\r\n        this.listeners_[eventType] = this.listeners_[eventType] || [];\r\n        this.listeners_[eventType].push({ callback: callback, context: context });\r\n        var eventData = this.getInitialEvent(eventType);\r\n        if (eventData) {\r\n            callback.apply(context, eventData);\r\n        }\r\n    };\r\n    EventEmitter.prototype.off = function (eventType, callback, context) {\r\n        this.validateEventType_(eventType);\r\n        var listeners = this.listeners_[eventType] || [];\r\n        for (var i = 0; i < listeners.length; i++) {\r\n            if (listeners[i].callback === callback &&\r\n                (!context || context === listeners[i].context)) {\r\n                listeners.splice(i, 1);\r\n                return;\r\n            }\r\n        }\r\n    };\r\n    EventEmitter.prototype.validateEventType_ = function (eventType) {\r\n        util.assert(this.allowedEvents_.find(function (et) {\r\n            return et === eventType;\r\n        }), 'Unknown event: ' + eventType);\r\n    };\r\n    return EventEmitter;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @extends {EventEmitter}\r\n */\r\nvar VisibilityMonitor = /** @class */ (function (_super) {\r\n    tslib_1.__extends(VisibilityMonitor, _super);\r\n    function VisibilityMonitor() {\r\n        var _this = _super.call(this, ['visible']) || this;\r\n        var hidden;\r\n        var visibilityChange;\r\n        if (typeof document !== 'undefined' &&\r\n            typeof document.addEventListener !== 'undefined') {\r\n            if (typeof document['hidden'] !== 'undefined') {\r\n                // Opera 12.10 and Firefox 18 and later support\r\n                visibilityChange = 'visibilitychange';\r\n                hidden = 'hidden';\r\n            }\r\n            else if (typeof document['mozHidden'] !== 'undefined') {\r\n                visibilityChange = 'mozvisibilitychange';\r\n                hidden = 'mozHidden';\r\n            }\r\n            else if (typeof document['msHidden'] !== 'undefined') {\r\n                visibilityChange = 'msvisibilitychange';\r\n                hidden = 'msHidden';\r\n            }\r\n            else if (typeof document['webkitHidden'] !== 'undefined') {\r\n                visibilityChange = 'webkitvisibilitychange';\r\n                hidden = 'webkitHidden';\r\n            }\r\n        }\r\n        // Initially, we always assume we are visible. This ensures that in browsers\r\n        // without page visibility support or in cases where we are never visible\r\n        // (e.g. chrome extension), we act as if we are visible, i.e. don't delay\r\n        // reconnects\r\n        _this.visible_ = true;\r\n        if (visibilityChange) {\r\n            document.addEventListener(visibilityChange, function () {\r\n                var visible = !document[hidden];\r\n                if (visible !== _this.visible_) {\r\n                    _this.visible_ = visible;\r\n                    _this.trigger('visible', visible);\r\n                }\r\n            }, false);\r\n        }\r\n        return _this;\r\n    }\r\n    VisibilityMonitor.getInstance = function () {\r\n        return new VisibilityMonitor();\r\n    };\r\n    /**\r\n     * @param {!string} eventType\r\n     * @return {Array.<boolean>}\r\n     */\r\n    VisibilityMonitor.prototype.getInitialEvent = function (eventType) {\r\n        util.assert(eventType === 'visible', 'Unknown event type: ' + eventType);\r\n        return [this.visible_];\r\n    };\r\n    return VisibilityMonitor;\r\n}(EventEmitter));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Monitors online state (as reported by window.online/offline events).\r\n *\r\n * The expectation is that this could have many false positives (thinks we are online\r\n * when we're not), but no false negatives.  So we can safely use it to determine when\r\n * we definitely cannot reach the internet.\r\n *\r\n * @extends {EventEmitter}\r\n */\r\nvar OnlineMonitor = /** @class */ (function (_super) {\r\n    tslib_1.__extends(OnlineMonitor, _super);\r\n    function OnlineMonitor() {\r\n        var _this = _super.call(this, ['online']) || this;\r\n        _this.online_ = true;\r\n        // We've had repeated complaints that Cordova apps can get stuck \"offline\", e.g.\r\n        // https://forum.ionicframework.com/t/firebase-connection-is-lost-and-never-come-back/43810\r\n        // It would seem that the 'online' event does not always fire consistently. So we disable it\r\n        // for Cordova.\r\n        if (typeof window !== 'undefined' &&\r\n            typeof window.addEventListener !== 'undefined' &&\r\n            !util.isMobileCordova()) {\r\n            window.addEventListener('online', function () {\r\n                if (!_this.online_) {\r\n                    _this.online_ = true;\r\n                    _this.trigger('online', true);\r\n                }\r\n            }, false);\r\n            window.addEventListener('offline', function () {\r\n                if (_this.online_) {\r\n                    _this.online_ = false;\r\n                    _this.trigger('online', false);\r\n                }\r\n            }, false);\r\n        }\r\n        return _this;\r\n    }\r\n    OnlineMonitor.getInstance = function () {\r\n        return new OnlineMonitor();\r\n    };\r\n    /**\r\n     * @param {!string} eventType\r\n     * @return {Array.<boolean>}\r\n     */\r\n    OnlineMonitor.prototype.getInitialEvent = function (eventType) {\r\n        util.assert(eventType === 'online', 'Unknown event type: ' + eventType);\r\n        return [this.online_];\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    OnlineMonitor.prototype.currentlyOnline = function () {\r\n        return this.online_;\r\n    };\r\n    return OnlineMonitor;\r\n}(EventEmitter));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class ensures the packets from the server arrive in order\r\n * This class takes data from the server and ensures it gets passed into the callbacks in order.\r\n * @constructor\r\n */\r\nvar PacketReceiver = /** @class */ (function () {\r\n    /**\r\n     * @param onMessage_\r\n     */\r\n    function PacketReceiver(onMessage_) {\r\n        this.onMessage_ = onMessage_;\r\n        this.pendingResponses = [];\r\n        this.currentResponseNum = 0;\r\n        this.closeAfterResponse = -1;\r\n        this.onClose = null;\r\n    }\r\n    PacketReceiver.prototype.closeAfter = function (responseNum, callback) {\r\n        this.closeAfterResponse = responseNum;\r\n        this.onClose = callback;\r\n        if (this.closeAfterResponse < this.currentResponseNum) {\r\n            this.onClose();\r\n            this.onClose = null;\r\n        }\r\n    };\r\n    /**\r\n     * Each message from the server comes with a response number, and an array of data. The responseNumber\r\n     * allows us to ensure that we process them in the right order, since we can't be guaranteed that all\r\n     * browsers will respond in the same order as the requests we sent\r\n     * @param {number} requestNum\r\n     * @param {Array} data\r\n     */\r\n    PacketReceiver.prototype.handleResponse = function (requestNum, data) {\r\n        var _this = this;\r\n        this.pendingResponses[requestNum] = data;\r\n        var _loop_1 = function () {\r\n            var toProcess = this_1.pendingResponses[this_1.currentResponseNum];\r\n            delete this_1.pendingResponses[this_1.currentResponseNum];\r\n            var _loop_2 = function (i) {\r\n                if (toProcess[i]) {\r\n                    exceptionGuard(function () {\r\n                        _this.onMessage_(toProcess[i]);\r\n                    });\r\n                }\r\n            };\r\n            for (var i = 0; i < toProcess.length; ++i) {\r\n                _loop_2(i);\r\n            }\r\n            if (this_1.currentResponseNum === this_1.closeAfterResponse) {\r\n                if (this_1.onClose) {\r\n                    this_1.onClose();\r\n                    this_1.onClose = null;\r\n                }\r\n                return \"break\";\r\n            }\r\n            this_1.currentResponseNum++;\r\n        };\r\n        var this_1 = this;\r\n        while (this.pendingResponses[this.currentResponseNum]) {\r\n            var state_1 = _loop_1();\r\n            if (state_1 === \"break\")\r\n                break;\r\n        }\r\n    };\r\n    return PacketReceiver;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// URL query parameters associated with longpolling\r\nvar FIREBASE_LONGPOLL_START_PARAM = 'start';\r\nvar FIREBASE_LONGPOLL_CLOSE_COMMAND = 'close';\r\nvar FIREBASE_LONGPOLL_COMMAND_CB_NAME = 'pLPCommand';\r\nvar FIREBASE_LONGPOLL_DATA_CB_NAME = 'pRTLPCB';\r\nvar FIREBASE_LONGPOLL_ID_PARAM = 'id';\r\nvar FIREBASE_LONGPOLL_PW_PARAM = 'pw';\r\nvar FIREBASE_LONGPOLL_SERIAL_PARAM = 'ser';\r\nvar FIREBASE_LONGPOLL_CALLBACK_ID_PARAM = 'cb';\r\nvar FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM = 'seg';\r\nvar FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET = 'ts';\r\nvar FIREBASE_LONGPOLL_DATA_PARAM = 'd';\r\nvar FIREBASE_LONGPOLL_DISCONN_FRAME_PARAM = 'disconn';\r\nvar FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM = 'dframe';\r\n//Data size constants.\r\n//TODO: Perf: the maximum length actually differs from browser to browser.\r\n// We should check what browser we're on and set accordingly.\r\nvar MAX_URL_DATA_SIZE = 1870;\r\nvar SEG_HEADER_SIZE = 30; //ie: &seg=8299234&ts=982389123&d=\r\nvar MAX_PAYLOAD_SIZE = MAX_URL_DATA_SIZE - SEG_HEADER_SIZE;\r\n/**\r\n * Keepalive period\r\n * send a fresh request at minimum every 25 seconds. Opera has a maximum request\r\n * length of 30 seconds that we can't exceed.\r\n * @const\r\n * @type {number}\r\n */\r\nvar KEEPALIVE_REQUEST_INTERVAL = 25000;\r\n/**\r\n * How long to wait before aborting a long-polling connection attempt.\r\n * @const\r\n * @type {number}\r\n */\r\nvar LP_CONNECT_TIMEOUT = 30000;\r\n/**\r\n * This class manages a single long-polling connection.\r\n *\r\n * @constructor\r\n * @implements {Transport}\r\n */\r\nvar BrowserPollConnection = /** @class */ (function () {\r\n    /**\r\n     * @param {string} connId An identifier for this connection, used for logging\r\n     * @param {RepoInfo} repoInfo The info for the endpoint to send data to.\r\n     * @param {string=} transportSessionId Optional transportSessionid if we are reconnecting for an existing\r\n     *                                         transport session\r\n     * @param {string=}  lastSessionId Optional lastSessionId if the PersistentConnection has already created a\r\n     *                                     connection previously\r\n     */\r\n    function BrowserPollConnection(connId, repoInfo, transportSessionId, lastSessionId) {\r\n        this.connId = connId;\r\n        this.repoInfo = repoInfo;\r\n        this.transportSessionId = transportSessionId;\r\n        this.lastSessionId = lastSessionId;\r\n        this.bytesSent = 0;\r\n        this.bytesReceived = 0;\r\n        this.everConnected_ = false;\r\n        this.log_ = logWrapper(connId);\r\n        this.stats_ = StatsManager.getCollection(repoInfo);\r\n        this.urlFn = function (params) {\r\n            return repoInfo.connectionURL(LONG_POLLING, params);\r\n        };\r\n    }\r\n    /**\r\n     *\r\n     * @param {function(Object)} onMessage Callback when messages arrive\r\n     * @param {function()} onDisconnect Callback with connection lost.\r\n     */\r\n    BrowserPollConnection.prototype.open = function (onMessage, onDisconnect) {\r\n        var _this = this;\r\n        this.curSegmentNum = 0;\r\n        this.onDisconnect_ = onDisconnect;\r\n        this.myPacketOrderer = new PacketReceiver(onMessage);\r\n        this.isClosed_ = false;\r\n        this.connectTimeoutTimer_ = setTimeout(function () {\r\n            _this.log_('Timed out trying to connect.');\r\n            // Make sure we clear the host cache\r\n            _this.onClosed_();\r\n            _this.connectTimeoutTimer_ = null;\r\n        }, Math.floor(LP_CONNECT_TIMEOUT));\r\n        // Ensure we delay the creation of the iframe until the DOM is loaded.\r\n        executeWhenDOMReady(function () {\r\n            if (_this.isClosed_)\r\n                return;\r\n            //Set up a callback that gets triggered once a connection is set up.\r\n            _this.scriptTagHolder = new FirebaseIFrameScriptHolder(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                var command = args[0], arg1 = args[1], arg2 = args[2];\r\n                _this.incrementIncomingBytes_(args);\r\n                if (!_this.scriptTagHolder)\r\n                    return; // we closed the connection.\r\n                if (_this.connectTimeoutTimer_) {\r\n                    clearTimeout(_this.connectTimeoutTimer_);\r\n                    _this.connectTimeoutTimer_ = null;\r\n                }\r\n                _this.everConnected_ = true;\r\n                if (command == FIREBASE_LONGPOLL_START_PARAM) {\r\n                    _this.id = arg1;\r\n                    _this.password = arg2;\r\n                }\r\n                else if (command === FIREBASE_LONGPOLL_CLOSE_COMMAND) {\r\n                    // Don't clear the host cache. We got a response from the server, so we know it's reachable\r\n                    if (arg1) {\r\n                        // We aren't expecting any more data (other than what the server's already in the process of sending us\r\n                        // through our already open polls), so don't send any more.\r\n                        _this.scriptTagHolder.sendNewPolls = false;\r\n                        // arg1 in this case is the last response number sent by the server. We should try to receive\r\n                        // all of the responses up to this one before closing\r\n                        _this.myPacketOrderer.closeAfter(arg1, function () {\r\n                            _this.onClosed_();\r\n                        });\r\n                    }\r\n                    else {\r\n                        _this.onClosed_();\r\n                    }\r\n                }\r\n                else {\r\n                    throw new Error('Unrecognized command received: ' + command);\r\n                }\r\n            }, 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                var pN = args[0], data = args[1];\r\n                _this.incrementIncomingBytes_(args);\r\n                _this.myPacketOrderer.handleResponse(pN, data);\r\n            }, function () {\r\n                _this.onClosed_();\r\n            }, _this.urlFn);\r\n            //Send the initial request to connect. The serial number is simply to keep the browser from pulling previous results\r\n            //from cache.\r\n            var urlParams = {};\r\n            urlParams[FIREBASE_LONGPOLL_START_PARAM] = 't';\r\n            urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = Math.floor(Math.random() * 100000000);\r\n            if (_this.scriptTagHolder.uniqueCallbackIdentifier)\r\n                urlParams[FIREBASE_LONGPOLL_CALLBACK_ID_PARAM] = _this.scriptTagHolder.uniqueCallbackIdentifier;\r\n            urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n            if (_this.transportSessionId) {\r\n                urlParams[TRANSPORT_SESSION_PARAM] = _this.transportSessionId;\r\n            }\r\n            if (_this.lastSessionId) {\r\n                urlParams[LAST_SESSION_PARAM] = _this.lastSessionId;\r\n            }\r\n            if (!util.isNodeSdk() &&\r\n                typeof location !== 'undefined' &&\r\n                location.href &&\r\n                location.href.indexOf(FORGE_DOMAIN) !== -1) {\r\n                urlParams[REFERER_PARAM] = FORGE_REF;\r\n            }\r\n            var connectURL = _this.urlFn(urlParams);\r\n            _this.log_('Connecting via long-poll to ' + connectURL);\r\n            _this.scriptTagHolder.addTag(connectURL, function () {\r\n                /* do nothing */\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Call this when a handshake has completed successfully and we want to consider the connection established\r\n     */\r\n    BrowserPollConnection.prototype.start = function () {\r\n        this.scriptTagHolder.startLongPoll(this.id, this.password);\r\n        this.addDisconnectPingFrame(this.id, this.password);\r\n    };\r\n    /**\r\n     * Forces long polling to be considered as a potential transport\r\n     */\r\n    BrowserPollConnection.forceAllow = function () {\r\n        BrowserPollConnection.forceAllow_ = true;\r\n    };\r\n    /**\r\n     * Forces longpolling to not be considered as a potential transport\r\n     */\r\n    BrowserPollConnection.forceDisallow = function () {\r\n        BrowserPollConnection.forceDisallow_ = true;\r\n    };\r\n    // Static method, use string literal so it can be accessed in a generic way\r\n    BrowserPollConnection.isAvailable = function () {\r\n        // NOTE: In React-Native there's normally no 'document', but if you debug a React-Native app in\r\n        // the Chrome debugger, 'document' is defined, but document.createElement is null (2015/06/08).\r\n        return (BrowserPollConnection.forceAllow_ ||\r\n            (!BrowserPollConnection.forceDisallow_ &&\r\n                typeof document !== 'undefined' &&\r\n                document.createElement != null &&\r\n                !isChromeExtensionContentScript() &&\r\n                !isWindowsStoreApp() &&\r\n                !util.isNodeSdk()));\r\n    };\r\n    /**\r\n     * No-op for polling\r\n     */\r\n    BrowserPollConnection.prototype.markConnectionHealthy = function () { };\r\n    /**\r\n     * Stops polling and cleans up the iframe\r\n     * @private\r\n     */\r\n    BrowserPollConnection.prototype.shutdown_ = function () {\r\n        this.isClosed_ = true;\r\n        if (this.scriptTagHolder) {\r\n            this.scriptTagHolder.close();\r\n            this.scriptTagHolder = null;\r\n        }\r\n        //remove the disconnect frame, which will trigger an XHR call to the server to tell it we're leaving.\r\n        if (this.myDisconnFrame) {\r\n            document.body.removeChild(this.myDisconnFrame);\r\n            this.myDisconnFrame = null;\r\n        }\r\n        if (this.connectTimeoutTimer_) {\r\n            clearTimeout(this.connectTimeoutTimer_);\r\n            this.connectTimeoutTimer_ = null;\r\n        }\r\n    };\r\n    /**\r\n     * Triggered when this transport is closed\r\n     * @private\r\n     */\r\n    BrowserPollConnection.prototype.onClosed_ = function () {\r\n        if (!this.isClosed_) {\r\n            this.log_('Longpoll is closing itself');\r\n            this.shutdown_();\r\n            if (this.onDisconnect_) {\r\n                this.onDisconnect_(this.everConnected_);\r\n                this.onDisconnect_ = null;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * External-facing close handler. RealTime has requested we shut down. Kill our connection and tell the server\r\n     * that we've left.\r\n     */\r\n    BrowserPollConnection.prototype.close = function () {\r\n        if (!this.isClosed_) {\r\n            this.log_('Longpoll is being closed.');\r\n            this.shutdown_();\r\n        }\r\n    };\r\n    /**\r\n     * Send the JSON object down to the server. It will need to be stringified, base64 encoded, and then\r\n     * broken into chunks (since URLs have a small maximum length).\r\n     * @param {!Object} data The JSON data to transmit.\r\n     */\r\n    BrowserPollConnection.prototype.send = function (data) {\r\n        var dataStr = util.stringify(data);\r\n        this.bytesSent += dataStr.length;\r\n        this.stats_.incrementCounter('bytes_sent', dataStr.length);\r\n        //first, lets get the base64-encoded data\r\n        var base64data = util.base64Encode(dataStr);\r\n        //We can only fit a certain amount in each URL, so we need to split this request\r\n        //up into multiple pieces if it doesn't fit in one request.\r\n        var dataSegs = splitStringBySize(base64data, MAX_PAYLOAD_SIZE);\r\n        //Enqueue each segment for transmission. We assign each chunk a sequential ID and a total number\r\n        //of segments so that we can reassemble the packet on the server.\r\n        for (var i = 0; i < dataSegs.length; i++) {\r\n            this.scriptTagHolder.enqueueSegment(this.curSegmentNum, dataSegs.length, dataSegs[i]);\r\n            this.curSegmentNum++;\r\n        }\r\n    };\r\n    /**\r\n     * This is how we notify the server that we're leaving.\r\n     * We aren't able to send requests with DHTML on a window close event, but we can\r\n     * trigger XHR requests in some browsers (everything but Opera basically).\r\n     * @param {!string} id\r\n     * @param {!string} pw\r\n     */\r\n    BrowserPollConnection.prototype.addDisconnectPingFrame = function (id, pw) {\r\n        if (util.isNodeSdk())\r\n            return;\r\n        this.myDisconnFrame = document.createElement('iframe');\r\n        var urlParams = {};\r\n        urlParams[FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM] = 't';\r\n        urlParams[FIREBASE_LONGPOLL_ID_PARAM] = id;\r\n        urlParams[FIREBASE_LONGPOLL_PW_PARAM] = pw;\r\n        this.myDisconnFrame.src = this.urlFn(urlParams);\r\n        this.myDisconnFrame.style.display = 'none';\r\n        document.body.appendChild(this.myDisconnFrame);\r\n    };\r\n    /**\r\n     * Used to track the bytes received by this client\r\n     * @param {*} args\r\n     * @private\r\n     */\r\n    BrowserPollConnection.prototype.incrementIncomingBytes_ = function (args) {\r\n        // TODO: This is an annoying perf hit just to track the number of incoming bytes.  Maybe it should be opt-in.\r\n        var bytesReceived = util.stringify(args).length;\r\n        this.bytesReceived += bytesReceived;\r\n        this.stats_.incrementCounter('bytes_received', bytesReceived);\r\n    };\r\n    return BrowserPollConnection;\r\n}());\r\n/*********************************************************************************************\r\n * A wrapper around an iframe that is used as a long-polling script holder.\r\n * @constructor\r\n *********************************************************************************************/\r\nvar FirebaseIFrameScriptHolder = /** @class */ (function () {\r\n    /**\r\n     * @param commandCB - The callback to be called when control commands are recevied from the server.\r\n     * @param onMessageCB - The callback to be triggered when responses arrive from the server.\r\n     * @param onDisconnect - The callback to be triggered when this tag holder is closed\r\n     * @param urlFn - A function that provides the URL of the endpoint to send data to.\r\n     */\r\n    function FirebaseIFrameScriptHolder(commandCB, onMessageCB, onDisconnect, urlFn) {\r\n        this.onDisconnect = onDisconnect;\r\n        this.urlFn = urlFn;\r\n        //We maintain a count of all of the outstanding requests, because if we have too many active at once it can cause\r\n        //problems in some browsers.\r\n        /**\r\n         * @type {CountedSet.<number, number>}\r\n         */\r\n        this.outstandingRequests = new CountedSet();\r\n        //A queue of the pending segments waiting for transmission to the server.\r\n        this.pendingSegs = [];\r\n        //A serial number. We use this for two things:\r\n        // 1) A way to ensure the browser doesn't cache responses to polls\r\n        // 2) A way to make the server aware when long-polls arrive in a different order than we started them. The\r\n        //    server needs to release both polls in this case or it will cause problems in Opera since Opera can only execute\r\n        //    JSONP code in the order it was added to the iframe.\r\n        this.currentSerial = Math.floor(Math.random() * 100000000);\r\n        // This gets set to false when we're \"closing down\" the connection (e.g. we're switching transports but there's still\r\n        // incoming data from the server that we're waiting for).\r\n        this.sendNewPolls = true;\r\n        if (!util.isNodeSdk()) {\r\n            //Each script holder registers a couple of uniquely named callbacks with the window. These are called from the\r\n            //iframes where we put the long-polling script tags. We have two callbacks:\r\n            //   1) Command Callback - Triggered for control issues, like starting a connection.\r\n            //   2) Message Callback - Triggered when new data arrives.\r\n            this.uniqueCallbackIdentifier = LUIDGenerator();\r\n            window[FIREBASE_LONGPOLL_COMMAND_CB_NAME + this.uniqueCallbackIdentifier] = commandCB;\r\n            window[FIREBASE_LONGPOLL_DATA_CB_NAME + this.uniqueCallbackIdentifier] = onMessageCB;\r\n            //Create an iframe for us to add script tags to.\r\n            this.myIFrame = FirebaseIFrameScriptHolder.createIFrame_();\r\n            // Set the iframe's contents.\r\n            var script = '';\r\n            // if we set a javascript url, it's IE and we need to set the document domain. The javascript url is sufficient\r\n            // for ie9, but ie8 needs to do it again in the document itself.\r\n            if (this.myIFrame.src &&\r\n                this.myIFrame.src.substr(0, 'javascript:'.length) === 'javascript:') {\r\n                var currentDomain = document.domain;\r\n                script = '<script>document.domain=\"' + currentDomain + '\";</script>';\r\n            }\r\n            var iframeContents = '<html><body>' + script + '</body></html>';\r\n            try {\r\n                this.myIFrame.doc.open();\r\n                this.myIFrame.doc.write(iframeContents);\r\n                this.myIFrame.doc.close();\r\n            }\r\n            catch (e) {\r\n                log('frame writing exception');\r\n                if (e.stack) {\r\n                    log(e.stack);\r\n                }\r\n                log(e);\r\n            }\r\n        }\r\n        else {\r\n            this.commandCB = commandCB;\r\n            this.onMessageCB = onMessageCB;\r\n        }\r\n    }\r\n    /**\r\n     * Each browser has its own funny way to handle iframes. Here we mush them all together into one object that I can\r\n     * actually use.\r\n     * @private\r\n     * @return {Element}\r\n     */\r\n    FirebaseIFrameScriptHolder.createIFrame_ = function () {\r\n        var iframe = document.createElement('iframe');\r\n        iframe.style.display = 'none';\r\n        // This is necessary in order to initialize the document inside the iframe\r\n        if (document.body) {\r\n            document.body.appendChild(iframe);\r\n            try {\r\n                // If document.domain has been modified in IE, this will throw an error, and we need to set the\r\n                // domain of the iframe's document manually. We can do this via a javascript: url as the src attribute\r\n                // Also note that we must do this *after* the iframe has been appended to the page. Otherwise it doesn't work.\r\n                var a = iframe.contentWindow.document;\r\n                if (!a) {\r\n                    // Apologies for the log-spam, I need to do something to keep closure from optimizing out the assignment above.\r\n                    log('No IE domain setting required');\r\n                }\r\n            }\r\n            catch (e) {\r\n                var domain = document.domain;\r\n                iframe.src =\r\n                    \"javascript:void((function(){document.open();document.domain='\" +\r\n                        domain +\r\n                        \"';document.close();})())\";\r\n            }\r\n        }\r\n        else {\r\n            // LongPollConnection attempts to delay initialization until the document is ready, so hopefully this\r\n            // never gets hit.\r\n            throw 'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';\r\n        }\r\n        // Get the document of the iframe in a browser-specific way.\r\n        if (iframe.contentDocument) {\r\n            iframe.doc = iframe.contentDocument; // Firefox, Opera, Safari\r\n        }\r\n        else if (iframe.contentWindow) {\r\n            iframe.doc = iframe.contentWindow.document; // Internet Explorer\r\n        }\r\n        else if (iframe.document) {\r\n            iframe.doc = iframe.document; //others?\r\n        }\r\n        return iframe;\r\n    };\r\n    /**\r\n     * Cancel all outstanding queries and remove the frame.\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.close = function () {\r\n        var _this = this;\r\n        //Mark this iframe as dead, so no new requests are sent.\r\n        this.alive = false;\r\n        if (this.myIFrame) {\r\n            //We have to actually remove all of the html inside this iframe before removing it from the\r\n            //window, or IE will continue loading and executing the script tags we've already added, which\r\n            //can lead to some errors being thrown. Setting innerHTML seems to be the easiest way to do this.\r\n            this.myIFrame.doc.body.innerHTML = '';\r\n            setTimeout(function () {\r\n                if (_this.myIFrame !== null) {\r\n                    document.body.removeChild(_this.myIFrame);\r\n                    _this.myIFrame = null;\r\n                }\r\n            }, Math.floor(0));\r\n        }\r\n        if (util.isNodeSdk() && this.myID) {\r\n            var urlParams = {};\r\n            urlParams[FIREBASE_LONGPOLL_DISCONN_FRAME_PARAM] = 't';\r\n            urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\r\n            urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\r\n            var theURL = this.urlFn(urlParams);\r\n            FirebaseIFrameScriptHolder.nodeRestRequest(theURL);\r\n        }\r\n        // Protect from being called recursively.\r\n        var onDisconnect = this.onDisconnect;\r\n        if (onDisconnect) {\r\n            this.onDisconnect = null;\r\n            onDisconnect();\r\n        }\r\n    };\r\n    /**\r\n     * Actually start the long-polling session by adding the first script tag(s) to the iframe.\r\n     * @param {!string} id - The ID of this connection\r\n     * @param {!string} pw - The password for this connection\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.startLongPoll = function (id, pw) {\r\n        this.myID = id;\r\n        this.myPW = pw;\r\n        this.alive = true;\r\n        //send the initial request. If there are requests queued, make sure that we transmit as many as we are currently able to.\r\n        while (this.newRequest_()) { }\r\n    };\r\n    /**\r\n     * This is called any time someone might want a script tag to be added. It adds a script tag when there aren't\r\n     * too many outstanding requests and we are still alive.\r\n     *\r\n     * If there are outstanding packet segments to send, it sends one. If there aren't, it sends a long-poll anyways if\r\n     * needed.\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.newRequest_ = function () {\r\n        // We keep one outstanding request open all the time to receive data, but if we need to send data\r\n        // (pendingSegs.length > 0) then we create a new request to send the data.  The server will automatically\r\n        // close the old request.\r\n        if (this.alive &&\r\n            this.sendNewPolls &&\r\n            this.outstandingRequests.count() < (this.pendingSegs.length > 0 ? 2 : 1)) {\r\n            //construct our url\r\n            this.currentSerial++;\r\n            var urlParams = {};\r\n            urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\r\n            urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\r\n            urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = this.currentSerial;\r\n            var theURL = this.urlFn(urlParams);\r\n            //Now add as much data as we can.\r\n            var curDataString = '';\r\n            var i = 0;\r\n            while (this.pendingSegs.length > 0) {\r\n                //first, lets see if the next segment will fit.\r\n                var nextSeg = this.pendingSegs[0];\r\n                if (nextSeg.d.length + SEG_HEADER_SIZE + curDataString.length <=\r\n                    MAX_URL_DATA_SIZE) {\r\n                    //great, the segment will fit. Lets append it.\r\n                    var theSeg = this.pendingSegs.shift();\r\n                    curDataString =\r\n                        curDataString +\r\n                            '&' +\r\n                            FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM +\r\n                            i +\r\n                            '=' +\r\n                            theSeg.seg +\r\n                            '&' +\r\n                            FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET +\r\n                            i +\r\n                            '=' +\r\n                            theSeg.ts +\r\n                            '&' +\r\n                            FIREBASE_LONGPOLL_DATA_PARAM +\r\n                            i +\r\n                            '=' +\r\n                            theSeg.d;\r\n                    i++;\r\n                }\r\n                else {\r\n                    break;\r\n                }\r\n            }\r\n            theURL = theURL + curDataString;\r\n            this.addLongPollTag_(theURL, this.currentSerial);\r\n            return true;\r\n        }\r\n        else {\r\n            return false;\r\n        }\r\n    };\r\n    /**\r\n     * Queue a packet for transmission to the server.\r\n     * @param segnum - A sequential id for this packet segment used for reassembly\r\n     * @param totalsegs - The total number of segments in this packet\r\n     * @param data - The data for this segment.\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.enqueueSegment = function (segnum, totalsegs, data) {\r\n        //add this to the queue of segments to send.\r\n        this.pendingSegs.push({ seg: segnum, ts: totalsegs, d: data });\r\n        //send the data immediately if there isn't already data being transmitted, unless\r\n        //startLongPoll hasn't been called yet.\r\n        if (this.alive) {\r\n            this.newRequest_();\r\n        }\r\n    };\r\n    /**\r\n     * Add a script tag for a regular long-poll request.\r\n     * @param {!string} url - The URL of the script tag.\r\n     * @param {!number} serial - The serial number of the request.\r\n     * @private\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.addLongPollTag_ = function (url, serial) {\r\n        var _this = this;\r\n        //remember that we sent this request.\r\n        this.outstandingRequests.add(serial, 1);\r\n        var doNewRequest = function () {\r\n            _this.outstandingRequests.remove(serial);\r\n            _this.newRequest_();\r\n        };\r\n        // If this request doesn't return on its own accord (by the server sending us some data), we'll\r\n        // create a new one after the KEEPALIVE interval to make sure we always keep a fresh request open.\r\n        var keepaliveTimeout = setTimeout(doNewRequest, Math.floor(KEEPALIVE_REQUEST_INTERVAL));\r\n        var readyStateCB = function () {\r\n            // Request completed.  Cancel the keepalive.\r\n            clearTimeout(keepaliveTimeout);\r\n            // Trigger a new request so we can continue receiving data.\r\n            doNewRequest();\r\n        };\r\n        this.addTag(url, readyStateCB);\r\n    };\r\n    /**\r\n     * Add an arbitrary script tag to the iframe.\r\n     * @param {!string} url - The URL for the script tag source.\r\n     * @param {!function()} loadCB - A callback to be triggered once the script has loaded.\r\n     */\r\n    FirebaseIFrameScriptHolder.prototype.addTag = function (url, loadCB) {\r\n        var _this = this;\r\n        if (util.isNodeSdk()) {\r\n            this.doNodeLongPoll(url, loadCB);\r\n        }\r\n        else {\r\n            setTimeout(function () {\r\n                try {\r\n                    // if we're already closed, don't add this poll\r\n                    if (!_this.sendNewPolls)\r\n                        return;\r\n                    var newScript_1 = _this.myIFrame.doc.createElement('script');\r\n                    newScript_1.type = 'text/javascript';\r\n                    newScript_1.async = true;\r\n                    newScript_1.src = url;\r\n                    newScript_1.onload = newScript_1.onreadystatechange = function () {\r\n                        var rstate = newScript_1.readyState;\r\n                        if (!rstate || rstate === 'loaded' || rstate === 'complete') {\r\n                            newScript_1.onload = newScript_1.onreadystatechange = null;\r\n                            if (newScript_1.parentNode) {\r\n                                newScript_1.parentNode.removeChild(newScript_1);\r\n                            }\r\n                            loadCB();\r\n                        }\r\n                    };\r\n                    newScript_1.onerror = function () {\r\n                        log('Long-poll script failed to load: ' + url);\r\n                        _this.sendNewPolls = false;\r\n                        _this.close();\r\n                    };\r\n                    _this.myIFrame.doc.body.appendChild(newScript_1);\r\n                }\r\n                catch (e) {\r\n                    // TODO: we should make this error visible somehow\r\n                }\r\n            }, Math.floor(1));\r\n        }\r\n    };\r\n    return FirebaseIFrameScriptHolder;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar WEBSOCKET_MAX_FRAME_SIZE = 16384;\r\nvar WEBSOCKET_KEEPALIVE_INTERVAL = 45000;\r\nvar WebSocketImpl = null;\r\nif (typeof MozWebSocket !== 'undefined') {\r\n    WebSocketImpl = MozWebSocket;\r\n}\r\nelse if (typeof WebSocket !== 'undefined') {\r\n    WebSocketImpl = WebSocket;\r\n}\r\n/**\r\n * Create a new websocket connection with the given callbacks.\r\n * @constructor\r\n * @implements {Transport}\r\n */\r\nvar WebSocketConnection = /** @class */ (function () {\r\n    /**\r\n     * @param {string} connId identifier for this transport\r\n     * @param {RepoInfo} repoInfo The info for the websocket endpoint.\r\n     * @param {string=} transportSessionId Optional transportSessionId if this is connecting to an existing transport\r\n     *                                         session\r\n     * @param {string=} lastSessionId Optional lastSessionId if there was a previous connection\r\n     */\r\n    function WebSocketConnection(connId, repoInfo, transportSessionId, lastSessionId) {\r\n        this.connId = connId;\r\n        this.keepaliveTimer = null;\r\n        this.frames = null;\r\n        this.totalFrames = 0;\r\n        this.bytesSent = 0;\r\n        this.bytesReceived = 0;\r\n        this.log_ = logWrapper(this.connId);\r\n        this.stats_ = StatsManager.getCollection(repoInfo);\r\n        this.connURL = WebSocketConnection.connectionURL_(repoInfo, transportSessionId, lastSessionId);\r\n    }\r\n    /**\r\n     * @param {RepoInfo} repoInfo The info for the websocket endpoint.\r\n     * @param {string=} transportSessionId Optional transportSessionId if this is connecting to an existing transport\r\n     *                                         session\r\n     * @param {string=} lastSessionId Optional lastSessionId if there was a previous connection\r\n     * @return {string} connection url\r\n     * @private\r\n     */\r\n    WebSocketConnection.connectionURL_ = function (repoInfo, transportSessionId, lastSessionId) {\r\n        var urlParams = {};\r\n        urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n        if (!util.isNodeSdk() &&\r\n            typeof location !== 'undefined' &&\r\n            location.href &&\r\n            location.href.indexOf(FORGE_DOMAIN) !== -1) {\r\n            urlParams[REFERER_PARAM] = FORGE_REF;\r\n        }\r\n        if (transportSessionId) {\r\n            urlParams[TRANSPORT_SESSION_PARAM] = transportSessionId;\r\n        }\r\n        if (lastSessionId) {\r\n            urlParams[LAST_SESSION_PARAM] = lastSessionId;\r\n        }\r\n        return repoInfo.connectionURL(WEBSOCKET, urlParams);\r\n    };\r\n    /**\r\n     *\r\n     * @param onMessage Callback when messages arrive\r\n     * @param onDisconnect Callback with connection lost.\r\n     */\r\n    WebSocketConnection.prototype.open = function (onMessage, onDisconnect) {\r\n        var _this = this;\r\n        this.onDisconnect = onDisconnect;\r\n        this.onMessage = onMessage;\r\n        this.log_('Websocket connecting to ' + this.connURL);\r\n        this.everConnected_ = false;\r\n        // Assume failure until proven otherwise.\r\n        PersistentStorage.set('previous_websocket_failure', true);\r\n        try {\r\n            if (util.isNodeSdk()) {\r\n                var device = util.CONSTANTS.NODE_ADMIN ? 'AdminNode' : 'Node';\r\n                // UA Format: Firebase/<wire_protocol>/<sdk_version>/<platform>/<device>\r\n                var options = {\r\n                    headers: {\r\n                        'User-Agent': \"Firebase/\" + PROTOCOL_VERSION + \"/\" + firebase.SDK_VERSION + \"/\" + process.platform + \"/\" + device\r\n                    }\r\n                };\r\n                // Plumb appropriate http_proxy environment variable into faye-websocket if it exists.\r\n                var env = process['env'];\r\n                var proxy = this.connURL.indexOf('wss://') == 0\r\n                    ? env['HTTPS_PROXY'] || env['https_proxy']\r\n                    : env['HTTP_PROXY'] || env['http_proxy'];\r\n                if (proxy) {\r\n                    options['proxy'] = { origin: proxy };\r\n                }\r\n                this.mySock = new WebSocketImpl(this.connURL, [], options);\r\n            }\r\n            else {\r\n                this.mySock = new WebSocketImpl(this.connURL);\r\n            }\r\n        }\r\n        catch (e) {\r\n            this.log_('Error instantiating WebSocket.');\r\n            var error$$1 = e.message || e.data;\r\n            if (error$$1) {\r\n                this.log_(error$$1);\r\n            }\r\n            this.onClosed_();\r\n            return;\r\n        }\r\n        this.mySock.onopen = function () {\r\n            _this.log_('Websocket connected.');\r\n            _this.everConnected_ = true;\r\n        };\r\n        this.mySock.onclose = function () {\r\n            _this.log_('Websocket connection was disconnected.');\r\n            _this.mySock = null;\r\n            _this.onClosed_();\r\n        };\r\n        this.mySock.onmessage = function (m) {\r\n            _this.handleIncomingFrame(m);\r\n        };\r\n        this.mySock.onerror = function (e) {\r\n            _this.log_('WebSocket error.  Closing connection.');\r\n            var error$$1 = e.message || e.data;\r\n            if (error$$1) {\r\n                _this.log_(error$$1);\r\n            }\r\n            _this.onClosed_();\r\n        };\r\n    };\r\n    /**\r\n     * No-op for websockets, we don't need to do anything once the connection is confirmed as open\r\n     */\r\n    WebSocketConnection.prototype.start = function () { };\r\n    WebSocketConnection.forceDisallow = function () {\r\n        WebSocketConnection.forceDisallow_ = true;\r\n    };\r\n    WebSocketConnection.isAvailable = function () {\r\n        var isOldAndroid = false;\r\n        if (typeof navigator !== 'undefined' && navigator.userAgent) {\r\n            var oldAndroidRegex = /Android ([0-9]{0,}\\.[0-9]{0,})/;\r\n            var oldAndroidMatch = navigator.userAgent.match(oldAndroidRegex);\r\n            if (oldAndroidMatch && oldAndroidMatch.length > 1) {\r\n                if (parseFloat(oldAndroidMatch[1]) < 4.4) {\r\n                    isOldAndroid = true;\r\n                }\r\n            }\r\n        }\r\n        return (!isOldAndroid &&\r\n            WebSocketImpl !== null &&\r\n            !WebSocketConnection.forceDisallow_);\r\n    };\r\n    /**\r\n     * Returns true if we previously failed to connect with this transport.\r\n     * @return {boolean}\r\n     */\r\n    WebSocketConnection.previouslyFailed = function () {\r\n        // If our persistent storage is actually only in-memory storage,\r\n        // we default to assuming that it previously failed to be safe.\r\n        return (PersistentStorage.isInMemoryStorage ||\r\n            PersistentStorage.get('previous_websocket_failure') === true);\r\n    };\r\n    WebSocketConnection.prototype.markConnectionHealthy = function () {\r\n        PersistentStorage.remove('previous_websocket_failure');\r\n    };\r\n    WebSocketConnection.prototype.appendFrame_ = function (data) {\r\n        this.frames.push(data);\r\n        if (this.frames.length == this.totalFrames) {\r\n            var fullMess = this.frames.join('');\r\n            this.frames = null;\r\n            var jsonMess = util.jsonEval(fullMess);\r\n            //handle the message\r\n            this.onMessage(jsonMess);\r\n        }\r\n    };\r\n    /**\r\n     * @param {number} frameCount The number of frames we are expecting from the server\r\n     * @private\r\n     */\r\n    WebSocketConnection.prototype.handleNewFrameCount_ = function (frameCount) {\r\n        this.totalFrames = frameCount;\r\n        this.frames = [];\r\n    };\r\n    /**\r\n     * Attempts to parse a frame count out of some text. If it can't, assumes a value of 1\r\n     * @param {!String} data\r\n     * @return {?String} Any remaining data to be process, or null if there is none\r\n     * @private\r\n     */\r\n    WebSocketConnection.prototype.extractFrameCount_ = function (data) {\r\n        util.assert(this.frames === null, 'We already have a frame buffer');\r\n        // TODO: The server is only supposed to send up to 9999 frames (i.e. length <= 4), but that isn't being enforced\r\n        // currently.  So allowing larger frame counts (length <= 6).  See https://app.asana.com/0/search/8688598998380/8237608042508\r\n        if (data.length <= 6) {\r\n            var frameCount = Number(data);\r\n            if (!isNaN(frameCount)) {\r\n                this.handleNewFrameCount_(frameCount);\r\n                return null;\r\n            }\r\n        }\r\n        this.handleNewFrameCount_(1);\r\n        return data;\r\n    };\r\n    /**\r\n     * Process a websocket frame that has arrived from the server.\r\n     * @param mess The frame data\r\n     */\r\n    WebSocketConnection.prototype.handleIncomingFrame = function (mess) {\r\n        if (this.mySock === null)\r\n            return; // Chrome apparently delivers incoming packets even after we .close() the connection sometimes.\r\n        var data = mess['data'];\r\n        this.bytesReceived += data.length;\r\n        this.stats_.incrementCounter('bytes_received', data.length);\r\n        this.resetKeepAlive();\r\n        if (this.frames !== null) {\r\n            // we're buffering\r\n            this.appendFrame_(data);\r\n        }\r\n        else {\r\n            // try to parse out a frame count, otherwise, assume 1 and process it\r\n            var remainingData = this.extractFrameCount_(data);\r\n            if (remainingData !== null) {\r\n                this.appendFrame_(remainingData);\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * Send a message to the server\r\n     * @param {Object} data The JSON object to transmit\r\n     */\r\n    WebSocketConnection.prototype.send = function (data) {\r\n        this.resetKeepAlive();\r\n        var dataStr = util.stringify(data);\r\n        this.bytesSent += dataStr.length;\r\n        this.stats_.incrementCounter('bytes_sent', dataStr.length);\r\n        //We can only fit a certain amount in each websocket frame, so we need to split this request\r\n        //up into multiple pieces if it doesn't fit in one request.\r\n        var dataSegs = splitStringBySize(dataStr, WEBSOCKET_MAX_FRAME_SIZE);\r\n        //Send the length header\r\n        if (dataSegs.length > 1) {\r\n            this.sendString_(String(dataSegs.length));\r\n        }\r\n        //Send the actual data in segments.\r\n        for (var i = 0; i < dataSegs.length; i++) {\r\n            this.sendString_(dataSegs[i]);\r\n        }\r\n    };\r\n    WebSocketConnection.prototype.shutdown_ = function () {\r\n        this.isClosed_ = true;\r\n        if (this.keepaliveTimer) {\r\n            clearInterval(this.keepaliveTimer);\r\n            this.keepaliveTimer = null;\r\n        }\r\n        if (this.mySock) {\r\n            this.mySock.close();\r\n            this.mySock = null;\r\n        }\r\n    };\r\n    WebSocketConnection.prototype.onClosed_ = function () {\r\n        if (!this.isClosed_) {\r\n            this.log_('WebSocket is closing itself');\r\n            this.shutdown_();\r\n            // since this is an internal close, trigger the close listener\r\n            if (this.onDisconnect) {\r\n                this.onDisconnect(this.everConnected_);\r\n                this.onDisconnect = null;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * External-facing close handler.\r\n     * Close the websocket and kill the connection.\r\n     */\r\n    WebSocketConnection.prototype.close = function () {\r\n        if (!this.isClosed_) {\r\n            this.log_('WebSocket is being closed');\r\n            this.shutdown_();\r\n        }\r\n    };\r\n    /**\r\n     * Kill the current keepalive timer and start a new one, to ensure that it always fires N seconds after\r\n     * the last activity.\r\n     */\r\n    WebSocketConnection.prototype.resetKeepAlive = function () {\r\n        var _this = this;\r\n        clearInterval(this.keepaliveTimer);\r\n        this.keepaliveTimer = setInterval(function () {\r\n            //If there has been no websocket activity for a while, send a no-op\r\n            if (_this.mySock) {\r\n                _this.sendString_('0');\r\n            }\r\n            _this.resetKeepAlive();\r\n        }, Math.floor(WEBSOCKET_KEEPALIVE_INTERVAL));\r\n    };\r\n    /**\r\n     * Send a string over the websocket.\r\n     *\r\n     * @param {string} str String to send.\r\n     * @private\r\n     */\r\n    WebSocketConnection.prototype.sendString_ = function (str) {\r\n        // Firefox seems to sometimes throw exceptions (NS_ERROR_UNEXPECTED) from websocket .send()\r\n        // calls for some unknown reason.  We treat these as an error and disconnect.\r\n        // See https://app.asana.com/0/58926111402292/68021340250410\r\n        try {\r\n            this.mySock.send(str);\r\n        }\r\n        catch (e) {\r\n            this.log_('Exception thrown from WebSocket.send():', e.message || e.data, 'Closing connection.');\r\n            setTimeout(this.onClosed_.bind(this), 0);\r\n        }\r\n    };\r\n    /**\r\n     * Number of response before we consider the connection \"healthy.\"\r\n     * @type {number}\r\n     */\r\n    WebSocketConnection.responsesRequiredToBeHealthy = 2;\r\n    /**\r\n     * Time to wait for the connection te become healthy before giving up.\r\n     * @type {number}\r\n     */\r\n    WebSocketConnection.healthyTimeout = 30000;\r\n    return WebSocketConnection;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Currently simplistic, this class manages what transport a Connection should use at various stages of its\r\n * lifecycle.\r\n *\r\n * It starts with longpolling in a browser, and httppolling on node. It then upgrades to websockets if\r\n * they are available.\r\n * @constructor\r\n */\r\nvar TransportManager = /** @class */ (function () {\r\n    /**\r\n     * @param {!RepoInfo} repoInfo Metadata around the namespace we're connecting to\r\n     */\r\n    function TransportManager(repoInfo) {\r\n        this.initTransports_(repoInfo);\r\n    }\r\n    Object.defineProperty(TransportManager, \"ALL_TRANSPORTS\", {\r\n        /**\r\n         * @const\r\n         * @type {!Array.<function(new:Transport, string, RepoInfo, string=)>}\r\n         */\r\n        get: function () {\r\n            return [BrowserPollConnection, WebSocketConnection];\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    /**\r\n     * @param {!RepoInfo} repoInfo\r\n     * @private\r\n     */\r\n    TransportManager.prototype.initTransports_ = function (repoInfo) {\r\n        var isWebSocketsAvailable = WebSocketConnection && WebSocketConnection['isAvailable']();\r\n        var isSkipPollConnection = isWebSocketsAvailable && !WebSocketConnection.previouslyFailed();\r\n        if (repoInfo.webSocketOnly) {\r\n            if (!isWebSocketsAvailable)\r\n                warn(\"wss:// URL used, but browser isn't known to support websockets.  Trying anyway.\");\r\n            isSkipPollConnection = true;\r\n        }\r\n        if (isSkipPollConnection) {\r\n            this.transports_ = [WebSocketConnection];\r\n        }\r\n        else {\r\n            var transports_1 = (this.transports_ = []);\r\n            each(TransportManager.ALL_TRANSPORTS, function (i, transport) {\r\n                if (transport && transport['isAvailable']()) {\r\n                    transports_1.push(transport);\r\n                }\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @return {function(new:Transport, !string, !RepoInfo, string=, string=)} The constructor for the\r\n     * initial transport to use\r\n     */\r\n    TransportManager.prototype.initialTransport = function () {\r\n        if (this.transports_.length > 0) {\r\n            return this.transports_[0];\r\n        }\r\n        else {\r\n            throw new Error('No transports available');\r\n        }\r\n    };\r\n    /**\r\n     * @return {?function(new:Transport, function(),function(), string=)} The constructor for the next\r\n     * transport, or null\r\n     */\r\n    TransportManager.prototype.upgradeTransport = function () {\r\n        if (this.transports_.length > 1) {\r\n            return this.transports_[1];\r\n        }\r\n        else {\r\n            return null;\r\n        }\r\n    };\r\n    return TransportManager;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// Abort upgrade attempt if it takes longer than 60s.\r\nvar UPGRADE_TIMEOUT = 60000;\r\n// For some transports (WebSockets), we need to \"validate\" the transport by exchanging a few requests and responses.\r\n// If we haven't sent enough requests within 5s, we'll start sending noop ping requests.\r\nvar DELAY_BEFORE_SENDING_EXTRA_REQUESTS = 5000;\r\n// If the initial data sent triggers a lot of bandwidth (i.e. it's a large put or a listen for a large amount of data)\r\n// then we may not be able to exchange our ping/pong requests within the healthy timeout.  So if we reach the timeout\r\n// but we've sent/received enough bytes, we don't cancel the connection.\r\nvar BYTES_SENT_HEALTHY_OVERRIDE = 10 * 1024;\r\nvar BYTES_RECEIVED_HEALTHY_OVERRIDE = 100 * 1024;\r\nvar MESSAGE_TYPE = 't';\r\nvar MESSAGE_DATA = 'd';\r\nvar CONTROL_SHUTDOWN = 's';\r\nvar CONTROL_RESET = 'r';\r\nvar CONTROL_ERROR = 'e';\r\nvar CONTROL_PONG = 'o';\r\nvar SWITCH_ACK = 'a';\r\nvar END_TRANSMISSION = 'n';\r\nvar PING = 'p';\r\nvar SERVER_HELLO = 'h';\r\n/**\r\n * Creates a new real-time connection to the server using whichever method works\r\n * best in the current browser.\r\n *\r\n * @constructor\r\n */\r\nvar Connection = /** @class */ (function () {\r\n    /**\r\n     * @param {!string} id - an id for this connection\r\n     * @param {!RepoInfo} repoInfo_ - the info for the endpoint to connect to\r\n     * @param {function(Object)} onMessage_ - the callback to be triggered when a server-push message arrives\r\n     * @param {function(number, string)} onReady_ - the callback to be triggered when this connection is ready to send messages.\r\n     * @param {function()} onDisconnect_ - the callback to be triggered when a connection was lost\r\n     * @param {function(string)} onKill_ - the callback to be triggered when this connection has permanently shut down.\r\n     * @param {string=} lastSessionId - last session id in persistent connection. is used to clean up old session in real-time server\r\n     */\r\n    function Connection(id, repoInfo_, onMessage_, onReady_, onDisconnect_, onKill_, lastSessionId) {\r\n        this.id = id;\r\n        this.repoInfo_ = repoInfo_;\r\n        this.onMessage_ = onMessage_;\r\n        this.onReady_ = onReady_;\r\n        this.onDisconnect_ = onDisconnect_;\r\n        this.onKill_ = onKill_;\r\n        this.lastSessionId = lastSessionId;\r\n        this.connectionCount = 0;\r\n        this.pendingDataMessages = [];\r\n        this.state_ = 0 /* CONNECTING */;\r\n        this.log_ = logWrapper('c:' + this.id + ':');\r\n        this.transportManager_ = new TransportManager(repoInfo_);\r\n        this.log_('Connection created');\r\n        this.start_();\r\n    }\r\n    /**\r\n     * Starts a connection attempt\r\n     * @private\r\n     */\r\n    Connection.prototype.start_ = function () {\r\n        var _this = this;\r\n        var conn = this.transportManager_.initialTransport();\r\n        this.conn_ = new conn(this.nextTransportId_(), this.repoInfo_, undefined, this.lastSessionId);\r\n        // For certain transports (WebSockets), we need to send and receive several messages back and forth before we\r\n        // can consider the transport healthy.\r\n        this.primaryResponsesRequired_ = conn['responsesRequiredToBeHealthy'] || 0;\r\n        var onMessageReceived = this.connReceiver_(this.conn_);\r\n        var onConnectionLost = this.disconnReceiver_(this.conn_);\r\n        this.tx_ = this.conn_;\r\n        this.rx_ = this.conn_;\r\n        this.secondaryConn_ = null;\r\n        this.isHealthy_ = false;\r\n        /*\r\n         * Firefox doesn't like when code from one iframe tries to create another iframe by way of the parent frame.\r\n         * This can occur in the case of a redirect, i.e. we guessed wrong on what server to connect to and received a reset.\r\n         * Somehow, setTimeout seems to make this ok. That doesn't make sense from a security perspective, since you should\r\n         * still have the context of your originating frame.\r\n         */\r\n        setTimeout(function () {\r\n            // this.conn_ gets set to null in some of the tests. Check to make sure it still exists before using it\r\n            _this.conn_ && _this.conn_.open(onMessageReceived, onConnectionLost);\r\n        }, Math.floor(0));\r\n        var healthyTimeout_ms = conn['healthyTimeout'] || 0;\r\n        if (healthyTimeout_ms > 0) {\r\n            this.healthyTimeout_ = setTimeoutNonBlocking(function () {\r\n                _this.healthyTimeout_ = null;\r\n                if (!_this.isHealthy_) {\r\n                    if (_this.conn_ &&\r\n                        _this.conn_.bytesReceived > BYTES_RECEIVED_HEALTHY_OVERRIDE) {\r\n                        _this.log_('Connection exceeded healthy timeout but has received ' +\r\n                            _this.conn_.bytesReceived +\r\n                            ' bytes.  Marking connection healthy.');\r\n                        _this.isHealthy_ = true;\r\n                        _this.conn_.markConnectionHealthy();\r\n                    }\r\n                    else if (_this.conn_ &&\r\n                        _this.conn_.bytesSent > BYTES_SENT_HEALTHY_OVERRIDE) {\r\n                        _this.log_('Connection exceeded healthy timeout but has sent ' +\r\n                            _this.conn_.bytesSent +\r\n                            ' bytes.  Leaving connection alive.');\r\n                        // NOTE: We don't want to mark it healthy, since we have no guarantee that the bytes have made it to\r\n                        // the server.\r\n                    }\r\n                    else {\r\n                        _this.log_('Closing unhealthy connection after timeout.');\r\n                        _this.close();\r\n                    }\r\n                }\r\n            }, Math.floor(healthyTimeout_ms));\r\n        }\r\n    };\r\n    /**\r\n     * @return {!string}\r\n     * @private\r\n     */\r\n    Connection.prototype.nextTransportId_ = function () {\r\n        return 'c:' + this.id + ':' + this.connectionCount++;\r\n    };\r\n    Connection.prototype.disconnReceiver_ = function (conn) {\r\n        var _this = this;\r\n        return function (everConnected) {\r\n            if (conn === _this.conn_) {\r\n                _this.onConnectionLost_(everConnected);\r\n            }\r\n            else if (conn === _this.secondaryConn_) {\r\n                _this.log_('Secondary connection lost.');\r\n                _this.onSecondaryConnectionLost_();\r\n            }\r\n            else {\r\n                _this.log_('closing an old connection');\r\n            }\r\n        };\r\n    };\r\n    Connection.prototype.connReceiver_ = function (conn) {\r\n        var _this = this;\r\n        return function (message) {\r\n            if (_this.state_ != 2 /* DISCONNECTED */) {\r\n                if (conn === _this.rx_) {\r\n                    _this.onPrimaryMessageReceived_(message);\r\n                }\r\n                else if (conn === _this.secondaryConn_) {\r\n                    _this.onSecondaryMessageReceived_(message);\r\n                }\r\n                else {\r\n                    _this.log_('message on old connection');\r\n                }\r\n            }\r\n        };\r\n    };\r\n    /**\r\n     *\r\n     * @param {Object} dataMsg An arbitrary data message to be sent to the server\r\n     */\r\n    Connection.prototype.sendRequest = function (dataMsg) {\r\n        // wrap in a data message envelope and send it on\r\n        var msg = { t: 'd', d: dataMsg };\r\n        this.sendData_(msg);\r\n    };\r\n    Connection.prototype.tryCleanupConnection = function () {\r\n        if (this.tx_ === this.secondaryConn_ && this.rx_ === this.secondaryConn_) {\r\n            this.log_('cleaning up and promoting a connection: ' + this.secondaryConn_.connId);\r\n            this.conn_ = this.secondaryConn_;\r\n            this.secondaryConn_ = null;\r\n            // the server will shutdown the old connection\r\n        }\r\n    };\r\n    Connection.prototype.onSecondaryControl_ = function (controlData) {\r\n        if (MESSAGE_TYPE in controlData) {\r\n            var cmd = controlData[MESSAGE_TYPE];\r\n            if (cmd === SWITCH_ACK) {\r\n                this.upgradeIfSecondaryHealthy_();\r\n            }\r\n            else if (cmd === CONTROL_RESET) {\r\n                // Most likely the session wasn't valid. Abandon the switch attempt\r\n                this.log_('Got a reset on secondary, closing it');\r\n                this.secondaryConn_.close();\r\n                // If we were already using this connection for something, than we need to fully close\r\n                if (this.tx_ === this.secondaryConn_ ||\r\n                    this.rx_ === this.secondaryConn_) {\r\n                    this.close();\r\n                }\r\n            }\r\n            else if (cmd === CONTROL_PONG) {\r\n                this.log_('got pong on secondary.');\r\n                this.secondaryResponsesRequired_--;\r\n                this.upgradeIfSecondaryHealthy_();\r\n            }\r\n        }\r\n    };\r\n    Connection.prototype.onSecondaryMessageReceived_ = function (parsedData) {\r\n        var layer = requireKey('t', parsedData);\r\n        var data = requireKey('d', parsedData);\r\n        if (layer == 'c') {\r\n            this.onSecondaryControl_(data);\r\n        }\r\n        else if (layer == 'd') {\r\n            // got a data message, but we're still second connection. Need to buffer it up\r\n            this.pendingDataMessages.push(data);\r\n        }\r\n        else {\r\n            throw new Error('Unknown protocol layer: ' + layer);\r\n        }\r\n    };\r\n    Connection.prototype.upgradeIfSecondaryHealthy_ = function () {\r\n        if (this.secondaryResponsesRequired_ <= 0) {\r\n            this.log_('Secondary connection is healthy.');\r\n            this.isHealthy_ = true;\r\n            this.secondaryConn_.markConnectionHealthy();\r\n            this.proceedWithUpgrade_();\r\n        }\r\n        else {\r\n            // Send a ping to make sure the connection is healthy.\r\n            this.log_('sending ping on secondary.');\r\n            this.secondaryConn_.send({ t: 'c', d: { t: PING, d: {} } });\r\n        }\r\n    };\r\n    Connection.prototype.proceedWithUpgrade_ = function () {\r\n        // tell this connection to consider itself open\r\n        this.secondaryConn_.start();\r\n        // send ack\r\n        this.log_('sending client ack on secondary');\r\n        this.secondaryConn_.send({ t: 'c', d: { t: SWITCH_ACK, d: {} } });\r\n        // send end packet on primary transport, switch to sending on this one\r\n        // can receive on this one, buffer responses until end received on primary transport\r\n        this.log_('Ending transmission on primary');\r\n        this.conn_.send({ t: 'c', d: { t: END_TRANSMISSION, d: {} } });\r\n        this.tx_ = this.secondaryConn_;\r\n        this.tryCleanupConnection();\r\n    };\r\n    Connection.prototype.onPrimaryMessageReceived_ = function (parsedData) {\r\n        // Must refer to parsedData properties in quotes, so closure doesn't touch them.\r\n        var layer = requireKey('t', parsedData);\r\n        var data = requireKey('d', parsedData);\r\n        if (layer == 'c') {\r\n            this.onControl_(data);\r\n        }\r\n        else if (layer == 'd') {\r\n            this.onDataMessage_(data);\r\n        }\r\n    };\r\n    Connection.prototype.onDataMessage_ = function (message) {\r\n        this.onPrimaryResponse_();\r\n        // We don't do anything with data messages, just kick them up a level\r\n        this.onMessage_(message);\r\n    };\r\n    Connection.prototype.onPrimaryResponse_ = function () {\r\n        if (!this.isHealthy_) {\r\n            this.primaryResponsesRequired_--;\r\n            if (this.primaryResponsesRequired_ <= 0) {\r\n                this.log_('Primary connection is healthy.');\r\n                this.isHealthy_ = true;\r\n                this.conn_.markConnectionHealthy();\r\n            }\r\n        }\r\n    };\r\n    Connection.prototype.onControl_ = function (controlData) {\r\n        var cmd = requireKey(MESSAGE_TYPE, controlData);\r\n        if (MESSAGE_DATA in controlData) {\r\n            var payload = controlData[MESSAGE_DATA];\r\n            if (cmd === SERVER_HELLO) {\r\n                this.onHandshake_(payload);\r\n            }\r\n            else if (cmd === END_TRANSMISSION) {\r\n                this.log_('recvd end transmission on primary');\r\n                this.rx_ = this.secondaryConn_;\r\n                for (var i = 0; i < this.pendingDataMessages.length; ++i) {\r\n                    this.onDataMessage_(this.pendingDataMessages[i]);\r\n                }\r\n                this.pendingDataMessages = [];\r\n                this.tryCleanupConnection();\r\n            }\r\n            else if (cmd === CONTROL_SHUTDOWN) {\r\n                // This was previously the 'onKill' callback passed to the lower-level connection\r\n                // payload in this case is the reason for the shutdown. Generally a human-readable error\r\n                this.onConnectionShutdown_(payload);\r\n            }\r\n            else if (cmd === CONTROL_RESET) {\r\n                // payload in this case is the host we should contact\r\n                this.onReset_(payload);\r\n            }\r\n            else if (cmd === CONTROL_ERROR) {\r\n                error('Server Error: ' + payload);\r\n            }\r\n            else if (cmd === CONTROL_PONG) {\r\n                this.log_('got pong on primary.');\r\n                this.onPrimaryResponse_();\r\n                this.sendPingOnPrimaryIfNecessary_();\r\n            }\r\n            else {\r\n                error('Unknown control packet command: ' + cmd);\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @param {Object} handshake The handshake data returned from the server\r\n     * @private\r\n     */\r\n    Connection.prototype.onHandshake_ = function (handshake) {\r\n        var timestamp = handshake.ts;\r\n        var version = handshake.v;\r\n        var host = handshake.h;\r\n        this.sessionId = handshake.s;\r\n        this.repoInfo_.updateHost(host);\r\n        // if we've already closed the connection, then don't bother trying to progress further\r\n        if (this.state_ == 0 /* CONNECTING */) {\r\n            this.conn_.start();\r\n            this.onConnectionEstablished_(this.conn_, timestamp);\r\n            if (PROTOCOL_VERSION !== version) {\r\n                warn('Protocol version mismatch detected');\r\n            }\r\n            // TODO: do we want to upgrade? when? maybe a delay?\r\n            this.tryStartUpgrade_();\r\n        }\r\n    };\r\n    Connection.prototype.tryStartUpgrade_ = function () {\r\n        var conn = this.transportManager_.upgradeTransport();\r\n        if (conn) {\r\n            this.startUpgrade_(conn);\r\n        }\r\n    };\r\n    Connection.prototype.startUpgrade_ = function (conn) {\r\n        var _this = this;\r\n        this.secondaryConn_ = new conn(this.nextTransportId_(), this.repoInfo_, this.sessionId);\r\n        // For certain transports (WebSockets), we need to send and receive several messages back and forth before we\r\n        // can consider the transport healthy.\r\n        this.secondaryResponsesRequired_ =\r\n            conn['responsesRequiredToBeHealthy'] || 0;\r\n        var onMessage = this.connReceiver_(this.secondaryConn_);\r\n        var onDisconnect = this.disconnReceiver_(this.secondaryConn_);\r\n        this.secondaryConn_.open(onMessage, onDisconnect);\r\n        // If we haven't successfully upgraded after UPGRADE_TIMEOUT, give up and kill the secondary.\r\n        setTimeoutNonBlocking(function () {\r\n            if (_this.secondaryConn_) {\r\n                _this.log_('Timed out trying to upgrade.');\r\n                _this.secondaryConn_.close();\r\n            }\r\n        }, Math.floor(UPGRADE_TIMEOUT));\r\n    };\r\n    Connection.prototype.onReset_ = function (host) {\r\n        this.log_('Reset packet received.  New host: ' + host);\r\n        this.repoInfo_.updateHost(host);\r\n        // TODO: if we're already \"connected\", we need to trigger a disconnect at the next layer up.\r\n        // We don't currently support resets after the connection has already been established\r\n        if (this.state_ === 1 /* CONNECTED */) {\r\n            this.close();\r\n        }\r\n        else {\r\n            // Close whatever connections we have open and start again.\r\n            this.closeConnections_();\r\n            this.start_();\r\n        }\r\n    };\r\n    Connection.prototype.onConnectionEstablished_ = function (conn, timestamp) {\r\n        var _this = this;\r\n        this.log_('Realtime connection established.');\r\n        this.conn_ = conn;\r\n        this.state_ = 1 /* CONNECTED */;\r\n        if (this.onReady_) {\r\n            this.onReady_(timestamp, this.sessionId);\r\n            this.onReady_ = null;\r\n        }\r\n        // If after 5 seconds we haven't sent enough requests to the server to get the connection healthy,\r\n        // send some pings.\r\n        if (this.primaryResponsesRequired_ === 0) {\r\n            this.log_('Primary connection is healthy.');\r\n            this.isHealthy_ = true;\r\n        }\r\n        else {\r\n            setTimeoutNonBlocking(function () {\r\n                _this.sendPingOnPrimaryIfNecessary_();\r\n            }, Math.floor(DELAY_BEFORE_SENDING_EXTRA_REQUESTS));\r\n        }\r\n    };\r\n    Connection.prototype.sendPingOnPrimaryIfNecessary_ = function () {\r\n        // If the connection isn't considered healthy yet, we'll send a noop ping packet request.\r\n        if (!this.isHealthy_ && this.state_ === 1 /* CONNECTED */) {\r\n            this.log_('sending ping on primary.');\r\n            this.sendData_({ t: 'c', d: { t: PING, d: {} } });\r\n        }\r\n    };\r\n    Connection.prototype.onSecondaryConnectionLost_ = function () {\r\n        var conn = this.secondaryConn_;\r\n        this.secondaryConn_ = null;\r\n        if (this.tx_ === conn || this.rx_ === conn) {\r\n            // we are relying on this connection already in some capacity. Therefore, a failure is real\r\n            this.close();\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @param {boolean} everConnected Whether or not the connection ever reached a server. Used to determine if\r\n     * we should flush the host cache\r\n     * @private\r\n     */\r\n    Connection.prototype.onConnectionLost_ = function (everConnected) {\r\n        this.conn_ = null;\r\n        // NOTE: IF you're seeing a Firefox error for this line, I think it might be because it's getting\r\n        // called on window close and RealtimeState.CONNECTING is no longer defined.  Just a guess.\r\n        if (!everConnected && this.state_ === 0 /* CONNECTING */) {\r\n            this.log_('Realtime connection failed.');\r\n            // Since we failed to connect at all, clear any cached entry for this namespace in case the machine went away\r\n            if (this.repoInfo_.isCacheableHost()) {\r\n                PersistentStorage.remove('host:' + this.repoInfo_.host);\r\n                // reset the internal host to what we would show the user, i.e. <ns>.firebaseio.com\r\n                this.repoInfo_.internalHost = this.repoInfo_.host;\r\n            }\r\n        }\r\n        else if (this.state_ === 1 /* CONNECTED */) {\r\n            this.log_('Realtime connection lost.');\r\n        }\r\n        this.close();\r\n    };\r\n    /**\r\n     *\r\n     * @param {string} reason\r\n     * @private\r\n     */\r\n    Connection.prototype.onConnectionShutdown_ = function (reason) {\r\n        this.log_('Connection shutdown command received. Shutting down...');\r\n        if (this.onKill_) {\r\n            this.onKill_(reason);\r\n            this.onKill_ = null;\r\n        }\r\n        // We intentionally don't want to fire onDisconnect (kill is a different case),\r\n        // so clear the callback.\r\n        this.onDisconnect_ = null;\r\n        this.close();\r\n    };\r\n    Connection.prototype.sendData_ = function (data) {\r\n        if (this.state_ !== 1 /* CONNECTED */) {\r\n            throw 'Connection is not connected';\r\n        }\r\n        else {\r\n            this.tx_.send(data);\r\n        }\r\n    };\r\n    /**\r\n     * Cleans up this connection, calling the appropriate callbacks\r\n     */\r\n    Connection.prototype.close = function () {\r\n        if (this.state_ !== 2 /* DISCONNECTED */) {\r\n            this.log_('Closing realtime connection.');\r\n            this.state_ = 2 /* DISCONNECTED */;\r\n            this.closeConnections_();\r\n            if (this.onDisconnect_) {\r\n                this.onDisconnect_();\r\n                this.onDisconnect_ = null;\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     *\r\n     * @private\r\n     */\r\n    Connection.prototype.closeConnections_ = function () {\r\n        this.log_('Shutting down all connections');\r\n        if (this.conn_) {\r\n            this.conn_.close();\r\n            this.conn_ = null;\r\n        }\r\n        if (this.secondaryConn_) {\r\n            this.secondaryConn_.close();\r\n            this.secondaryConn_ = null;\r\n        }\r\n        if (this.healthyTimeout_) {\r\n            clearTimeout(this.healthyTimeout_);\r\n            this.healthyTimeout_ = null;\r\n        }\r\n    };\r\n    return Connection;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Interface defining the set of actions that can be performed against the Firebase server\r\n * (basically corresponds to our wire protocol).\r\n *\r\n * @interface\r\n */\r\nvar ServerActions = /** @class */ (function () {\r\n    function ServerActions() {\r\n    }\r\n    /**\r\n     * @param {string} pathString\r\n     * @param {*} data\r\n     * @param {function(string, string)=} onComplete\r\n     * @param {string=} hash\r\n     */\r\n    ServerActions.prototype.put = function (pathString, data, onComplete, hash) { };\r\n    /**\r\n     * @param {string} pathString\r\n     * @param {*} data\r\n     * @param {function(string, ?string)} onComplete\r\n     * @param {string=} hash\r\n     */\r\n    ServerActions.prototype.merge = function (pathString, data, onComplete, hash) { };\r\n    /**\r\n     * Refreshes the auth token for the current connection.\r\n     * @param {string} token The authentication token\r\n     */\r\n    ServerActions.prototype.refreshAuthToken = function (token) { };\r\n    /**\r\n     * @param {string} pathString\r\n     * @param {*} data\r\n     * @param {function(string, string)=} onComplete\r\n     */\r\n    ServerActions.prototype.onDisconnectPut = function (pathString, data, onComplete) { };\r\n    /**\r\n     * @param {string} pathString\r\n     * @param {*} data\r\n     * @param {function(string, string)=} onComplete\r\n     */\r\n    ServerActions.prototype.onDisconnectMerge = function (pathString, data, onComplete) { };\r\n    /**\r\n     * @param {string} pathString\r\n     * @param {function(string, string)=} onComplete\r\n     */\r\n    ServerActions.prototype.onDisconnectCancel = function (pathString, onComplete) { };\r\n    /**\r\n     * @param {Object.<string, *>} stats\r\n     */\r\n    ServerActions.prototype.reportStats = function (stats) { };\r\n    return ServerActions;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar RECONNECT_MIN_DELAY = 1000;\r\nvar RECONNECT_MAX_DELAY_DEFAULT = 60 * 5 * 1000; // 5 minutes in milliseconds (Case: 1858)\r\nvar RECONNECT_MAX_DELAY_FOR_ADMINS = 30 * 1000; // 30 seconds for admin clients (likely to be a backend server)\r\nvar RECONNECT_DELAY_MULTIPLIER = 1.3;\r\nvar RECONNECT_DELAY_RESET_TIMEOUT = 30000; // Reset delay back to MIN_DELAY after being connected for 30sec.\r\nvar SERVER_KILL_INTERRUPT_REASON = 'server_kill';\r\n// If auth fails repeatedly, we'll assume something is wrong and log a warning / back off.\r\nvar INVALID_AUTH_TOKEN_THRESHOLD = 3;\r\n/**\r\n * Firebase connection.  Abstracts wire protocol and handles reconnecting.\r\n *\r\n * NOTE: All JSON objects sent to the realtime connection must have property names enclosed\r\n * in quotes to make sure the closure compiler does not minify them.\r\n */\r\nvar PersistentConnection = /** @class */ (function (_super) {\r\n    tslib_1.__extends(PersistentConnection, _super);\r\n    /**\r\n     * @implements {ServerActions}\r\n     * @param {!RepoInfo} repoInfo_ Data about the namespace we are connecting to\r\n     * @param {function(string, *, boolean, ?number)} onDataUpdate_ A callback for new data from the server\r\n     * @param onConnectStatus_\r\n     * @param onServerInfoUpdate_\r\n     * @param authTokenProvider_\r\n     * @param authOverride_\r\n     */\r\n    function PersistentConnection(repoInfo_, onDataUpdate_, onConnectStatus_, onServerInfoUpdate_, authTokenProvider_, authOverride_) {\r\n        var _this = _super.call(this) || this;\r\n        _this.repoInfo_ = repoInfo_;\r\n        _this.onDataUpdate_ = onDataUpdate_;\r\n        _this.onConnectStatus_ = onConnectStatus_;\r\n        _this.onServerInfoUpdate_ = onServerInfoUpdate_;\r\n        _this.authTokenProvider_ = authTokenProvider_;\r\n        _this.authOverride_ = authOverride_;\r\n        // Used for diagnostic logging.\r\n        _this.id = PersistentConnection.nextPersistentConnectionId_++;\r\n        _this.log_ = logWrapper('p:' + _this.id + ':');\r\n        /** @private {Object} */\r\n        _this.interruptReasons_ = {};\r\n        _this.listens_ = {};\r\n        _this.outstandingPuts_ = [];\r\n        _this.outstandingPutCount_ = 0;\r\n        _this.onDisconnectRequestQueue_ = [];\r\n        _this.connected_ = false;\r\n        _this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n        _this.maxReconnectDelay_ = RECONNECT_MAX_DELAY_DEFAULT;\r\n        _this.securityDebugCallback_ = null;\r\n        _this.lastSessionId = null;\r\n        /** @private {number|null} */\r\n        _this.establishConnectionTimer_ = null;\r\n        /** @private {boolean} */\r\n        _this.visible_ = false;\r\n        // Before we get connected, we keep a queue of pending messages to send.\r\n        _this.requestCBHash_ = {};\r\n        _this.requestNumber_ = 0;\r\n        /** @private {?{\r\n         *   sendRequest(Object),\r\n         *   close()\r\n         * }} */\r\n        _this.realtime_ = null;\r\n        /** @private {string|null} */\r\n        _this.authToken_ = null;\r\n        _this.forceTokenRefresh_ = false;\r\n        _this.invalidAuthTokenCount_ = 0;\r\n        _this.firstConnection_ = true;\r\n        _this.lastConnectionAttemptTime_ = null;\r\n        _this.lastConnectionEstablishedTime_ = null;\r\n        if (authOverride_ && !util.isNodeSdk()) {\r\n            throw new Error('Auth override specified in options, but not supported on non Node.js platforms');\r\n        }\r\n        _this.scheduleConnect_(0);\r\n        VisibilityMonitor.getInstance().on('visible', _this.onVisible_, _this);\r\n        if (repoInfo_.host.indexOf('fblocal') === -1) {\r\n            OnlineMonitor.getInstance().on('online', _this.onOnline_, _this);\r\n        }\r\n        return _this;\r\n    }\r\n    /**\r\n     * @param {!string} action\r\n     * @param {*} body\r\n     * @param {function(*)=} onResponse\r\n     * @protected\r\n     */\r\n    PersistentConnection.prototype.sendRequest = function (action, body, onResponse) {\r\n        var curReqNum = ++this.requestNumber_;\r\n        var msg = { r: curReqNum, a: action, b: body };\r\n        this.log_(util.stringify(msg));\r\n        util.assert(this.connected_, \"sendRequest call when we're not connected not allowed.\");\r\n        this.realtime_.sendRequest(msg);\r\n        if (onResponse) {\r\n            this.requestCBHash_[curReqNum] = onResponse;\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.listen = function (query, currentHashFn, tag, onComplete) {\r\n        var queryId = query.queryIdentifier();\r\n        var pathString = query.path.toString();\r\n        this.log_('Listen called for ' + pathString + ' ' + queryId);\r\n        this.listens_[pathString] = this.listens_[pathString] || {};\r\n        util.assert(query.getQueryParams().isDefault() ||\r\n            !query.getQueryParams().loadsAllData(), 'listen() called for non-default but complete query');\r\n        util.assert(!this.listens_[pathString][queryId], 'listen() called twice for same path/queryId.');\r\n        var listenSpec = {\r\n            onComplete: onComplete,\r\n            hashFn: currentHashFn,\r\n            query: query,\r\n            tag: tag\r\n        };\r\n        this.listens_[pathString][queryId] = listenSpec;\r\n        if (this.connected_) {\r\n            this.sendListen_(listenSpec);\r\n        }\r\n    };\r\n    /**\r\n     * @param {!{onComplete(),\r\n     *           hashFn():!string,\r\n     *           query: !Query,\r\n     *           tag: ?number}} listenSpec\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.sendListen_ = function (listenSpec) {\r\n        var _this = this;\r\n        var query = listenSpec.query;\r\n        var pathString = query.path.toString();\r\n        var queryId = query.queryIdentifier();\r\n        this.log_('Listen on ' + pathString + ' for ' + queryId);\r\n        var req = { /*path*/ p: pathString };\r\n        var action = 'q';\r\n        // Only bother to send query if it's non-default.\r\n        if (listenSpec.tag) {\r\n            req['q'] = query.queryObject();\r\n            req['t'] = listenSpec.tag;\r\n        }\r\n        req[ /*hash*/'h'] = listenSpec.hashFn();\r\n        this.sendRequest(action, req, function (message) {\r\n            var payload = message[ /*data*/'d'];\r\n            var status = message[ /*status*/'s'];\r\n            // print warnings in any case...\r\n            PersistentConnection.warnOnListenWarnings_(payload, query);\r\n            var currentListenSpec = _this.listens_[pathString] && _this.listens_[pathString][queryId];\r\n            // only trigger actions if the listen hasn't been removed and readded\r\n            if (currentListenSpec === listenSpec) {\r\n                _this.log_('listen response', message);\r\n                if (status !== 'ok') {\r\n                    _this.removeListen_(pathString, queryId);\r\n                }\r\n                if (listenSpec.onComplete) {\r\n                    listenSpec.onComplete(status, payload);\r\n                }\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * @param {*} payload\r\n     * @param {!Query} query\r\n     * @private\r\n     */\r\n    PersistentConnection.warnOnListenWarnings_ = function (payload, query) {\r\n        if (payload && typeof payload === 'object' && util.contains(payload, 'w')) {\r\n            var warnings = util.safeGet(payload, 'w');\r\n            if (Array.isArray(warnings) && ~warnings.indexOf('no_index')) {\r\n                var indexSpec = '\".indexOn\": \"' +\r\n                    query\r\n                        .getQueryParams()\r\n                        .getIndex()\r\n                        .toString() +\r\n                    '\"';\r\n                var indexPath = query.path.toString();\r\n                warn(\"Using an unspecified index. Your data will be downloaded and \" +\r\n                    (\"filtered on the client. Consider adding \" + indexSpec + \" at \") +\r\n                    (indexPath + \" to your security rules for better performance.\"));\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.refreshAuthToken = function (token) {\r\n        this.authToken_ = token;\r\n        this.log_('Auth token refreshed');\r\n        if (this.authToken_) {\r\n            this.tryAuth();\r\n        }\r\n        else {\r\n            //If we're connected we want to let the server know to unauthenticate us. If we're not connected, simply delete\r\n            //the credential so we dont become authenticated next time we connect.\r\n            if (this.connected_) {\r\n                this.sendRequest('unauth', {}, function () { });\r\n            }\r\n        }\r\n        this.reduceReconnectDelayIfAdminCredential_(token);\r\n    };\r\n    /**\r\n     * @param {!string} credential\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.reduceReconnectDelayIfAdminCredential_ = function (credential) {\r\n        // NOTE: This isn't intended to be bulletproof (a malicious developer can always just modify the client).\r\n        // Additionally, we don't bother resetting the max delay back to the default if auth fails / expires.\r\n        var isFirebaseSecret = credential && credential.length === 40;\r\n        if (isFirebaseSecret || util.isAdmin(credential)) {\r\n            this.log_('Admin auth credential detected.  Reducing max reconnect time.');\r\n            this.maxReconnectDelay_ = RECONNECT_MAX_DELAY_FOR_ADMINS;\r\n        }\r\n    };\r\n    /**\r\n     * Attempts to authenticate with the given credentials. If the authentication attempt fails, it's triggered like\r\n     * a auth revoked (the connection is closed).\r\n     */\r\n    PersistentConnection.prototype.tryAuth = function () {\r\n        var _this = this;\r\n        if (this.connected_ && this.authToken_) {\r\n            var token_1 = this.authToken_;\r\n            var authMethod = util.isValidFormat(token_1) ? 'auth' : 'gauth';\r\n            var requestData = { cred: token_1 };\r\n            if (this.authOverride_ === null) {\r\n                requestData['noauth'] = true;\r\n            }\r\n            else if (typeof this.authOverride_ === 'object') {\r\n                requestData['authvar'] = this.authOverride_;\r\n            }\r\n            this.sendRequest(authMethod, requestData, function (res) {\r\n                var status = res[ /*status*/'s'];\r\n                var data = res[ /*data*/'d'] || 'error';\r\n                if (_this.authToken_ === token_1) {\r\n                    if (status === 'ok') {\r\n                        _this.invalidAuthTokenCount_ = 0;\r\n                    }\r\n                    else {\r\n                        // Triggers reconnect and force refresh for auth token\r\n                        _this.onAuthRevoked_(status, data);\r\n                    }\r\n                }\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.unlisten = function (query, tag) {\r\n        var pathString = query.path.toString();\r\n        var queryId = query.queryIdentifier();\r\n        this.log_('Unlisten called for ' + pathString + ' ' + queryId);\r\n        util.assert(query.getQueryParams().isDefault() ||\r\n            !query.getQueryParams().loadsAllData(), 'unlisten() called for non-default but complete query');\r\n        var listen = this.removeListen_(pathString, queryId);\r\n        if (listen && this.connected_) {\r\n            this.sendUnlisten_(pathString, queryId, query.queryObject(), tag);\r\n        }\r\n    };\r\n    PersistentConnection.prototype.sendUnlisten_ = function (pathString, queryId, queryObj, tag) {\r\n        this.log_('Unlisten on ' + pathString + ' for ' + queryId);\r\n        var req = { /*path*/ p: pathString };\r\n        var action = 'n';\r\n        // Only bother sending queryId if it's non-default.\r\n        if (tag) {\r\n            req['q'] = queryObj;\r\n            req['t'] = tag;\r\n        }\r\n        this.sendRequest(action, req);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.onDisconnectPut = function (pathString, data, onComplete) {\r\n        if (this.connected_) {\r\n            this.sendOnDisconnect_('o', pathString, data, onComplete);\r\n        }\r\n        else {\r\n            this.onDisconnectRequestQueue_.push({\r\n                pathString: pathString,\r\n                action: 'o',\r\n                data: data,\r\n                onComplete: onComplete\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.onDisconnectMerge = function (pathString, data, onComplete) {\r\n        if (this.connected_) {\r\n            this.sendOnDisconnect_('om', pathString, data, onComplete);\r\n        }\r\n        else {\r\n            this.onDisconnectRequestQueue_.push({\r\n                pathString: pathString,\r\n                action: 'om',\r\n                data: data,\r\n                onComplete: onComplete\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.onDisconnectCancel = function (pathString, onComplete) {\r\n        if (this.connected_) {\r\n            this.sendOnDisconnect_('oc', pathString, null, onComplete);\r\n        }\r\n        else {\r\n            this.onDisconnectRequestQueue_.push({\r\n                pathString: pathString,\r\n                action: 'oc',\r\n                data: null,\r\n                onComplete: onComplete\r\n            });\r\n        }\r\n    };\r\n    PersistentConnection.prototype.sendOnDisconnect_ = function (action, pathString, data, onComplete) {\r\n        var request = { /*path*/ p: pathString, /*data*/ d: data };\r\n        this.log_('onDisconnect ' + action, request);\r\n        this.sendRequest(action, request, function (response) {\r\n            if (onComplete) {\r\n                setTimeout(function () {\r\n                    onComplete(response[ /*status*/'s'], response[ /* data */'d']);\r\n                }, Math.floor(0));\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\r\n        this.putInternal('p', pathString, data, onComplete, hash);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.merge = function (pathString, data, onComplete, hash) {\r\n        this.putInternal('m', pathString, data, onComplete, hash);\r\n    };\r\n    PersistentConnection.prototype.putInternal = function (action, pathString, data, onComplete, hash) {\r\n        var request = {\r\n            /*path*/ p: pathString,\r\n            /*data*/ d: data\r\n        };\r\n        if (hash !== undefined)\r\n            request[ /*hash*/'h'] = hash;\r\n        // TODO: Only keep track of the most recent put for a given path?\r\n        this.outstandingPuts_.push({\r\n            action: action,\r\n            request: request,\r\n            onComplete: onComplete\r\n        });\r\n        this.outstandingPutCount_++;\r\n        var index = this.outstandingPuts_.length - 1;\r\n        if (this.connected_) {\r\n            this.sendPut_(index);\r\n        }\r\n        else {\r\n            this.log_('Buffering put: ' + pathString);\r\n        }\r\n    };\r\n    PersistentConnection.prototype.sendPut_ = function (index) {\r\n        var _this = this;\r\n        var action = this.outstandingPuts_[index].action;\r\n        var request = this.outstandingPuts_[index].request;\r\n        var onComplete = this.outstandingPuts_[index].onComplete;\r\n        this.outstandingPuts_[index].queued = this.connected_;\r\n        this.sendRequest(action, request, function (message) {\r\n            _this.log_(action + ' response', message);\r\n            delete _this.outstandingPuts_[index];\r\n            _this.outstandingPutCount_--;\r\n            // Clean up array occasionally.\r\n            if (_this.outstandingPutCount_ === 0) {\r\n                _this.outstandingPuts_ = [];\r\n            }\r\n            if (onComplete)\r\n                onComplete(message[ /*status*/'s'], message[ /* data */'d']);\r\n        });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    PersistentConnection.prototype.reportStats = function (stats) {\r\n        var _this = this;\r\n        // If we're not connected, we just drop the stats.\r\n        if (this.connected_) {\r\n            var request = { /*counters*/ c: stats };\r\n            this.log_('reportStats', request);\r\n            this.sendRequest(/*stats*/ 's', request, function (result) {\r\n                var status = result[ /*status*/'s'];\r\n                if (status !== 'ok') {\r\n                    var errorReason = result[ /* data */'d'];\r\n                    _this.log_('reportStats', 'Error sending stats: ' + errorReason);\r\n                }\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @param {*} message\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.onDataMessage_ = function (message) {\r\n        if ('r' in message) {\r\n            // this is a response\r\n            this.log_('from server: ' + util.stringify(message));\r\n            var reqNum = message['r'];\r\n            var onResponse = this.requestCBHash_[reqNum];\r\n            if (onResponse) {\r\n                delete this.requestCBHash_[reqNum];\r\n                onResponse(message[ /*body*/'b']);\r\n            }\r\n        }\r\n        else if ('error' in message) {\r\n            throw 'A server-side error has occurred: ' + message['error'];\r\n        }\r\n        else if ('a' in message) {\r\n            // a and b are action and body, respectively\r\n            this.onDataPush_(message['a'], message['b']);\r\n        }\r\n    };\r\n    PersistentConnection.prototype.onDataPush_ = function (action, body) {\r\n        this.log_('handleServerMessage', action, body);\r\n        if (action === 'd')\r\n            this.onDataUpdate_(body[ /*path*/'p'], body[ /*data*/'d'], \r\n            /*isMerge*/ false, body['t']);\r\n        else if (action === 'm')\r\n            this.onDataUpdate_(body[ /*path*/'p'], body[ /*data*/'d'], \r\n            /*isMerge=*/ true, body['t']);\r\n        else if (action === 'c')\r\n            this.onListenRevoked_(body[ /*path*/'p'], body[ /*query*/'q']);\r\n        else if (action === 'ac')\r\n            this.onAuthRevoked_(body[ /*status code*/'s'], body[ /* explanation */'d']);\r\n        else if (action === 'sd')\r\n            this.onSecurityDebugPacket_(body);\r\n        else\r\n            error('Unrecognized action received from server: ' +\r\n                util.stringify(action) +\r\n                '\\nAre you using the latest client?');\r\n    };\r\n    PersistentConnection.prototype.onReady_ = function (timestamp, sessionId) {\r\n        this.log_('connection ready');\r\n        this.connected_ = true;\r\n        this.lastConnectionEstablishedTime_ = new Date().getTime();\r\n        this.handleTimestamp_(timestamp);\r\n        this.lastSessionId = sessionId;\r\n        if (this.firstConnection_) {\r\n            this.sendConnectStats_();\r\n        }\r\n        this.restoreState_();\r\n        this.firstConnection_ = false;\r\n        this.onConnectStatus_(true);\r\n    };\r\n    PersistentConnection.prototype.scheduleConnect_ = function (timeout) {\r\n        var _this = this;\r\n        util.assert(!this.realtime_, \"Scheduling a connect when we're already connected/ing?\");\r\n        if (this.establishConnectionTimer_) {\r\n            clearTimeout(this.establishConnectionTimer_);\r\n        }\r\n        // NOTE: Even when timeout is 0, it's important to do a setTimeout to work around an infuriating \"Security Error\" in\r\n        // Firefox when trying to write to our long-polling iframe in some scenarios (e.g. Forge or our unit tests).\r\n        this.establishConnectionTimer_ = setTimeout(function () {\r\n            _this.establishConnectionTimer_ = null;\r\n            _this.establishConnection_();\r\n        }, Math.floor(timeout));\r\n    };\r\n    /**\r\n     * @param {boolean} visible\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.onVisible_ = function (visible) {\r\n        // NOTE: Tabbing away and back to a window will defeat our reconnect backoff, but I think that's fine.\r\n        if (visible &&\r\n            !this.visible_ &&\r\n            this.reconnectDelay_ === this.maxReconnectDelay_) {\r\n            this.log_('Window became visible.  Reducing delay.');\r\n            this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n            if (!this.realtime_) {\r\n                this.scheduleConnect_(0);\r\n            }\r\n        }\r\n        this.visible_ = visible;\r\n    };\r\n    PersistentConnection.prototype.onOnline_ = function (online) {\r\n        if (online) {\r\n            this.log_('Browser went online.');\r\n            this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n            if (!this.realtime_) {\r\n                this.scheduleConnect_(0);\r\n            }\r\n        }\r\n        else {\r\n            this.log_('Browser went offline.  Killing connection.');\r\n            if (this.realtime_) {\r\n                this.realtime_.close();\r\n            }\r\n        }\r\n    };\r\n    PersistentConnection.prototype.onRealtimeDisconnect_ = function () {\r\n        this.log_('data client disconnected');\r\n        this.connected_ = false;\r\n        this.realtime_ = null;\r\n        // Since we don't know if our sent transactions succeeded or not, we need to cancel them.\r\n        this.cancelSentTransactions_();\r\n        // Clear out the pending requests.\r\n        this.requestCBHash_ = {};\r\n        if (this.shouldReconnect_()) {\r\n            if (!this.visible_) {\r\n                this.log_(\"Window isn't visible.  Delaying reconnect.\");\r\n                this.reconnectDelay_ = this.maxReconnectDelay_;\r\n                this.lastConnectionAttemptTime_ = new Date().getTime();\r\n            }\r\n            else if (this.lastConnectionEstablishedTime_) {\r\n                // If we've been connected long enough, reset reconnect delay to minimum.\r\n                var timeSinceLastConnectSucceeded = new Date().getTime() - this.lastConnectionEstablishedTime_;\r\n                if (timeSinceLastConnectSucceeded > RECONNECT_DELAY_RESET_TIMEOUT)\r\n                    this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n                this.lastConnectionEstablishedTime_ = null;\r\n            }\r\n            var timeSinceLastConnectAttempt = new Date().getTime() - this.lastConnectionAttemptTime_;\r\n            var reconnectDelay = Math.max(0, this.reconnectDelay_ - timeSinceLastConnectAttempt);\r\n            reconnectDelay = Math.random() * reconnectDelay;\r\n            this.log_('Trying to reconnect in ' + reconnectDelay + 'ms');\r\n            this.scheduleConnect_(reconnectDelay);\r\n            // Adjust reconnect delay for next time.\r\n            this.reconnectDelay_ = Math.min(this.maxReconnectDelay_, this.reconnectDelay_ * RECONNECT_DELAY_MULTIPLIER);\r\n        }\r\n        this.onConnectStatus_(false);\r\n    };\r\n    PersistentConnection.prototype.establishConnection_ = function () {\r\n        if (this.shouldReconnect_()) {\r\n            this.log_('Making a connection attempt');\r\n            this.lastConnectionAttemptTime_ = new Date().getTime();\r\n            this.lastConnectionEstablishedTime_ = null;\r\n            var onDataMessage_1 = this.onDataMessage_.bind(this);\r\n            var onReady_1 = this.onReady_.bind(this);\r\n            var onDisconnect_1 = this.onRealtimeDisconnect_.bind(this);\r\n            var connId_1 = this.id + ':' + PersistentConnection.nextConnectionId_++;\r\n            var self_1 = this;\r\n            var lastSessionId_1 = this.lastSessionId;\r\n            var canceled_1 = false;\r\n            var connection_1 = null;\r\n            var closeFn_1 = function () {\r\n                if (connection_1) {\r\n                    connection_1.close();\r\n                }\r\n                else {\r\n                    canceled_1 = true;\r\n                    onDisconnect_1();\r\n                }\r\n            };\r\n            var sendRequestFn = function (msg) {\r\n                util.assert(connection_1, \"sendRequest call when we're not connected not allowed.\");\r\n                connection_1.sendRequest(msg);\r\n            };\r\n            this.realtime_ = {\r\n                close: closeFn_1,\r\n                sendRequest: sendRequestFn\r\n            };\r\n            var forceRefresh = this.forceTokenRefresh_;\r\n            this.forceTokenRefresh_ = false;\r\n            // First fetch auth token, and establish connection after fetching the token was successful\r\n            this.authTokenProvider_\r\n                .getToken(forceRefresh)\r\n                .then(function (result) {\r\n                if (!canceled_1) {\r\n                    log('getToken() completed. Creating connection.');\r\n                    self_1.authToken_ = result && result.accessToken;\r\n                    connection_1 = new Connection(connId_1, self_1.repoInfo_, onDataMessage_1, onReady_1, onDisconnect_1, \r\n                    /* onKill= */ function (reason) {\r\n                        warn(reason + ' (' + self_1.repoInfo_.toString() + ')');\r\n                        self_1.interrupt(SERVER_KILL_INTERRUPT_REASON);\r\n                    }, lastSessionId_1);\r\n                }\r\n                else {\r\n                    log('getToken() completed but was canceled');\r\n                }\r\n            })\r\n                .then(null, function (error$$1) {\r\n                self_1.log_('Failed to get token: ' + error$$1);\r\n                if (!canceled_1) {\r\n                    if (util.CONSTANTS.NODE_ADMIN) {\r\n                        // This may be a critical error for the Admin Node.js SDK, so log a warning.\r\n                        // But getToken() may also just have temporarily failed, so we still want to\r\n                        // continue retrying.\r\n                        warn(error$$1);\r\n                    }\r\n                    closeFn_1();\r\n                }\r\n            });\r\n        }\r\n    };\r\n    /**\r\n     * @param {string} reason\r\n     */\r\n    PersistentConnection.prototype.interrupt = function (reason) {\r\n        log('Interrupting connection for reason: ' + reason);\r\n        this.interruptReasons_[reason] = true;\r\n        if (this.realtime_) {\r\n            this.realtime_.close();\r\n        }\r\n        else {\r\n            if (this.establishConnectionTimer_) {\r\n                clearTimeout(this.establishConnectionTimer_);\r\n                this.establishConnectionTimer_ = null;\r\n            }\r\n            if (this.connected_) {\r\n                this.onRealtimeDisconnect_();\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * @param {string} reason\r\n     */\r\n    PersistentConnection.prototype.resume = function (reason) {\r\n        log('Resuming connection for reason: ' + reason);\r\n        delete this.interruptReasons_[reason];\r\n        if (util.isEmpty(this.interruptReasons_)) {\r\n            this.reconnectDelay_ = RECONNECT_MIN_DELAY;\r\n            if (!this.realtime_) {\r\n                this.scheduleConnect_(0);\r\n            }\r\n        }\r\n    };\r\n    PersistentConnection.prototype.handleTimestamp_ = function (timestamp) {\r\n        var delta = timestamp - new Date().getTime();\r\n        this.onServerInfoUpdate_({ serverTimeOffset: delta });\r\n    };\r\n    PersistentConnection.prototype.cancelSentTransactions_ = function () {\r\n        for (var i = 0; i < this.outstandingPuts_.length; i++) {\r\n            var put = this.outstandingPuts_[i];\r\n            if (put && /*hash*/ 'h' in put.request && put.queued) {\r\n                if (put.onComplete)\r\n                    put.onComplete('disconnect');\r\n                delete this.outstandingPuts_[i];\r\n                this.outstandingPutCount_--;\r\n            }\r\n        }\r\n        // Clean up array occasionally.\r\n        if (this.outstandingPutCount_ === 0)\r\n            this.outstandingPuts_ = [];\r\n    };\r\n    /**\r\n     * @param {!string} pathString\r\n     * @param {Array.<*>=} query\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.onListenRevoked_ = function (pathString, query) {\r\n        // Remove the listen and manufacture a \"permission_denied\" error for the failed listen.\r\n        var queryId;\r\n        if (!query) {\r\n            queryId = 'default';\r\n        }\r\n        else {\r\n            queryId = query.map(function (q) { return ObjectToUniqueKey(q); }).join('$');\r\n        }\r\n        var listen = this.removeListen_(pathString, queryId);\r\n        if (listen && listen.onComplete)\r\n            listen.onComplete('permission_denied');\r\n    };\r\n    /**\r\n     * @param {!string} pathString\r\n     * @param {!string} queryId\r\n     * @return {{queries:Array.<Query>, onComplete:function(string)}}\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.removeListen_ = function (pathString, queryId) {\r\n        var normalizedPathString = new Path(pathString).toString(); // normalize path.\r\n        var listen;\r\n        if (this.listens_[normalizedPathString] !== undefined) {\r\n            listen = this.listens_[normalizedPathString][queryId];\r\n            delete this.listens_[normalizedPathString][queryId];\r\n            if (util.getCount(this.listens_[normalizedPathString]) === 0) {\r\n                delete this.listens_[normalizedPathString];\r\n            }\r\n        }\r\n        else {\r\n            // all listens for this path has already been removed\r\n            listen = undefined;\r\n        }\r\n        return listen;\r\n    };\r\n    PersistentConnection.prototype.onAuthRevoked_ = function (statusCode, explanation) {\r\n        log('Auth token revoked: ' + statusCode + '/' + explanation);\r\n        this.authToken_ = null;\r\n        this.forceTokenRefresh_ = true;\r\n        this.realtime_.close();\r\n        if (statusCode === 'invalid_token' || statusCode === 'permission_denied') {\r\n            // We'll wait a couple times before logging the warning / increasing the\r\n            // retry period since oauth tokens will report as \"invalid\" if they're\r\n            // just expired. Plus there may be transient issues that resolve themselves.\r\n            this.invalidAuthTokenCount_++;\r\n            if (this.invalidAuthTokenCount_ >= INVALID_AUTH_TOKEN_THRESHOLD) {\r\n                // Set a long reconnect delay because recovery is unlikely\r\n                this.reconnectDelay_ = RECONNECT_MAX_DELAY_FOR_ADMINS;\r\n                // Notify the auth token provider that the token is invalid, which will log\r\n                // a warning\r\n                this.authTokenProvider_.notifyForInvalidToken();\r\n            }\r\n        }\r\n    };\r\n    PersistentConnection.prototype.onSecurityDebugPacket_ = function (body) {\r\n        if (this.securityDebugCallback_) {\r\n            this.securityDebugCallback_(body);\r\n        }\r\n        else {\r\n            if ('msg' in body) {\r\n                console.log('FIREBASE: ' + body['msg'].replace('\\n', '\\nFIREBASE: '));\r\n            }\r\n        }\r\n    };\r\n    PersistentConnection.prototype.restoreState_ = function () {\r\n        var _this = this;\r\n        //Re-authenticate ourselves if we have a credential stored.\r\n        this.tryAuth();\r\n        // Puts depend on having received the corresponding data update from the server before they complete, so we must\r\n        // make sure to send listens before puts.\r\n        util.forEach(this.listens_, function (pathString, queries) {\r\n            util.forEach(queries, function (key, listenSpec) {\r\n                _this.sendListen_(listenSpec);\r\n            });\r\n        });\r\n        for (var i = 0; i < this.outstandingPuts_.length; i++) {\r\n            if (this.outstandingPuts_[i])\r\n                this.sendPut_(i);\r\n        }\r\n        while (this.onDisconnectRequestQueue_.length) {\r\n            var request = this.onDisconnectRequestQueue_.shift();\r\n            this.sendOnDisconnect_(request.action, request.pathString, request.data, request.onComplete);\r\n        }\r\n    };\r\n    /**\r\n     * Sends client stats for first connection\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.sendConnectStats_ = function () {\r\n        var stats = {};\r\n        var clientName = 'js';\r\n        if (util.CONSTANTS.NODE_ADMIN) {\r\n            clientName = 'admin_node';\r\n        }\r\n        else if (util.CONSTANTS.NODE_CLIENT) {\r\n            clientName = 'node';\r\n        }\r\n        stats['sdk.' + clientName + '.' + firebase.SDK_VERSION.replace(/\\./g, '-')] = 1;\r\n        if (util.isMobileCordova()) {\r\n            stats['framework.cordova'] = 1;\r\n        }\r\n        else if (util.isReactNative()) {\r\n            stats['framework.reactnative'] = 1;\r\n        }\r\n        this.reportStats(stats);\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     * @private\r\n     */\r\n    PersistentConnection.prototype.shouldReconnect_ = function () {\r\n        var online = OnlineMonitor.getInstance().currentlyOnline();\r\n        return util.isEmpty(this.interruptReasons_) && online;\r\n    };\r\n    /**\r\n     * @private\r\n     */\r\n    PersistentConnection.nextPersistentConnectionId_ = 0;\r\n    /**\r\n     * Counter for number of connections created. Mainly used for tagging in the logs\r\n     * @type {number}\r\n     * @private\r\n     */\r\n    PersistentConnection.nextConnectionId_ = 0;\r\n    return PersistentConnection;\r\n}(ServerActions));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An implementation of ServerActions that communicates with the server via REST requests.\r\n * This is mostly useful for compatibility with crawlers, where we don't want to spin up a full\r\n * persistent connection (using WebSockets or long-polling)\r\n */\r\nvar ReadonlyRestClient = /** @class */ (function (_super) {\r\n    tslib_1.__extends(ReadonlyRestClient, _super);\r\n    /**\r\n     * @param {!RepoInfo} repoInfo_ Data about the namespace we are connecting to\r\n     * @param {function(string, *, boolean, ?number)} onDataUpdate_ A callback for new data from the server\r\n     * @param {AuthTokenProvider} authTokenProvider_\r\n     * @implements {ServerActions}\r\n     */\r\n    function ReadonlyRestClient(repoInfo_, onDataUpdate_, authTokenProvider_) {\r\n        var _this = _super.call(this) || this;\r\n        _this.repoInfo_ = repoInfo_;\r\n        _this.onDataUpdate_ = onDataUpdate_;\r\n        _this.authTokenProvider_ = authTokenProvider_;\r\n        /** @private {function(...[*])} */\r\n        _this.log_ = logWrapper('p:rest:');\r\n        /**\r\n         * We don't actually need to track listens, except to prevent us calling an onComplete for a listen\r\n         * that's been removed. :-/\r\n         *\r\n         * @private {!Object.<string, !Object>}\r\n         */\r\n        _this.listens_ = {};\r\n        return _this;\r\n    }\r\n    ReadonlyRestClient.prototype.reportStats = function (stats) {\r\n        throw new Error('Method not implemented.');\r\n    };\r\n    /**\r\n     * @param {!Query} query\r\n     * @param {?number=} tag\r\n     * @return {string}\r\n     * @private\r\n     */\r\n    ReadonlyRestClient.getListenId_ = function (query, tag) {\r\n        if (tag !== undefined) {\r\n            return 'tag$' + tag;\r\n        }\r\n        else {\r\n            util.assert(query.getQueryParams().isDefault(), \"should have a tag if it's not a default query.\");\r\n            return query.path.toString();\r\n        }\r\n    };\r\n    /** @inheritDoc */\r\n    ReadonlyRestClient.prototype.listen = function (query, currentHashFn, tag, onComplete) {\r\n        var _this = this;\r\n        var pathString = query.path.toString();\r\n        this.log_('Listen called for ' + pathString + ' ' + query.queryIdentifier());\r\n        // Mark this listener so we can tell if it's removed.\r\n        var listenId = ReadonlyRestClient.getListenId_(query, tag);\r\n        var thisListen = {};\r\n        this.listens_[listenId] = thisListen;\r\n        var queryStringParamaters = query\r\n            .getQueryParams()\r\n            .toRestQueryStringParameters();\r\n        this.restRequest_(pathString + '.json', queryStringParamaters, function (error$$1, result) {\r\n            var data = result;\r\n            if (error$$1 === 404) {\r\n                data = null;\r\n                error$$1 = null;\r\n            }\r\n            if (error$$1 === null) {\r\n                _this.onDataUpdate_(pathString, data, /*isMerge=*/ false, tag);\r\n            }\r\n            if (util.safeGet(_this.listens_, listenId) === thisListen) {\r\n                var status_1;\r\n                if (!error$$1) {\r\n                    status_1 = 'ok';\r\n                }\r\n                else if (error$$1 == 401) {\r\n                    status_1 = 'permission_denied';\r\n                }\r\n                else {\r\n                    status_1 = 'rest_error:' + error$$1;\r\n                }\r\n                onComplete(status_1, null);\r\n            }\r\n        });\r\n    };\r\n    /** @inheritDoc */\r\n    ReadonlyRestClient.prototype.unlisten = function (query, tag) {\r\n        var listenId = ReadonlyRestClient.getListenId_(query, tag);\r\n        delete this.listens_[listenId];\r\n    };\r\n    /** @inheritDoc */\r\n    ReadonlyRestClient.prototype.refreshAuthToken = function (token) {\r\n        // no-op since we just always call getToken.\r\n    };\r\n    /**\r\n     * Performs a REST request to the given path, with the provided query string parameters,\r\n     * and any auth credentials we have.\r\n     *\r\n     * @param {!string} pathString\r\n     * @param {!Object.<string, *>} queryStringParameters\r\n     * @param {?function(?number, *=)} callback\r\n     * @private\r\n     */\r\n    ReadonlyRestClient.prototype.restRequest_ = function (pathString, queryStringParameters, callback) {\r\n        var _this = this;\r\n        if (queryStringParameters === void 0) { queryStringParameters = {}; }\r\n        queryStringParameters['format'] = 'export';\r\n        this.authTokenProvider_\r\n            .getToken(/*forceRefresh=*/ false)\r\n            .then(function (authTokenData) {\r\n            var authToken = authTokenData && authTokenData.accessToken;\r\n            if (authToken) {\r\n                queryStringParameters['auth'] = authToken;\r\n            }\r\n            var url = (_this.repoInfo_.secure ? 'https://' : 'http://') +\r\n                _this.repoInfo_.host +\r\n                pathString +\r\n                '?' +\r\n                util.querystring(queryStringParameters);\r\n            _this.log_('Sending REST request for ' + url);\r\n            var xhr = new XMLHttpRequest();\r\n            xhr.onreadystatechange = function () {\r\n                if (callback && xhr.readyState === 4) {\r\n                    _this.log_('REST Response for ' + url + ' received. status:', xhr.status, 'response:', xhr.responseText);\r\n                    var res = null;\r\n                    if (xhr.status >= 200 && xhr.status < 300) {\r\n                        try {\r\n                            res = util.jsonEval(xhr.responseText);\r\n                        }\r\n                        catch (e) {\r\n                            warn('Failed to parse JSON response for ' +\r\n                                url +\r\n                                ': ' +\r\n                                xhr.responseText);\r\n                        }\r\n                        callback(null, res);\r\n                    }\r\n                    else {\r\n                        // 401 and 404 are expected.\r\n                        if (xhr.status !== 401 && xhr.status !== 404) {\r\n                            warn('Got unsuccessful REST response for ' +\r\n                                url +\r\n                                ' Status: ' +\r\n                                xhr.status);\r\n                        }\r\n                        callback(xhr.status);\r\n                    }\r\n                    callback = null;\r\n                }\r\n            };\r\n            xhr.open('GET', url, /*asynchronous=*/ true);\r\n            xhr.send();\r\n        });\r\n    };\r\n    return ReadonlyRestClient;\r\n}(ServerActions));\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar INTERRUPT_REASON = 'repo_interrupt';\r\n/**\r\n * A connection to a single data repository.\r\n */\r\nvar Repo = /** @class */ (function () {\r\n    /**\r\n     * @param {!RepoInfo} repoInfo_\r\n     * @param {boolean} forceRestClient\r\n     * @param {!FirebaseApp} app\r\n     */\r\n    function Repo(repoInfo_, forceRestClient, app) {\r\n        var _this = this;\r\n        this.repoInfo_ = repoInfo_;\r\n        this.app = app;\r\n        this.dataUpdateCount = 0;\r\n        this.statsListener_ = null;\r\n        this.eventQueue_ = new EventQueue();\r\n        this.nextWriteId_ = 1;\r\n        this.interceptServerDataCallback_ = null;\r\n        // A list of data pieces and paths to be set when this client disconnects.\r\n        this.onDisconnect_ = new SparseSnapshotTree();\r\n        /**\r\n         * TODO: This should be @private but it's used by test_access.js and internal.js\r\n         * @type {?PersistentConnection}\r\n         */\r\n        this.persistentConnection_ = null;\r\n        /** @type {!AuthTokenProvider} */\r\n        var authTokenProvider = new AuthTokenProvider(app);\r\n        this.stats_ = StatsManager.getCollection(repoInfo_);\r\n        if (forceRestClient || beingCrawled()) {\r\n            this.server_ = new ReadonlyRestClient(this.repoInfo_, this.onDataUpdate_.bind(this), authTokenProvider);\r\n            // Minor hack: Fire onConnect immediately, since there's no actual connection.\r\n            setTimeout(this.onConnectStatus_.bind(this, true), 0);\r\n        }\r\n        else {\r\n            var authOverride = app.options['databaseAuthVariableOverride'];\r\n            // Validate authOverride\r\n            if (typeof authOverride !== 'undefined' && authOverride !== null) {\r\n                if (typeof authOverride !== 'object') {\r\n                    throw new Error('Only objects are supported for option databaseAuthVariableOverride');\r\n                }\r\n                try {\r\n                    util.stringify(authOverride);\r\n                }\r\n                catch (e) {\r\n                    throw new Error('Invalid authOverride provided: ' + e);\r\n                }\r\n            }\r\n            this.persistentConnection_ = new PersistentConnection(this.repoInfo_, this.onDataUpdate_.bind(this), this.onConnectStatus_.bind(this), this.onServerInfoUpdate_.bind(this), authTokenProvider, authOverride);\r\n            this.server_ = this.persistentConnection_;\r\n        }\r\n        authTokenProvider.addTokenChangeListener(function (token) {\r\n            _this.server_.refreshAuthToken(token);\r\n        });\r\n        // In the case of multiple Repos for the same repoInfo (i.e. there are multiple Firebase.Contexts being used),\r\n        // we only want to create one StatsReporter.  As such, we'll report stats over the first Repo created.\r\n        this.statsReporter_ = StatsManager.getOrCreateReporter(repoInfo_, function () { return new StatsReporter(_this.stats_, _this.server_); });\r\n        this.transactions_init_();\r\n        // Used for .info.\r\n        this.infoData_ = new SnapshotHolder();\r\n        this.infoSyncTree_ = new SyncTree({\r\n            startListening: function (query, tag, currentHashFn, onComplete) {\r\n                var infoEvents = [];\r\n                var node = _this.infoData_.getNode(query.path);\r\n                // This is possibly a hack, but we have different semantics for .info endpoints. We don't raise null events\r\n                // on initial data...\r\n                if (!node.isEmpty()) {\r\n                    infoEvents = _this.infoSyncTree_.applyServerOverwrite(query.path, node);\r\n                    setTimeout(function () {\r\n                        onComplete('ok');\r\n                    }, 0);\r\n                }\r\n                return infoEvents;\r\n            },\r\n            stopListening: function () { }\r\n        });\r\n        this.updateInfo_('connected', false);\r\n        this.serverSyncTree_ = new SyncTree({\r\n            startListening: function (query, tag, currentHashFn, onComplete) {\r\n                _this.server_.listen(query, currentHashFn, tag, function (status, data) {\r\n                    var events = onComplete(status, data);\r\n                    _this.eventQueue_.raiseEventsForChangedPath(query.path, events);\r\n                });\r\n                // No synchronous events for network-backed sync trees\r\n                return [];\r\n            },\r\n            stopListening: function (query, tag) {\r\n                _this.server_.unlisten(query, tag);\r\n            }\r\n        });\r\n    }\r\n    /**\r\n     * @return {string}  The URL corresponding to the root of this Firebase.\r\n     */\r\n    Repo.prototype.toString = function () {\r\n        return ((this.repoInfo_.secure ? 'https://' : 'http://') + this.repoInfo_.host);\r\n    };\r\n    /**\r\n     * @return {!string} The namespace represented by the repo.\r\n     */\r\n    Repo.prototype.name = function () {\r\n        return this.repoInfo_.namespace;\r\n    };\r\n    /**\r\n     * @return {!number} The time in milliseconds, taking the server offset into account if we have one.\r\n     */\r\n    Repo.prototype.serverTime = function () {\r\n        var offsetNode = this.infoData_.getNode(new Path('.info/serverTimeOffset'));\r\n        var offset = offsetNode.val() || 0;\r\n        return new Date().getTime() + offset;\r\n    };\r\n    /**\r\n     * Generate ServerValues using some variables from the repo object.\r\n     * @return {!Object}\r\n     */\r\n    Repo.prototype.generateServerValues = function () {\r\n        return generateWithValues({\r\n            timestamp: this.serverTime()\r\n        });\r\n    };\r\n    /**\r\n     * Called by realtime when we get new messages from the server.\r\n     *\r\n     * @private\r\n     * @param {string} pathString\r\n     * @param {*} data\r\n     * @param {boolean} isMerge\r\n     * @param {?number} tag\r\n     */\r\n    Repo.prototype.onDataUpdate_ = function (pathString, data, isMerge, tag) {\r\n        // For testing.\r\n        this.dataUpdateCount++;\r\n        var path = new Path(pathString);\r\n        data = this.interceptServerDataCallback_\r\n            ? this.interceptServerDataCallback_(pathString, data)\r\n            : data;\r\n        var events = [];\r\n        if (tag) {\r\n            if (isMerge) {\r\n                var taggedChildren = util.map(data, function (raw) {\r\n                    return nodeFromJSON$1(raw);\r\n                });\r\n                events = this.serverSyncTree_.applyTaggedQueryMerge(path, taggedChildren, tag);\r\n            }\r\n            else {\r\n                var taggedSnap = nodeFromJSON$1(data);\r\n                events = this.serverSyncTree_.applyTaggedQueryOverwrite(path, taggedSnap, tag);\r\n            }\r\n        }\r\n        else if (isMerge) {\r\n            var changedChildren = util.map(data, function (raw) {\r\n                return nodeFromJSON$1(raw);\r\n            });\r\n            events = this.serverSyncTree_.applyServerMerge(path, changedChildren);\r\n        }\r\n        else {\r\n            var snap = nodeFromJSON$1(data);\r\n            events = this.serverSyncTree_.applyServerOverwrite(path, snap);\r\n        }\r\n        var affectedPath = path;\r\n        if (events.length > 0) {\r\n            // Since we have a listener outstanding for each transaction, receiving any events\r\n            // is a proxy for some change having occurred.\r\n            affectedPath = this.rerunTransactions_(path);\r\n        }\r\n        this.eventQueue_.raiseEventsForChangedPath(affectedPath, events);\r\n    };\r\n    /**\r\n     * TODO: This should be @private but it's used by test_access.js and internal.js\r\n     * @param {?function(!string, *):*} callback\r\n     * @private\r\n     */\r\n    Repo.prototype.interceptServerData_ = function (callback) {\r\n        this.interceptServerDataCallback_ = callback;\r\n    };\r\n    /**\r\n     * @param {!boolean} connectStatus\r\n     * @private\r\n     */\r\n    Repo.prototype.onConnectStatus_ = function (connectStatus) {\r\n        this.updateInfo_('connected', connectStatus);\r\n        if (connectStatus === false) {\r\n            this.runOnDisconnectEvents_();\r\n        }\r\n    };\r\n    /**\r\n     * @param {!Object} updates\r\n     * @private\r\n     */\r\n    Repo.prototype.onServerInfoUpdate_ = function (updates) {\r\n        var _this = this;\r\n        each(updates, function (value, key) {\r\n            _this.updateInfo_(key, value);\r\n        });\r\n    };\r\n    /**\r\n     *\r\n     * @param {!string} pathString\r\n     * @param {*} value\r\n     * @private\r\n     */\r\n    Repo.prototype.updateInfo_ = function (pathString, value) {\r\n        var path = new Path('/.info/' + pathString);\r\n        var newNode = nodeFromJSON$1(value);\r\n        this.infoData_.updateSnapshot(path, newNode);\r\n        var events = this.infoSyncTree_.applyServerOverwrite(path, newNode);\r\n        this.eventQueue_.raiseEventsForChangedPath(path, events);\r\n    };\r\n    /**\r\n     * @return {!number}\r\n     * @private\r\n     */\r\n    Repo.prototype.getNextWriteId_ = function () {\r\n        return this.nextWriteId_++;\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {*} newVal\r\n     * @param {number|string|null} newPriority\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.setWithPriority = function (path, newVal, newPriority, onComplete) {\r\n        var _this = this;\r\n        this.log_('set', {\r\n            path: path.toString(),\r\n            value: newVal,\r\n            priority: newPriority\r\n        });\r\n        // TODO: Optimize this behavior to either (a) store flag to skip resolving where possible and / or\r\n        // (b) store unresolved paths on JSON parse\r\n        var serverValues = this.generateServerValues();\r\n        var newNodeUnresolved = nodeFromJSON$1(newVal, newPriority);\r\n        var newNode = resolveDeferredValueSnapshot(newNodeUnresolved, serverValues);\r\n        var writeId = this.getNextWriteId_();\r\n        var events = this.serverSyncTree_.applyUserOverwrite(path, newNode, writeId, true);\r\n        this.eventQueue_.queueEvents(events);\r\n        this.server_.put(path.toString(), newNodeUnresolved.val(/*export=*/ true), function (status, errorReason) {\r\n            var success = status === 'ok';\r\n            if (!success) {\r\n                warn('set at ' + path + ' failed: ' + status);\r\n            }\r\n            var clearEvents = _this.serverSyncTree_.ackUserWrite(writeId, !success);\r\n            _this.eventQueue_.raiseEventsForChangedPath(path, clearEvents);\r\n            _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n        });\r\n        var affectedPath = this.abortTransactions_(path);\r\n        this.rerunTransactions_(affectedPath);\r\n        // We queued the events above, so just flush the queue here\r\n        this.eventQueue_.raiseEventsForChangedPath(affectedPath, []);\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {!Object} childrenToMerge\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.update = function (path, childrenToMerge, onComplete) {\r\n        var _this = this;\r\n        this.log_('update', { path: path.toString(), value: childrenToMerge });\r\n        // Start with our existing data and merge each child into it.\r\n        var empty = true;\r\n        var serverValues = this.generateServerValues();\r\n        var changedChildren = {};\r\n        util.forEach(childrenToMerge, function (changedKey, changedValue) {\r\n            empty = false;\r\n            var newNodeUnresolved = nodeFromJSON$1(changedValue);\r\n            changedChildren[changedKey] = resolveDeferredValueSnapshot(newNodeUnresolved, serverValues);\r\n        });\r\n        if (!empty) {\r\n            var writeId_1 = this.getNextWriteId_();\r\n            var events = this.serverSyncTree_.applyUserMerge(path, changedChildren, writeId_1);\r\n            this.eventQueue_.queueEvents(events);\r\n            this.server_.merge(path.toString(), childrenToMerge, function (status, errorReason) {\r\n                var success = status === 'ok';\r\n                if (!success) {\r\n                    warn('update at ' + path + ' failed: ' + status);\r\n                }\r\n                var clearEvents = _this.serverSyncTree_.ackUserWrite(writeId_1, !success);\r\n                var affectedPath = clearEvents.length > 0 ? _this.rerunTransactions_(path) : path;\r\n                _this.eventQueue_.raiseEventsForChangedPath(affectedPath, clearEvents);\r\n                _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n            });\r\n            util.forEach(childrenToMerge, function (changedPath) {\r\n                var affectedPath = _this.abortTransactions_(path.child(changedPath));\r\n                _this.rerunTransactions_(affectedPath);\r\n            });\r\n            // We queued the events above, so just flush the queue here\r\n            this.eventQueue_.raiseEventsForChangedPath(path, []);\r\n        }\r\n        else {\r\n            log(\"update() called with empty data.  Don't do anything.\");\r\n            this.callOnCompleteCallback(onComplete, 'ok');\r\n        }\r\n    };\r\n    /**\r\n     * Applies all of the changes stored up in the onDisconnect_ tree.\r\n     * @private\r\n     */\r\n    Repo.prototype.runOnDisconnectEvents_ = function () {\r\n        var _this = this;\r\n        this.log_('onDisconnectEvents');\r\n        var serverValues = this.generateServerValues();\r\n        var resolvedOnDisconnectTree = resolveDeferredValueTree(this.onDisconnect_, serverValues);\r\n        var events = [];\r\n        resolvedOnDisconnectTree.forEachTree(Path.Empty, function (path, snap) {\r\n            events = events.concat(_this.serverSyncTree_.applyServerOverwrite(path, snap));\r\n            var affectedPath = _this.abortTransactions_(path);\r\n            _this.rerunTransactions_(affectedPath);\r\n        });\r\n        this.onDisconnect_ = new SparseSnapshotTree();\r\n        this.eventQueue_.raiseEventsForChangedPath(Path.Empty, events);\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.onDisconnectCancel = function (path, onComplete) {\r\n        var _this = this;\r\n        this.server_.onDisconnectCancel(path.toString(), function (status, errorReason) {\r\n            if (status === 'ok') {\r\n                _this.onDisconnect_.forget(path);\r\n            }\r\n            _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {*} value\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.onDisconnectSet = function (path, value, onComplete) {\r\n        var _this = this;\r\n        var newNode = nodeFromJSON$1(value);\r\n        this.server_.onDisconnectPut(path.toString(), newNode.val(/*export=*/ true), function (status, errorReason) {\r\n            if (status === 'ok') {\r\n                _this.onDisconnect_.remember(path, newNode);\r\n            }\r\n            _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {*} value\r\n     * @param {*} priority\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.onDisconnectSetWithPriority = function (path, value, priority, onComplete) {\r\n        var _this = this;\r\n        var newNode = nodeFromJSON$1(value, priority);\r\n        this.server_.onDisconnectPut(path.toString(), newNode.val(/*export=*/ true), function (status, errorReason) {\r\n            if (status === 'ok') {\r\n                _this.onDisconnect_.remember(path, newNode);\r\n            }\r\n            _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Path} path\r\n     * @param {*} childrenToMerge\r\n     * @param {?function(?Error, *=)} onComplete\r\n     */\r\n    Repo.prototype.onDisconnectUpdate = function (path, childrenToMerge, onComplete) {\r\n        var _this = this;\r\n        if (util.isEmpty(childrenToMerge)) {\r\n            log(\"onDisconnect().update() called with empty data.  Don't do anything.\");\r\n            this.callOnCompleteCallback(onComplete, 'ok');\r\n            return;\r\n        }\r\n        this.server_.onDisconnectMerge(path.toString(), childrenToMerge, function (status, errorReason) {\r\n            if (status === 'ok') {\r\n                util.forEach(childrenToMerge, function (childName, childNode) {\r\n                    var newChildNode = nodeFromJSON$1(childNode);\r\n                    _this.onDisconnect_.remember(path.child(childName), newChildNode);\r\n                });\r\n            }\r\n            _this.callOnCompleteCallback(onComplete, status, errorReason);\r\n        });\r\n    };\r\n    /**\r\n     * @param {!Query} query\r\n     * @param {!EventRegistration} eventRegistration\r\n     */\r\n    Repo.prototype.addEventCallbackForQuery = function (query, eventRegistration) {\r\n        var events;\r\n        if (query.path.getFront() === '.info') {\r\n            events = this.infoSyncTree_.addEventRegistration(query, eventRegistration);\r\n        }\r\n        else {\r\n            events = this.serverSyncTree_.addEventRegistration(query, eventRegistration);\r\n        }\r\n        this.eventQueue_.raiseEventsAtPath(query.path, events);\r\n    };\r\n    /**\r\n     * @param {!Query} query\r\n     * @param {?EventRegistration} eventRegistration\r\n     */\r\n    Repo.prototype.removeEventCallbackForQuery = function (query, eventRegistration) {\r\n        // These are guaranteed not to raise events, since we're not passing in a cancelError. However, we can future-proof\r\n        // a little bit by handling the return values anyways.\r\n        var events;\r\n        if (query.path.getFront() === '.info') {\r\n            events = this.infoSyncTree_.removeEventRegistration(query, eventRegistration);\r\n        }\r\n        else {\r\n            events = this.serverSyncTree_.removeEventRegistration(query, eventRegistration);\r\n        }\r\n        this.eventQueue_.raiseEventsAtPath(query.path, events);\r\n    };\r\n    Repo.prototype.interrupt = function () {\r\n        if (this.persistentConnection_) {\r\n            this.persistentConnection_.interrupt(INTERRUPT_REASON);\r\n        }\r\n    };\r\n    Repo.prototype.resume = function () {\r\n        if (this.persistentConnection_) {\r\n            this.persistentConnection_.resume(INTERRUPT_REASON);\r\n        }\r\n    };\r\n    Repo.prototype.stats = function (showDelta) {\r\n        if (showDelta === void 0) { showDelta = false; }\r\n        if (typeof console === 'undefined')\r\n            return;\r\n        var stats;\r\n        if (showDelta) {\r\n            if (!this.statsListener_)\r\n                this.statsListener_ = new StatsListener(this.stats_);\r\n            stats = this.statsListener_.get();\r\n        }\r\n        else {\r\n            stats = this.stats_.get();\r\n        }\r\n        var longestName = Object.keys(stats).reduce(function (previousValue, currentValue) {\r\n            return Math.max(currentValue.length, previousValue);\r\n        }, 0);\r\n        util.forEach(stats, function (stat, value) {\r\n            // pad stat names to be the same length (plus 2 extra spaces).\r\n            for (var i = stat.length; i < longestName + 2; i++)\r\n                stat += ' ';\r\n            console.log(stat + value);\r\n        });\r\n    };\r\n    Repo.prototype.statsIncrementCounter = function (metric) {\r\n        this.stats_.incrementCounter(metric);\r\n        this.statsReporter_.includeStat(metric);\r\n    };\r\n    /**\r\n     * @param {...*} var_args\r\n     * @private\r\n     */\r\n    Repo.prototype.log_ = function () {\r\n        var var_args = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            var_args[_i] = arguments[_i];\r\n        }\r\n        var prefix = '';\r\n        if (this.persistentConnection_) {\r\n            prefix = this.persistentConnection_.id + ':';\r\n        }\r\n        log.apply(void 0, [prefix].concat(var_args));\r\n    };\r\n    /**\r\n     * @param {?function(?Error, *=)} callback\r\n     * @param {!string} status\r\n     * @param {?string=} errorReason\r\n     */\r\n    Repo.prototype.callOnCompleteCallback = function (callback, status, errorReason) {\r\n        if (callback) {\r\n            exceptionGuard(function () {\r\n                if (status == 'ok') {\r\n                    callback(null);\r\n                }\r\n                else {\r\n                    var code = (status || 'error').toUpperCase();\r\n                    var message = code;\r\n                    if (errorReason)\r\n                        message += ': ' + errorReason;\r\n                    var error$$1 = new Error(message);\r\n                    error$$1.code = code;\r\n                    callback(error$$1);\r\n                }\r\n            });\r\n        }\r\n    };\r\n    Object.defineProperty(Repo.prototype, \"database\", {\r\n        get: function () {\r\n            return this.__database || (this.__database = new Database(this));\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return Repo;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Filters nodes by range and uses an IndexFilter to track any changes after filtering the node\r\n *\r\n * @constructor\r\n * @implements {NodeFilter}\r\n */\r\nvar RangedFilter = /** @class */ (function () {\r\n    /**\r\n     * @param {!QueryParams} params\r\n     */\r\n    function RangedFilter(params) {\r\n        this.indexedFilter_ = new IndexedFilter(params.getIndex());\r\n        this.index_ = params.getIndex();\r\n        this.startPost_ = RangedFilter.getStartPost_(params);\r\n        this.endPost_ = RangedFilter.getEndPost_(params);\r\n    }\r\n    /**\r\n     * @return {!NamedNode}\r\n     */\r\n    RangedFilter.prototype.getStartPost = function () {\r\n        return this.startPost_;\r\n    };\r\n    /**\r\n     * @return {!NamedNode}\r\n     */\r\n    RangedFilter.prototype.getEndPost = function () {\r\n        return this.endPost_;\r\n    };\r\n    /**\r\n     * @param {!NamedNode} node\r\n     * @return {boolean}\r\n     */\r\n    RangedFilter.prototype.matches = function (node) {\r\n        return (this.index_.compare(this.getStartPost(), node) <= 0 &&\r\n            this.index_.compare(node, this.getEndPost()) <= 0);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n        if (!this.matches(new NamedNode(key, newChild))) {\r\n            newChild = ChildrenNode.EMPTY_NODE;\r\n        }\r\n        return this.indexedFilter_.updateChild(snap, key, newChild, affectedPath, source, optChangeAccumulator);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n        if (newSnap.isLeafNode()) {\r\n            // Make sure we have a children node with the correct index, not a leaf node;\r\n            newSnap = ChildrenNode.EMPTY_NODE;\r\n        }\r\n        var filtered = newSnap.withIndex(this.index_);\r\n        // Don't support priorities on queries\r\n        filtered = filtered.updatePriority(ChildrenNode.EMPTY_NODE);\r\n        var self = this;\r\n        newSnap.forEachChild(PRIORITY_INDEX, function (key, childNode) {\r\n            if (!self.matches(new NamedNode(key, childNode))) {\r\n                filtered = filtered.updateImmediateChild(key, ChildrenNode.EMPTY_NODE);\r\n            }\r\n        });\r\n        return this.indexedFilter_.updateFullNode(oldSnap, filtered, optChangeAccumulator);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n        // Don't support priorities on queries\r\n        return oldSnap;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.filtersNodes = function () {\r\n        return true;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.getIndexedFilter = function () {\r\n        return this.indexedFilter_;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    RangedFilter.prototype.getIndex = function () {\r\n        return this.index_;\r\n    };\r\n    /**\r\n     * @param {!QueryParams} params\r\n     * @return {!NamedNode}\r\n     * @private\r\n     */\r\n    RangedFilter.getStartPost_ = function (params) {\r\n        if (params.hasStart()) {\r\n            var startName = params.getIndexStartName();\r\n            return params.getIndex().makePost(params.getIndexStartValue(), startName);\r\n        }\r\n        else {\r\n            return params.getIndex().minPost();\r\n        }\r\n    };\r\n    /**\r\n     * @param {!QueryParams} params\r\n     * @return {!NamedNode}\r\n     * @private\r\n     */\r\n    RangedFilter.getEndPost_ = function (params) {\r\n        if (params.hasEnd()) {\r\n            var endName = params.getIndexEndName();\r\n            return params.getIndex().makePost(params.getIndexEndValue(), endName);\r\n        }\r\n        else {\r\n            return params.getIndex().maxPost();\r\n        }\r\n    };\r\n    return RangedFilter;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Applies a limit and a range to a node and uses RangedFilter to do the heavy lifting where possible\r\n *\r\n * @constructor\r\n * @implements {NodeFilter}\r\n */\r\nvar LimitedFilter = /** @class */ (function () {\r\n    /**\r\n     * @param {!QueryParams} params\r\n     */\r\n    function LimitedFilter(params) {\r\n        this.rangedFilter_ = new RangedFilter(params);\r\n        this.index_ = params.getIndex();\r\n        this.limit_ = params.getLimit();\r\n        this.reverse_ = !params.isViewFromLeft();\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.updateChild = function (snap, key, newChild, affectedPath, source, optChangeAccumulator) {\r\n        if (!this.rangedFilter_.matches(new NamedNode(key, newChild))) {\r\n            newChild = ChildrenNode.EMPTY_NODE;\r\n        }\r\n        if (snap.getImmediateChild(key).equals(newChild)) {\r\n            // No change\r\n            return snap;\r\n        }\r\n        else if (snap.numChildren() < this.limit_) {\r\n            return this.rangedFilter_\r\n                .getIndexedFilter()\r\n                .updateChild(snap, key, newChild, affectedPath, source, optChangeAccumulator);\r\n        }\r\n        else {\r\n            return this.fullLimitUpdateChild_(snap, key, newChild, source, optChangeAccumulator);\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.updateFullNode = function (oldSnap, newSnap, optChangeAccumulator) {\r\n        var filtered;\r\n        if (newSnap.isLeafNode() || newSnap.isEmpty()) {\r\n            // Make sure we have a children node with the correct index, not a leaf node;\r\n            filtered = ChildrenNode.EMPTY_NODE.withIndex(this.index_);\r\n        }\r\n        else {\r\n            if (this.limit_ * 2 < newSnap.numChildren() &&\r\n                newSnap.isIndexed(this.index_)) {\r\n                // Easier to build up a snapshot, since what we're given has more than twice the elements we want\r\n                filtered = ChildrenNode.EMPTY_NODE.withIndex(this.index_);\r\n                // anchor to the startPost, endPost, or last element as appropriate\r\n                var iterator = void 0;\r\n                if (this.reverse_) {\r\n                    iterator = newSnap.getReverseIteratorFrom(this.rangedFilter_.getEndPost(), this.index_);\r\n                }\r\n                else {\r\n                    iterator = newSnap.getIteratorFrom(this.rangedFilter_.getStartPost(), this.index_);\r\n                }\r\n                var count = 0;\r\n                while (iterator.hasNext() && count < this.limit_) {\r\n                    var next = iterator.getNext();\r\n                    var inRange = void 0;\r\n                    if (this.reverse_) {\r\n                        inRange =\r\n                            this.index_.compare(this.rangedFilter_.getStartPost(), next) <= 0;\r\n                    }\r\n                    else {\r\n                        inRange =\r\n                            this.index_.compare(next, this.rangedFilter_.getEndPost()) <= 0;\r\n                    }\r\n                    if (inRange) {\r\n                        filtered = filtered.updateImmediateChild(next.name, next.node);\r\n                        count++;\r\n                    }\r\n                    else {\r\n                        // if we have reached the end post, we cannot keep adding elemments\r\n                        break;\r\n                    }\r\n                }\r\n            }\r\n            else {\r\n                // The snap contains less than twice the limit. Faster to delete from the snap than build up a new one\r\n                filtered = newSnap.withIndex(this.index_);\r\n                // Don't support priorities on queries\r\n                filtered = filtered.updatePriority(ChildrenNode.EMPTY_NODE);\r\n                var startPost = void 0;\r\n                var endPost = void 0;\r\n                var cmp = void 0;\r\n                var iterator = void 0;\r\n                if (this.reverse_) {\r\n                    iterator = filtered.getReverseIterator(this.index_);\r\n                    startPost = this.rangedFilter_.getEndPost();\r\n                    endPost = this.rangedFilter_.getStartPost();\r\n                    var indexCompare_1 = this.index_.getCompare();\r\n                    cmp = function (a, b) { return indexCompare_1(b, a); };\r\n                }\r\n                else {\r\n                    iterator = filtered.getIterator(this.index_);\r\n                    startPost = this.rangedFilter_.getStartPost();\r\n                    endPost = this.rangedFilter_.getEndPost();\r\n                    cmp = this.index_.getCompare();\r\n                }\r\n                var count = 0;\r\n                var foundStartPost = false;\r\n                while (iterator.hasNext()) {\r\n                    var next = iterator.getNext();\r\n                    if (!foundStartPost && cmp(startPost, next) <= 0) {\r\n                        // start adding\r\n                        foundStartPost = true;\r\n                    }\r\n                    var inRange = foundStartPost && count < this.limit_ && cmp(next, endPost) <= 0;\r\n                    if (inRange) {\r\n                        count++;\r\n                    }\r\n                    else {\r\n                        filtered = filtered.updateImmediateChild(next.name, ChildrenNode.EMPTY_NODE);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        return this.rangedFilter_\r\n            .getIndexedFilter()\r\n            .updateFullNode(oldSnap, filtered, optChangeAccumulator);\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.updatePriority = function (oldSnap, newPriority) {\r\n        // Don't support priorities on queries\r\n        return oldSnap;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.filtersNodes = function () {\r\n        return true;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.getIndexedFilter = function () {\r\n        return this.rangedFilter_.getIndexedFilter();\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LimitedFilter.prototype.getIndex = function () {\r\n        return this.index_;\r\n    };\r\n    /**\r\n     * @param {!Node} snap\r\n     * @param {string} childKey\r\n     * @param {!Node} childSnap\r\n     * @param {!CompleteChildSource} source\r\n     * @param {?ChildChangeAccumulator} changeAccumulator\r\n     * @return {!Node}\r\n     * @private\r\n     */\r\n    LimitedFilter.prototype.fullLimitUpdateChild_ = function (snap, childKey, childSnap, source, changeAccumulator) {\r\n        // TODO: rename all cache stuff etc to general snap terminology\r\n        var cmp;\r\n        if (this.reverse_) {\r\n            var indexCmp_1 = this.index_.getCompare();\r\n            cmp = function (a, b) { return indexCmp_1(b, a); };\r\n        }\r\n        else {\r\n            cmp = this.index_.getCompare();\r\n        }\r\n        var oldEventCache = snap;\r\n        util.assert(oldEventCache.numChildren() == this.limit_, '');\r\n        var newChildNamedNode = new NamedNode(childKey, childSnap);\r\n        var windowBoundary = this.reverse_\r\n            ? oldEventCache.getFirstChild(this.index_)\r\n            : oldEventCache.getLastChild(this.index_);\r\n        var inRange = this.rangedFilter_.matches(newChildNamedNode);\r\n        if (oldEventCache.hasChild(childKey)) {\r\n            var oldChildSnap = oldEventCache.getImmediateChild(childKey);\r\n            var nextChild = source.getChildAfterChild(this.index_, windowBoundary, this.reverse_);\r\n            while (nextChild != null &&\r\n                (nextChild.name == childKey || oldEventCache.hasChild(nextChild.name))) {\r\n                // There is a weird edge case where a node is updated as part of a merge in the write tree, but hasn't\r\n                // been applied to the limited filter yet. Ignore this next child which will be updated later in\r\n                // the limited filter...\r\n                nextChild = source.getChildAfterChild(this.index_, nextChild, this.reverse_);\r\n            }\r\n            var compareNext = nextChild == null ? 1 : cmp(nextChild, newChildNamedNode);\r\n            var remainsInWindow = inRange && !childSnap.isEmpty() && compareNext >= 0;\r\n            if (remainsInWindow) {\r\n                if (changeAccumulator != null) {\r\n                    changeAccumulator.trackChildChange(Change.childChangedChange(childKey, childSnap, oldChildSnap));\r\n                }\r\n                return oldEventCache.updateImmediateChild(childKey, childSnap);\r\n            }\r\n            else {\r\n                if (changeAccumulator != null) {\r\n                    changeAccumulator.trackChildChange(Change.childRemovedChange(childKey, oldChildSnap));\r\n                }\r\n                var newEventCache = oldEventCache.updateImmediateChild(childKey, ChildrenNode.EMPTY_NODE);\r\n                var nextChildInRange = nextChild != null && this.rangedFilter_.matches(nextChild);\r\n                if (nextChildInRange) {\r\n                    if (changeAccumulator != null) {\r\n                        changeAccumulator.trackChildChange(Change.childAddedChange(nextChild.name, nextChild.node));\r\n                    }\r\n                    return newEventCache.updateImmediateChild(nextChild.name, nextChild.node);\r\n                }\r\n                else {\r\n                    return newEventCache;\r\n                }\r\n            }\r\n        }\r\n        else if (childSnap.isEmpty()) {\r\n            // we're deleting a node, but it was not in the window, so ignore it\r\n            return snap;\r\n        }\r\n        else if (inRange) {\r\n            if (cmp(windowBoundary, newChildNamedNode) >= 0) {\r\n                if (changeAccumulator != null) {\r\n                    changeAccumulator.trackChildChange(Change.childRemovedChange(windowBoundary.name, windowBoundary.node));\r\n                    changeAccumulator.trackChildChange(Change.childAddedChange(childKey, childSnap));\r\n                }\r\n                return oldEventCache\r\n                    .updateImmediateChild(childKey, childSnap)\r\n                    .updateImmediateChild(windowBoundary.name, ChildrenNode.EMPTY_NODE);\r\n            }\r\n            else {\r\n                return snap;\r\n            }\r\n        }\r\n        else {\r\n            return snap;\r\n        }\r\n    };\r\n    return LimitedFilter;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class is an immutable-from-the-public-api struct containing a set of query parameters defining a\r\n * range to be returned for a particular location. It is assumed that validation of parameters is done at the\r\n * user-facing API level, so it is not done here.\r\n * @constructor\r\n */\r\nvar QueryParams = /** @class */ (function () {\r\n    function QueryParams() {\r\n        this.limitSet_ = false;\r\n        this.startSet_ = false;\r\n        this.startNameSet_ = false;\r\n        this.endSet_ = false;\r\n        this.endNameSet_ = false;\r\n        this.limit_ = 0;\r\n        this.viewFrom_ = '';\r\n        this.indexStartValue_ = null;\r\n        this.indexStartName_ = '';\r\n        this.indexEndValue_ = null;\r\n        this.indexEndName_ = '';\r\n        this.index_ = PRIORITY_INDEX;\r\n    }\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    QueryParams.prototype.hasStart = function () {\r\n        return this.startSet_;\r\n    };\r\n    /**\r\n     * @return {boolean} True if it would return from left.\r\n     */\r\n    QueryParams.prototype.isViewFromLeft = function () {\r\n        if (this.viewFrom_ === '') {\r\n            // limit(), rather than limitToFirst or limitToLast was called.\r\n            // This means that only one of startSet_ and endSet_ is true. Use them\r\n            // to calculate which side of the view to anchor to. If neither is set,\r\n            // anchor to the end.\r\n            return this.startSet_;\r\n        }\r\n        else {\r\n            return (this.viewFrom_ === QueryParams.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_LEFT);\r\n        }\r\n    };\r\n    /**\r\n     * Only valid to call if hasStart() returns true\r\n     * @return {*}\r\n     */\r\n    QueryParams.prototype.getIndexStartValue = function () {\r\n        util.assert(this.startSet_, 'Only valid if start has been set');\r\n        return this.indexStartValue_;\r\n    };\r\n    /**\r\n     * Only valid to call if hasStart() returns true.\r\n     * Returns the starting key name for the range defined by these query parameters\r\n     * @return {!string}\r\n     */\r\n    QueryParams.prototype.getIndexStartName = function () {\r\n        util.assert(this.startSet_, 'Only valid if start has been set');\r\n        if (this.startNameSet_) {\r\n            return this.indexStartName_;\r\n        }\r\n        else {\r\n            return MIN_NAME;\r\n        }\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    QueryParams.prototype.hasEnd = function () {\r\n        return this.endSet_;\r\n    };\r\n    /**\r\n     * Only valid to call if hasEnd() returns true.\r\n     * @return {*}\r\n     */\r\n    QueryParams.prototype.getIndexEndValue = function () {\r\n        util.assert(this.endSet_, 'Only valid if end has been set');\r\n        return this.indexEndValue_;\r\n    };\r\n    /**\r\n     * Only valid to call if hasEnd() returns true.\r\n     * Returns the end key name for the range defined by these query parameters\r\n     * @return {!string}\r\n     */\r\n    QueryParams.prototype.getIndexEndName = function () {\r\n        util.assert(this.endSet_, 'Only valid if end has been set');\r\n        if (this.endNameSet_) {\r\n            return this.indexEndName_;\r\n        }\r\n        else {\r\n            return MAX_NAME;\r\n        }\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    QueryParams.prototype.hasLimit = function () {\r\n        return this.limitSet_;\r\n    };\r\n    /**\r\n     * @return {boolean} True if a limit has been set and it has been explicitly anchored\r\n     */\r\n    QueryParams.prototype.hasAnchoredLimit = function () {\r\n        return this.limitSet_ && this.viewFrom_ !== '';\r\n    };\r\n    /**\r\n     * Only valid to call if hasLimit() returns true\r\n     * @return {!number}\r\n     */\r\n    QueryParams.prototype.getLimit = function () {\r\n        util.assert(this.limitSet_, 'Only valid if limit has been set');\r\n        return this.limit_;\r\n    };\r\n    /**\r\n     * @return {!Index}\r\n     */\r\n    QueryParams.prototype.getIndex = function () {\r\n        return this.index_;\r\n    };\r\n    /**\r\n     * @return {!QueryParams}\r\n     * @private\r\n     */\r\n    QueryParams.prototype.copy_ = function () {\r\n        var copy = new QueryParams();\r\n        copy.limitSet_ = this.limitSet_;\r\n        copy.limit_ = this.limit_;\r\n        copy.startSet_ = this.startSet_;\r\n        copy.indexStartValue_ = this.indexStartValue_;\r\n        copy.startNameSet_ = this.startNameSet_;\r\n        copy.indexStartName_ = this.indexStartName_;\r\n        copy.endSet_ = this.endSet_;\r\n        copy.indexEndValue_ = this.indexEndValue_;\r\n        copy.endNameSet_ = this.endNameSet_;\r\n        copy.indexEndName_ = this.indexEndName_;\r\n        copy.index_ = this.index_;\r\n        copy.viewFrom_ = this.viewFrom_;\r\n        return copy;\r\n    };\r\n    /**\r\n     * @param {!number} newLimit\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.limit = function (newLimit) {\r\n        var newParams = this.copy_();\r\n        newParams.limitSet_ = true;\r\n        newParams.limit_ = newLimit;\r\n        newParams.viewFrom_ = '';\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @param {!number} newLimit\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.limitToFirst = function (newLimit) {\r\n        var newParams = this.copy_();\r\n        newParams.limitSet_ = true;\r\n        newParams.limit_ = newLimit;\r\n        newParams.viewFrom_ = QueryParams.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_LEFT;\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @param {!number} newLimit\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.limitToLast = function (newLimit) {\r\n        var newParams = this.copy_();\r\n        newParams.limitSet_ = true;\r\n        newParams.limit_ = newLimit;\r\n        newParams.viewFrom_ = QueryParams.WIRE_PROTOCOL_CONSTANTS_.VIEW_FROM_RIGHT;\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @param {*} indexValue\r\n     * @param {?string=} key\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.startAt = function (indexValue, key) {\r\n        var newParams = this.copy_();\r\n        newParams.startSet_ = true;\r\n        if (!(indexValue !== undefined)) {\r\n            indexValue = null;\r\n        }\r\n        newParams.indexStartValue_ = indexValue;\r\n        if (key != null) {\r\n            newParams.startNameSet_ = true;\r\n            newParams.indexStartName_ = key;\r\n        }\r\n        else {\r\n            newParams.startNameSet_ = false;\r\n            newParams.indexStartName_ = '';\r\n        }\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @param {*} indexValue\r\n     * @param {?string=} key\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.endAt = function (indexValue, key) {\r\n        var newParams = this.copy_();\r\n        newParams.endSet_ = true;\r\n        if (!(indexValue !== undefined)) {\r\n            indexValue = null;\r\n        }\r\n        newParams.indexEndValue_ = indexValue;\r\n        if (key !== undefined) {\r\n            newParams.endNameSet_ = true;\r\n            newParams.indexEndName_ = key;\r\n        }\r\n        else {\r\n            newParams.endNameSet_ = false;\r\n            newParams.indexEndName_ = '';\r\n        }\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @param {!Index} index\r\n     * @return {!QueryParams}\r\n     */\r\n    QueryParams.prototype.orderBy = function (index) {\r\n        var newParams = this.copy_();\r\n        newParams.index_ = index;\r\n        return newParams;\r\n    };\r\n    /**\r\n     * @return {!Object}\r\n     */\r\n    QueryParams.prototype.getQueryObject = function () {\r\n        var WIRE_PROTOCOL_CONSTANTS = QueryParams.WIRE_PROTOCOL_CONSTANTS_;\r\n        var obj = {};\r\n        if (this.startSet_) {\r\n            obj[WIRE_PROTOCOL_CONSTANTS.INDEX_START_VALUE] = this.indexStartValue_;\r\n            if (this.startNameSet_) {\r\n                obj[WIRE_PROTOCOL_CONSTANTS.INDEX_START_NAME] = this.indexStartName_;\r\n            }\r\n        }\r\n        if (this.endSet_) {\r\n            obj[WIRE_PROTOCOL_CONSTANTS.INDEX_END_VALUE] = this.indexEndValue_;\r\n            if (this.endNameSet_) {\r\n                obj[WIRE_PROTOCOL_CONSTANTS.INDEX_END_NAME] = this.indexEndName_;\r\n            }\r\n        }\r\n        if (this.limitSet_) {\r\n            obj[WIRE_PROTOCOL_CONSTANTS.LIMIT] = this.limit_;\r\n            var viewFrom = this.viewFrom_;\r\n            if (viewFrom === '') {\r\n                if (this.isViewFromLeft()) {\r\n                    viewFrom = WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_LEFT;\r\n                }\r\n                else {\r\n                    viewFrom = WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_RIGHT;\r\n                }\r\n            }\r\n            obj[WIRE_PROTOCOL_CONSTANTS.VIEW_FROM] = viewFrom;\r\n        }\r\n        // For now, priority index is the default, so we only specify if it's some other index\r\n        if (this.index_ !== PRIORITY_INDEX) {\r\n            obj[WIRE_PROTOCOL_CONSTANTS.INDEX] = this.index_.toString();\r\n        }\r\n        return obj;\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    QueryParams.prototype.loadsAllData = function () {\r\n        return !(this.startSet_ || this.endSet_ || this.limitSet_);\r\n    };\r\n    /**\r\n     * @return {boolean}\r\n     */\r\n    QueryParams.prototype.isDefault = function () {\r\n        return this.loadsAllData() && this.index_ == PRIORITY_INDEX;\r\n    };\r\n    /**\r\n     * @return {!NodeFilter}\r\n     */\r\n    QueryParams.prototype.getNodeFilter = function () {\r\n        if (this.loadsAllData()) {\r\n            return new IndexedFilter(this.getIndex());\r\n        }\r\n        else if (this.hasLimit()) {\r\n            return new LimitedFilter(this);\r\n        }\r\n        else {\r\n            return new RangedFilter(this);\r\n        }\r\n    };\r\n    /**\r\n     * Returns a set of REST query string parameters representing this query.\r\n     *\r\n     * @return {!Object.<string,*>} query string parameters\r\n     */\r\n    QueryParams.prototype.toRestQueryStringParameters = function () {\r\n        var REST_CONSTANTS = QueryParams.REST_QUERY_CONSTANTS_;\r\n        var qs = {};\r\n        if (this.isDefault()) {\r\n            return qs;\r\n        }\r\n        var orderBy;\r\n        if (this.index_ === PRIORITY_INDEX) {\r\n            orderBy = REST_CONSTANTS.PRIORITY_INDEX;\r\n        }\r\n        else if (this.index_ === VALUE_INDEX) {\r\n            orderBy = REST_CONSTANTS.VALUE_INDEX;\r\n        }\r\n        else if (this.index_ === KEY_INDEX) {\r\n            orderBy = REST_CONSTANTS.KEY_INDEX;\r\n        }\r\n        else {\r\n            util.assert(this.index_ instanceof PathIndex, 'Unrecognized index type!');\r\n            orderBy = this.index_.toString();\r\n        }\r\n        qs[REST_CONSTANTS.ORDER_BY] = util.stringify(orderBy);\r\n        if (this.startSet_) {\r\n            qs[REST_CONSTANTS.START_AT] = util.stringify(this.indexStartValue_);\r\n            if (this.startNameSet_) {\r\n                qs[REST_CONSTANTS.START_AT] += ',' + util.stringify(this.indexStartName_);\r\n            }\r\n        }\r\n        if (this.endSet_) {\r\n            qs[REST_CONSTANTS.END_AT] = util.stringify(this.indexEndValue_);\r\n            if (this.endNameSet_) {\r\n                qs[REST_CONSTANTS.END_AT] += ',' + util.stringify(this.indexEndName_);\r\n            }\r\n        }\r\n        if (this.limitSet_) {\r\n            if (this.isViewFromLeft()) {\r\n                qs[REST_CONSTANTS.LIMIT_TO_FIRST] = this.limit_;\r\n            }\r\n            else {\r\n                qs[REST_CONSTANTS.LIMIT_TO_LAST] = this.limit_;\r\n            }\r\n        }\r\n        return qs;\r\n    };\r\n    /**\r\n     * Wire Protocol Constants\r\n     * @const\r\n     * @enum {string}\r\n     * @private\r\n     */\r\n    QueryParams.WIRE_PROTOCOL_CONSTANTS_ = {\r\n        INDEX_START_VALUE: 'sp',\r\n        INDEX_START_NAME: 'sn',\r\n        INDEX_END_VALUE: 'ep',\r\n        INDEX_END_NAME: 'en',\r\n        LIMIT: 'l',\r\n        VIEW_FROM: 'vf',\r\n        VIEW_FROM_LEFT: 'l',\r\n        VIEW_FROM_RIGHT: 'r',\r\n        INDEX: 'i'\r\n    };\r\n    /**\r\n     * REST Query Constants\r\n     * @const\r\n     * @enum {string}\r\n     * @private\r\n     */\r\n    QueryParams.REST_QUERY_CONSTANTS_ = {\r\n        ORDER_BY: 'orderBy',\r\n        PRIORITY_INDEX: '$priority',\r\n        VALUE_INDEX: '$value',\r\n        KEY_INDEX: '$key',\r\n        START_AT: 'startAt',\r\n        END_AT: 'endAt',\r\n        LIMIT_TO_FIRST: 'limitToFirst',\r\n        LIMIT_TO_LAST: 'limitToLast'\r\n    };\r\n    /**\r\n     * Default, empty query parameters\r\n     * @type {!QueryParams}\r\n     * @const\r\n     */\r\n    QueryParams.DEFAULT = new QueryParams();\r\n    return QueryParams;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar Reference = /** @class */ (function (_super) {\r\n    tslib_1.__extends(Reference, _super);\r\n    /**\r\n     * Call options:\r\n     *   new Reference(Repo, Path) or\r\n     *   new Reference(url: string, string|RepoManager)\r\n     *\r\n     * Externally - this is the firebase.database.Reference type.\r\n     *\r\n     * @param {!Repo} repo\r\n     * @param {(!Path)} path\r\n     * @extends {Query}\r\n     */\r\n    function Reference(repo, path) {\r\n        var _this = this;\r\n        if (!(repo instanceof Repo)) {\r\n            throw new Error('new Reference() no longer supported - use app.database().');\r\n        }\r\n        // call Query's constructor, passing in the repo and path.\r\n        _this = _super.call(this, repo, path, QueryParams.DEFAULT, false) || this;\r\n        return _this;\r\n    }\r\n    /** @return {?string} */\r\n    Reference.prototype.getKey = function () {\r\n        util.validateArgCount('Reference.key', 0, 0, arguments.length);\r\n        if (this.path.isEmpty())\r\n            return null;\r\n        else\r\n            return this.path.getBack();\r\n    };\r\n    /**\r\n     * @param {!(string|Path)} pathString\r\n     * @return {!Reference}\r\n     */\r\n    Reference.prototype.child = function (pathString) {\r\n        util.validateArgCount('Reference.child', 1, 1, arguments.length);\r\n        if (typeof pathString === 'number') {\r\n            pathString = String(pathString);\r\n        }\r\n        else if (!(pathString instanceof Path)) {\r\n            if (this.path.getFront() === null)\r\n                validateRootPathString('Reference.child', 1, pathString, false);\r\n            else\r\n                validatePathString('Reference.child', 1, pathString, false);\r\n        }\r\n        return new Reference(this.repo, this.path.child(pathString));\r\n    };\r\n    /** @return {?Reference} */\r\n    Reference.prototype.getParent = function () {\r\n        util.validateArgCount('Reference.parent', 0, 0, arguments.length);\r\n        var parentPath = this.path.parent();\r\n        return parentPath === null ? null : new Reference(this.repo, parentPath);\r\n    };\r\n    /** @return {!Reference} */\r\n    Reference.prototype.getRoot = function () {\r\n        util.validateArgCount('Reference.root', 0, 0, arguments.length);\r\n        var ref = this;\r\n        while (ref.getParent() !== null) {\r\n            ref = ref.getParent();\r\n        }\r\n        return ref;\r\n    };\r\n    /** @return {!Database} */\r\n    Reference.prototype.databaseProp = function () {\r\n        return this.repo.database;\r\n    };\r\n    /**\r\n     * @param {*} newVal\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.set = function (newVal, onComplete) {\r\n        util.validateArgCount('Reference.set', 1, 2, arguments.length);\r\n        validateWritablePath('Reference.set', this.path);\r\n        validateFirebaseDataArg('Reference.set', 1, newVal, this.path, false);\r\n        util.validateCallback('Reference.set', 2, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo.setWithPriority(this.path, newVal, \r\n        /*priority=*/ null, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {!Object} objectToMerge\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.update = function (objectToMerge, onComplete) {\r\n        util.validateArgCount('Reference.update', 1, 2, arguments.length);\r\n        validateWritablePath('Reference.update', this.path);\r\n        if (Array.isArray(objectToMerge)) {\r\n            var newObjectToMerge = {};\r\n            for (var i = 0; i < objectToMerge.length; ++i) {\r\n                newObjectToMerge['' + i] = objectToMerge[i];\r\n            }\r\n            objectToMerge = newObjectToMerge;\r\n            warn('Passing an Array to Firebase.update() is deprecated. ' +\r\n                'Use set() if you want to overwrite the existing data, or ' +\r\n                'an Object with integer keys if you really do want to ' +\r\n                'only update some of the children.');\r\n        }\r\n        validateFirebaseMergeDataArg('Reference.update', 1, objectToMerge, this.path, false);\r\n        util.validateCallback('Reference.update', 2, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo.update(this.path, objectToMerge, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {*} newVal\r\n     * @param {string|number|null} newPriority\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.setWithPriority = function (newVal, newPriority, onComplete) {\r\n        util.validateArgCount('Reference.setWithPriority', 2, 3, arguments.length);\r\n        validateWritablePath('Reference.setWithPriority', this.path);\r\n        validateFirebaseDataArg('Reference.setWithPriority', 1, newVal, this.path, false);\r\n        validatePriority('Reference.setWithPriority', 2, newPriority, false);\r\n        util.validateCallback('Reference.setWithPriority', 3, onComplete, true);\r\n        if (this.getKey() === '.length' || this.getKey() === '.keys')\r\n            throw 'Reference.setWithPriority failed: ' +\r\n                this.getKey() +\r\n                ' is a read-only object.';\r\n        var deferred = new util.Deferred();\r\n        this.repo.setWithPriority(this.path, newVal, newPriority, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.remove = function (onComplete) {\r\n        util.validateArgCount('Reference.remove', 0, 1, arguments.length);\r\n        validateWritablePath('Reference.remove', this.path);\r\n        util.validateCallback('Reference.remove', 1, onComplete, true);\r\n        return this.set(null, onComplete);\r\n    };\r\n    /**\r\n     * @param {function(*):*} transactionUpdate\r\n     * @param {(function(?Error, boolean, ?DataSnapshot))=} onComplete\r\n     * @param {boolean=} applyLocally\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) {\r\n        util.validateArgCount('Reference.transaction', 1, 3, arguments.length);\r\n        validateWritablePath('Reference.transaction', this.path);\r\n        util.validateCallback('Reference.transaction', 1, transactionUpdate, false);\r\n        util.validateCallback('Reference.transaction', 2, onComplete, true);\r\n        // NOTE: applyLocally is an internal-only option for now.  We need to decide if we want to keep it and how\r\n        // to expose it.\r\n        validateBoolean('Reference.transaction', 3, applyLocally, true);\r\n        if (this.getKey() === '.length' || this.getKey() === '.keys')\r\n            throw 'Reference.transaction failed: ' +\r\n                this.getKey() +\r\n                ' is a read-only object.';\r\n        if (applyLocally === undefined)\r\n            applyLocally = true;\r\n        var deferred = new util.Deferred();\r\n        if (typeof onComplete === 'function') {\r\n            deferred.promise.catch(function () { });\r\n        }\r\n        var promiseComplete = function (error$$1, committed, snapshot) {\r\n            if (error$$1) {\r\n                deferred.reject(error$$1);\r\n            }\r\n            else {\r\n                deferred.resolve(new TransactionResult(committed, snapshot));\r\n            }\r\n            if (typeof onComplete === 'function') {\r\n                onComplete(error$$1, committed, snapshot);\r\n            }\r\n        };\r\n        this.repo.startTransaction(this.path, transactionUpdate, promiseComplete, applyLocally);\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {string|number|null} priority\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Promise}\r\n     */\r\n    Reference.prototype.setPriority = function (priority, onComplete) {\r\n        util.validateArgCount('Reference.setPriority', 1, 2, arguments.length);\r\n        validateWritablePath('Reference.setPriority', this.path);\r\n        validatePriority('Reference.setPriority', 1, priority, false);\r\n        util.validateCallback('Reference.setPriority', 2, onComplete, true);\r\n        var deferred = new util.Deferred();\r\n        this.repo.setWithPriority(this.path.child('.priority'), priority, null, deferred.wrapCallback(onComplete));\r\n        return deferred.promise;\r\n    };\r\n    /**\r\n     * @param {*=} value\r\n     * @param {function(?Error)=} onComplete\r\n     * @return {!Reference}\r\n     */\r\n    Reference.prototype.push = function (value, onComplete) {\r\n        util.validateArgCount('Reference.push', 0, 2, arguments.length);\r\n        validateWritablePath('Reference.push', this.path);\r\n        validateFirebaseDataArg('Reference.push', 1, value, this.path, true);\r\n        util.validateCallback('Reference.push', 2, onComplete, true);\r\n        var now = this.repo.serverTime();\r\n        var name = nextPushId(now);\r\n        // push() returns a ThennableReference whose promise is fulfilled with a regular Reference.\r\n        // We use child() to create handles to two different references. The first is turned into a\r\n        // ThennableReference below by adding then() and catch() methods and is used as the\r\n        // return value of push(). The second remains a regular Reference and is used as the fulfilled\r\n        // value of the first ThennableReference.\r\n        var thennablePushRef = this.child(name);\r\n        var pushRef = this.child(name);\r\n        var promise;\r\n        if (value != null) {\r\n            promise = thennablePushRef.set(value, onComplete).then(function () { return pushRef; });\r\n        }\r\n        else {\r\n            promise = Promise.resolve(pushRef);\r\n        }\r\n        thennablePushRef.then = promise.then.bind(promise);\r\n        thennablePushRef.catch = promise.then.bind(promise, undefined);\r\n        if (typeof onComplete === 'function') {\r\n            promise.catch(function () { });\r\n        }\r\n        return thennablePushRef;\r\n    };\r\n    /**\r\n     * @return {!OnDisconnect}\r\n     */\r\n    Reference.prototype.onDisconnect = function () {\r\n        validateWritablePath('Reference.onDisconnect', this.path);\r\n        return new OnDisconnect(this.repo, this.path);\r\n    };\r\n    Object.defineProperty(Reference.prototype, \"database\", {\r\n        get: function () {\r\n            return this.databaseProp();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Reference.prototype, \"key\", {\r\n        get: function () {\r\n            return this.getKey();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Reference.prototype, \"parent\", {\r\n        get: function () {\r\n            return this.getParent();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Object.defineProperty(Reference.prototype, \"root\", {\r\n        get: function () {\r\n            return this.getRoot();\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    return Reference;\r\n}(Query));\r\n/**\r\n * Define reference constructor in various modules\r\n *\r\n * We are doing this here to avoid several circular\r\n * dependency issues\r\n */\r\nQuery.__referenceConstructor = Reference;\r\nSyncPoint.__referenceConstructor = Reference;\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Node in a Tree.\r\n */\r\nvar TreeNode = /** @class */ (function () {\r\n    function TreeNode() {\r\n        // TODO: Consider making accessors that create children and value lazily or\r\n        // separate Internal / Leaf 'types'.\r\n        this.children = {};\r\n        this.childCount = 0;\r\n        this.value = null;\r\n    }\r\n    return TreeNode;\r\n}());\r\n/**\r\n * A light-weight tree, traversable by path.  Nodes can have both values and children.\r\n * Nodes are not enumerated (by forEachChild) unless they have a value or non-empty\r\n * children.\r\n */\r\nvar Tree = /** @class */ (function () {\r\n    /**\r\n     * @template T\r\n     * @param {string=} name_ Optional name of the node.\r\n     * @param {Tree=} parent_ Optional parent node.\r\n     * @param {TreeNode=} node_ Optional node to wrap.\r\n     */\r\n    function Tree(name_, parent_, node_) {\r\n        if (name_ === void 0) { name_ = ''; }\r\n        if (parent_ === void 0) { parent_ = null; }\r\n        if (node_ === void 0) { node_ = new TreeNode(); }\r\n        this.name_ = name_;\r\n        this.parent_ = parent_;\r\n        this.node_ = node_;\r\n    }\r\n    /**\r\n     * Returns a sub-Tree for the given path.\r\n     *\r\n     * @param {!(string|Path)} pathObj Path to look up.\r\n     * @return {!Tree.<T>} Tree for path.\r\n     */\r\n    Tree.prototype.subTree = function (pathObj) {\r\n        // TODO: Require pathObj to be Path?\r\n        var path = pathObj instanceof Path ? pathObj : new Path(pathObj);\r\n        var child = this, next;\r\n        while ((next = path.getFront()) !== null) {\r\n            var childNode = util.safeGet(child.node_.children, next) || new TreeNode();\r\n            child = new Tree(next, child, childNode);\r\n            path = path.popFront();\r\n        }\r\n        return child;\r\n    };\r\n    /**\r\n     * Returns the data associated with this tree node.\r\n     *\r\n     * @return {?T} The data or null if no data exists.\r\n     */\r\n    Tree.prototype.getValue = function () {\r\n        return this.node_.value;\r\n    };\r\n    /**\r\n     * Sets data to this tree node.\r\n     *\r\n     * @param {!T} value Value to set.\r\n     */\r\n    Tree.prototype.setValue = function (value) {\r\n        util.assert(typeof value !== 'undefined', 'Cannot set value to undefined');\r\n        this.node_.value = value;\r\n        this.updateParents_();\r\n    };\r\n    /**\r\n     * Clears the contents of the tree node (its value and all children).\r\n     */\r\n    Tree.prototype.clear = function () {\r\n        this.node_.value = null;\r\n        this.node_.children = {};\r\n        this.node_.childCount = 0;\r\n        this.updateParents_();\r\n    };\r\n    /**\r\n     * @return {boolean} Whether the tree has any children.\r\n     */\r\n    Tree.prototype.hasChildren = function () {\r\n        return this.node_.childCount > 0;\r\n    };\r\n    /**\r\n     * @return {boolean} Whether the tree is empty (no value or children).\r\n     */\r\n    Tree.prototype.isEmpty = function () {\r\n        return this.getValue() === null && !this.hasChildren();\r\n    };\r\n    /**\r\n     * Calls action for each child of this tree node.\r\n     *\r\n     * @param {function(!Tree.<T>)} action Action to be called for each child.\r\n     */\r\n    Tree.prototype.forEachChild = function (action) {\r\n        var _this = this;\r\n        util.forEach(this.node_.children, function (child, childTree) {\r\n            action(new Tree(child, _this, childTree));\r\n        });\r\n    };\r\n    /**\r\n     * Does a depth-first traversal of this node's descendants, calling action for each one.\r\n     *\r\n     * @param {function(!Tree.<T>)} action Action to be called for each child.\r\n     * @param {boolean=} includeSelf Whether to call action on this node as well. Defaults to\r\n     *   false.\r\n     * @param {boolean=} childrenFirst Whether to call action on children before calling it on\r\n     *   parent.\r\n     */\r\n    Tree.prototype.forEachDescendant = function (action, includeSelf, childrenFirst) {\r\n        if (includeSelf && !childrenFirst)\r\n            action(this);\r\n        this.forEachChild(function (child) {\r\n            child.forEachDescendant(action, /*includeSelf=*/ true, childrenFirst);\r\n        });\r\n        if (includeSelf && childrenFirst)\r\n            action(this);\r\n    };\r\n    /**\r\n     * Calls action on each ancestor node.\r\n     *\r\n     * @param {function(!Tree.<T>)} action Action to be called on each parent; return\r\n     *   true to abort.\r\n     * @param {boolean=} includeSelf Whether to call action on this node as well.\r\n     * @return {boolean} true if the action callback returned true.\r\n     */\r\n    Tree.prototype.forEachAncestor = function (action, includeSelf) {\r\n        var node = includeSelf ? this : this.parent();\r\n        while (node !== null) {\r\n            if (action(node)) {\r\n                return true;\r\n            }\r\n            node = node.parent();\r\n        }\r\n        return false;\r\n    };\r\n    /**\r\n     * Does a depth-first traversal of this node's descendants.  When a descendant with a value\r\n     * is found, action is called on it and traversal does not continue inside the node.\r\n     * Action is *not* called on this node.\r\n     *\r\n     * @param {function(!Tree.<T>)} action Action to be called for each child.\r\n     */\r\n    Tree.prototype.forEachImmediateDescendantWithValue = function (action) {\r\n        this.forEachChild(function (child) {\r\n            if (child.getValue() !== null)\r\n                action(child);\r\n            else\r\n                child.forEachImmediateDescendantWithValue(action);\r\n        });\r\n    };\r\n    /**\r\n     * @return {!Path} The path of this tree node, as a Path.\r\n     */\r\n    Tree.prototype.path = function () {\r\n        return new Path(this.parent_ === null\r\n            ? this.name_\r\n            : this.parent_.path() + '/' + this.name_);\r\n    };\r\n    /**\r\n     * @return {string} The name of the tree node.\r\n     */\r\n    Tree.prototype.name = function () {\r\n        return this.name_;\r\n    };\r\n    /**\r\n     * @return {?Tree} The parent tree node, or null if this is the root of the tree.\r\n     */\r\n    Tree.prototype.parent = function () {\r\n        return this.parent_;\r\n    };\r\n    /**\r\n     * Adds or removes this child from its parent based on whether it's empty or not.\r\n     *\r\n     * @private\r\n     */\r\n    Tree.prototype.updateParents_ = function () {\r\n        if (this.parent_ !== null)\r\n            this.parent_.updateChild_(this.name_, this);\r\n    };\r\n    /**\r\n     * Adds or removes the passed child to this tree node, depending on whether it's empty.\r\n     *\r\n     * @param {string} childName The name of the child to update.\r\n     * @param {!Tree.<T>} child The child to update.\r\n     * @private\r\n     */\r\n    Tree.prototype.updateChild_ = function (childName, child) {\r\n        var childEmpty = child.isEmpty();\r\n        var childExists = util.contains(this.node_.children, childName);\r\n        if (childEmpty && childExists) {\r\n            delete this.node_.children[childName];\r\n            this.node_.childCount--;\r\n            this.updateParents_();\r\n        }\r\n        else if (!childEmpty && !childExists) {\r\n            this.node_.children[childName] = child.node_;\r\n            this.node_.childCount++;\r\n            this.updateParents_();\r\n        }\r\n    };\r\n    return Tree;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// TODO: This is pretty messy.  Ideally, a lot of this would move into FirebaseData, or a transaction-specific\r\n// component used by FirebaseData, but it has ties to user callbacks (transaction update and onComplete) as well\r\n// as the realtime connection (to send transactions to the server).  So that all needs to be decoupled first.\r\n// For now it's part of Repo, but in its own file.\r\n/**\r\n * @enum {number}\r\n */\r\nvar TransactionStatus;\r\n(function (TransactionStatus) {\r\n    // We've run the transaction and updated transactionResultData_ with the result, but it isn't currently sent to the\r\n    // server. A transaction will go from RUN -> SENT -> RUN if it comes back from the server as rejected due to\r\n    // mismatched hash.\r\n    TransactionStatus[TransactionStatus[\"RUN\"] = 0] = \"RUN\";\r\n    // We've run the transaction and sent it to the server and it's currently outstanding (hasn't come back as accepted\r\n    // or rejected yet).\r\n    TransactionStatus[TransactionStatus[\"SENT\"] = 1] = \"SENT\";\r\n    // Temporary state used to mark completed transactions (whether successful or aborted).  The transaction will be\r\n    // removed when we get a chance to prune completed ones.\r\n    TransactionStatus[TransactionStatus[\"COMPLETED\"] = 2] = \"COMPLETED\";\r\n    // Used when an already-sent transaction needs to be aborted (e.g. due to a conflicting set() call that was made).\r\n    // If it comes back as unsuccessful, we'll abort it.\r\n    TransactionStatus[TransactionStatus[\"SENT_NEEDS_ABORT\"] = 3] = \"SENT_NEEDS_ABORT\";\r\n    // Temporary state used to mark transactions that need to be aborted.\r\n    TransactionStatus[TransactionStatus[\"NEEDS_ABORT\"] = 4] = \"NEEDS_ABORT\";\r\n})(TransactionStatus || (TransactionStatus = {}));\r\n/**\r\n * If a transaction does not succeed after 25 retries, we abort it.  Among other things this ensure that if there's\r\n * ever a bug causing a mismatch between client / server hashes for some data, we won't retry indefinitely.\r\n * @type {number}\r\n * @const\r\n * @private\r\n */\r\nRepo.MAX_TRANSACTION_RETRIES_ = 25;\r\n/**\r\n * Setup the transaction data structures\r\n * @private\r\n */\r\nRepo.prototype.transactions_init_ = function () {\r\n    /**\r\n     * Stores queues of outstanding transactions for Firebase locations.\r\n     *\r\n     * @type {!Tree.<Array.<!Transaction>>}\r\n     * @private\r\n     */\r\n    this.transactionQueueTree_ = new Tree();\r\n};\r\n/**\r\n * Creates a new transaction, adds it to the transactions we're tracking, and sends it to the server if possible.\r\n *\r\n * @param {!Path} path Path at which to do transaction.\r\n * @param {function(*):*} transactionUpdate Update callback.\r\n * @param {?function(?Error, boolean, ?DataSnapshot)} onComplete Completion callback.\r\n * @param {boolean} applyLocally Whether or not to make intermediate results visible\r\n */\r\nRepo.prototype.startTransaction = function (path, transactionUpdate, onComplete, applyLocally) {\r\n    this.log_('transaction on ' + path);\r\n    // Add a watch to make sure we get server updates.\r\n    var valueCallback = function () { };\r\n    var watchRef = new Reference(this, path);\r\n    watchRef.on('value', valueCallback);\r\n    var unwatcher = function () {\r\n        watchRef.off('value', valueCallback);\r\n    };\r\n    // Initialize transaction.\r\n    var transaction = {\r\n        path: path,\r\n        update: transactionUpdate,\r\n        onComplete: onComplete,\r\n        // One of TransactionStatus enums.\r\n        status: null,\r\n        // Used when combining transactions at different locations to figure out which one goes first.\r\n        order: LUIDGenerator(),\r\n        // Whether to raise local events for this transaction.\r\n        applyLocally: applyLocally,\r\n        // Count of how many times we've retried the transaction.\r\n        retryCount: 0,\r\n        // Function to call to clean up our .on() listener.\r\n        unwatcher: unwatcher,\r\n        // Stores why a transaction was aborted.\r\n        abortReason: null,\r\n        currentWriteId: null,\r\n        currentInputSnapshot: null,\r\n        currentOutputSnapshotRaw: null,\r\n        currentOutputSnapshotResolved: null\r\n    };\r\n    // Run transaction initially.\r\n    var currentState = this.getLatestState_(path);\r\n    transaction.currentInputSnapshot = currentState;\r\n    var newVal = transaction.update(currentState.val());\r\n    if (newVal === undefined) {\r\n        // Abort transaction.\r\n        transaction.unwatcher();\r\n        transaction.currentOutputSnapshotRaw = null;\r\n        transaction.currentOutputSnapshotResolved = null;\r\n        if (transaction.onComplete) {\r\n            // We just set the input snapshot, so this cast should be safe\r\n            var snapshot = new DataSnapshot(transaction.currentInputSnapshot, new Reference(this, transaction.path), PRIORITY_INDEX);\r\n            transaction.onComplete(null, false, snapshot);\r\n        }\r\n    }\r\n    else {\r\n        validateFirebaseData('transaction failed: Data returned ', newVal, transaction.path);\r\n        // Mark as run and add to our queue.\r\n        transaction.status = TransactionStatus.RUN;\r\n        var queueNode = this.transactionQueueTree_.subTree(path);\r\n        var nodeQueue = queueNode.getValue() || [];\r\n        nodeQueue.push(transaction);\r\n        queueNode.setValue(nodeQueue);\r\n        // Update visibleData and raise events\r\n        // Note: We intentionally raise events after updating all of our transaction state, since the user could\r\n        // start new transactions from the event callbacks.\r\n        var priorityForNode = void 0;\r\n        if (typeof newVal === 'object' &&\r\n            newVal !== null &&\r\n            util.contains(newVal, '.priority')) {\r\n            priorityForNode = util.safeGet(newVal, '.priority');\r\n            util.assert(isValidPriority(priorityForNode), 'Invalid priority returned by transaction. ' +\r\n                'Priority must be a valid string, finite number, server value, or null.');\r\n        }\r\n        else {\r\n            var currentNode = this.serverSyncTree_.calcCompleteEventCache(path) ||\r\n                ChildrenNode.EMPTY_NODE;\r\n            priorityForNode = currentNode.getPriority().val();\r\n        }\r\n        priorityForNode /** @type {null|number|string} */ = priorityForNode;\r\n        var serverValues = this.generateServerValues();\r\n        var newNodeUnresolved = nodeFromJSON$1(newVal, priorityForNode);\r\n        var newNode = resolveDeferredValueSnapshot(newNodeUnresolved, serverValues);\r\n        transaction.currentOutputSnapshotRaw = newNodeUnresolved;\r\n        transaction.currentOutputSnapshotResolved = newNode;\r\n        transaction.currentWriteId = this.getNextWriteId_();\r\n        var events = this.serverSyncTree_.applyUserOverwrite(path, newNode, transaction.currentWriteId, transaction.applyLocally);\r\n        this.eventQueue_.raiseEventsForChangedPath(path, events);\r\n        this.sendReadyTransactions_();\r\n    }\r\n};\r\n/**\r\n * @param {!Path} path\r\n * @param {Array.<number>=} excludeSets A specific set to exclude\r\n * @return {Node}\r\n * @private\r\n */\r\nRepo.prototype.getLatestState_ = function (path, excludeSets) {\r\n    return (this.serverSyncTree_.calcCompleteEventCache(path, excludeSets) ||\r\n        ChildrenNode.EMPTY_NODE);\r\n};\r\n/**\r\n * Sends any already-run transactions that aren't waiting for outstanding transactions to\r\n * complete.\r\n *\r\n * Externally it's called with no arguments, but it calls itself recursively with a particular\r\n * transactionQueueTree node to recurse through the tree.\r\n *\r\n * @param {Tree.<Array.<Transaction>>=} node  transactionQueueTree node to start at.\r\n * @private\r\n */\r\nRepo.prototype.sendReadyTransactions_ = function (node) {\r\n    var _this = this;\r\n    if (node === void 0) { node = this.transactionQueueTree_; }\r\n    // Before recursing, make sure any completed transactions are removed.\r\n    if (!node) {\r\n        this.pruneCompletedTransactionsBelowNode_(node);\r\n    }\r\n    if (node.getValue() !== null) {\r\n        var queue = this.buildTransactionQueue_(node);\r\n        util.assert(queue.length > 0, 'Sending zero length transaction queue');\r\n        var allRun = queue.every(function (transaction) { return transaction.status === TransactionStatus.RUN; });\r\n        // If they're all run (and not sent), we can send them.  Else, we must wait.\r\n        if (allRun) {\r\n            this.sendTransactionQueue_(node.path(), queue);\r\n        }\r\n    }\r\n    else if (node.hasChildren()) {\r\n        node.forEachChild(function (childNode) {\r\n            _this.sendReadyTransactions_(childNode);\r\n        });\r\n    }\r\n};\r\n/**\r\n * Given a list of run transactions, send them to the server and then handle the result (success or failure).\r\n *\r\n * @param {!Path} path The location of the queue.\r\n * @param {!Array.<Transaction>} queue Queue of transactions under the specified location.\r\n * @private\r\n */\r\nRepo.prototype.sendTransactionQueue_ = function (path, queue) {\r\n    var _this = this;\r\n    // Mark transactions as sent and increment retry count!\r\n    var setsToIgnore = queue.map(function (txn) {\r\n        return txn.currentWriteId;\r\n    });\r\n    var latestState = this.getLatestState_(path, setsToIgnore);\r\n    var snapToSend = latestState;\r\n    var latestHash = latestState.hash();\r\n    for (var i = 0; i < queue.length; i++) {\r\n        var txn = queue[i];\r\n        util.assert(txn.status === TransactionStatus.RUN, 'tryToSendTransactionQueue_: items in queue should all be run.');\r\n        txn.status = TransactionStatus.SENT;\r\n        txn.retryCount++;\r\n        var relativePath = Path.relativePath(path, txn.path);\r\n        // If we've gotten to this point, the output snapshot must be defined.\r\n        snapToSend = snapToSend.updateChild(relativePath /**@type {!Node} */, txn.currentOutputSnapshotRaw);\r\n    }\r\n    var dataToSend = snapToSend.val(true);\r\n    var pathToSend = path;\r\n    // Send the put.\r\n    this.server_.put(pathToSend.toString(), dataToSend, function (status) {\r\n        _this.log_('transaction put response', {\r\n            path: pathToSend.toString(),\r\n            status: status\r\n        });\r\n        var events = [];\r\n        if (status === 'ok') {\r\n            // Queue up the callbacks and fire them after cleaning up all of our transaction state, since\r\n            // the callback could trigger more transactions or sets.\r\n            var callbacks = [];\r\n            for (var i = 0; i < queue.length; i++) {\r\n                queue[i].status = TransactionStatus.COMPLETED;\r\n                events = events.concat(_this.serverSyncTree_.ackUserWrite(queue[i].currentWriteId));\r\n                if (queue[i].onComplete) {\r\n                    // We never unset the output snapshot, and given that this transaction is complete, it should be set\r\n                    var node = queue[i].currentOutputSnapshotResolved;\r\n                    var ref = new Reference(_this, queue[i].path);\r\n                    var snapshot = new DataSnapshot(node, ref, PRIORITY_INDEX);\r\n                    callbacks.push(queue[i].onComplete.bind(null, null, true, snapshot));\r\n                }\r\n                queue[i].unwatcher();\r\n            }\r\n            // Now remove the completed transactions.\r\n            _this.pruneCompletedTransactionsBelowNode_(_this.transactionQueueTree_.subTree(path));\r\n            // There may be pending transactions that we can now send.\r\n            _this.sendReadyTransactions_();\r\n            _this.eventQueue_.raiseEventsForChangedPath(path, events);\r\n            // Finally, trigger onComplete callbacks.\r\n            for (var i = 0; i < callbacks.length; i++) {\r\n                exceptionGuard(callbacks[i]);\r\n            }\r\n        }\r\n        else {\r\n            // transactions are no longer sent.  Update their status appropriately.\r\n            if (status === 'datastale') {\r\n                for (var i = 0; i < queue.length; i++) {\r\n                    if (queue[i].status === TransactionStatus.SENT_NEEDS_ABORT)\r\n                        queue[i].status = TransactionStatus.NEEDS_ABORT;\r\n                    else\r\n                        queue[i].status = TransactionStatus.RUN;\r\n                }\r\n            }\r\n            else {\r\n                warn('transaction at ' + pathToSend.toString() + ' failed: ' + status);\r\n                for (var i = 0; i < queue.length; i++) {\r\n                    queue[i].status = TransactionStatus.NEEDS_ABORT;\r\n                    queue[i].abortReason = status;\r\n                }\r\n            }\r\n            _this.rerunTransactions_(path);\r\n        }\r\n    }, latestHash);\r\n};\r\n/**\r\n * Finds all transactions dependent on the data at changedPath and reruns them.\r\n *\r\n * Should be called any time cached data changes.\r\n *\r\n * Return the highest path that was affected by rerunning transactions.  This is the path at which events need to\r\n * be raised for.\r\n *\r\n * @param {!Path} changedPath The path in mergedData that changed.\r\n * @return {!Path} The rootmost path that was affected by rerunning transactions.\r\n * @private\r\n */\r\nRepo.prototype.rerunTransactions_ = function (changedPath) {\r\n    var rootMostTransactionNode = this.getAncestorTransactionNode_(changedPath);\r\n    var path = rootMostTransactionNode.path();\r\n    var queue = this.buildTransactionQueue_(rootMostTransactionNode);\r\n    this.rerunTransactionQueue_(queue, path);\r\n    return path;\r\n};\r\n/**\r\n * Does all the work of rerunning transactions (as well as cleans up aborted transactions and whatnot).\r\n *\r\n * @param {Array.<Transaction>} queue The queue of transactions to run.\r\n * @param {!Path} path The path the queue is for.\r\n * @private\r\n */\r\nRepo.prototype.rerunTransactionQueue_ = function (queue, path) {\r\n    if (queue.length === 0) {\r\n        return; // Nothing to do!\r\n    }\r\n    // Queue up the callbacks and fire them after cleaning up all of our transaction state, since\r\n    // the callback could trigger more transactions or sets.\r\n    var callbacks = [];\r\n    var events = [];\r\n    // Ignore all of the sets we're going to re-run.\r\n    var txnsToRerun = queue.filter(function (q) {\r\n        return q.status === TransactionStatus.RUN;\r\n    });\r\n    var setsToIgnore = txnsToRerun.map(function (q) {\r\n        return q.currentWriteId;\r\n    });\r\n    for (var i = 0; i < queue.length; i++) {\r\n        var transaction = queue[i];\r\n        var relativePath = Path.relativePath(path, transaction.path);\r\n        var abortTransaction = false, abortReason = void 0;\r\n        util.assert(relativePath !== null, 'rerunTransactionsUnderNode_: relativePath should not be null.');\r\n        if (transaction.status === TransactionStatus.NEEDS_ABORT) {\r\n            abortTransaction = true;\r\n            abortReason = transaction.abortReason;\r\n            events = events.concat(this.serverSyncTree_.ackUserWrite(transaction.currentWriteId, true));\r\n        }\r\n        else if (transaction.status === TransactionStatus.RUN) {\r\n            if (transaction.retryCount >= Repo.MAX_TRANSACTION_RETRIES_) {\r\n                abortTransaction = true;\r\n                abortReason = 'maxretry';\r\n                events = events.concat(this.serverSyncTree_.ackUserWrite(transaction.currentWriteId, true));\r\n            }\r\n            else {\r\n                // This code reruns a transaction\r\n                var currentNode = this.getLatestState_(transaction.path, setsToIgnore);\r\n                transaction.currentInputSnapshot = currentNode;\r\n                var newData = queue[i].update(currentNode.val());\r\n                if (newData !== undefined) {\r\n                    validateFirebaseData('transaction failed: Data returned ', newData, transaction.path);\r\n                    var newDataNode = nodeFromJSON$1(newData);\r\n                    var hasExplicitPriority = typeof newData === 'object' &&\r\n                        newData != null &&\r\n                        util.contains(newData, '.priority');\r\n                    if (!hasExplicitPriority) {\r\n                        // Keep the old priority if there wasn't a priority explicitly specified.\r\n                        newDataNode = newDataNode.updatePriority(currentNode.getPriority());\r\n                    }\r\n                    var oldWriteId = transaction.currentWriteId;\r\n                    var serverValues = this.generateServerValues();\r\n                    var newNodeResolved = resolveDeferredValueSnapshot(newDataNode, serverValues);\r\n                    transaction.currentOutputSnapshotRaw = newDataNode;\r\n                    transaction.currentOutputSnapshotResolved = newNodeResolved;\r\n                    transaction.currentWriteId = this.getNextWriteId_();\r\n                    // Mutates setsToIgnore in place\r\n                    setsToIgnore.splice(setsToIgnore.indexOf(oldWriteId), 1);\r\n                    events = events.concat(this.serverSyncTree_.applyUserOverwrite(transaction.path, newNodeResolved, transaction.currentWriteId, transaction.applyLocally));\r\n                    events = events.concat(this.serverSyncTree_.ackUserWrite(oldWriteId, true));\r\n                }\r\n                else {\r\n                    abortTransaction = true;\r\n                    abortReason = 'nodata';\r\n                    events = events.concat(this.serverSyncTree_.ackUserWrite(transaction.currentWriteId, true));\r\n                }\r\n            }\r\n        }\r\n        this.eventQueue_.raiseEventsForChangedPath(path, events);\r\n        events = [];\r\n        if (abortTransaction) {\r\n            // Abort.\r\n            queue[i].status = TransactionStatus.COMPLETED;\r\n            // Removing a listener can trigger pruning which can muck with mergedData/visibleData (as it prunes data).\r\n            // So defer the unwatcher until we're done.\r\n            (function (unwatcher) {\r\n                setTimeout(unwatcher, Math.floor(0));\r\n            })(queue[i].unwatcher);\r\n            if (queue[i].onComplete) {\r\n                if (abortReason === 'nodata') {\r\n                    var ref = new Reference(this, queue[i].path);\r\n                    // We set this field immediately, so it's safe to cast to an actual snapshot\r\n                    var lastInput /** @type {!Node} */ = queue[i].currentInputSnapshot;\r\n                    var snapshot = new DataSnapshot(lastInput, ref, PRIORITY_INDEX);\r\n                    callbacks.push(queue[i].onComplete.bind(null, null, false, snapshot));\r\n                }\r\n                else {\r\n                    callbacks.push(queue[i].onComplete.bind(null, new Error(abortReason), false, null));\r\n                }\r\n            }\r\n        }\r\n    }\r\n    // Clean up completed transactions.\r\n    this.pruneCompletedTransactionsBelowNode_(this.transactionQueueTree_);\r\n    // Now fire callbacks, now that we're in a good, known state.\r\n    for (var i = 0; i < callbacks.length; i++) {\r\n        exceptionGuard(callbacks[i]);\r\n    }\r\n    // Try to send the transaction result to the server.\r\n    this.sendReadyTransactions_();\r\n};\r\n/**\r\n * Returns the rootmost ancestor node of the specified path that has a pending transaction on it, or just returns\r\n * the node for the given path if there are no pending transactions on any ancestor.\r\n *\r\n * @param {!Path} path The location to start at.\r\n * @return {!Tree.<Array.<!Transaction>>} The rootmost node with a transaction.\r\n * @private\r\n */\r\nRepo.prototype.getAncestorTransactionNode_ = function (path) {\r\n    var front;\r\n    // Start at the root and walk deeper into the tree towards path until we find a node with pending transactions.\r\n    var transactionNode = this.transactionQueueTree_;\r\n    while ((front = path.getFront()) !== null &&\r\n        transactionNode.getValue() === null) {\r\n        transactionNode = transactionNode.subTree(front);\r\n        path = path.popFront();\r\n    }\r\n    return transactionNode;\r\n};\r\n/**\r\n * Builds the queue of all transactions at or below the specified transactionNode.\r\n *\r\n * @param {!Tree.<Array.<Transaction>>} transactionNode\r\n * @return {Array.<Transaction>} The generated queue.\r\n * @private\r\n */\r\nRepo.prototype.buildTransactionQueue_ = function (transactionNode) {\r\n    // Walk any child transaction queues and aggregate them into a single queue.\r\n    var transactionQueue = [];\r\n    this.aggregateTransactionQueuesForNode_(transactionNode, transactionQueue);\r\n    // Sort them by the order the transactions were created.\r\n    transactionQueue.sort(function (a, b) {\r\n        return a.order - b.order;\r\n    });\r\n    return transactionQueue;\r\n};\r\n/**\r\n * @param {!Tree.<Array.<Transaction>>} node\r\n * @param {Array.<Transaction>} queue\r\n * @private\r\n */\r\nRepo.prototype.aggregateTransactionQueuesForNode_ = function (node, queue) {\r\n    var _this = this;\r\n    var nodeQueue = node.getValue();\r\n    if (nodeQueue !== null) {\r\n        for (var i = 0; i < nodeQueue.length; i++) {\r\n            queue.push(nodeQueue[i]);\r\n        }\r\n    }\r\n    node.forEachChild(function (child) {\r\n        _this.aggregateTransactionQueuesForNode_(child, queue);\r\n    });\r\n};\r\n/**\r\n * Remove COMPLETED transactions at or below this node in the transactionQueueTree_.\r\n *\r\n * @param {!Tree.<Array.<!Transaction>>} node\r\n * @private\r\n */\r\nRepo.prototype.pruneCompletedTransactionsBelowNode_ = function (node) {\r\n    var _this = this;\r\n    var queue = node.getValue();\r\n    if (queue) {\r\n        var to = 0;\r\n        for (var from = 0; from < queue.length; from++) {\r\n            if (queue[from].status !== TransactionStatus.COMPLETED) {\r\n                queue[to] = queue[from];\r\n                to++;\r\n            }\r\n        }\r\n        queue.length = to;\r\n        node.setValue(queue.length > 0 ? queue : null);\r\n    }\r\n    node.forEachChild(function (childNode) {\r\n        _this.pruneCompletedTransactionsBelowNode_(childNode);\r\n    });\r\n};\r\n/**\r\n * Aborts all transactions on ancestors or descendants of the specified path.  Called when doing a set() or update()\r\n * since we consider them incompatible with transactions.\r\n *\r\n * @param {!Path} path Path for which we want to abort related transactions.\r\n * @return {!Path}\r\n * @private\r\n */\r\nRepo.prototype.abortTransactions_ = function (path) {\r\n    var _this = this;\r\n    var affectedPath = this.getAncestorTransactionNode_(path).path();\r\n    var transactionNode = this.transactionQueueTree_.subTree(path);\r\n    transactionNode.forEachAncestor(function (node) {\r\n        _this.abortTransactionsOnNode_(node);\r\n    });\r\n    this.abortTransactionsOnNode_(transactionNode);\r\n    transactionNode.forEachDescendant(function (node) {\r\n        _this.abortTransactionsOnNode_(node);\r\n    });\r\n    return affectedPath;\r\n};\r\n/**\r\n * Abort transactions stored in this transaction queue node.\r\n *\r\n * @param {!Tree.<Array.<Transaction>>} node Node to abort transactions for.\r\n * @private\r\n */\r\nRepo.prototype.abortTransactionsOnNode_ = function (node) {\r\n    var queue = node.getValue();\r\n    if (queue !== null) {\r\n        // Queue up the callbacks and fire them after cleaning up all of our transaction state, since\r\n        // the callback could trigger more transactions or sets.\r\n        var callbacks = [];\r\n        // Go through queue.  Any already-sent transactions must be marked for abort, while the unsent ones\r\n        // can be immediately aborted and removed.\r\n        var events = [];\r\n        var lastSent = -1;\r\n        for (var i = 0; i < queue.length; i++) {\r\n            if (queue[i].status === TransactionStatus.SENT_NEEDS_ABORT) {\r\n                // Already marked.  No action needed.\r\n            }\r\n            else if (queue[i].status === TransactionStatus.SENT) {\r\n                util.assert(lastSent === i - 1, 'All SENT items should be at beginning of queue.');\r\n                lastSent = i;\r\n                // Mark transaction for abort when it comes back.\r\n                queue[i].status = TransactionStatus.SENT_NEEDS_ABORT;\r\n                queue[i].abortReason = 'set';\r\n            }\r\n            else {\r\n                util.assert(queue[i].status === TransactionStatus.RUN, 'Unexpected transaction status in abort');\r\n                // We can abort it immediately.\r\n                queue[i].unwatcher();\r\n                events = events.concat(this.serverSyncTree_.ackUserWrite(queue[i].currentWriteId, true));\r\n                if (queue[i].onComplete) {\r\n                    var snapshot = null;\r\n                    callbacks.push(queue[i].onComplete.bind(null, new Error('set'), false, snapshot));\r\n                }\r\n            }\r\n        }\r\n        if (lastSent === -1) {\r\n            // We're not waiting for any sent transactions.  We can clear the queue.\r\n            node.setValue(null);\r\n        }\r\n        else {\r\n            // Remove the transactions we aborted.\r\n            queue.length = lastSent + 1;\r\n        }\r\n        // Now fire the callbacks.\r\n        this.eventQueue_.raiseEventsForChangedPath(node.path(), events);\r\n        for (var i = 0; i < callbacks.length; i++) {\r\n            exceptionGuard(callbacks[i]);\r\n        }\r\n    }\r\n};\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** @const {string} */\r\nvar DATABASE_URL_OPTION = 'databaseURL';\r\nvar _staticInstance;\r\n/**\r\n * Creates and caches Repo instances.\r\n */\r\nvar RepoManager = /** @class */ (function () {\r\n    function RepoManager() {\r\n        /**\r\n         * @private {!Object.<string, Object<string, !fb.core.Repo>>}\r\n         */\r\n        this.repos_ = {};\r\n        /**\r\n         * If true, new Repos will be created to use ReadonlyRestClient (for testing purposes).\r\n         * @private {boolean}\r\n         */\r\n        this.useRestClient_ = false;\r\n    }\r\n    RepoManager.getInstance = function () {\r\n        if (!_staticInstance) {\r\n            _staticInstance = new RepoManager();\r\n        }\r\n        return _staticInstance;\r\n    };\r\n    // TODO(koss): Remove these functions unless used in tests?\r\n    RepoManager.prototype.interrupt = function () {\r\n        for (var appName in this.repos_) {\r\n            for (var dbUrl in this.repos_[appName]) {\r\n                this.repos_[appName][dbUrl].interrupt();\r\n            }\r\n        }\r\n    };\r\n    RepoManager.prototype.resume = function () {\r\n        for (var appName in this.repos_) {\r\n            for (var dbUrl in this.repos_[appName]) {\r\n                this.repos_[appName][dbUrl].resume();\r\n            }\r\n        }\r\n    };\r\n    /**\r\n     * This function should only ever be called to CREATE a new database instance.\r\n     *\r\n     * @param {!FirebaseApp} app\r\n     * @return {!Database}\r\n     */\r\n    RepoManager.prototype.databaseFromApp = function (app, url) {\r\n        var dbUrl = url || app.options[DATABASE_URL_OPTION];\r\n        if (dbUrl === undefined) {\r\n            fatal(\"Can't determine Firebase Database URL.  Be sure to include \" +\r\n                DATABASE_URL_OPTION +\r\n                ' option when calling firebase.initializeApp().');\r\n        }\r\n        var parsedUrl = parseRepoInfo(dbUrl);\r\n        var repoInfo = parsedUrl.repoInfo;\r\n        validateUrl('Invalid Firebase Database URL', 1, parsedUrl);\r\n        if (!parsedUrl.path.isEmpty()) {\r\n            fatal('Database URL must point to the root of a Firebase Database ' +\r\n                '(not including a child path).');\r\n        }\r\n        var repo = this.createRepo(repoInfo, app);\r\n        return repo.database;\r\n    };\r\n    /**\r\n     * Remove the repo and make sure it is disconnected.\r\n     *\r\n     * @param {!Repo} repo\r\n     */\r\n    RepoManager.prototype.deleteRepo = function (repo) {\r\n        var appRepos = util.safeGet(this.repos_, repo.app.name);\r\n        // This should never happen...\r\n        if (!appRepos || util.safeGet(appRepos, repo.repoInfo_.toURLString()) !== repo) {\r\n            fatal(\"Database \" + repo.app.name + \"(\" + repo.repoInfo_ + \") has already been deleted.\");\r\n        }\r\n        repo.interrupt();\r\n        delete appRepos[repo.repoInfo_.toURLString()];\r\n    };\r\n    /**\r\n     * Ensures a repo doesn't already exist and then creates one using the\r\n     * provided app.\r\n     *\r\n     * @param {!RepoInfo} repoInfo The metadata about the Repo\r\n     * @param {!FirebaseApp} app\r\n     * @return {!Repo} The Repo object for the specified server / repoName.\r\n     */\r\n    RepoManager.prototype.createRepo = function (repoInfo, app) {\r\n        var appRepos = util.safeGet(this.repos_, app.name);\r\n        if (!appRepos) {\r\n            appRepos = {};\r\n            this.repos_[app.name] = appRepos;\r\n        }\r\n        var repo = util.safeGet(appRepos, repoInfo.toURLString());\r\n        if (repo) {\r\n            fatal('Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.');\r\n        }\r\n        repo = new Repo(repoInfo, this.useRestClient_, app);\r\n        appRepos[repoInfo.toURLString()] = repo;\r\n        return repo;\r\n    };\r\n    /**\r\n     * Forces us to use ReadonlyRestClient instead of PersistentConnection for new Repos.\r\n     * @param {boolean} forceRestClient\r\n     */\r\n    RepoManager.prototype.forceRestClient = function (forceRestClient) {\r\n        this.useRestClient_ = forceRestClient;\r\n    };\r\n    return RepoManager;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Class representing a firebase database.\r\n * @implements {FirebaseService}\r\n */\r\nvar Database = /** @class */ (function () {\r\n    /**\r\n     * The constructor should not be called by users of our public API.\r\n     * @param {!Repo} repo_\r\n     */\r\n    function Database(repo_) {\r\n        this.repo_ = repo_;\r\n        if (!(repo_ instanceof Repo)) {\r\n            fatal(\"Don't call new Database() directly - please use firebase.database().\");\r\n        }\r\n        /** @type {Reference} */\r\n        this.root_ = new Reference(repo_, Path.Empty);\r\n        this.INTERNAL = new DatabaseInternals(this);\r\n    }\r\n    Object.defineProperty(Database.prototype, \"app\", {\r\n        get: function () {\r\n            return this.repo_.app;\r\n        },\r\n        enumerable: true,\r\n        configurable: true\r\n    });\r\n    Database.prototype.ref = function (path) {\r\n        this.checkDeleted_('ref');\r\n        util.validateArgCount('database.ref', 0, 1, arguments.length);\r\n        if (path instanceof Reference) {\r\n            return this.refFromURL(path.toString());\r\n        }\r\n        return path !== undefined ? this.root_.child(path) : this.root_;\r\n    };\r\n    /**\r\n     * Returns a reference to the root or the path specified in url.\r\n     * We throw a exception if the url is not in the same domain as the\r\n     * current repo.\r\n     * @param {string} url\r\n     * @return {!Reference} Firebase reference.\r\n     */\r\n    Database.prototype.refFromURL = function (url) {\r\n        /** @const {string} */\r\n        var apiName = 'database.refFromURL';\r\n        this.checkDeleted_(apiName);\r\n        util.validateArgCount(apiName, 1, 1, arguments.length);\r\n        var parsedURL = parseRepoInfo(url);\r\n        validateUrl(apiName, 1, parsedURL);\r\n        var repoInfo = parsedURL.repoInfo;\r\n        if (repoInfo.host !== this.repo_.repoInfo_.host) {\r\n            fatal(apiName +\r\n                ': Host name does not match the current database: ' +\r\n                '(found ' +\r\n                repoInfo.host +\r\n                ' but expected ' +\r\n                this.repo_.repoInfo_.host +\r\n                ')');\r\n        }\r\n        return this.ref(parsedURL.path.toString());\r\n    };\r\n    /**\r\n     * @param {string} apiName\r\n     */\r\n    Database.prototype.checkDeleted_ = function (apiName) {\r\n        if (this.repo_ === null) {\r\n            fatal('Cannot call ' + apiName + ' on a deleted database.');\r\n        }\r\n    };\r\n    // Make individual repo go offline.\r\n    Database.prototype.goOffline = function () {\r\n        util.validateArgCount('database.goOffline', 0, 0, arguments.length);\r\n        this.checkDeleted_('goOffline');\r\n        this.repo_.interrupt();\r\n    };\r\n    Database.prototype.goOnline = function () {\r\n        util.validateArgCount('database.goOnline', 0, 0, arguments.length);\r\n        this.checkDeleted_('goOnline');\r\n        this.repo_.resume();\r\n    };\r\n    Database.ServerValue = {\r\n        TIMESTAMP: {\r\n            '.sv': 'timestamp'\r\n        }\r\n    };\r\n    return Database;\r\n}());\r\nvar DatabaseInternals = /** @class */ (function () {\r\n    /** @param {!Database} database */\r\n    function DatabaseInternals(database) {\r\n        this.database = database;\r\n    }\r\n    /** @return {Promise<void>} */\r\n    DatabaseInternals.prototype.delete = function () {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            return tslib_1.__generator(this, function (_a) {\r\n                this.database.checkDeleted_('delete');\r\n                RepoManager.getInstance().deleteRepo(this.database.repo_);\r\n                this.database.repo_ = null;\r\n                this.database.root_ = null;\r\n                this.database.INTERNAL = null;\r\n                this.database = null;\r\n                return [2 /*return*/];\r\n            });\r\n        });\r\n    };\r\n    return DatabaseInternals;\r\n}());\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * INTERNAL methods for internal-use only (tests, etc.).\r\n *\r\n * Customers shouldn't use these or else should be aware that they could break at any time.\r\n *\r\n * @const\r\n */\r\nvar forceLongPolling = function () {\r\n    WebSocketConnection.forceDisallow();\r\n    BrowserPollConnection.forceAllow();\r\n};\r\nvar forceWebSockets = function () {\r\n    BrowserPollConnection.forceDisallow();\r\n};\r\n/* Used by App Manager */\r\nvar isWebSocketsAvailable = function () {\r\n    return WebSocketConnection['isAvailable']();\r\n};\r\nvar setSecurityDebugCallback = function (ref, callback) {\r\n    ref.repo.persistentConnection_.securityDebugCallback_ = callback;\r\n};\r\nvar stats = function (ref, showDelta) {\r\n    ref.repo.stats(showDelta);\r\n};\r\nvar statsIncrementCounter = function (ref, metric) {\r\n    ref.repo.statsIncrementCounter(metric);\r\n};\r\nvar dataUpdateCount = function (ref) {\r\n    return ref.repo.dataUpdateCount;\r\n};\r\nvar interceptServerData = function (ref, callback) {\r\n    return ref.repo.interceptServerData_(callback);\r\n};\n\nvar INTERNAL = /*#__PURE__*/Object.freeze({\n  forceLongPolling: forceLongPolling,\n  forceWebSockets: forceWebSockets,\n  isWebSocketsAvailable: isWebSocketsAvailable,\n  setSecurityDebugCallback: setSecurityDebugCallback,\n  stats: stats,\n  statsIncrementCounter: statsIncrementCounter,\n  dataUpdateCount: dataUpdateCount,\n  interceptServerData: interceptServerData\n});\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar DataConnection = PersistentConnection;\r\n/**\r\n * @param {!string} pathString\r\n * @param {function(*)} onComplete\r\n */\r\nPersistentConnection.prototype.simpleListen = function (pathString, onComplete) {\r\n    this.sendRequest('q', { p: pathString }, onComplete);\r\n};\r\n/**\r\n * @param {*} data\r\n * @param {function(*)} onEcho\r\n */\r\nPersistentConnection.prototype.echo = function (data, onEcho) {\r\n    this.sendRequest('echo', { d: data }, onEcho);\r\n};\r\n// RealTimeConnection properties that we use in tests.\r\nvar RealTimeConnection = Connection;\r\n/**\r\n * @param {function(): string} newHash\r\n * @return {function()}\r\n */\r\nvar hijackHash = function (newHash) {\r\n    var oldPut = PersistentConnection.prototype.put;\r\n    PersistentConnection.prototype.put = function (pathString, data, opt_onComplete, opt_hash) {\r\n        if (opt_hash !== undefined) {\r\n            opt_hash = newHash();\r\n        }\r\n        oldPut.call(this, pathString, data, opt_onComplete, opt_hash);\r\n    };\r\n    return function () {\r\n        PersistentConnection.prototype.put = oldPut;\r\n    };\r\n};\r\n/**\r\n * @type {function(new:RepoInfo, !string, boolean, !string, boolean): undefined}\r\n */\r\nvar ConnectionTarget = RepoInfo;\r\n/**\r\n * @param {!Query} query\r\n * @return {!string}\r\n */\r\nvar queryIdentifier = function (query) {\r\n    return query.queryIdentifier();\r\n};\r\n/**\r\n * @param {!Query} firebaseRef\r\n * @return {!Object}\r\n */\r\nvar listens = function (firebaseRef) {\r\n    return firebaseRef.repo.persistentConnection_.listens_;\r\n};\r\n/**\r\n * Forces the RepoManager to create Repos that use ReadonlyRestClient instead of PersistentConnection.\r\n *\r\n * @param {boolean} forceRestClient\r\n */\r\nvar forceRestClient = function (forceRestClient) {\r\n    RepoManager.getInstance().forceRestClient(forceRestClient);\r\n};\n\nvar TEST_ACCESS = /*#__PURE__*/Object.freeze({\n  DataConnection: DataConnection,\n  RealTimeConnection: RealTimeConnection,\n  hijackHash: hijackHash,\n  ConnectionTarget: ConnectionTarget,\n  queryIdentifier: queryIdentifier,\n  listens: listens,\n  forceRestClient: forceRestClient\n});\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ServerValue = Database.ServerValue;\r\nfunction registerDatabase(instance) {\r\n    // Register the Database Service with the 'firebase' namespace.\r\n    var namespace = instance.INTERNAL.registerService('database', function (app, unused, url) { return RepoManager.getInstance().databaseFromApp(app, url); }, \r\n    // firebase.database namespace properties\r\n    {\r\n        Reference: Reference,\r\n        Query: Query,\r\n        Database: Database,\r\n        enableLogging: enableLogging,\r\n        INTERNAL: INTERNAL,\r\n        ServerValue: ServerValue,\r\n        TEST_ACCESS: TEST_ACCESS\r\n    }, null, true);\r\n    if (util.isNodeSdk()) {\r\n        module.exports = namespace;\r\n    }\r\n}\r\nregisterDatabase(firebase);\n\nexports.registerDatabase = registerDatabase;\nexports.Database = Database;\nexports.Query = Query;\nexports.Reference = Reference;\nexports.enableLogging = enableLogging;\nexports.ServerValue = ServerValue;\nexports.DataSnapshot = DataSnapshot;\nexports.OnDisconnect = OnDisconnect;\n","import '@firebase/database';\n\n/**\r\n * Copyright 2017 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *   http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n","import firebase from \"firebase/app\";\nimport \"firebase/database\";\n// import \"firebase/messaging\";\n\nconst firebaseConfig = {\n  apiKey: \"AIzaSyDYLkvOoJJCwW2uUeAUxBrJEb-kHOJ5CVc\",\n  authDomain: \"kipboiz-app.firebaseapp.com\",\n  databaseURL: \"https://kipboiz-app.firebaseio.com\",\n  projectId: \"kipboiz-app\",\n  storageBucket: \"kipboiz-app.appspot.com\"\n  // messagingSenderId: \"912428603607\"\n};\n\nconst fb = firebase\n  .initializeApp(firebaseConfig)\n  .database()\n  .ref();\n\n// export const fbMessage = firebase.messaging();\n\n// fbMessage\n//   .requestPermission()\n//   .then(() => {\n//     console.log(\"have permission\");\n//     const token = fbMessage.getToken();\n//     return token;\n//   })\n//   .then(result => {\n//     console.log(result);\n//   })\n//   .catch(error => {\n//     console.log(error);\n//     console.log(\"break\");\n//     return;\n//   });\n\n// fbMessage.onMessage(payload => {\n//   console.log(\"message: \", payload);\n// });\n\nexport default fb;\n","'use strict';\n\nvar ms = {};\n\nfunction getItem (key) {\n  return key in ms ? ms[key] : null;\n}\n\nfunction setItem (key, value) {\n  ms[key] = value;\n  return true;\n}\n\nfunction removeItem (key) {\n  var found = key in ms;\n  if (found) {\n    return delete ms[key];\n  }\n  return false;\n}\n\nfunction clear () {\n  ms = {};\n  return true;\n}\n\nmodule.exports = {\n  getItem: getItem,\n  setItem: setItem,\n  removeItem: removeItem,\n  clear: clear\n};\n","'use strict';\n\nvar listeners = {};\nvar listening = false;\n\nfunction listen () {\n  if (global.addEventListener) {\n    global.addEventListener('storage', change, false);\n  } else if (global.attachEvent) {\n    global.attachEvent('onstorage', change);\n  } else {\n    global.onstorage = change;\n  }\n}\n\nfunction change (e) {\n  if (!e) {\n    e = global.event;\n  }\n  var all = listeners[e.key];\n  if (all) {\n    all.forEach(fire);\n  }\n\n  function fire (listener) {\n    listener(JSON.parse(e.newValue), JSON.parse(e.oldValue), e.url || e.uri);\n  }\n}\n\nfunction on (key, fn) {\n  if (listeners[key]) {\n    listeners[key].push(fn);\n  } else {\n    listeners[key] = [fn];\n  }\n  if (listening === false) {\n    listen();\n  }\n}\n\nfunction off (key, fn) {\n  var ns = listeners[key];\n  if (ns.length > 1) {\n    ns.splice(ns.indexOf(fn), 1);\n  } else {\n    listeners[key] = [];\n  }\n}\n\nmodule.exports = {\n  on: on,\n  off: off\n};\n","'use strict';\n\nvar stub = require('./stub');\nvar tracking = require('./tracking');\nvar ls = 'localStorage' in global && global.localStorage ? global.localStorage : stub;\n\nfunction accessor (key, value) {\n  if (arguments.length === 1) {\n    return get(key);\n  }\n  return set(key, value);\n}\n\nfunction get (key) {\n  return JSON.parse(ls.getItem(key));\n}\n\nfunction set (key, value) {\n  try {\n    ls.setItem(key, JSON.stringify(value));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction remove (key) {\n  return ls.removeItem(key);\n}\n\nfunction clear () {\n  return ls.clear();\n}\n\naccessor.set = set;\naccessor.get = get;\naccessor.remove = remove;\naccessor.clear = clear;\naccessor.on = tracking.on;\naccessor.off = tracking.off;\n\nmodule.exports = accessor;\n","/**\n * @category Common Helpers\n * @summary Is the given argument an instance of Date?\n *\n * @description\n * Is the given argument an instance of Date?\n *\n * @param {*} argument - the argument to check\n * @returns {Boolean} the given argument is an instance of Date\n *\n * @example\n * // Is 'mayonnaise' a Date?\n * var result = isDate('mayonnaise')\n * //=> false\n */\nfunction isDate (argument) {\n  return argument instanceof Date\n}\n\nmodule.exports = isDate\n","var isDate = require('../is_date/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\nvar MILLISECONDS_IN_MINUTE = 60000\nvar DEFAULT_ADDITIONAL_DIGITS = 2\n\nvar parseTokenDateTimeDelimeter = /[T ]/\nvar parseTokenPlainTime = /:/\n\n// year tokens\nvar parseTokenYY = /^(\\d{2})$/\nvar parseTokensYYY = [\n  /^([+-]\\d{2})$/, // 0 additional digits\n  /^([+-]\\d{3})$/, // 1 additional digit\n  /^([+-]\\d{4})$/ // 2 additional digits\n]\n\nvar parseTokenYYYY = /^(\\d{4})/\nvar parseTokensYYYYY = [\n  /^([+-]\\d{4})/, // 0 additional digits\n  /^([+-]\\d{5})/, // 1 additional digit\n  /^([+-]\\d{6})/ // 2 additional digits\n]\n\n// date tokens\nvar parseTokenMM = /^-(\\d{2})$/\nvar parseTokenDDD = /^-?(\\d{3})$/\nvar parseTokenMMDD = /^-?(\\d{2})-?(\\d{2})$/\nvar parseTokenWww = /^-?W(\\d{2})$/\nvar parseTokenWwwD = /^-?W(\\d{2})-?(\\d{1})$/\n\n// time tokens\nvar parseTokenHH = /^(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMM = /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\nvar parseTokenHHMMSS = /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/\n\n// timezone tokens\nvar parseTokenTimezone = /([Z+-].*)$/\nvar parseTokenTimezoneZ = /^(Z)$/\nvar parseTokenTimezoneHH = /^([+-])(\\d{2})$/\nvar parseTokenTimezoneHHMM = /^([+-])(\\d{2}):?(\\d{2})$/\n\n/**\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If all above fails, the function passes the given argument to Date constructor.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Object} [options] - the object with options\n * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parse('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Parse string '+02014101',\n * // if the additional number of digits in the extended year format is 1:\n * var result = parse('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parse (argument, dirtyOptions) {\n  if (isDate(argument)) {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime())\n  } else if (typeof argument !== 'string') {\n    return new Date(argument)\n  }\n\n  var options = dirtyOptions || {}\n  var additionalDigits = options.additionalDigits\n  if (additionalDigits == null) {\n    additionalDigits = DEFAULT_ADDITIONAL_DIGITS\n  } else {\n    additionalDigits = Number(additionalDigits)\n  }\n\n  var dateStrings = splitDateString(argument)\n\n  var parseYearResult = parseYear(dateStrings.date, additionalDigits)\n  var year = parseYearResult.year\n  var restDateString = parseYearResult.restDateString\n\n  var date = parseDate(restDateString, year)\n\n  if (date) {\n    var timestamp = date.getTime()\n    var time = 0\n    var offset\n\n    if (dateStrings.time) {\n      time = parseTime(dateStrings.time)\n    }\n\n    if (dateStrings.timezone) {\n      offset = parseTimezone(dateStrings.timezone)\n    } else {\n      // get offset accurate to hour in timezones that change offset\n      offset = new Date(timestamp + time).getTimezoneOffset()\n      offset = new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE).getTimezoneOffset()\n    }\n\n    return new Date(timestamp + time + offset * MILLISECONDS_IN_MINUTE)\n  } else {\n    return new Date(argument)\n  }\n}\n\nfunction splitDateString (dateString) {\n  var dateStrings = {}\n  var array = dateString.split(parseTokenDateTimeDelimeter)\n  var timeString\n\n  if (parseTokenPlainTime.test(array[0])) {\n    dateStrings.date = null\n    timeString = array[0]\n  } else {\n    dateStrings.date = array[0]\n    timeString = array[1]\n  }\n\n  if (timeString) {\n    var token = parseTokenTimezone.exec(timeString)\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], '')\n      dateStrings.timezone = token[1]\n    } else {\n      dateStrings.time = timeString\n    }\n  }\n\n  return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n  var parseTokenYYY = parseTokensYYY[additionalDigits]\n  var parseTokenYYYYY = parseTokensYYYYY[additionalDigits]\n\n  var token\n\n  // YYYY or ±YYYYY\n  token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString)\n  if (token) {\n    var yearString = token[1]\n    return {\n      year: parseInt(yearString, 10),\n      restDateString: dateString.slice(yearString.length)\n    }\n  }\n\n  // YY or ±YYY\n  token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString)\n  if (token) {\n    var centuryString = token[1]\n    return {\n      year: parseInt(centuryString, 10) * 100,\n      restDateString: dateString.slice(centuryString.length)\n    }\n  }\n\n  // Invalid ISO-formatted year\n  return {\n    year: null\n  }\n}\n\nfunction parseDate (dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) {\n    return null\n  }\n\n  var token\n  var date\n  var month\n  var week\n\n  // YYYY\n  if (dateString.length === 0) {\n    date = new Date(0)\n    date.setUTCFullYear(year)\n    return date\n  }\n\n  // YYYY-MM\n  token = parseTokenMM.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    month = parseInt(token[1], 10) - 1\n    date.setUTCFullYear(year, month)\n    return date\n  }\n\n  // YYYY-DDD or YYYYDDD\n  token = parseTokenDDD.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    var dayOfYear = parseInt(token[1], 10)\n    date.setUTCFullYear(year, 0, dayOfYear)\n    return date\n  }\n\n  // YYYY-MM-DD or YYYYMMDD\n  token = parseTokenMMDD.exec(dateString)\n  if (token) {\n    date = new Date(0)\n    month = parseInt(token[1], 10) - 1\n    var day = parseInt(token[2], 10)\n    date.setUTCFullYear(year, month, day)\n    return date\n  }\n\n  // YYYY-Www or YYYYWww\n  token = parseTokenWww.exec(dateString)\n  if (token) {\n    week = parseInt(token[1], 10) - 1\n    return dayOfISOYear(year, week)\n  }\n\n  // YYYY-Www-D or YYYYWwwD\n  token = parseTokenWwwD.exec(dateString)\n  if (token) {\n    week = parseInt(token[1], 10) - 1\n    var dayOfWeek = parseInt(token[2], 10) - 1\n    return dayOfISOYear(year, week, dayOfWeek)\n  }\n\n  // Invalid ISO-formatted date\n  return null\n}\n\nfunction parseTime (timeString) {\n  var token\n  var hours\n  var minutes\n\n  // hh\n  token = parseTokenHH.exec(timeString)\n  if (token) {\n    hours = parseFloat(token[1].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR\n  }\n\n  // hh:mm or hhmm\n  token = parseTokenHHMM.exec(timeString)\n  if (token) {\n    hours = parseInt(token[1], 10)\n    minutes = parseFloat(token[2].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR +\n      minutes * MILLISECONDS_IN_MINUTE\n  }\n\n  // hh:mm:ss or hhmmss\n  token = parseTokenHHMMSS.exec(timeString)\n  if (token) {\n    hours = parseInt(token[1], 10)\n    minutes = parseInt(token[2], 10)\n    var seconds = parseFloat(token[3].replace(',', '.'))\n    return (hours % 24) * MILLISECONDS_IN_HOUR +\n      minutes * MILLISECONDS_IN_MINUTE +\n      seconds * 1000\n  }\n\n  // Invalid ISO-formatted time\n  return null\n}\n\nfunction parseTimezone (timezoneString) {\n  var token\n  var absoluteOffset\n\n  // Z\n  token = parseTokenTimezoneZ.exec(timezoneString)\n  if (token) {\n    return 0\n  }\n\n  // ±hh\n  token = parseTokenTimezoneHH.exec(timezoneString)\n  if (token) {\n    absoluteOffset = parseInt(token[2], 10) * 60\n    return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n  }\n\n  // ±hh:mm or ±hhmm\n  token = parseTokenTimezoneHHMM.exec(timezoneString)\n  if (token) {\n    absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10)\n    return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n  }\n\n  return 0\n}\n\nfunction dayOfISOYear (isoYear, week, day) {\n  week = week || 0\n  day = day || 0\n  var date = new Date(0)\n  date.setUTCFullYear(isoYear, 0, 4)\n  var fourthOfJanuaryDay = date.getUTCDay() || 7\n  var diff = week * 7 + day + 1 - fourthOfJanuaryDay\n  date.setUTCDate(date.getUTCDate() + diff)\n  return date\n}\n\nmodule.exports = parse\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\n * @returns {Date} the new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays (dirtyDate, dirtyAmount) {\n  var date = parse(dirtyDate)\n  var amount = Number(dirtyAmount)\n  date.setDate(date.getDate() + amount)\n  return date\n}\n\nmodule.exports = addDays\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds (dirtyDate, dirtyAmount) {\n  var timestamp = parse(dirtyDate).getTime()\n  var amount = Number(dirtyAmount)\n  return new Date(timestamp + amount)\n}\n\nmodule.exports = addMilliseconds\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\n\n/**\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added\n * @returns {Date} the new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR)\n}\n\nmodule.exports = addHours\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n  var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n  date.setDate(date.getDate() - diff)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfWeek\n","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n  return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n\n  var fourthOfJanuaryOfNextYear = new Date(0)\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n  var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n  var fourthOfJanuaryOfThisYear = new Date(0)\n  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n  var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n  if (date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1\n  } else if (date.getTime() >= startOfThisYear.getTime()) {\n    return year\n  } else {\n    return year - 1\n  }\n}\n\nmodule.exports = getISOYear\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n  var year = getISOYear(dirtyDate)\n  var fourthOfJanuary = new Date(0)\n  fourthOfJanuary.setFullYear(year, 0, 4)\n  fourthOfJanuary.setHours(0, 0, 0, 0)\n  var date = startOfISOWeek(fourthOfJanuary)\n  return date\n}\n\nmodule.exports = startOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfDay\n","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n  var startOfDayLeft = startOfDay(dirtyDateLeft)\n  var startOfDayRight = startOfDay(dirtyDateRight)\n\n  var timestampLeft = startOfDayLeft.getTime() -\n    startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n  var timestampRight = startOfDayRight.getTime() -\n    startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n","var parse = require('../parse/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year setted\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\nfunction setISOYear (dirtyDate, dirtyISOYear) {\n  var date = parse(dirtyDate)\n  var isoYear = Number(dirtyISOYear)\n  var diff = differenceInCalendarDays(date, startOfISOYear(date))\n  var fourthOfJanuary = new Date(0)\n  fourthOfJanuary.setFullYear(isoYear, 0, 4)\n  fourthOfJanuary.setHours(0, 0, 0, 0)\n  date = startOfISOYear(fourthOfJanuary)\n  date.setDate(date.getDate() + diff)\n  return date\n}\n\nmodule.exports = setISOYear\n","var getISOYear = require('../get_iso_year/index.js')\nvar setISOYear = require('../set_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added\n * @returns {Date} the new date with the ISO week-numbering years added\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\nfunction addISOYears (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return setISOYear(dirtyDate, getISOYear(dirtyDate) + amount)\n}\n\nmodule.exports = addISOYears\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added\n * @returns {Date} the new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE)\n}\n\nmodule.exports = addMinutes\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nfunction getDaysInMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n  var monthIndex = date.getMonth()\n  var lastDayOfMonth = new Date(0)\n  lastDayOfMonth.setFullYear(year, monthIndex + 1, 0)\n  lastDayOfMonth.setHours(0, 0, 0, 0)\n  return lastDayOfMonth.getDate()\n}\n\nmodule.exports = getDaysInMonth\n","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\n * @returns {Date} the new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nfunction addMonths (dirtyDate, dirtyAmount) {\n  var date = parse(dirtyDate)\n  var amount = Number(dirtyAmount)\n  var desiredMonth = date.getMonth() + amount\n  var dateWithDesiredMonth = new Date(0)\n  dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1)\n  dateWithDesiredMonth.setHours(0, 0, 0, 0)\n  var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n  // Set the last day of the new month\n  // if the original date was the last day of the longer month\n  date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()))\n  return date\n}\n\nmodule.exports = addMonths\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added\n * @returns {Date} the new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  var months = amount * 3\n  return addMonths(dirtyDate, months)\n}\n\nmodule.exports = addQuarters\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added\n * @returns {Date} the new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMilliseconds(dirtyDate, amount * 1000)\n}\n\nmodule.exports = addSeconds\n","var addDays = require('../add_days/index.js')\n\n/**\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  var days = amount * 7\n  return addDays(dirtyDate, days)\n}\n\nmodule.exports = addWeeks\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\n * @returns {Date} the new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMonths(dirtyDate, amount * 12)\n}\n\nmodule.exports = addYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Range Helpers\n * @summary Is the given date range overlapping with another date range?\n *\n * @description\n * Is the given date range overlapping with another date range?\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Boolean} whether the date ranges are overlapping\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges:\n * areRangesOverlapping(\n *   new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping date ranges:\n * areRangesOverlapping(\n *   new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> false\n */\nfunction areRangesOverlapping (dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n  var initialStartTime = parse(dirtyInitialRangeStartDate).getTime()\n  var initialEndTime = parse(dirtyInitialRangeEndDate).getTime()\n  var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime()\n  var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime()\n\n  if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n    throw new Error('The start of the range cannot be after the end of the range')\n  }\n\n  return initialStartTime < comparedEndTime && comparedStartTime < initialEndTime\n}\n\nmodule.exports = areRangesOverlapping\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Number} an index of the date closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * var dateToCompare = new Date(2015, 8, 6)\n * var datesArray = [\n *   new Date(2015, 0, 1),\n *   new Date(2016, 0, 1),\n *   new Date(2017, 0, 1)\n * ]\n * var result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\nfunction closestIndexTo (dirtyDateToCompare, dirtyDatesArray) {\n  if (!(dirtyDatesArray instanceof Array)) {\n    throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array')\n  }\n\n  var dateToCompare = parse(dirtyDateToCompare)\n  var timeToCompare = dateToCompare.getTime()\n\n  var result\n  var minDistance\n\n  dirtyDatesArray.forEach(function (dirtyDate, index) {\n    var currentDate = parse(dirtyDate)\n    var distance = Math.abs(timeToCompare - currentDate.getTime())\n    if (result === undefined || distance < minDistance) {\n      result = index\n      minDistance = distance\n    }\n  })\n\n  return result\n}\n\nmodule.exports = closestIndexTo\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date[]|String[]|Number[]} datesArray - the array to search\n * @returns {Date} the date from the array closest to the given date\n * @throws {TypeError} the second argument must be an instance of Array\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * var dateToCompare = new Date(2015, 8, 6)\n * var result = closestTo(dateToCompare, [\n *   new Date(2000, 0, 1),\n *   new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\nfunction closestTo (dirtyDateToCompare, dirtyDatesArray) {\n  if (!(dirtyDatesArray instanceof Array)) {\n    throw new TypeError(toString.call(dirtyDatesArray) + ' is not an instance of Array')\n  }\n\n  var dateToCompare = parse(dirtyDateToCompare)\n  var timeToCompare = dateToCompare.getTime()\n\n  var result\n  var minDistance\n\n  dirtyDatesArray.forEach(function (dirtyDate) {\n    var currentDate = parse(dirtyDate)\n    var distance = Math.abs(timeToCompare - currentDate.getTime())\n    if (result === undefined || distance < minDistance) {\n      result = currentDate\n      minDistance = distance\n    }\n  })\n\n  return result\n}\n\nmodule.exports = closestTo\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * )\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n *   new Date(1995, 6, 2),\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * //   Wed Feb 11 1987 00:00:00,\n * //   Mon Jul 10 1989 00:00:00,\n * //   Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var timeLeft = dateLeft.getTime()\n  var dateRight = parse(dirtyDateRight)\n  var timeRight = dateRight.getTime()\n\n  if (timeLeft < timeRight) {\n    return -1\n  } else if (timeLeft > timeRight) {\n    return 1\n  } else {\n    return 0\n  }\n}\n\nmodule.exports = compareAsc\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * )\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n *   new Date(1995, 6, 2),\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * //   Sun Jul 02 1995 00:00:00,\n * //   Mon Jul 10 1989 00:00:00,\n * //   Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var timeLeft = dateLeft.getTime()\n  var dateRight = parse(dirtyDateRight)\n  var timeRight = dateRight.getTime()\n\n  if (timeLeft > timeRight) {\n    return -1\n  } else if (timeLeft < timeRight) {\n    return 1\n  } else {\n    return 0\n  }\n}\n\nmodule.exports = compareDesc\n","var startOfISOWeek = require('../start_of_iso_week/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO weeks\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * var result = differenceInCalendarISOWeeks(\n *   new Date(2014, 6, 21),\n *   new Date(2014, 6, 6)\n * )\n * //=> 3\n */\nfunction differenceInCalendarISOWeeks (dirtyDateLeft, dirtyDateRight) {\n  var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft)\n  var startOfISOWeekRight = startOfISOWeek(dirtyDateRight)\n\n  var timestampLeft = startOfISOWeekLeft.getTime() -\n    startOfISOWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n  var timestampRight = startOfISOWeekRight.getTime() -\n    startOfISOWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = differenceInCalendarISOWeeks\n","var getISOYear = require('../get_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOYears(\n *   new Date(2012, 0, 1),\n *   new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOYears (dirtyDateLeft, dirtyDateRight) {\n  return getISOYear(dirtyDateLeft) - getISOYear(dirtyDateRight)\n}\n\nmodule.exports = differenceInCalendarISOYears\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n  var monthDiff = dateLeft.getMonth() - dateRight.getMonth()\n\n  return yearDiff * 12 + monthDiff\n}\n\nmodule.exports = differenceInCalendarMonths\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nfunction getQuarter (dirtyDate) {\n  var date = parse(dirtyDate)\n  var quarter = Math.floor(date.getMonth() / 3) + 1\n  return quarter\n}\n\nmodule.exports = getQuarter\n","var getQuarter = require('../get_quarter/index.js')\nvar parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInCalendarQuarters(\n *   new Date(2014, 6, 2),\n *   new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nfunction differenceInCalendarQuarters (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear()\n  var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight)\n\n  return yearDiff * 4 + quarterDiff\n}\n\nmodule.exports = differenceInCalendarQuarters\n","var startOfWeek = require('../start_of_week/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5),\n *   {weekStartsOn: 1}\n * )\n * //=> 2\n */\nfunction differenceInCalendarWeeks (dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n  var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions)\n  var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions)\n\n  var timestampLeft = startOfWeekLeft.getTime() -\n    startOfWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n  var timestampRight = startOfWeekRight.getTime() -\n    startOfWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = differenceInCalendarWeeks\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n *   new Date(2015, 1, 11),\n *   new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  return dateLeft.getFullYear() - dateRight.getFullYear()\n}\n\nmodule.exports = differenceInCalendarYears\n","var parse = require('../parse/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full days\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n */\nfunction differenceInDays (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var sign = compareAsc(dateLeft, dateRight)\n  var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight))\n  dateLeft.setDate(dateLeft.getDate() - sign * difference)\n\n  // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n  // If so, result must be decreased by 1 in absolute value\n  var isLastDayNotFull = compareAsc(dateLeft, dateRight) === -sign\n  return sign * (difference - isLastDayNotFull)\n}\n\nmodule.exports = differenceInDays\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n *   new Date(2014, 6, 2, 12, 30, 21, 700),\n *   new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n  return dateLeft.getTime() - dateRight.getTime()\n}\n\nmodule.exports = differenceInMilliseconds\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\nvar MILLISECONDS_IN_HOUR = 3600000\n\n/**\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n *   new Date(2014, 6, 2, 19, 0),\n *   new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours (dirtyDateLeft, dirtyDateRight) {\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInHours\n","var addISOYears = require('../add_iso_years/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\nfunction subISOYears (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addISOYears(dirtyDate, -amount)\n}\n\nmodule.exports = subISOYears\n","var parse = require('../parse/index.js')\nvar differenceInCalendarISOYears = require('../difference_in_calendar_iso_years/index.js')\nvar compareAsc = require('../compare_asc/index.js')\nvar subISOYears = require('../sub_iso_years/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full ISO week-numbering years\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * var result = differenceInISOYears(\n *   new Date(2012, 0, 1),\n *   new Date(2010, 0, 1)\n * )\n * //=> 1\n */\nfunction differenceInISOYears (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var sign = compareAsc(dateLeft, dateRight)\n  var difference = Math.abs(differenceInCalendarISOYears(dateLeft, dateRight))\n  dateLeft = subISOYears(dateLeft, sign * difference)\n\n  // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n  // if last calendar ISO year is not full\n  // If so, result must be decreased by 1 in absolute value\n  var isLastISOYearNotFull = compareAsc(dateLeft, dateRight) === -sign\n  return sign * (difference - isLastISOYearNotFull)\n}\n\nmodule.exports = differenceInISOYears\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\n\n/**\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the number of minutes between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n *   new Date(2014, 6, 2, 12, 20, 0),\n *   new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n */\nfunction differenceInMinutes (dirtyDateLeft, dirtyDateRight) {\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInMinutes\n","var parse = require('../parse/index.js')\nvar differenceInCalendarMonths = require('../difference_in_calendar_months/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 0, 31)\n * )\n * //=> 7\n */\nfunction differenceInMonths (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var sign = compareAsc(dateLeft, dateRight)\n  var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight))\n  dateLeft.setMonth(dateLeft.getMonth() - sign * difference)\n\n  // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n  // If so, result must be decreased by 1 in absolute value\n  var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign\n  return sign * (difference - isLastMonthNotFull)\n}\n\nmodule.exports = differenceInMonths\n","var differenceInMonths = require('../difference_in_months/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Get the number of full quarters between the given dates.\n *\n * @description\n * Get the number of full quarters between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInQuarters(\n *   new Date(2014, 6, 2),\n *   new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInQuarters (dirtyDateLeft, dirtyDateRight) {\n  var diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInQuarters\n","var differenceInMilliseconds = require('../difference_in_milliseconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n *   new Date(2014, 6, 2, 12, 30, 20, 0),\n *   new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds (dirtyDateLeft, dirtyDateRight) {\n  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInSeconds\n","var differenceInDays = require('../difference_in_days/index.js')\n\n/**\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5)\n * )\n * //=> 2\n */\nfunction differenceInWeeks (dirtyDateLeft, dirtyDateRight) {\n  var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7\n  return diff > 0 ? Math.floor(diff) : Math.ceil(diff)\n}\n\nmodule.exports = differenceInWeeks\n","var parse = require('../parse/index.js')\nvar differenceInCalendarYears = require('../difference_in_calendar_years/index.js')\nvar compareAsc = require('../compare_asc/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInYears(\n *   new Date(2015, 1, 11),\n *   new Date(2013, 11, 31)\n * )\n * //=> 1\n */\nfunction differenceInYears (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n\n  var sign = compareAsc(dateLeft, dateRight)\n  var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight))\n  dateLeft.setFullYear(dateLeft.getFullYear() - sign * difference)\n\n  // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n  // If so, result must be decreased by 1 in absolute value\n  var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign\n  return sign * (difference - isLastYearNotFull)\n}\n\nmodule.exports = differenceInYears\n","function buildDistanceInWordsLocale () {\n  var distanceInWordsLocale = {\n    lessThanXSeconds: {\n      one: 'less than a second',\n      other: 'less than {{count}} seconds'\n    },\n\n    xSeconds: {\n      one: '1 second',\n      other: '{{count}} seconds'\n    },\n\n    halfAMinute: 'half a minute',\n\n    lessThanXMinutes: {\n      one: 'less than a minute',\n      other: 'less than {{count}} minutes'\n    },\n\n    xMinutes: {\n      one: '1 minute',\n      other: '{{count}} minutes'\n    },\n\n    aboutXHours: {\n      one: 'about 1 hour',\n      other: 'about {{count}} hours'\n    },\n\n    xHours: {\n      one: '1 hour',\n      other: '{{count}} hours'\n    },\n\n    xDays: {\n      one: '1 day',\n      other: '{{count}} days'\n    },\n\n    aboutXMonths: {\n      one: 'about 1 month',\n      other: 'about {{count}} months'\n    },\n\n    xMonths: {\n      one: '1 month',\n      other: '{{count}} months'\n    },\n\n    aboutXYears: {\n      one: 'about 1 year',\n      other: 'about {{count}} years'\n    },\n\n    xYears: {\n      one: '1 year',\n      other: '{{count}} years'\n    },\n\n    overXYears: {\n      one: 'over 1 year',\n      other: 'over {{count}} years'\n    },\n\n    almostXYears: {\n      one: 'almost 1 year',\n      other: 'almost {{count}} years'\n    }\n  }\n\n  function localize (token, count, options) {\n    options = options || {}\n\n    var result\n    if (typeof distanceInWordsLocale[token] === 'string') {\n      result = distanceInWordsLocale[token]\n    } else if (count === 1) {\n      result = distanceInWordsLocale[token].one\n    } else {\n      result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n    }\n\n    if (options.addSuffix) {\n      if (options.comparison > 0) {\n        return 'in ' + result\n      } else {\n        return result + ' ago'\n      }\n    }\n\n    return result\n  }\n\n  return {\n    localize: localize\n  }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n","var commonFormatterKeys = [\n  'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n  'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n  'H', 'HH', 'h', 'hh', 'm', 'mm',\n  's', 'ss', 'S', 'SS', 'SSS',\n  'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n  var formatterKeys = []\n  for (var key in formatters) {\n    if (formatters.hasOwnProperty(key)) {\n      formatterKeys.push(key)\n    }\n  }\n\n  var formattingTokens = commonFormatterKeys\n    .concat(formatterKeys)\n    .sort()\n    .reverse()\n  var formattingTokensRegExp = new RegExp(\n    '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n  )\n\n  return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n  // Note: in English, the names of days of the week and months are capitalized.\n  // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n  // Generally, formatted dates should look like they are in the middle of a sentence,\n  // e.g. in Spanish language the weekdays and months should be in the lowercase.\n  var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n  var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n  var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n  var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n  var meridiemUppercase = ['AM', 'PM']\n  var meridiemLowercase = ['am', 'pm']\n  var meridiemFull = ['a.m.', 'p.m.']\n\n  var formatters = {\n    // Month: Jan, Feb, ..., Dec\n    'MMM': function (date) {\n      return months3char[date.getMonth()]\n    },\n\n    // Month: January, February, ..., December\n    'MMMM': function (date) {\n      return monthsFull[date.getMonth()]\n    },\n\n    // Day of week: Su, Mo, ..., Sa\n    'dd': function (date) {\n      return weekdays2char[date.getDay()]\n    },\n\n    // Day of week: Sun, Mon, ..., Sat\n    'ddd': function (date) {\n      return weekdays3char[date.getDay()]\n    },\n\n    // Day of week: Sunday, Monday, ..., Saturday\n    'dddd': function (date) {\n      return weekdaysFull[date.getDay()]\n    },\n\n    // AM, PM\n    'A': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n    },\n\n    // am, pm\n    'a': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n    },\n\n    // a.m., p.m.\n    'aa': function (date) {\n      return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n    }\n  }\n\n  // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n  var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n  ordinalFormatters.forEach(function (formatterToken) {\n    formatters[formatterToken + 'o'] = function (date, formatters) {\n      return ordinal(formatters[formatterToken](date))\n    }\n  })\n\n  return {\n    formatters: formatters,\n    formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n  }\n}\n\nfunction ordinal (number) {\n  var rem100 = number % 100\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + 'st'\n      case 2:\n        return number + 'nd'\n      case 3:\n        return number + 'rd'\n    }\n  }\n  return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n  distanceInWords: buildDistanceInWordsLocale(),\n  format: buildFormatLocale()\n}\n","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar differenceInMonths = require('../difference_in_months/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_TWO_MONTHS = 86400\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates                                            | Result              |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs                                                     | less than a minute  |\n * | 30 secs ... 1 min 30 secs                                         | 1 minute            |\n * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |\n * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |\n * | 1 yr ... 1 yr 3 months                                            | about 1 year        |\n * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |\n * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |\n * | N yrs ... N yrs 3 months                                          | about N years       |\n * | N yrs 3 months ... N yrs 9 months                                 | over N years        |\n * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result               |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs      | less than 5 seconds  |\n * | 5 secs ... 10 secs     | less than 10 seconds |\n * | 10 secs ... 20 secs    | less than 20 seconds |\n * | 20 secs ... 40 secs    | half a minute        |\n * | 40 secs ... 60 secs    | less than a minute   |\n * | 60 secs ... 90 secs    | 1 minute             |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWords(\n *   new Date(2014, 6, 2),\n *   new Date(2015, 0, 1)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = distanceInWords(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   new Date(2015, 0, 1, 0, 0, 0),\n *   {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWords(\n *   new Date(2016, 0, 1),\n *   new Date(2015, 0, 1),\n *   {addSuffix: true}\n * )\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWords(\n *   new Date(2016, 7, 1),\n *   new Date(2015, 0, 1),\n *   {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWords (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n  var options = dirtyOptions || {}\n\n  var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n  var locale = options.locale\n  var localize = enLocale.distanceInWords.localize\n  if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n    localize = locale.distanceInWords.localize\n  }\n\n  var localizeOptions = {\n    addSuffix: Boolean(options.addSuffix),\n    comparison: comparison\n  }\n\n  var dateLeft, dateRight\n  if (comparison > 0) {\n    dateLeft = parse(dirtyDateToCompare)\n    dateRight = parse(dirtyDate)\n  } else {\n    dateLeft = parse(dirtyDate)\n    dateRight = parse(dirtyDateToCompare)\n  }\n\n  var seconds = differenceInSeconds(dateRight, dateLeft)\n  var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n  var minutes = Math.round(seconds / 60) - offset\n  var months\n\n  // 0 up to 2 mins\n  if (minutes < 2) {\n    if (options.includeSeconds) {\n      if (seconds < 5) {\n        return localize('lessThanXSeconds', 5, localizeOptions)\n      } else if (seconds < 10) {\n        return localize('lessThanXSeconds', 10, localizeOptions)\n      } else if (seconds < 20) {\n        return localize('lessThanXSeconds', 20, localizeOptions)\n      } else if (seconds < 40) {\n        return localize('halfAMinute', null, localizeOptions)\n      } else if (seconds < 60) {\n        return localize('lessThanXMinutes', 1, localizeOptions)\n      } else {\n        return localize('xMinutes', 1, localizeOptions)\n      }\n    } else {\n      if (minutes === 0) {\n        return localize('lessThanXMinutes', 1, localizeOptions)\n      } else {\n        return localize('xMinutes', minutes, localizeOptions)\n      }\n    }\n\n  // 2 mins up to 0.75 hrs\n  } else if (minutes < 45) {\n    return localize('xMinutes', minutes, localizeOptions)\n\n  // 0.75 hrs up to 1.5 hrs\n  } else if (minutes < 90) {\n    return localize('aboutXHours', 1, localizeOptions)\n\n  // 1.5 hrs up to 24 hrs\n  } else if (minutes < MINUTES_IN_DAY) {\n    var hours = Math.round(minutes / 60)\n    return localize('aboutXHours', hours, localizeOptions)\n\n  // 1 day up to 1.75 days\n  } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n    return localize('xDays', 1, localizeOptions)\n\n  // 1.75 days up to 30 days\n  } else if (minutes < MINUTES_IN_MONTH) {\n    var days = Math.round(minutes / MINUTES_IN_DAY)\n    return localize('xDays', days, localizeOptions)\n\n  // 1 month up to 2 months\n  } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n    months = Math.round(minutes / MINUTES_IN_MONTH)\n    return localize('aboutXMonths', months, localizeOptions)\n  }\n\n  months = differenceInMonths(dateRight, dateLeft)\n\n  // 2 months up to 12 months\n  if (months < 12) {\n    var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH)\n    return localize('xMonths', nearestMonth, localizeOptions)\n\n  // 1 year up to max Date\n  } else {\n    var monthsSinceStartOfYear = months % 12\n    var years = Math.floor(months / 12)\n\n    // N years up to 1 years 3 months\n    if (monthsSinceStartOfYear < 3) {\n      return localize('aboutXYears', years, localizeOptions)\n\n    // N years 3 months up to N years 9 months\n    } else if (monthsSinceStartOfYear < 9) {\n      return localize('overXYears', years, localizeOptions)\n\n    // N years 9 months up to N year 12 months\n    } else {\n      return localize('almostXYears', years + 1, localizeOptions)\n    }\n  }\n}\n\nmodule.exports = distanceInWords\n","var compareDesc = require('../compare_desc/index.js')\nvar parse = require('../parse/index.js')\nvar differenceInSeconds = require('../difference_in_seconds/index.js')\nvar enLocale = require('../locale/en/index.js')\n\nvar MINUTES_IN_DAY = 1440\nvar MINUTES_IN_MONTH = 43200\nvar MINUTES_IN_YEAR = 525600\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `distanceInWords`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result              |\n * |------------------------|---------------------|\n * | 0 ... 59 secs          | [0..59] seconds     |\n * | 1 ... 59 mins          | [1..59] minutes     |\n * | 1 ... 23 hrs           | [1..23] hours       |\n * | 1 ... 29 days          | [1..29] days        |\n * | 1 ... 11 months        | [1..11] months      |\n * | 1 ... N years          | [1..N]  years       |\n *\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Date|String|Number} date - the other date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'s'|'m'|'h'|'d'|'M'|'Y'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.partialMethod='floor'] - which way to round partial units\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = distanceInWordsStrict(\n *   new Date(2014, 6, 2),\n *   new Date(2015, 0, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * var result = distanceInWordsStrict(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   new Date(2015, 0, 1, 0, 0, 0),\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = distanceInWordsStrict(\n *   new Date(2016, 0, 1),\n *   new Date(2015, 0, 1),\n *   {addSuffix: true}\n * )\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * var result = distanceInWordsStrict(\n *   new Date(2016, 0, 1),\n *   new Date(2015, 0, 1),\n *   {unit: 'm'}\n * )\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 28 January 2015, in months, rounded up?\n * var result = distanceInWordsStrict(\n *   new Date(2015, 0, 28),\n *   new Date(2015, 0, 1),\n *   {unit: 'M', partialMethod: 'ceil'}\n * )\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsStrict(\n *   new Date(2016, 7, 1),\n *   new Date(2015, 0, 1),\n *   {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\nfunction distanceInWordsStrict (dirtyDateToCompare, dirtyDate, dirtyOptions) {\n  var options = dirtyOptions || {}\n\n  var comparison = compareDesc(dirtyDateToCompare, dirtyDate)\n\n  var locale = options.locale\n  var localize = enLocale.distanceInWords.localize\n  if (locale && locale.distanceInWords && locale.distanceInWords.localize) {\n    localize = locale.distanceInWords.localize\n  }\n\n  var localizeOptions = {\n    addSuffix: Boolean(options.addSuffix),\n    comparison: comparison\n  }\n\n  var dateLeft, dateRight\n  if (comparison > 0) {\n    dateLeft = parse(dirtyDateToCompare)\n    dateRight = parse(dirtyDate)\n  } else {\n    dateLeft = parse(dirtyDate)\n    dateRight = parse(dirtyDateToCompare)\n  }\n\n  var unit\n  var mathPartial = Math[options.partialMethod ? String(options.partialMethod) : 'floor']\n  var seconds = differenceInSeconds(dateRight, dateLeft)\n  var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset()\n  var minutes = mathPartial(seconds / 60) - offset\n  var hours, days, months, years\n\n  if (options.unit) {\n    unit = String(options.unit)\n  } else {\n    if (minutes < 1) {\n      unit = 's'\n    } else if (minutes < 60) {\n      unit = 'm'\n    } else if (minutes < MINUTES_IN_DAY) {\n      unit = 'h'\n    } else if (minutes < MINUTES_IN_MONTH) {\n      unit = 'd'\n    } else if (minutes < MINUTES_IN_YEAR) {\n      unit = 'M'\n    } else {\n      unit = 'Y'\n    }\n  }\n\n  // 0 up to 60 seconds\n  if (unit === 's') {\n    return localize('xSeconds', seconds, localizeOptions)\n\n  // 1 up to 60 mins\n  } else if (unit === 'm') {\n    return localize('xMinutes', minutes, localizeOptions)\n\n  // 1 up to 24 hours\n  } else if (unit === 'h') {\n    hours = mathPartial(minutes / 60)\n    return localize('xHours', hours, localizeOptions)\n\n  // 1 up to 30 days\n  } else if (unit === 'd') {\n    days = mathPartial(minutes / MINUTES_IN_DAY)\n    return localize('xDays', days, localizeOptions)\n\n  // 1 up to 12 months\n  } else if (unit === 'M') {\n    months = mathPartial(minutes / MINUTES_IN_MONTH)\n    return localize('xMonths', months, localizeOptions)\n\n  // 1 year up to max Date\n  } else if (unit === 'Y') {\n    years = mathPartial(minutes / MINUTES_IN_YEAR)\n    return localize('xYears', years, localizeOptions)\n  }\n\n  throw new Error('Unknown unit: ' + unit)\n}\n\nmodule.exports = distanceInWordsStrict\n","var distanceInWords = require('../distance_in_words/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now                                                   | Result              |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs                                                     | less than a minute  |\n * | 30 secs ... 1 min 30 secs                                         | 1 minute            |\n * | 1 min 30 secs ... 44 mins 30 secs                                 | [2..44] minutes     |\n * | 44 mins ... 30 secs ... 89 mins 30 secs                           | about 1 hour        |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs                        | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs                 | 1 day               |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs         | [2..30] days        |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month       |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months      |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr                           | [2..12] months      |\n * | 1 yr ... 1 yr 3 months                                            | about 1 year        |\n * | 1 yr 3 months ... 1 yr 9 month s                                  | over 1 year         |\n * | 1 yr 9 months ... 2 yrs                                           | almost 2 years      |\n * | N yrs ... N yrs 3 months                                          | about N years       |\n * | N yrs 3 months ... N yrs 9 months                                 | over N years        |\n * | N yrs 9 months ... N+1 yrs                                        | almost N+1 years    |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now     | Result               |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs   | less than 5 seconds  |\n * | 5 secs ... 10 secs  | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute        |\n * | 40 secs ... 60 secs | less than a minute   |\n * | 60 secs ... 90 secs | 1 minute             |\n *\n * @param {Date|String|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if the second date is earlier or later than the first\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the distance in words\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = distanceInWordsToNow(\n *   new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = distanceInWordsToNow(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = distanceInWordsToNow(\n *   new Date(2016, 0, 1),\n *   {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = distanceInWordsToNow(\n *   new Date(2016, 7, 1),\n *   {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction distanceInWordsToNow (dirtyDate, dirtyOptions) {\n  return distanceInWords(Date.now(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = distanceInWordsToNow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the array of dates within the specified range.\n *\n * @description\n * Return the array of dates within the specified range.\n *\n * @param {Date|String|Number} startDate - the first date\n * @param {Date|String|Number} endDate - the last date\n * @param {Number} [step=1] - the step between each day\n * @returns {Date[]} the array with starts of days from the day of startDate to the day of endDate\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * var result = eachDay(\n *   new Date(2014, 9, 6),\n *   new Date(2014, 9, 10)\n * )\n * //=> [\n * //   Mon Oct 06 2014 00:00:00,\n * //   Tue Oct 07 2014 00:00:00,\n * //   Wed Oct 08 2014 00:00:00,\n * //   Thu Oct 09 2014 00:00:00,\n * //   Fri Oct 10 2014 00:00:00\n * // ]\n */\nfunction eachDay (dirtyStartDate, dirtyEndDate, dirtyStep) {\n  var startDate = parse(dirtyStartDate)\n  var endDate = parse(dirtyEndDate)\n  var step = dirtyStep !== undefined ? dirtyStep : 1\n\n  var endTime = endDate.getTime()\n\n  if (startDate.getTime() > endTime) {\n    throw new Error('The first date cannot be after the second date')\n  }\n\n  var dates = []\n\n  var currentDate = startDate\n  currentDate.setHours(0, 0, 0, 0)\n\n  while (currentDate.getTime() <= endTime) {\n    dates.push(parse(currentDate))\n    currentDate.setDate(currentDate.getDate() + step)\n  }\n\n  return dates\n}\n\nmodule.exports = eachDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * var result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setMinutes(59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfHour\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek (dirtyDate, dirtyOptions) {\n  var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n  date.setDate(date.getDate() + diff)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfWeek\n","var endOfWeek = require('../end_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * var result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfISOWeek (dirtyDate) {\n  return endOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = endOfISOWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * var result = endOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\nfunction endOfISOYear (dirtyDate) {\n  var year = getISOYear(dirtyDate)\n  var fourthOfJanuaryOfNextYear = new Date(0)\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n  var date = startOfISOWeek(fourthOfJanuaryOfNextYear)\n  date.setMilliseconds(date.getMilliseconds() - 1)\n  return date\n}\n\nmodule.exports = endOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * var result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setSeconds(59, 999)\n  return date\n}\n\nmodule.exports = endOfMinute\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  var month = date.getMonth()\n  date.setFullYear(date.getFullYear(), month + 1, 0)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * var result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter (dirtyDate) {\n  var date = parse(dirtyDate)\n  var currentMonth = date.getMonth()\n  var month = currentMonth - currentMonth % 3 + 3\n  date.setMonth(month, 0)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * var result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setMilliseconds(999)\n  return date\n}\n\nmodule.exports = endOfSecond\n","var endOfDay = require('../end_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the end of today.\n *\n * @description\n * Return the end of today.\n *\n * @returns {Date} the end of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\nfunction endOfToday () {\n  return endOfDay(new Date())\n}\n\nmodule.exports = endOfToday\n","/**\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n *\n * @description\n * Return the end of tomorrow.\n *\n * @returns {Date} the end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nfunction endOfTomorrow () {\n  var now = new Date()\n  var year = now.getFullYear()\n  var month = now.getMonth()\n  var day = now.getDate()\n\n  var date = new Date(0)\n  date.setFullYear(year, month, day + 1)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfTomorrow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n  date.setFullYear(year + 1, 0, 0)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfYear\n","/**\n * @category Day Helpers\n * @summary Return the end of yesterday.\n *\n * @description\n * Return the end of yesterday.\n *\n * @returns {Date} the end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nfunction endOfYesterday () {\n  var now = new Date()\n  var year = now.getFullYear()\n  var month = now.getMonth()\n  var day = now.getDate()\n\n  var date = new Date(0)\n  date.setFullYear(year, month, day - 1)\n  date.setHours(23, 59, 59, 999)\n  return date\n}\n\nmodule.exports = endOfYesterday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n  var cleanDate = parse(dirtyDate)\n  var date = new Date(0)\n  date.setFullYear(cleanDate.getFullYear(), 0, 1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfYear\n","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var diff = differenceInCalendarDays(date, startOfYear(date))\n  var dayOfYear = diff + 1\n  return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n  var date = parse(dirtyDate)\n  var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n  if (isDate(dirtyDate)) {\n    return !isNaN(dirtyDate)\n  } else {\n    throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n  }\n}\n\nmodule.exports = isValid\n","var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit                    | Token | Result examples                  |\n * |-------------------------|-------|----------------------------------|\n * | Month                   | M     | 1, 2, ..., 12                    |\n * |                         | Mo    | 1st, 2nd, ..., 12th              |\n * |                         | MM    | 01, 02, ..., 12                  |\n * |                         | MMM   | Jan, Feb, ..., Dec               |\n * |                         | MMMM  | January, February, ..., December |\n * | Quarter                 | Q     | 1, 2, 3, 4                       |\n * |                         | Qo    | 1st, 2nd, 3rd, 4th               |\n * | Day of month            | D     | 1, 2, ..., 31                    |\n * |                         | Do    | 1st, 2nd, ..., 31st              |\n * |                         | DD    | 01, 02, ..., 31                  |\n * | Day of year             | DDD   | 1, 2, ..., 366                   |\n * |                         | DDDo  | 1st, 2nd, ..., 366th             |\n * |                         | DDDD  | 001, 002, ..., 366               |\n * | Day of week             | d     | 0, 1, ..., 6                     |\n * |                         | do    | 0th, 1st, ..., 6th               |\n * |                         | dd    | Su, Mo, ..., Sa                  |\n * |                         | ddd   | Sun, Mon, ..., Sat               |\n * |                         | dddd  | Sunday, Monday, ..., Saturday    |\n * | Day of ISO week         | E     | 1, 2, ..., 7                     |\n * | ISO week                | W     | 1, 2, ..., 53                    |\n * |                         | Wo    | 1st, 2nd, ..., 53rd              |\n * |                         | WW    | 01, 02, ..., 53                  |\n * | Year                    | YY    | 00, 01, ..., 99                  |\n * |                         | YYYY  | 1900, 1901, ..., 2099            |\n * | ISO week-numbering year | GG    | 00, 01, ..., 99                  |\n * |                         | GGGG  | 1900, 1901, ..., 2099            |\n * | AM/PM                   | A     | AM, PM                           |\n * |                         | a     | am, pm                           |\n * |                         | aa    | a.m., p.m.                       |\n * | Hour                    | H     | 0, 1, ... 23                     |\n * |                         | HH    | 00, 01, ... 23                   |\n * |                         | h     | 1, 2, ..., 12                    |\n * |                         | hh    | 01, 02, ..., 12                  |\n * | Minute                  | m     | 0, 1, ..., 59                    |\n * |                         | mm    | 00, 01, ..., 59                  |\n * | Second                  | s     | 0, 1, ..., 59                    |\n * |                         | ss    | 00, 01, ..., 59                  |\n * | 1/10 of second          | S     | 0, 1, ..., 9                     |\n * | 1/100 of second         | SS    | 00, 01, ..., 99                  |\n * | Millisecond             | SSS   | 000, 001, ..., 999               |\n * | Timezone                | Z     | -01:00, +00:00, ... +12:00       |\n * |                         | ZZ    | -0100, +0000, ..., +1200         |\n * | Seconds timestamp       | X     | 512969520                        |\n * | Milliseconds timestamp  | x     | 512969520900                     |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n *   new Date(2014, 1, 11),\n *   'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n *   new Date(2014, 6, 2),\n *   'Do [de] MMMM YYYY',\n *   {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n  var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n  var options = dirtyOptions || {}\n\n  var locale = options.locale\n  var localeFormatters = enLocale.format.formatters\n  var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n  if (locale && locale.format && locale.format.formatters) {\n    localeFormatters = locale.format.formatters\n\n    if (locale.format.formattingTokensRegExp) {\n      formattingTokensRegExp = locale.format.formattingTokensRegExp\n    }\n  }\n\n  var date = parse(dirtyDate)\n\n  if (!isValid(date)) {\n    return 'Invalid Date'\n  }\n\n  var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n  return formatFn(date)\n}\n\nvar formatters = {\n  // Month: 1, 2, ..., 12\n  'M': function (date) {\n    return date.getMonth() + 1\n  },\n\n  // Month: 01, 02, ..., 12\n  'MM': function (date) {\n    return addLeadingZeros(date.getMonth() + 1, 2)\n  },\n\n  // Quarter: 1, 2, 3, 4\n  'Q': function (date) {\n    return Math.ceil((date.getMonth() + 1) / 3)\n  },\n\n  // Day of month: 1, 2, ..., 31\n  'D': function (date) {\n    return date.getDate()\n  },\n\n  // Day of month: 01, 02, ..., 31\n  'DD': function (date) {\n    return addLeadingZeros(date.getDate(), 2)\n  },\n\n  // Day of year: 1, 2, ..., 366\n  'DDD': function (date) {\n    return getDayOfYear(date)\n  },\n\n  // Day of year: 001, 002, ..., 366\n  'DDDD': function (date) {\n    return addLeadingZeros(getDayOfYear(date), 3)\n  },\n\n  // Day of week: 0, 1, ..., 6\n  'd': function (date) {\n    return date.getDay()\n  },\n\n  // Day of ISO week: 1, 2, ..., 7\n  'E': function (date) {\n    return date.getDay() || 7\n  },\n\n  // ISO week: 1, 2, ..., 53\n  'W': function (date) {\n    return getISOWeek(date)\n  },\n\n  // ISO week: 01, 02, ..., 53\n  'WW': function (date) {\n    return addLeadingZeros(getISOWeek(date), 2)\n  },\n\n  // Year: 00, 01, ..., 99\n  'YY': function (date) {\n    return addLeadingZeros(date.getFullYear(), 4).substr(2)\n  },\n\n  // Year: 1900, 1901, ..., 2099\n  'YYYY': function (date) {\n    return addLeadingZeros(date.getFullYear(), 4)\n  },\n\n  // ISO week-numbering year: 00, 01, ..., 99\n  'GG': function (date) {\n    return String(getISOYear(date)).substr(2)\n  },\n\n  // ISO week-numbering year: 1900, 1901, ..., 2099\n  'GGGG': function (date) {\n    return getISOYear(date)\n  },\n\n  // Hour: 0, 1, ... 23\n  'H': function (date) {\n    return date.getHours()\n  },\n\n  // Hour: 00, 01, ..., 23\n  'HH': function (date) {\n    return addLeadingZeros(date.getHours(), 2)\n  },\n\n  // Hour: 1, 2, ..., 12\n  'h': function (date) {\n    var hours = date.getHours()\n    if (hours === 0) {\n      return 12\n    } else if (hours > 12) {\n      return hours % 12\n    } else {\n      return hours\n    }\n  },\n\n  // Hour: 01, 02, ..., 12\n  'hh': function (date) {\n    return addLeadingZeros(formatters['h'](date), 2)\n  },\n\n  // Minute: 0, 1, ..., 59\n  'm': function (date) {\n    return date.getMinutes()\n  },\n\n  // Minute: 00, 01, ..., 59\n  'mm': function (date) {\n    return addLeadingZeros(date.getMinutes(), 2)\n  },\n\n  // Second: 0, 1, ..., 59\n  's': function (date) {\n    return date.getSeconds()\n  },\n\n  // Second: 00, 01, ..., 59\n  'ss': function (date) {\n    return addLeadingZeros(date.getSeconds(), 2)\n  },\n\n  // 1/10 of second: 0, 1, ..., 9\n  'S': function (date) {\n    return Math.floor(date.getMilliseconds() / 100)\n  },\n\n  // 1/100 of second: 00, 01, ..., 99\n  'SS': function (date) {\n    return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n  },\n\n  // Millisecond: 000, 001, ..., 999\n  'SSS': function (date) {\n    return addLeadingZeros(date.getMilliseconds(), 3)\n  },\n\n  // Timezone: -01:00, +00:00, ... +12:00\n  'Z': function (date) {\n    return formatTimezone(date.getTimezoneOffset(), ':')\n  },\n\n  // Timezone: -0100, +0000, ... +1200\n  'ZZ': function (date) {\n    return formatTimezone(date.getTimezoneOffset())\n  },\n\n  // Seconds timestamp: 512969520\n  'X': function (date) {\n    return Math.floor(date.getTime() / 1000)\n  },\n\n  // Milliseconds timestamp: 512969520900\n  'x': function (date) {\n    return date.getTime()\n  }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n  var array = formatStr.match(formattingTokensRegExp)\n  var length = array.length\n\n  var i\n  var formatter\n  for (i = 0; i < length; i++) {\n    formatter = localeFormatters[array[i]] || formatters[array[i]]\n    if (formatter) {\n      array[i] = formatter\n    } else {\n      array[i] = removeFormattingTokens(array[i])\n    }\n  }\n\n  return function (date) {\n    var output = ''\n    for (var i = 0; i < length; i++) {\n      if (array[i] instanceof Function) {\n        output += array[i](date, formatters)\n      } else {\n        output += array[i]\n      }\n    }\n    return output\n  }\n}\n\nfunction removeFormattingTokens (input) {\n  if (input.match(/\\[[\\s\\S]/)) {\n    return input.replace(/^\\[|]$/g, '')\n  }\n  return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n  delimeter = delimeter || ''\n  var sign = offset > 0 ? '-' : '+'\n  var absOffset = Math.abs(offset)\n  var hours = Math.floor(absOffset / 60)\n  var minutes = absOffset % 60\n  return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n  var output = Math.abs(number).toString()\n  while (output.length < targetLength) {\n    output = '0' + output\n  }\n  return output\n}\n\nmodule.exports = format\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nfunction getDate (dirtyDate) {\n  var date = parse(dirtyDate)\n  var dayOfMonth = date.getDate()\n  return dayOfMonth\n}\n\nmodule.exports = getDate\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of week\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nfunction getDay (dirtyDate) {\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  return day\n}\n\nmodule.exports = getDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\nfunction isLeapYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0\n}\n\nmodule.exports = isLeapYear\n","var isLeapYear = require('../is_leap_year/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of days in a year\n *\n * @example\n * // How many days are in 2012?\n * var result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\nfunction getDaysInYear (dirtyDate) {\n  return isLeapYear(dirtyDate) ? 366 : 365\n}\n\nmodule.exports = getDaysInYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nfunction getHours (dirtyDate) {\n  var date = parse(dirtyDate)\n  var hours = date.getHours()\n  return hours\n}\n\nmodule.exports = getHours\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay (dirtyDate) {\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n\n  if (day === 0) {\n    day = 7\n  }\n\n  return day\n}\n\nmodule.exports = getISODay\n","var startOfISOYear = require('../start_of_iso_year/index.js')\nvar addWeeks = require('../add_weeks/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the number of ISO weeks in a year\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * var result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\nfunction getISOWeeksInYear (dirtyDate) {\n  var thisYear = startOfISOYear(dirtyDate)\n  var nextYear = startOfISOYear(addWeeks(thisYear, 60))\n  var diff = nextYear.valueOf() - thisYear.valueOf()\n  // Round the number of weeks to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round(diff / MILLISECONDS_IN_WEEK)\n}\n\nmodule.exports = getISOWeeksInYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the milliseconds\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * var result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\nfunction getMilliseconds (dirtyDate) {\n  var date = parse(dirtyDate)\n  var milliseconds = date.getMilliseconds()\n  return milliseconds\n}\n\nmodule.exports = getMilliseconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nfunction getMinutes (dirtyDate) {\n  var date = parse(dirtyDate)\n  var minutes = date.getMinutes()\n  return minutes\n}\n\nmodule.exports = getMinutes\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the month\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nfunction getMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  var month = date.getMonth()\n  return month\n}\n\nmodule.exports = getMonth\n","var parse = require('../parse/index.js')\n\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000\n\n/**\n * @category Range Helpers\n * @summary Get the number of days that overlap in two date ranges\n *\n * @description\n * Get the number of days that overlap in two date ranges\n *\n * @param {Date|String|Number} initialRangeStartDate - the start of the initial range\n * @param {Date|String|Number} initialRangeEndDate - the end of the initial range\n * @param {Date|String|Number} comparedRangeStartDate - the start of the range to compare it with\n * @param {Date|String|Number} comparedRangeEndDate - the end of the range to compare it with\n * @returns {Number} the number of days that overlap in two date ranges\n * @throws {Error} startDate of a date range cannot be after its endDate\n *\n * @example\n * // For overlapping date ranges adds 1 for each started overlapping day:\n * getOverlappingDaysInRanges(\n *   new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping date ranges returns 0:\n * getOverlappingDaysInRanges(\n *   new Date(2014, 0, 10), new Date(2014, 0, 20), new Date(2014, 0, 21), new Date(2014, 0, 22)\n * )\n * //=> 0\n */\nfunction getOverlappingDaysInRanges (dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {\n  var initialStartTime = parse(dirtyInitialRangeStartDate).getTime()\n  var initialEndTime = parse(dirtyInitialRangeEndDate).getTime()\n  var comparedStartTime = parse(dirtyComparedRangeStartDate).getTime()\n  var comparedEndTime = parse(dirtyComparedRangeEndDate).getTime()\n\n  if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {\n    throw new Error('The start of the range cannot be after the end of the range')\n  }\n\n  var isOverlapping = initialStartTime < comparedEndTime && comparedStartTime < initialEndTime\n\n  if (!isOverlapping) {\n    return 0\n  }\n\n  var overlapStartDate = comparedStartTime < initialStartTime\n    ? initialStartTime\n    : comparedStartTime\n\n  var overlapEndDate = comparedEndTime > initialEndTime\n    ? initialEndTime\n    : comparedEndTime\n\n  var differenceInMs = overlapEndDate - overlapStartDate\n\n  return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = getOverlappingDaysInRanges\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nfunction getSeconds (dirtyDate) {\n  var date = parse(dirtyDate)\n  var seconds = date.getSeconds()\n  return seconds\n}\n\nmodule.exports = getSeconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nfunction getTime (dirtyDate) {\n  var date = parse(dirtyDate)\n  var timestamp = date.getTime()\n  return timestamp\n}\n\nmodule.exports = getTime\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the year\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nfunction getYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n  return year\n}\n\nmodule.exports = getYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|String|Number} date - the date that should be after the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter (dirtyDate, dirtyDateToCompare) {\n  var date = parse(dirtyDate)\n  var dateToCompare = parse(dirtyDateToCompare)\n  return date.getTime() > dateToCompare.getTime()\n}\n\nmodule.exports = isAfter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|String|Number} date - the date that should be before the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore (dirtyDate, dirtyDateToCompare) {\n  var date = parse(dirtyDate)\n  var dateToCompare = parse(dirtyDateToCompare)\n  return date.getTime() < dateToCompare.getTime()\n}\n\nmodule.exports = isBefore\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n *   new Date(2014, 6, 2, 6, 30, 45, 0)\n *   new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual (dirtyLeftDate, dirtyRightDate) {\n  var dateLeft = parse(dirtyLeftDate)\n  var dateRight = parse(dirtyRightDate)\n  return dateLeft.getTime() === dateRight.getTime()\n}\n\nmodule.exports = isEqual\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the first day of a month\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * var result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\nfunction isFirstDayOfMonth (dirtyDate) {\n  return parse(dirtyDate).getDate() === 1\n}\n\nmodule.exports = isFirstDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Friday\n *\n * @example\n * // Is 26 September 2014 Friday?\n * var result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\nfunction isFriday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 5\n}\n\nmodule.exports = isFriday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the future?\n *\n * @description\n * Is the given date in the future?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * var result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nfunction isFuture (dirtyDate) {\n  return parse(dirtyDate).getTime() > new Date().getTime()\n}\n\nmodule.exports = isFuture\n","var parse = require('../parse/index.js')\nvar endOfDay = require('../end_of_day/index.js')\nvar endOfMonth = require('../end_of_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  return endOfDay(date).getTime() === endOfMonth(date).getTime()\n}\n\nmodule.exports = isLastDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Monday\n *\n * @example\n * // Is 22 September 2014 Monday?\n * var result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isMonday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 1\n}\n\nmodule.exports = isMonday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date in the past?\n *\n * @description\n * Is the given date in the past?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isPast (dirtyDate) {\n  return parse(dirtyDate).getTime() < new Date().getTime()\n}\n\nmodule.exports = isPast\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(\n *   new Date(2014, 8, 4, 6, 0),\n *   new Date(2014, 8, 4, 18, 0)\n * )\n * //=> true\n */\nfunction isSameDay (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfDay = startOfDay(dirtyDateLeft)\n  var dateRightStartOfDay = startOfDay(dirtyDateRight)\n\n  return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime()\n}\n\nmodule.exports = isSameDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setMinutes(0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfHour\n","var startOfHour = require('../start_of_hour/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(\n *   new Date(2014, 8, 4, 6, 0),\n *   new Date(2014, 8, 4, 6, 30)\n * )\n * //=> true\n */\nfunction isSameHour (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfHour = startOfHour(dirtyDateLeft)\n  var dateRightStartOfHour = startOfHour(dirtyDateRight)\n\n  return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime()\n}\n\nmodule.exports = isSameHour\n","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n *   new Date(2014, 7, 31),\n *   new Date(2014, 8, 4)\n * )\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(\n *   new Date(2014, 7, 31),\n *   new Date(2014, 8, 4),\n *   {weekStartsOn: 1}\n * )\n * //=> false\n */\nfunction isSameWeek (dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n  var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions)\n  var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions)\n\n  return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime()\n}\n\nmodule.exports = isSameWeek\n","var isSameWeek = require('../is_same_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 8, 7)\n * )\n * //=> true\n */\nfunction isSameISOWeek (dirtyDateLeft, dirtyDateRight) {\n  return isSameWeek(dirtyDateLeft, dirtyDateRight, {weekStartsOn: 1})\n}\n\nmodule.exports = isSameISOWeek\n","var startOfISOYear = require('../start_of_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOYear(\n *   new Date(2003, 11, 29),\n *   new Date(2005, 0, 2)\n * )\n * //=> true\n */\nfunction isSameISOYear (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfYear = startOfISOYear(dirtyDateLeft)\n  var dateRightStartOfYear = startOfISOYear(dirtyDateRight)\n\n  return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime()\n}\n\nmodule.exports = isSameISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setSeconds(0, 0)\n  return date\n}\n\nmodule.exports = startOfMinute\n","var startOfMinute = require('../start_of_minute/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n *   new Date(2014, 8, 4, 6, 30),\n *   new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\nfunction isSameMinute (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft)\n  var dateRightStartOfMinute = startOfMinute(dirtyDateRight)\n\n  return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime()\n}\n\nmodule.exports = isSameMinute\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(\n *   new Date(2014, 8, 2),\n *   new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameMonth (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n  return dateLeft.getFullYear() === dateRight.getFullYear() &&\n    dateLeft.getMonth() === dateRight.getMonth()\n}\n\nmodule.exports = isSameMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter (dirtyDate) {\n  var date = parse(dirtyDate)\n  var currentMonth = date.getMonth()\n  var month = currentMonth - currentMonth % 3\n  date.setMonth(month, 1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfQuarter\n","var startOfQuarter = require('../start_of_quarter/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(\n *   new Date(2014, 0, 1),\n *   new Date(2014, 2, 8)\n * )\n * //=> true\n */\nfunction isSameQuarter (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft)\n  var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight)\n\n  return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime()\n}\n\nmodule.exports = isSameQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setMilliseconds(0)\n  return date\n}\n\nmodule.exports = startOfSecond\n","var startOfSecond = require('../start_of_second/index.js')\n\n/**\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n *   new Date(2014, 8, 4, 6, 30, 15),\n *   new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\nfunction isSameSecond (dirtyDateLeft, dirtyDateRight) {\n  var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft)\n  var dateRightStartOfSecond = startOfSecond(dirtyDateRight)\n\n  return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime()\n}\n\nmodule.exports = isSameSecond\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|String|Number} dateLeft - the first date to check\n * @param {Date|String|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(\n *   new Date(2014, 8, 2),\n *   new Date(2014, 8, 25)\n * )\n * //=> true\n */\nfunction isSameYear (dirtyDateLeft, dirtyDateRight) {\n  var dateLeft = parse(dirtyDateLeft)\n  var dateRight = parse(dirtyDateRight)\n  return dateLeft.getFullYear() === dateRight.getFullYear()\n}\n\nmodule.exports = isSameYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Saturday\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * var result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\nfunction isSaturday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 6\n}\n\nmodule.exports = isSaturday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Sunday\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * var result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\nfunction isSunday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 0\n}\n\nmodule.exports = isSunday\n","var isSameHour = require('../is_same_hour/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Is the given date in the same hour as the current date?\n *\n * @description\n * Is the given date in the same hour as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this hour\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:00:00 in this hour?\n * var result = isThisHour(new Date(2014, 8, 25, 18))\n * //=> true\n */\nfunction isThisHour (dirtyDate) {\n  return isSameHour(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisHour\n","var isSameISOWeek = require('../is_same_iso_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Is the given date in the same ISO week as the current date?\n *\n * @description\n * Is the given date in the same ISO week as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week\n *\n * @example\n * // If today is 25 September 2014, is 22 September 2014 in this ISO week?\n * var result = isThisISOWeek(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isThisISOWeek (dirtyDate) {\n  return isSameISOWeek(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisISOWeek\n","var isSameISOYear = require('../is_same_iso_year/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Is the given date in the same ISO week-numbering year as the current date?\n *\n * @description\n * Is the given date in the same ISO week-numbering year as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week-numbering year\n *\n * @example\n * // If today is 25 September 2014,\n * // is 30 December 2013 in this ISO week-numbering year?\n * var result = isThisISOYear(new Date(2013, 11, 30))\n * //=> true\n */\nfunction isThisISOYear (dirtyDate) {\n  return isSameISOYear(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisISOYear\n","var isSameMinute = require('../is_same_minute/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Is the given date in the same minute as the current date?\n *\n * @description\n * Is the given date in the same minute as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this minute\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:00 in this minute?\n * var result = isThisMinute(new Date(2014, 8, 25, 18, 30))\n * //=> true\n */\nfunction isThisMinute (dirtyDate) {\n  return isSameMinute(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisMinute\n","var isSameMonth = require('../is_same_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Is the given date in the same month as the current date?\n *\n * @description\n * Is the given date in the same month as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this month\n *\n * @example\n * // If today is 25 September 2014, is 15 September 2014 in this month?\n * var result = isThisMonth(new Date(2014, 8, 15))\n * //=> true\n */\nfunction isThisMonth (dirtyDate) {\n  return isSameMonth(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisMonth\n","var isSameQuarter = require('../is_same_quarter/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Is the given date in the same quarter as the current date?\n *\n * @description\n * Is the given date in the same quarter as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this quarter\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this quarter?\n * var result = isThisQuarter(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisQuarter (dirtyDate) {\n  return isSameQuarter(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisQuarter\n","var isSameSecond = require('../is_same_second/index.js')\n\n/**\n * @category Second Helpers\n * @summary Is the given date in the same second as the current date?\n *\n * @description\n * Is the given date in the same second as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this second\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:15.000 in this second?\n * var result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n * //=> true\n */\nfunction isThisSecond (dirtyDate) {\n  return isSameSecond(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisSecond\n","var isSameWeek = require('../is_same_week/index.js')\n\n/**\n * @category Week Helpers\n * @summary Is the given date in the same week as the current date?\n *\n * @description\n * Is the given date in the same week as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the date is in this week\n *\n * @example\n * // If today is 25 September 2014, is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21))\n * //=> true\n *\n * @example\n * // If today is 25 September 2014 and week starts with Monday\n * // is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21), {weekStartsOn: 1})\n * //=> false\n */\nfunction isThisWeek (dirtyDate, dirtyOptions) {\n  return isSameWeek(new Date(), dirtyDate, dirtyOptions)\n}\n\nmodule.exports = isThisWeek\n","var isSameYear = require('../is_same_year/index.js')\n\n/**\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * var result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisYear (dirtyDate) {\n  return isSameYear(new Date(), dirtyDate)\n}\n\nmodule.exports = isThisYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Thursday\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * var result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\nfunction isThursday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 4\n}\n\nmodule.exports = isThursday\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date today?\n *\n * @description\n * Is the given date today?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nfunction isToday (dirtyDate) {\n  return startOfDay(dirtyDate).getTime() === startOfDay(new Date()).getTime()\n}\n\nmodule.exports = isToday\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date tomorrow?\n *\n * @description\n * Is the given date tomorrow?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is tomorrow\n *\n * @example\n * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?\n * var result = isTomorrow(new Date(2014, 9, 7, 14, 0))\n * //=> true\n */\nfunction isTomorrow (dirtyDate) {\n  var tomorrow = new Date()\n  tomorrow.setDate(tomorrow.getDate() + 1)\n  return startOfDay(dirtyDate).getTime() === startOfDay(tomorrow).getTime()\n}\n\nmodule.exports = isTomorrow\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Tuesday\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * var result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\nfunction isTuesday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 2\n}\n\nmodule.exports = isTuesday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is Wednesday\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * var result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\nfunction isWednesday (dirtyDate) {\n  return parse(dirtyDate).getDay() === 3\n}\n\nmodule.exports = isWednesday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * var result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nfunction isWeekend (dirtyDate) {\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  return day === 0 || day === 6\n}\n\nmodule.exports = isWeekend\n","var parse = require('../parse/index.js')\n\n/**\n * @category Range Helpers\n * @summary Is the given date within the range?\n *\n * @description\n * Is the given date within the range?\n *\n * @param {Date|String|Number} date - the date to check\n * @param {Date|String|Number} startDate - the start of range\n * @param {Date|String|Number} endDate - the end of range\n * @returns {Boolean} the date is within the range\n * @throws {Error} startDate cannot be after endDate\n *\n * @example\n * // For the date within the range:\n * isWithinRange(\n *   new Date(2014, 0, 3), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> true\n *\n * @example\n * // For the date outside of the range:\n * isWithinRange(\n *   new Date(2014, 0, 10), new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n * //=> false\n */\nfunction isWithinRange (dirtyDate, dirtyStartDate, dirtyEndDate) {\n  var time = parse(dirtyDate).getTime()\n  var startTime = parse(dirtyStartDate).getTime()\n  var endTime = parse(dirtyEndDate).getTime()\n\n  if (startTime > endTime) {\n    throw new Error('The start of the range cannot be after the end of the range')\n  }\n\n  return time >= startTime && time <= endTime\n}\n\nmodule.exports = isWithinRange\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Is the given date yesterday?\n *\n * @description\n * Is the given date yesterday?\n *\n * @param {Date|String|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * var result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\nfunction isYesterday (dirtyDate) {\n  var yesterday = new Date()\n  yesterday.setDate(yesterday.getDate() - 1)\n  return startOfDay(dirtyDate).getTime() === startOfDay(yesterday).getTime()\n}\n\nmodule.exports = isYesterday\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfWeek (dirtyDate, dirtyOptions) {\n  var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n  var date = parse(dirtyDate)\n  var day = date.getDay()\n  var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn)\n\n  date.setHours(0, 0, 0, 0)\n  date.setDate(date.getDate() + diff)\n  return date\n}\n\nmodule.exports = lastDayOfWeek\n","var lastDayOfWeek = require('../last_day_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of an ISO week\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * var result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfISOWeek (dirtyDate) {\n  return lastDayOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = lastDayOfISOWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * var result = lastDayOfISOYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\nfunction lastDayOfISOYear (dirtyDate) {\n  var year = getISOYear(dirtyDate)\n  var fourthOfJanuary = new Date(0)\n  fourthOfJanuary.setFullYear(year + 1, 0, 4)\n  fourthOfJanuary.setHours(0, 0, 0, 0)\n  var date = startOfISOWeek(fourthOfJanuary)\n  date.setDate(date.getDate() - 1)\n  return date\n}\n\nmodule.exports = lastDayOfISOYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * var result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  var month = date.getMonth()\n  date.setFullYear(date.getFullYear(), month + 1, 0)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = lastDayOfMonth\n","var parse = require('../parse/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a quarter\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * var result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfQuarter (dirtyDate) {\n  var date = parse(dirtyDate)\n  var currentMonth = date.getMonth()\n  var month = currentMonth - currentMonth % 3 + 3\n  date.setMonth(month, 0)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = lastDayOfQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the last day of a year\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * var result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\nfunction lastDayOfYear (dirtyDate) {\n  var date = parse(dirtyDate)\n  var year = date.getFullYear()\n  date.setFullYear(year + 1, 0, 0)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = lastDayOfYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max(\n *   new Date(1989, 6, 10),\n *   new Date(1987, 1, 11),\n *   new Date(1995, 6, 2),\n *   new Date(1990, 0, 1)\n * )\n * //=> Sun Jul 02 1995 00:00:00\n */\nfunction max () {\n  var dirtyDates = Array.prototype.slice.call(arguments)\n  var dates = dirtyDates.map(function (dirtyDate) {\n    return parse(dirtyDate)\n  })\n  var latestTimestamp = Math.max.apply(null, dates)\n  return new Date(latestTimestamp)\n}\n\nmodule.exports = max\n","var parse = require('../parse/index.js')\n\n/**\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * @param {...(Date|String|Number)} dates - the dates to compare\n * @returns {Date} the earliest of the dates\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min(\n *   new Date(1989, 6, 10),\n *   new Date(1987, 1, 11),\n *   new Date(1995, 6, 2),\n *   new Date(1990, 0, 1)\n * )\n * //=> Wed Feb 11 1987 00:00:00\n */\nfunction min () {\n  var dirtyDates = Array.prototype.slice.call(arguments)\n  var dates = dirtyDates.map(function (dirtyDate) {\n    return parse(dirtyDate)\n  })\n  var earliestTimestamp = Math.min.apply(null, dates)\n  return new Date(earliestTimestamp)\n}\n\nmodule.exports = min\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month setted\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * var result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction setDate (dirtyDate, dirtyDayOfMonth) {\n  var date = parse(dirtyDate)\n  var dayOfMonth = Number(dirtyDayOfMonth)\n  date.setDate(dayOfMonth)\n  return date\n}\n\nmodule.exports = setDate\n","var parse = require('../parse/index.js')\nvar addDays = require('../add_days/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If week starts with Monday, set Sunday to 1 September 2014:\n * var result = setDay(new Date(2014, 8, 1), 0, {weekStartsOn: 1})\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setDay (dirtyDate, dirtyDay, dirtyOptions) {\n  var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n  var date = parse(dirtyDate)\n  var day = Number(dirtyDay)\n  var currentDay = date.getDay()\n\n  var remainder = day % 7\n  var dayIndex = (remainder + 7) % 7\n\n  var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay\n  return addDays(date, diff)\n}\n\nmodule.exports = setDay\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} dayOfYear - the day of the year of the new date\n * @returns {Date} the new date with the day of the year setted\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * var result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\nfunction setDayOfYear (dirtyDate, dirtyDayOfYear) {\n  var date = parse(dirtyDate)\n  var dayOfYear = Number(dirtyDayOfYear)\n  date.setMonth(0)\n  date.setDate(dayOfYear)\n  return date\n}\n\nmodule.exports = setDayOfYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours setted\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nfunction setHours (dirtyDate, dirtyHours) {\n  var date = parse(dirtyDate)\n  var hours = Number(dirtyHours)\n  date.setHours(hours)\n  return date\n}\n\nmodule.exports = setHours\n","var parse = require('../parse/index.js')\nvar addDays = require('../add_days/index.js')\nvar getISODay = require('../get_iso_day/index.js')\n\n/**\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} day - the day of the ISO week of the new date\n * @returns {Date} the new date with the day of the ISO week setted\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setISODay (dirtyDate, dirtyDay) {\n  var date = parse(dirtyDate)\n  var day = Number(dirtyDay)\n  var currentDay = getISODay(date)\n  var diff = day - currentDay\n  return addDays(date, diff)\n}\n\nmodule.exports = setISODay\n","var parse = require('../parse/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} isoWeek - the ISO week of the new date\n * @returns {Date} the new date with the ISO week setted\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * var result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setISOWeek (dirtyDate, dirtyISOWeek) {\n  var date = parse(dirtyDate)\n  var isoWeek = Number(dirtyISOWeek)\n  var diff = getISOWeek(date) - isoWeek\n  date.setDate(date.getDate() - diff * 7)\n  return date\n}\n\nmodule.exports = setISOWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds setted\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * var result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nfunction setMilliseconds (dirtyDate, dirtyMilliseconds) {\n  var date = parse(dirtyDate)\n  var milliseconds = Number(dirtyMilliseconds)\n  date.setMilliseconds(milliseconds)\n  return date\n}\n\nmodule.exports = setMilliseconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes setted\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nfunction setMinutes (dirtyDate, dirtyMinutes) {\n  var date = parse(dirtyDate)\n  var minutes = Number(dirtyMinutes)\n  date.setMinutes(minutes)\n  return date\n}\n\nmodule.exports = setMinutes\n","var parse = require('../parse/index.js')\nvar getDaysInMonth = require('../get_days_in_month/index.js')\n\n/**\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month setted\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth (dirtyDate, dirtyMonth) {\n  var date = parse(dirtyDate)\n  var month = Number(dirtyMonth)\n  var year = date.getFullYear()\n  var day = date.getDate()\n\n  var dateWithDesiredMonth = new Date(0)\n  dateWithDesiredMonth.setFullYear(year, month, 15)\n  dateWithDesiredMonth.setHours(0, 0, 0, 0)\n  var daysInMonth = getDaysInMonth(dateWithDesiredMonth)\n  // Set the last day of the new month\n  // if the original date was the last day of the longer month\n  date.setMonth(month, Math.min(day, daysInMonth))\n  return date\n}\n\nmodule.exports = setMonth\n","var parse = require('../parse/index.js')\nvar setMonth = require('../set_month/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter setted\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nfunction setQuarter (dirtyDate, dirtyQuarter) {\n  var date = parse(dirtyDate)\n  var quarter = Number(dirtyQuarter)\n  var oldQuarter = Math.floor(date.getMonth() / 3) + 1\n  var diff = quarter - oldQuarter\n  return setMonth(date, date.getMonth() + diff * 3)\n}\n\nmodule.exports = setQuarter\n","var parse = require('../parse/index.js')\n\n/**\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds setted\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nfunction setSeconds (dirtyDate, dirtySeconds) {\n  var date = parse(dirtyDate)\n  var seconds = Number(dirtySeconds)\n  date.setSeconds(seconds)\n  return date\n}\n\nmodule.exports = setSeconds\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year setted\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nfunction setYear (dirtyDate, dirtyYear) {\n  var date = parse(dirtyDate)\n  var year = Number(dirtyYear)\n  date.setFullYear(year)\n  return date\n}\n\nmodule.exports = setYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfMonth (dirtyDate) {\n  var date = parse(dirtyDate)\n  date.setDate(1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfMonth\n","var startOfDay = require('../start_of_day/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of today.\n *\n * @description\n * Return the start of today.\n *\n * @returns {Date} the start of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nfunction startOfToday () {\n  return startOfDay(new Date())\n}\n\nmodule.exports = startOfToday\n","/**\n * @category Day Helpers\n * @summary Return the start of tomorrow.\n *\n * @description\n * Return the start of tomorrow.\n *\n * @returns {Date} the start of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfTomorrow()\n * //=> Tue Oct 7 2014 00:00:00\n */\nfunction startOfTomorrow () {\n  var now = new Date()\n  var year = now.getFullYear()\n  var month = now.getMonth()\n  var day = now.getDate()\n\n  var date = new Date(0)\n  date.setFullYear(year, month, day + 1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfTomorrow\n","/**\n * @category Day Helpers\n * @summary Return the start of yesterday.\n *\n * @description\n * Return the start of yesterday.\n *\n * @returns {Date} the start of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfYesterday()\n * //=> Sun Oct 5 2014 00:00:00\n */\nfunction startOfYesterday () {\n  var now = new Date()\n  var year = now.getFullYear()\n  var month = now.getMonth()\n  var day = now.getDate()\n\n  var date = new Date(0)\n  date.setFullYear(year, month, day - 1)\n  date.setHours(0, 0, 0, 0)\n  return date\n}\n\nmodule.exports = startOfYesterday\n","var addDays = require('../add_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted\n * @returns {Date} the new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nfunction subDays (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addDays(dirtyDate, -amount)\n}\n\nmodule.exports = subDays\n","var addHours = require('../add_hours/index.js')\n\n/**\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted\n * @returns {Date} the new date with the hours subtracted\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\nfunction subHours (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addHours(dirtyDate, -amount)\n}\n\nmodule.exports = subHours\n","var addMilliseconds = require('../add_milliseconds/index.js')\n\n/**\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMilliseconds(dirtyDate, -amount)\n}\n\nmodule.exports = subMilliseconds\n","var addMinutes = require('../add_minutes/index.js')\n\n/**\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted\n * @returns {Date} the new date with the mintues subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nfunction subMinutes (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMinutes(dirtyDate, -amount)\n}\n\nmodule.exports = subMinutes\n","var addMonths = require('../add_months/index.js')\n\n/**\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted\n * @returns {Date} the new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction subMonths (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addMonths(dirtyDate, -amount)\n}\n\nmodule.exports = subMonths\n","var addQuarters = require('../add_quarters/index.js')\n\n/**\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted\n * @returns {Date} the new date with the quarters subtracted\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * var result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nfunction subQuarters (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addQuarters(dirtyDate, -amount)\n}\n\nmodule.exports = subQuarters\n","var addSeconds = require('../add_seconds/index.js')\n\n/**\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be subtracted\n * @returns {Date} the new date with the seconds subtracted\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * var result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\nfunction subSeconds (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addSeconds(dirtyDate, -amount)\n}\n\nmodule.exports = subSeconds\n","var addWeeks = require('../add_weeks/index.js')\n\n/**\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted\n * @returns {Date} the new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nfunction subWeeks (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addWeeks(dirtyDate, -amount)\n}\n\nmodule.exports = subWeeks\n","var addYears = require('../add_years/index.js')\n\n/**\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted\n * @returns {Date} the new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nfunction subYears (dirtyDate, dirtyAmount) {\n  var amount = Number(dirtyAmount)\n  return addYears(dirtyDate, -amount)\n}\n\nmodule.exports = subYears\n","module.exports = {\n  addDays: require('./add_days/index.js'),\n  addHours: require('./add_hours/index.js'),\n  addISOYears: require('./add_iso_years/index.js'),\n  addMilliseconds: require('./add_milliseconds/index.js'),\n  addMinutes: require('./add_minutes/index.js'),\n  addMonths: require('./add_months/index.js'),\n  addQuarters: require('./add_quarters/index.js'),\n  addSeconds: require('./add_seconds/index.js'),\n  addWeeks: require('./add_weeks/index.js'),\n  addYears: require('./add_years/index.js'),\n  areRangesOverlapping: require('./are_ranges_overlapping/index.js'),\n  closestIndexTo: require('./closest_index_to/index.js'),\n  closestTo: require('./closest_to/index.js'),\n  compareAsc: require('./compare_asc/index.js'),\n  compareDesc: require('./compare_desc/index.js'),\n  differenceInCalendarDays: require('./difference_in_calendar_days/index.js'),\n  differenceInCalendarISOWeeks: require('./difference_in_calendar_iso_weeks/index.js'),\n  differenceInCalendarISOYears: require('./difference_in_calendar_iso_years/index.js'),\n  differenceInCalendarMonths: require('./difference_in_calendar_months/index.js'),\n  differenceInCalendarQuarters: require('./difference_in_calendar_quarters/index.js'),\n  differenceInCalendarWeeks: require('./difference_in_calendar_weeks/index.js'),\n  differenceInCalendarYears: require('./difference_in_calendar_years/index.js'),\n  differenceInDays: require('./difference_in_days/index.js'),\n  differenceInHours: require('./difference_in_hours/index.js'),\n  differenceInISOYears: require('./difference_in_iso_years/index.js'),\n  differenceInMilliseconds: require('./difference_in_milliseconds/index.js'),\n  differenceInMinutes: require('./difference_in_minutes/index.js'),\n  differenceInMonths: require('./difference_in_months/index.js'),\n  differenceInQuarters: require('./difference_in_quarters/index.js'),\n  differenceInSeconds: require('./difference_in_seconds/index.js'),\n  differenceInWeeks: require('./difference_in_weeks/index.js'),\n  differenceInYears: require('./difference_in_years/index.js'),\n  distanceInWords: require('./distance_in_words/index.js'),\n  distanceInWordsStrict: require('./distance_in_words_strict/index.js'),\n  distanceInWordsToNow: require('./distance_in_words_to_now/index.js'),\n  eachDay: require('./each_day/index.js'),\n  endOfDay: require('./end_of_day/index.js'),\n  endOfHour: require('./end_of_hour/index.js'),\n  endOfISOWeek: require('./end_of_iso_week/index.js'),\n  endOfISOYear: require('./end_of_iso_year/index.js'),\n  endOfMinute: require('./end_of_minute/index.js'),\n  endOfMonth: require('./end_of_month/index.js'),\n  endOfQuarter: require('./end_of_quarter/index.js'),\n  endOfSecond: require('./end_of_second/index.js'),\n  endOfToday: require('./end_of_today/index.js'),\n  endOfTomorrow: require('./end_of_tomorrow/index.js'),\n  endOfWeek: require('./end_of_week/index.js'),\n  endOfYear: require('./end_of_year/index.js'),\n  endOfYesterday: require('./end_of_yesterday/index.js'),\n  format: require('./format/index.js'),\n  getDate: require('./get_date/index.js'),\n  getDay: require('./get_day/index.js'),\n  getDayOfYear: require('./get_day_of_year/index.js'),\n  getDaysInMonth: require('./get_days_in_month/index.js'),\n  getDaysInYear: require('./get_days_in_year/index.js'),\n  getHours: require('./get_hours/index.js'),\n  getISODay: require('./get_iso_day/index.js'),\n  getISOWeek: require('./get_iso_week/index.js'),\n  getISOWeeksInYear: require('./get_iso_weeks_in_year/index.js'),\n  getISOYear: require('./get_iso_year/index.js'),\n  getMilliseconds: require('./get_milliseconds/index.js'),\n  getMinutes: require('./get_minutes/index.js'),\n  getMonth: require('./get_month/index.js'),\n  getOverlappingDaysInRanges: require('./get_overlapping_days_in_ranges/index.js'),\n  getQuarter: require('./get_quarter/index.js'),\n  getSeconds: require('./get_seconds/index.js'),\n  getTime: require('./get_time/index.js'),\n  getYear: require('./get_year/index.js'),\n  isAfter: require('./is_after/index.js'),\n  isBefore: require('./is_before/index.js'),\n  isDate: require('./is_date/index.js'),\n  isEqual: require('./is_equal/index.js'),\n  isFirstDayOfMonth: require('./is_first_day_of_month/index.js'),\n  isFriday: require('./is_friday/index.js'),\n  isFuture: require('./is_future/index.js'),\n  isLastDayOfMonth: require('./is_last_day_of_month/index.js'),\n  isLeapYear: require('./is_leap_year/index.js'),\n  isMonday: require('./is_monday/index.js'),\n  isPast: require('./is_past/index.js'),\n  isSameDay: require('./is_same_day/index.js'),\n  isSameHour: require('./is_same_hour/index.js'),\n  isSameISOWeek: require('./is_same_iso_week/index.js'),\n  isSameISOYear: require('./is_same_iso_year/index.js'),\n  isSameMinute: require('./is_same_minute/index.js'),\n  isSameMonth: require('./is_same_month/index.js'),\n  isSameQuarter: require('./is_same_quarter/index.js'),\n  isSameSecond: require('./is_same_second/index.js'),\n  isSameWeek: require('./is_same_week/index.js'),\n  isSameYear: require('./is_same_year/index.js'),\n  isSaturday: require('./is_saturday/index.js'),\n  isSunday: require('./is_sunday/index.js'),\n  isThisHour: require('./is_this_hour/index.js'),\n  isThisISOWeek: require('./is_this_iso_week/index.js'),\n  isThisISOYear: require('./is_this_iso_year/index.js'),\n  isThisMinute: require('./is_this_minute/index.js'),\n  isThisMonth: require('./is_this_month/index.js'),\n  isThisQuarter: require('./is_this_quarter/index.js'),\n  isThisSecond: require('./is_this_second/index.js'),\n  isThisWeek: require('./is_this_week/index.js'),\n  isThisYear: require('./is_this_year/index.js'),\n  isThursday: require('./is_thursday/index.js'),\n  isToday: require('./is_today/index.js'),\n  isTomorrow: require('./is_tomorrow/index.js'),\n  isTuesday: require('./is_tuesday/index.js'),\n  isValid: require('./is_valid/index.js'),\n  isWednesday: require('./is_wednesday/index.js'),\n  isWeekend: require('./is_weekend/index.js'),\n  isWithinRange: require('./is_within_range/index.js'),\n  isYesterday: require('./is_yesterday/index.js'),\n  lastDayOfISOWeek: require('./last_day_of_iso_week/index.js'),\n  lastDayOfISOYear: require('./last_day_of_iso_year/index.js'),\n  lastDayOfMonth: require('./last_day_of_month/index.js'),\n  lastDayOfQuarter: require('./last_day_of_quarter/index.js'),\n  lastDayOfWeek: require('./last_day_of_week/index.js'),\n  lastDayOfYear: require('./last_day_of_year/index.js'),\n  max: require('./max/index.js'),\n  min: require('./min/index.js'),\n  parse: require('./parse/index.js'),\n  setDate: require('./set_date/index.js'),\n  setDay: require('./set_day/index.js'),\n  setDayOfYear: require('./set_day_of_year/index.js'),\n  setHours: require('./set_hours/index.js'),\n  setISODay: require('./set_iso_day/index.js'),\n  setISOWeek: require('./set_iso_week/index.js'),\n  setISOYear: require('./set_iso_year/index.js'),\n  setMilliseconds: require('./set_milliseconds/index.js'),\n  setMinutes: require('./set_minutes/index.js'),\n  setMonth: require('./set_month/index.js'),\n  setQuarter: require('./set_quarter/index.js'),\n  setSeconds: require('./set_seconds/index.js'),\n  setYear: require('./set_year/index.js'),\n  startOfDay: require('./start_of_day/index.js'),\n  startOfHour: require('./start_of_hour/index.js'),\n  startOfISOWeek: require('./start_of_iso_week/index.js'),\n  startOfISOYear: require('./start_of_iso_year/index.js'),\n  startOfMinute: require('./start_of_minute/index.js'),\n  startOfMonth: require('./start_of_month/index.js'),\n  startOfQuarter: require('./start_of_quarter/index.js'),\n  startOfSecond: require('./start_of_second/index.js'),\n  startOfToday: require('./start_of_today/index.js'),\n  startOfTomorrow: require('./start_of_tomorrow/index.js'),\n  startOfWeek: require('./start_of_week/index.js'),\n  startOfYear: require('./start_of_year/index.js'),\n  startOfYesterday: require('./start_of_yesterday/index.js'),\n  subDays: require('./sub_days/index.js'),\n  subHours: require('./sub_hours/index.js'),\n  subISOYears: require('./sub_iso_years/index.js'),\n  subMilliseconds: require('./sub_milliseconds/index.js'),\n  subMinutes: require('./sub_minutes/index.js'),\n  subMonths: require('./sub_months/index.js'),\n  subQuarters: require('./sub_quarters/index.js'),\n  subSeconds: require('./sub_seconds/index.js'),\n  subWeeks: require('./sub_weeks/index.js'),\n  subYears: require('./sub_years/index.js')\n}\n","'use strict';\n\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 * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n *   > hyphenate('backgroundColor')\n *   < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n  return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;","/**\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 * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;","/*\n *          __        ___\n *    _____/ /___  __/ (_)____\n *   / ___/ __/ / / / / / ___/\n *  (__  ) /_/ /_/ / / (__  )\n * /____/\\__/\\__, /_/_/____/\n *          /____/\n *\n * light - weight css preprocessor @licence MIT\n */\n(function (factory) {/* eslint-disable */\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory(null)) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory(null)) :\n\t\t\t(window['stylis'] = factory(null))\n}(/** @param {*=} options */function factory (options) {/* eslint-disable */\n\n\t'use strict'\n\n\t/**\n\t * Notes\n\t *\n\t * The ['<method name>'] pattern is used to support closure compiler\n\t * the jsdoc signatures are also used to the same effect\n\t *\n\t * ----\n\t *\n\t * int + int + int === n4 [faster]\n\t *\n\t * vs\n\t *\n\t * int === n1 && int === n2 && int === n3\n\t *\n\t * ----\n\t *\n\t * switch (int) { case ints...} [faster]\n\t *\n\t * vs\n\t *\n\t * if (int == 1 && int === 2 ...)\n\t *\n\t * ----\n\t *\n\t * The (first*n1 + second*n2 + third*n3) format used in the property parser\n\t * is a simple way to hash the sequence of characters\n\t * taking into account the index they occur in\n\t * since any number of 3 character sequences could produce duplicates.\n\t *\n\t * On the other hand sequences that are directly tied to the index of the character\n\t * resolve a far more accurate measure, it's also faster\n\t * to evaluate one condition in a switch statement\n\t * than three in an if statement regardless of the added math.\n\t *\n\t * This allows the vendor prefixer to be both small and fast.\n\t */\n\n\tvar nullptn = /^\\0+/g /* matches leading null characters */\n\tvar formatptn = /[\\0\\r\\f]/g /* matches new line, null and formfeed characters */\n\tvar colonptn = /: */g /* splits animation rules */\n\tvar cursorptn = /zoo|gra/ /* assert cursor varient */\n\tvar transformptn = /([,: ])(transform)/g /* vendor prefix transform, older webkit */\n\tvar animationptn = /,+\\s*(?![^(]*[)])/g /* splits multiple shorthand notation animations */\n\tvar propertiesptn = / +\\s*(?![^(]*[)])/g /* animation properties */\n\tvar elementptn = / *[\\0] */g /* selector elements */\n\tvar selectorptn = /,\\r+?/g /* splits selectors */\n\tvar andptn = /([\\t\\r\\n ])*\\f?&/g /* match & */\n\tvar escapeptn = /:global\\(((?:[^\\(\\)\\[\\]]*|\\[.*\\]|\\([^\\(\\)]*\\))*)\\)/g /* matches :global(.*) */\n\tvar invalidptn = /\\W+/g /* removes invalid characters from keyframes */\n\tvar keyframeptn = /@(k\\w+)\\s*(\\S*)\\s*/ /* matches @keyframes $1 */\n\tvar plcholdrptn = /::(place)/g /* match ::placeholder varient */\n\tvar readonlyptn = /:(read-only)/g /* match :read-only varient */\n\tvar beforeptn = /\\s+(?=[{\\];=:>])/g /* matches \\s before ] ; = : */\n\tvar afterptn = /([[}=:>])\\s+/g /* matches \\s after characters [ } = : */\n\tvar tailptn = /(\\{[^{]+?);(?=\\})/g /* matches tail semi-colons ;} */\n\tvar whiteptn = /\\s{2,}/g /* matches repeating whitespace */\n\tvar pseudoptn = /([^\\(])(:+) */g /* pseudo element */\n\tvar writingptn = /[svh]\\w+-[tblr]{2}/ /* match writing mode property values */\n\tvar gradientptn = /([\\w-]+t\\()/g /* match *gradient property */\n\tvar supportsptn = /\\(\\s*(.*)\\s*\\)/g /* match supports (groups) */\n\tvar propertyptn = /([\\s\\S]*?);/g /* match properties leading semicolon */\n\tvar selfptn = /-self|flex-/g /* match flex- and -self in align-self: flex-*; */\n\tvar pseudofmt = /[^]*?(:[rp][el]a[\\w-]+)[^]*/ /* extrats :readonly or :placholder from selector */\n\tvar trimptn = /[ \\t]+$/ /* match tail whitspace */\n\tvar dimensionptn = /stretch|:\\s*\\w+\\-(?:conte|avail)/ /* match max/min/fit-content, fill-available */\n\tvar imgsrcptn = /([^-])(image-set\\()/\n\n\t/* vendors */\n\tvar webkit = '-webkit-'\n\tvar moz = '-moz-'\n\tvar ms = '-ms-'\n\n\t/* character codes */\n\tvar SEMICOLON = 59 /* ; */\n\tvar CLOSEBRACES = 125 /* } */\n\tvar OPENBRACES = 123 /* { */\n\tvar OPENPARENTHESES = 40 /* ( */\n\tvar CLOSEPARENTHESES = 41 /* ) */\n\tvar OPENBRACKET = 91 /* [ */\n\tvar CLOSEBRACKET = 93 /* ] */\n\tvar NEWLINE = 10 /* \\n */\n\tvar CARRIAGE = 13 /* \\r */\n\tvar TAB = 9 /* \\t */\n\tvar AT = 64 /* @ */\n\tvar SPACE = 32 /*   */\n\tvar AND = 38 /* & */\n\tvar DASH = 45 /* - */\n\tvar UNDERSCORE = 95 /* _ */\n\tvar STAR = 42 /* * */\n\tvar COMMA = 44 /* , */\n\tvar COLON = 58 /* : */\n\tvar SINGLEQUOTE = 39 /* ' */\n\tvar DOUBLEQUOTE = 34 /* \" */\n\tvar FOWARDSLASH = 47 /* / */\n\tvar GREATERTHAN = 62 /* > */\n\tvar PLUS = 43 /* + */\n\tvar TILDE = 126 /* ~ */\n\tvar NULL = 0 /* \\0 */\n\tvar FORMFEED = 12 /* \\f */\n\tvar VERTICALTAB = 11 /* \\v */\n\n\t/* special identifiers */\n\tvar KEYFRAME = 107 /* k */\n\tvar MEDIA = 109 /* m */\n\tvar SUPPORTS = 115 /* s */\n\tvar PLACEHOLDER = 112 /* p */\n\tvar READONLY = 111 /* o */\n\tvar IMPORT = 105 /* <at>i */\n\tvar CHARSET = 99 /* <at>c */\n\tvar DOCUMENT = 100 /* <at>d */\n\tvar PAGE = 112 /* <at>p */\n\n\tvar column = 1 /* current column */\n\tvar line = 1 /* current line numebr */\n\tvar pattern = 0 /* :pattern */\n\n\tvar cascade = 1 /* #id h1 h2 vs h1#id h2#id  */\n\tvar prefix = 1 /* vendor prefix */\n\tvar escape = 1 /* escape :global() pattern */\n\tvar compress = 0 /* compress output */\n\tvar semicolon = 0 /* no/semicolon option */\n\tvar preserve = 0 /* preserve empty selectors */\n\n\t/* empty reference */\n\tvar array = []\n\n\t/* plugins */\n\tvar plugins = []\n\tvar plugged = 0\n\tvar should = null\n\n\t/* plugin context */\n\tvar POSTS = -2\n\tvar PREPS = -1\n\tvar UNKWN = 0\n\tvar PROPS = 1\n\tvar BLCKS = 2\n\tvar ATRUL = 3\n\n\t/* plugin newline context */\n\tvar unkwn = 0\n\n\t/* keyframe animation */\n\tvar keyed = 1\n\tvar key = ''\n\n\t/* selector namespace */\n\tvar nscopealt = ''\n\tvar nscope = ''\n\n\t/**\n\t * Compile\n\t *\n\t * @param {Array<string>} parent\n\t * @param {Array<string>} current\n\t * @param {string} body\n\t * @param {number} id\n\t * @param {number} depth\n\t * @return {string}\n\t */\n\tfunction compile (parent, current, body, id, depth) {\n\t\tvar bracket = 0 /* brackets [] */\n\t\tvar comment = 0 /* comments /* // or /* */\n\t\tvar parentheses = 0 /* functions () */\n\t\tvar quote = 0 /* quotes '', \"\" */\n\n\t\tvar first = 0 /* first character code */\n\t\tvar second = 0 /* second character code */\n\t\tvar code = 0 /* current character code */\n\t\tvar tail = 0 /* previous character code */\n\t\tvar trail = 0 /* character before previous code */\n\t\tvar peak = 0 /* previous non-whitespace code */\n\n\t\tvar counter = 0 /* count sequence termination */\n\t\tvar context = 0 /* track current context */\n\t\tvar atrule = 0 /* track @at-rule context */\n\t\tvar pseudo = 0 /* track pseudo token index */\n\t\tvar caret = 0 /* current character index */\n\t\tvar format = 0 /* control character formating context */\n\t\tvar insert = 0 /* auto semicolon insertion */\n\t\tvar invert = 0 /* inverted selector pattern */\n\t\tvar length = 0 /* generic length address */\n\t\tvar eof = body.length /* end of file(length) */\n\t\tvar eol = eof - 1 /* end of file(characters) */\n\n\t\tvar char = '' /* current character */\n\t\tvar chars = '' /* current buffer of characters */\n\t\tvar child = '' /* next buffer of characters */\n\t\tvar out = '' /* compiled body */\n\t\tvar children = '' /* compiled children */\n\t\tvar flat = '' /* compiled leafs */\n\t\tvar selector /* generic selector address */\n\t\tvar result /* generic address */\n\n\t\t// ...build body\n\t\twhile (caret < eof) {\n\t\t\tcode = body.charCodeAt(caret)\n\n\t\t\t// eof varient\n\t\t\tif (caret === eol) {\n\t\t\t\t// last character + noop context, add synthetic padding for noop context to terminate\n\t\t\t\tif (comment + quote + parentheses + bracket !== 0) {\n\t\t\t\t\tif (comment !== 0) {\n\t\t\t\t\t\tcode = comment === FOWARDSLASH ? NEWLINE : FOWARDSLASH\n\t\t\t\t\t}\n\n\t\t\t\t\tquote = parentheses = bracket = 0\n\t\t\t\t\teof++\n\t\t\t\t\teol++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t// eof varient\n\t\t\t\tif (caret === eol) {\n\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chars.trim().length > 0) {\n\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchars += body.charAt(caret)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcode = SEMICOLON\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// auto semicolon insertion\n\t\t\t\tif (insert === 1) {\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t// false flags\n\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\tcase OPENPARENTHESES:\n\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ignore\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// valid\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\tfirst = code\n\t\t\t\t\t\t\tcaret--\n\t\t\t\t\t\t\tcode = SEMICOLON\n\n\t\t\t\t\t\t\twhile (length < eof) {\n\t\t\t\t\t\t\t\tswitch (body.charCodeAt(length++)) {\n\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\tcase CARRIAGE:\n\t\t\t\t\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\t\t\t++caret\n\t\t\t\t\t\t\t\t\t\t\tcode = first\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\t\tlength = eof\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// token varient\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\tchars = chars.trim()\n\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\tcounter = 1\n\t\t\t\t\t\tlength = ++caret\n\n\t\t\t\t\t\twhile (caret < eof) {\n\t\t\t\t\t\t\tswitch (code = body.charCodeAt(caret)) {\n\t\t\t\t\t\t\t\tcase OPENBRACES: {\n\t\t\t\t\t\t\t\t\tcounter++\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\t\tcounter--\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\tswitch (second = body.charCodeAt(caret + 1)) {\n\t\t\t\t\t\t\t\t\t\t// /*, //\n\t\t\t\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\t\t\t\t\tcaret = delimited(second, caret, eol, body)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"[\" === 91 & \"]\" === 93 hence forth 91 + 1 + 1 === 93\n\t\t\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// given \"(\" === 40 & \")\" === 41 hence forth 40 + 1 === 41\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tcode++\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// quote tail delimiter is identical to the head delimiter hence noop,\n\t\t\t\t\t\t\t\t// fallthrough clauses have been shited to the correct tail delimiter\n\t\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\t\t\twhile (caret++ < eol) {\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(caret) === code) {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (counter === 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcaret++\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchild = body.substring(length, caret)\n\n\t\t\t\t\t\tif (first === NULL) {\n\t\t\t\t\t\t\tfirst = (chars = chars.replace(nullptn, '').trim()).charCodeAt(0)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t// @at-rule\n\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\tif (format > 0) {\n\t\t\t\t\t\t\t\t\tchars = chars.replace(formatptn, '')\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\tcase SUPPORTS:\n\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\tselector = current\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tselector = array\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tchild = compile(current, selector, child, second, depth+1)\n\t\t\t\t\t\t\t\tlength = child.length\n\n\t\t\t\t\t\t\t\t// preserve empty @at-rule\n\t\t\t\t\t\t\t\tif (preserve > 0 && length === 0) {\n\t\t\t\t\t\t\t\t\tlength = chars.length\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// execute plugins, @at-rule context\n\t\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\t\tselector = select(array, chars, invert)\n\t\t\t\t\t\t\t\t\tresult = proxy(ATRUL, child, selector, current, line, column, length, second, depth, id)\n\t\t\t\t\t\t\t\t\tchars = selector.join('')\n\n\t\t\t\t\t\t\t\t\tif (result !== void 0) {\n\t\t\t\t\t\t\t\t\t\tif ((length = (child = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\t\tsecond = 0\n\t\t\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (length > 0) {\n\t\t\t\t\t\t\t\t\tswitch (second) {\n\t\t\t\t\t\t\t\t\t\tcase SUPPORTS: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(supportsptn, supports)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase DOCUMENT:\n\t\t\t\t\t\t\t\t\t\tcase MEDIA:\n\t\t\t\t\t\t\t\t\t\tcase DASH: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase KEYFRAME: {\n\t\t\t\t\t\t\t\t\t\t\tchars = chars.replace(keyframeptn, '$1 $2' + (keyed > 0 ? key : ''))\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + '{' + child + '}'\n\n\t\t\t\t\t\t\t\t\t\t\tif (prefix === 1 || (prefix === 2 && vendor('@'+child, 3))) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + webkit + child + '@' + child\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = '@' + child\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tchild = chars + child\n\n\t\t\t\t\t\t\t\t\t\t\tif (id === PAGE) {\n\t\t\t\t\t\t\t\t\t\t\t\tchild = (out += child, '')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// selector\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tchild = compile(current, select(current, chars, invert), child, id, depth+1)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tchildren += child\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tatrule = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tchild = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\tcase SEMICOLON: {\n\t\t\t\t\t\tchars = (format > 0 ? chars.replace(formatptn, '') : chars).trim()\n\n\t\t\t\t\t\tif ((length = chars.length) > 1) {\n\t\t\t\t\t\t\t// monkey-patch missing colon\n\t\t\t\t\t\t\tif (pseudo === 0) {\n\t\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\n\t\t\t\t\t\t\t\t// first character is a letter or dash, buffer has a space character\n\t\t\t\t\t\t\t\tif ((first === DASH || first > 96 && first < 123)) {\n\t\t\t\t\t\t\t\t\tlength = (chars = chars.replace(' ', ':')).length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// execute plugins, property context\n\t\t\t\t\t\t\tif (plugged > 0) {\n\t\t\t\t\t\t\t\tif ((result = proxy(PROPS, chars, current, parent, line, column, out.length, id, depth, id)) !== void 0) {\n\t\t\t\t\t\t\t\t\tif ((length = (chars = result.trim()).length) === 0) {\n\t\t\t\t\t\t\t\t\t\tchars = '\\0\\0'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfirst = chars.charCodeAt(0)\n\t\t\t\t\t\t\tsecond = chars.charCodeAt(1)\n\n\t\t\t\t\t\t\tswitch (first) {\n\t\t\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\t\t\tif (second === IMPORT || second === CHARSET) {\n\t\t\t\t\t\t\t\t\t\tflat += chars + body.charAt(caret)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\tif (chars.charCodeAt(length-1) === COLON) {\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tout += property(chars, first, second, chars.charCodeAt(2))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// reset\n\t\t\t\t\t\tcontext = 0\n\t\t\t\t\t\tinsert = 0\n\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\tformat = 0\n\t\t\t\t\t\tinvert = 0\n\t\t\t\t\t\tchars = ''\n\t\t\t\t\t\tcode = body.charCodeAt(++caret)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// parse characters\n\t\t\tswitch (code) {\n\t\t\t\tcase CARRIAGE:\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\t// auto insert semicolon\n\t\t\t\t\tif (comment + quote + parentheses + bracket + semicolon === 0) {\n\t\t\t\t\t\t// valid non-whitespace characters that\n\t\t\t\t\t\t// may precede a newline\n\t\t\t\t\t\tswitch (peak) {\n\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\tcase SINGLEQUOTE:\n\t\t\t\t\t\t\tcase DOUBLEQUOTE:\n\t\t\t\t\t\t\tcase AT:\n\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\tcase FOWARDSLASH:\n\t\t\t\t\t\t\tcase DASH:\n\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t// current buffer has a colon\n\t\t\t\t\t\t\t\tif (pseudo > 0) {\n\t\t\t\t\t\t\t\t\tinsert = 1\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// terminate line comment\n\t\t\t\t\tif (comment === FOWARDSLASH) {\n\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t} else if (cascade + context === 0 && id !== KEYFRAME && chars.length > 0) {\n\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\tchars += '\\0'\n\t\t\t\t\t}\n\n\t\t\t\t\t// execute plugins, newline context\n\t\t\t\t\tif (plugged * unkwn > 0) {\n\t\t\t\t\t\tproxy(UNKWN, chars, current, parent, line, column, out.length, id, depth, id)\n\t\t\t\t\t}\n\n\t\t\t\t\t// next line, reset column position\n\t\t\t\t\tcolumn = 1\n\t\t\t\t\tline++\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase SEMICOLON:\n\t\t\t\tcase CLOSEBRACES: {\n\t\t\t\t\tif (comment + quote + parentheses + bracket === 0) {\n\t\t\t\t\t\tcolumn++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// increment column position\n\t\t\t\t\tcolumn++\n\n\t\t\t\t\t// current character\n\t\t\t\t\tchar = body.charAt(caret)\n\n\t\t\t\t\t// remove comments, escape functions, strings, attributes and prepare selectors\n\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\tif (quote + bracket + comment === 0) {\n\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\tcase COLON:\n\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\tif (code !== SPACE) {\n\t\t\t\t\t\t\t\t\t\t\tchar = ' '\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// escape breaking control characters\n\t\t\t\t\t\tcase NULL: {\n\t\t\t\t\t\t\tchar = '\\\\0'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase FORMFEED: {\n\t\t\t\t\t\t\tchar = '\\\\f'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase VERTICALTAB: {\n\t\t\t\t\t\t\tchar = '\\\\v'\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// &\n\t\t\t\t\t\tcase AND: {\n\t\t\t\t\t\t\t// inverted selector pattern i.e html &\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0 && cascade > 0) {\n\t\t\t\t\t\t\t\tinvert = 1\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar = '\\f' + char\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// ::p<l>aceholder, l\n\t\t\t\t\t\t// :read-on<l>y, l\n\t\t\t\t\t\tcase 108: {\n\t\t\t\t\t\t\tif (quote + comment + bracket + pattern === 0 && pseudo > 0) {\n\t\t\t\t\t\t\t\tswitch (caret - pseudo) {\n\t\t\t\t\t\t\t\t\t// ::placeholder\n\t\t\t\t\t\t\t\t\tcase 2: {\n\t\t\t\t\t\t\t\t\t\tif (tail === PLACEHOLDER && body.charCodeAt(caret-3) === COLON) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = tail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// :read-only\n\t\t\t\t\t\t\t\t\tcase 8: {\n\t\t\t\t\t\t\t\t\t\tif (trail === READONLY) {\n\t\t\t\t\t\t\t\t\t\t\tpattern = trail\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// :<pattern>\n\t\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tpseudo = caret\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectors\n\t\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket === 0) {\n\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\tchar += '\\r'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// quotes\n\t\t\t\t\t\tcase DOUBLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase SINGLEQUOTE: {\n\t\t\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t\t\tquote = quote === code ? 0 : (quote === 0 ? code : quote)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// attributes\n\t\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase CLOSEBRACKET: {\n\t\t\t\t\t\t\tif (quote + comment + parentheses === 0) {\n\t\t\t\t\t\t\t\tbracket--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// functions\n\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tparentheses--\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\tif (quote + comment + bracket === 0) {\n\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\tswitch (tail*2 + trail*3) {\n\t\t\t\t\t\t\t\t\t\t// :matches\n\t\t\t\t\t\t\t\t\t\tcase 533: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// :global, :not, :nth-child etc...\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tcounter = 0\n\t\t\t\t\t\t\t\t\t\t\tcontext = 1\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tparentheses++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase AT: {\n\t\t\t\t\t\t\tif (comment + parentheses + quote + bracket + pseudo + atrule === 0) {\n\t\t\t\t\t\t\t\tatrule = 1\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// block/line comments\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\t\t\tif (quote + bracket + parentheses > 0) {\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (comment) {\n\t\t\t\t\t\t\t\t// initialize line/block comment context\n\t\t\t\t\t\t\t\tcase 0: {\n\t\t\t\t\t\t\t\t\tswitch (code*2 + body.charCodeAt(caret+1)*3) {\n\t\t\t\t\t\t\t\t\t\t// //\n\t\t\t\t\t\t\t\t\t\tcase 235: {\n\t\t\t\t\t\t\t\t\t\t\tcomment = FOWARDSLASH\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// /*\n\t\t\t\t\t\t\t\t\t\tcase 220: {\n\t\t\t\t\t\t\t\t\t\t\tlength = caret\n\t\t\t\t\t\t\t\t\t\t\tcomment = STAR\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// end block comment context\n\t\t\t\t\t\t\t\tcase STAR: {\n\t\t\t\t\t\t\t\t\tif (code === FOWARDSLASH && tail === STAR && length + 2 !== caret) {\n\t\t\t\t\t\t\t\t\t\t// /*<!> ... */, !\n\t\t\t\t\t\t\t\t\t\tif (body.charCodeAt(length+2) === 33) {\n\t\t\t\t\t\t\t\t\t\t\tout += body.substring(length, caret+1)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tchar = ''\n\t\t\t\t\t\t\t\t\t\tcomment = 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ignore comment blocks\n\t\t\t\t\tif (comment === 0) {\n\t\t\t\t\t\t// aggressive isolation mode, divide each individual selector\n\t\t\t\t\t\t// including selectors in :not function but excluding selectors in :global function\n\t\t\t\t\t\tif (cascade + quote + bracket + atrule === 0 && id !== KEYFRAME && code !== SEMICOLON) {\n\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t// outside of an isolated context i.e nth-child(<...>)\n\t\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = char + '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t\tchar = '\\0' + char + (code === COMMA ? '' : '\\0')\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// within an isolated context, sleep untill it's terminated\n\t\t\t\t\t\t\t\t\t\tswitch (code) {\n\t\t\t\t\t\t\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\t// :globa<l>(\n\t\t\t\t\t\t\t\t\t\t\t\tif (pseudo + 7 === caret && tail === 108) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tpseudo = 0\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tcontext = ++counter\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase CLOSEPARENTHESES: {\n\t\t\t\t\t\t\t\t\t\t\t\tif ((context = --counter) === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\tcase SPACE: {\n\t\t\t\t\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\t\t\t\t\tcase NULL:\n\t\t\t\t\t\t\t\t\t\tcase OPENBRACES:\n\t\t\t\t\t\t\t\t\t\tcase CLOSEBRACES:\n\t\t\t\t\t\t\t\t\t\tcase SEMICOLON:\n\t\t\t\t\t\t\t\t\t\tcase COMMA:\n\t\t\t\t\t\t\t\t\t\tcase FORMFEED:\n\t\t\t\t\t\t\t\t\t\tcase TAB:\n\t\t\t\t\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\t\t\t\t\tcase NEWLINE:\n\t\t\t\t\t\t\t\t\t\tcase CARRIAGE: {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\t// ignore in isolated contexts\n\t\t\t\t\t\t\t\t\t\t\tif (context === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tformat = 1\n\t\t\t\t\t\t\t\t\t\t\t\tchar += '\\0'\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// concat buffer of characters\n\t\t\t\t\t\tchars += char\n\n\t\t\t\t\t\t// previous non-whitespace character code\n\t\t\t\t\t\tif (code !== SPACE && code !== TAB) {\n\t\t\t\t\t\t\tpeak = code\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// tail character codes\n\t\t\ttrail = tail\n\t\t\ttail = code\n\n\t\t\t// visit every character\n\t\t\tcaret++\n\t\t}\n\n\t\tlength = out.length\n\n\t\t// preserve empty selector\n \t\tif (preserve > 0) {\n \t\t\tif (length === 0 && children.length === 0 && (current[0].length === 0) === false) {\n \t\t\t\tif (id !== MEDIA || (current.length === 1 && (cascade > 0 ? nscopealt : nscope) === current[0])) {\n\t\t\t\t\tlength = current.join(',').length + 2\n \t\t\t\t}\n \t\t\t}\n\t\t}\n\n\t\tif (length > 0) {\n\t\t\t// cascade isolation mode?\n\t\t\tselector = cascade === 0 && id !== KEYFRAME ? isolate(current) : current\n\n\t\t\t// execute plugins, block context\n\t\t\tif (plugged > 0) {\n\t\t\t\tresult = proxy(BLCKS, out, selector, parent, line, column, length, id, depth, id)\n\n\t\t\t\tif (result !== void 0 && (out = result).length === 0) {\n\t\t\t\t\treturn flat + out + children\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout = selector.join(',') + '{' + out + '}'\n\n\t\t\tif (prefix*pattern !== 0) {\n\t\t\t\tif (prefix === 2 && !vendor(out, 2))\n\t\t\t\t\tpattern = 0\n\n\t\t\t\tswitch (pattern) {\n\t\t\t\t\t// ::read-only\n\t\t\t\t\tcase READONLY: {\n\t\t\t\t\t\tout = out.replace(readonlyptn, ':'+moz+'$1')+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// ::placeholder\n\t\t\t\t\tcase PLACEHOLDER: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + webkit + 'input-$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, '::' + moz + '$1') +\n\t\t\t\t\t\t\tout.replace(plcholdrptn, ':' + ms + 'input-$1') + out\n\t\t\t\t\t\t)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpattern = 0\n\t\t\t}\n\t\t}\n\n\t\treturn flat + out + children\n\t}\n\n\t/**\n\t * Select\n\t *\n\t * @param {Array<string>} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @return {Array<string>}\n\t */\n\tfunction select (parent, current, invert) {\n\t\tvar selectors = current.trim().split(selectorptn)\n\t\tvar out = selectors\n\n\t\tvar length = selectors.length\n\t\tvar l = parent.length\n\n\t\tswitch (l) {\n\t\t\t// 0-1 parent selectors\n\t\t\tcase 0:\n\t\t\tcase 1: {\n\t\t\t\tfor (var i = 0, selector = l === 0 ? '' : parent[0] + ' '; i < length; ++i) {\n\t\t\t\t\tout[i] = scope(selector, out[i], invert, l).trim()\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// >2 parent selectors, nested\n\t\t\tdefault: {\n\t\t\t\tfor (var i = 0, j = 0, out = []; i < length; ++i) {\n\t\t\t\t\tfor (var k = 0; k < l; ++k) {\n\t\t\t\t\t\tout[j++] = scope(parent[k] + ' ', selectors[i], invert, l).trim()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Scope\n\t *\n\t * @param {string} parent\n\t * @param {string} current\n\t * @param {number} invert\n\t * @param {number} level\n\t * @return {string}\n\t */\n\tfunction scope (parent, current, invert, level) {\n\t\tvar selector = current\n\t\tvar code = selector.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (selector = selector.trim()).charCodeAt(0)\n\t\t}\n\n\t\tswitch (code) {\n\t\t\t// &\n\t\t\tcase AND: {\n\t\t\t\tswitch (cascade + level) {\n\t\t\t\t\tcase 0:\n\t\t\t\t\tcase 1: {\n\t\t\t\t\t\tif (parent.trim().length === 0) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// :\n\t\t\tcase COLON: {\n\t\t\t\tswitch (selector.charCodeAt(1)) {\n\t\t\t\t\t// g in :global\n\t\t\t\t\tcase 103: {\n\t\t\t\t\t\tif (escape > 0 && cascade > 0) {\n\t\t\t\t\t\t\treturn selector.replace(escapeptn, '$1').replace(andptn, '$1'+nscope)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\t// :hover\n\t\t\t\t\t\treturn parent.trim() + selector.replace(andptn, '$1'+parent.trim())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\t// html &\n\t\t\t\tif (invert*cascade > 0 && selector.indexOf('\\f') > 0) {\n\t\t\t\t\treturn selector.replace(andptn, (parent.charCodeAt(0) === COLON ? '' : '$1')+parent.trim())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn parent + selector\n\t}\n\n\t/**\n\t * Property\n\t *\n\t * @param {string} input\n\t * @param {number} first\n\t * @param {number} second\n\t * @param {number} third\n\t * @return {string}\n\t */\n\tfunction property (input, first, second, third) {\n\t\tvar index = 0\n\t\tvar out = input + ';'\n\t\tvar hash = (first*2) + (second*3) + (third*4)\n\t\tvar cache\n\n\t\t// animation: a, n, i characters\n\t\tif (hash === 944) {\n\t\t\treturn animation(out)\n\t\t} else if (prefix === 0 || (prefix === 2 && !vendor(out, 1))) {\n\t\t\treturn out\n\t\t}\n\n\t\t// vendor prefix\n\t\tswitch (hash) {\n\t\t\t// text-decoration/text-size-adjust/text-shadow/text-align/text-transform: t, e, x\n\t\t\tcase 1015: {\n\t\t\t\t// text-shadow/text-align/text-transform, a\n\t\t\t\treturn out.charCodeAt(10) === 97 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// filter/fill f, i, l\n\t\t\tcase 951: {\n\t\t\t\t// filter, t\n\t\t\t\treturn out.charCodeAt(3) === 116 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// color/column, c, o, l\n\t\t\tcase 963: {\n\t\t\t\t// column, n\n\t\t\t\treturn out.charCodeAt(5) === 110 ? webkit + out + out : out\n\t\t\t}\n\t\t\t// box-decoration-break, b, o, x\n\t\t\tcase 1009: {\n\t\t\t\tif (out.charCodeAt(4) !== 100) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// mask, m, a, s\n\t\t\t// clip-path, c, l, i\n\t\t\tcase 969:\n\t\t\tcase 942: {\n\t\t\t\treturn webkit + out + out\n\t\t\t}\n\t\t\t// appearance: a, p, p\n\t\t\tcase 978: {\n\t\t\t\treturn webkit + out + moz + out + out\n\t\t\t}\n\t\t\t// hyphens: h, y, p\n\t\t\t// user-select: u, s, e\n\t\t\tcase 1019:\n\t\t\tcase 983: {\n\t\t\t\treturn webkit + out + moz + out + ms + out + out\n\t\t\t}\n\t\t\t// background/backface-visibility, b, a, c\n\t\t\tcase 883: {\n\t\t\t\t// backface-visibility, -\n\t\t\t\tif (out.charCodeAt(8) === DASH) {\n\t\t\t\t\treturn webkit + out + out\n\t\t\t\t}\n\n\t\t\t\t// image-set(...)\n\t\t\t\tif (out.indexOf('image-set(', 11) > 0) {\n\t\t\t\t\treturn out.replace(imgsrcptn, '$1'+webkit+'$2') + out\n\t\t\t\t}\n\n\t\t\t\treturn out\n\t\t\t}\n\t\t\t// flex: f, l, e\n\t\t\tcase 932: {\n\t\t\t\tif (out.charCodeAt(4) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(5)) {\n\t\t\t\t\t\t// flex-grow, g\n\t\t\t\t\t\tcase 103: {\n\t\t\t\t\t\t\treturn webkit + 'box-' + out.replace('-grow', '') + webkit + out + ms + out.replace('grow', 'positive') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-shrink, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('shrink', 'negative') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// flex-basis, b\n\t\t\t\t\t\tcase 98: {\n\t\t\t\t\t\t\treturn webkit + out + ms + out.replace('basis', 'preferred-size') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + out + out\n\t\t\t}\n\t\t\t// order: o, r, d\n\t\t\tcase 964: {\n\t\t\t\treturn webkit + out + ms + 'flex' + '-' + out + out\n\t\t\t}\n\t\t\t// justify-items/justify-content, j, u, s\n\t\t\tcase 1023: {\n\t\t\t\t// justify-content, c\n\t\t\t\tif (out.charCodeAt(8) !== 99) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\n\t\t\t\tcache = out.substring(out.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify')\n\t\t\t\treturn webkit + 'box-pack' + cache + webkit + out + ms + 'flex-pack' + cache + out\n\t\t\t}\n\t\t\t// cursor, c, u, r\n\t\t\tcase 1005: {\n\t\t\t\treturn cursorptn.test(out) ? out.replace(colonptn, ':' + webkit) + out.replace(colonptn, ':' + moz) + out : out\n\t\t\t}\n\t\t\t// writing-mode, w, r, i\n\t\t\tcase 1000: {\n\t\t\t\tcache = out.substring(13).trim()\n\t\t\t\tindex = cache.indexOf('-') + 1\n\n\t\t\t\tswitch (cache.charCodeAt(0)+cache.charCodeAt(index)) {\n\t\t\t\t\t// vertical-lr\n\t\t\t\t\tcase 226: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// vertical-rl\n\t\t\t\t\tcase 232: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'tb-rl')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// horizontal-tb\n\t\t\t\t\tcase 220: {\n\t\t\t\t\t\tcache = out.replace(writingptn, 'lr')\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn out\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn webkit + out + ms + cache + out\n\t\t\t}\n\t\t\t// position: sticky\n\t\t\tcase 1017: {\n\t\t\t\tif (out.indexOf('sticky', 9) === -1) {\n\t\t\t\t\treturn out\n\t\t\t\t}\n\t\t\t}\n\t\t\t// display(flex/inline-flex/inline-box): d, i, s\n\t\t\tcase 975: {\n\t\t\t\tindex = (out = input).length - 10\n\t\t\t\tcache = (out.charCodeAt(index) === 33 ? out.substring(0, index) : out).substring(input.indexOf(':', 7) + 1).trim()\n\n\t\t\t\tswitch (hash = cache.charCodeAt(0) + (cache.charCodeAt(7)|0)) {\n\t\t\t\t\t// inline-\n\t\t\t\t\tcase 203: {\n\t\t\t\t\t\t// inline-box\n\t\t\t\t\t\tif (cache.charCodeAt(8) < 111) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// inline-box/sticky\n\t\t\t\t\tcase 115: {\n\t\t\t\t\t\tout = out.replace(cache, webkit+cache)+';'+out\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// inline-flex\n\t\t\t\t\t// flex\n\t\t\t\t\tcase 207:\n\t\t\t\t\tcase 102: {\n\t\t\t\t\t\tout = (\n\t\t\t\t\t\t\tout.replace(cache, webkit+(hash > 102 ? 'inline-' : '')+'box')+';'+\n\t\t\t\t\t\t\tout.replace(cache, webkit+cache)+';'+\n\t\t\t\t\t\t\tout.replace(cache, ms+cache+'box')+';'+\n\t\t\t\t\t\t\tout\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn out + ';'\n\t\t\t}\n\t\t\t// align-items, align-center, align-self: a, l, i, -\n\t\t\tcase 938: {\n\t\t\t\tif (out.charCodeAt(5) === DASH) {\n\t\t\t\t\tswitch (out.charCodeAt(6)) {\n\t\t\t\t\t\t// align-items, i\n\t\t\t\t\t\tcase 105: {\n\t\t\t\t\t\t\tcache = out.replace('-items', '')\n\t\t\t\t\t\t\treturn webkit + out + webkit + 'box-' + cache + ms + 'flex-' + cache + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-self, s\n\t\t\t\t\t\tcase 115: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-item-' + out.replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// align-content\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\treturn webkit + out + ms + 'flex-line-pack' + out.replace('align-content', '').replace(selfptn, '') + out\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// min/max\n\t\t\tcase 973:\n\t\t\tcase 989: {\n\t\t\t\t// min-/max- height/width/block-size/inline-size\n\t\t\t\tif (out.charCodeAt(3) !== DASH || out.charCodeAt(4) === 122) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// height/width: min-content / width: max-content\n\t\t\tcase 931:\n\t\t\tcase 953: {\n\t\t\t\tif (dimensionptn.test(input) === true) {\n\t\t\t\t\t// stretch\n\t\t\t\t\tif ((cache = input.substring(input.indexOf(':') + 1)).charCodeAt(0) === 115)\n\t\t\t\t\t\treturn property(input.replace('stretch', 'fill-available'), first, second, third).replace(':fill-available', ':stretch')\n\t\t\t\t\telse\n\t\t\t\t\t\treturn out.replace(cache, webkit + cache) + out.replace(cache, moz + cache.replace('fill-', '')) + out\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// transform, transition: t, r, a\n\t\t\tcase 962: {\n\t\t\t\tout = webkit + out + (out.charCodeAt(5) === 102 ? ms + out : '') + out\n\n\t\t\t\t// transitions\n\t\t\t\tif (second + third === 211 && out.charCodeAt(13) === 105 && out.indexOf('transform', 10) > 0) {\n\t\t\t\t\treturn out.substring(0, out.indexOf(';', 27) + 1).replace(transformptn, '$1' + webkit + '$2') + out\n\t\t\t\t}\n\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Vendor\n\t *\n\t * @param {string} content\n\t * @param {number} context\n\t * @return {boolean}\n\t */\n\tfunction vendor (content, context) {\n\t\tvar index = content.indexOf(context === 1 ? ':' : '{')\n\t\tvar key = content.substring(0, context !== 3 ? index : 10)\n\t\tvar value = content.substring(index + 1, content.length - 1)\n\n\t\treturn should(context !== 2 ? key : key.replace(pseudofmt, '$1'), value, context)\n\t}\n\n\t/**\n\t * Supports\n\t *\n\t * @param {string} match\n\t * @param {string} group\n\t * @return {string}\n\t */\n\tfunction supports (match, group) {\n\t\tvar out = property(group, group.charCodeAt(0), group.charCodeAt(1), group.charCodeAt(2))\n\n\t\treturn out !== group+';' ? out.replace(propertyptn, ' or ($1)').substring(4) : '('+group+')'\n\t}\n\n\t/**\n\t * Animation\n\t *\n\t * @param {string} input\n\t * @return {string}\n\t */\n\tfunction animation (input) {\n\t\tvar length = input.length\n\t\tvar index = input.indexOf(':', 9) + 1\n\t\tvar declare = input.substring(0, index).trim()\n\t\tvar out = input.substring(index, length-1).trim()\n\n\t\tswitch (input.charCodeAt(9)*keyed) {\n\t\t\tcase 0: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// animation-*, -\n\t\t\tcase DASH: {\n\t\t\t\t// animation-name, n\n\t\t\t\tif (input.charCodeAt(10) !== 110) {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// animation/animation-name\n\t\t\tdefault: {\n\t\t\t\t// split in case of multiple animations\n\t\t\t\tvar list = out.split((out = '', animationptn))\n\n\t\t\t\tfor (var i = 0, index = 0, length = list.length; i < length; index = 0, ++i) {\n\t\t\t\t\tvar value = list[i]\n\t\t\t\t\tvar items = value.split(propertiesptn)\n\n\t\t\t\t\twhile (value = items[index]) {\n\t\t\t\t\t\tvar peak = value.charCodeAt(0)\n\n\t\t\t\t\t\tif (keyed === 1 && (\n\t\t\t\t\t\t\t// letters\n\t\t\t\t\t\t\t(peak > AT && peak < 90) || (peak > 96 && peak < 123) || peak === UNDERSCORE ||\n\t\t\t\t\t\t\t// dash but not in sequence i.e --\n\t\t\t\t\t\t\t(peak === DASH && value.charCodeAt(1) !== DASH)\n\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t// not a number/function\n\t\t\t\t\t\t\tswitch (isNaN(parseFloat(value)) + (value.indexOf('(') !== -1)) {\n\t\t\t\t\t\t\t\tcase 1: {\n\t\t\t\t\t\t\t\t\tswitch (value) {\n\t\t\t\t\t\t\t\t\t\t// not a valid reserved keyword\n\t\t\t\t\t\t\t\t\t\tcase 'infinite': case 'alternate': case 'backwards': case 'running':\n\t\t\t\t\t\t\t\t\t\tcase 'normal': case 'forwards': case 'both': case 'none': case 'linear':\n\t\t\t\t\t\t\t\t\t\tcase 'ease': case 'ease-in': case 'ease-out': case 'ease-in-out':\n\t\t\t\t\t\t\t\t\t\tcase 'paused': case 'reverse': case 'alternate-reverse': case 'inherit':\n\t\t\t\t\t\t\t\t\t\tcase 'initial': case 'unset': case 'step-start': case 'step-end': {\n\t\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\t\t\t\tvalue += key\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titems[index++] = value\n\t\t\t\t\t}\n\n\t\t\t\t\tout += (i === 0 ? '' : ',') + items.join(' ')\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tout = declare + out + ';'\n\n\t\tif (prefix === 1 || (prefix === 2 && vendor(out, 1)))\n\t\t\treturn webkit + out + out\n\n\t\treturn out\n\t}\n\n\t/**\n\t * Isolate\n\t *\n\t * @param {Array<string>} current\n\t */\n\tfunction isolate (current) {\n\t\tfor (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {\n\t\t\t// split individual elements in a selector i.e h1 h2 === [h1, h2]\n\t\t\tvar elements = current[i].split(elementptn)\n\t\t\tvar out = ''\n\n\t\t\tfor (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {\n\t\t\t\t// empty element\n\t\t\t\tif ((size = (element = elements[j]).length) === 0 && l > 1) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttail = out.charCodeAt(out.length-1)\n\t\t\t\tcode = element.charCodeAt(0)\n\t\t\t\tpadding = ''\n\n\t\t\t\tif (j !== 0) {\n\t\t\t\t\t// determine if we need padding\n\t\t\t\t\tswitch (tail) {\n\t\t\t\t\t\tcase STAR:\n\t\t\t\t\t\tcase TILDE:\n\t\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\t\tcase PLUS:\n\t\t\t\t\t\tcase SPACE:\n\t\t\t\t\t\tcase OPENPARENTHESES:  {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tpadding = ' '\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tswitch (code) {\n\t\t\t\t\tcase AND: {\n\t\t\t\t\t\telement = padding + nscopealt\n\t\t\t\t\t}\n\t\t\t\t\tcase TILDE:\n\t\t\t\t\tcase GREATERTHAN:\n\t\t\t\t\tcase PLUS:\n\t\t\t\t\tcase SPACE:\n\t\t\t\t\tcase CLOSEPARENTHESES:\n\t\t\t\t\tcase OPENPARENTHESES: {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase OPENBRACKET: {\n\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COLON: {\n\t\t\t\t\t\tswitch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {\n\t\t\t\t\t\t\t// :global\n\t\t\t\t\t\t\tcase 530: {\n\t\t\t\t\t\t\t\tif (escape > 0) {\n\t\t\t\t\t\t\t\t\telement = padding + element.substring(8, size - 1)\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// :hover, :nth-child(), ...\n\t\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\t\tif (j < 1 || elements[j-1].length < 1) {\n\t\t\t\t\t\t\t\t\telement = padding + nscopealt + element\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase COMMA: {\n\t\t\t\t\t\tpadding = ''\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tif (size > 1 && element.indexOf(':') > 0) {\n\t\t\t\t\t\t\telement = padding + element.replace(pseudoptn, '$1' + nscopealt + '$2')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telement = padding + element + nscopealt\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tout += element\n\t\t\t}\n\n\t\t\tselector[i] = out.replace(formatptn, '').trim()\n\t\t}\n\n\t\treturn selector\n\t}\n\n\t/**\n\t * Proxy\n\t *\n\t * @param {number} context\n\t * @param {string} content\n\t * @param {Array<string>} selectors\n\t * @param {Array<string>} parents\n\t * @param {number} line\n\t * @param {number} column\n\t * @param {number} length\n\t * @param {number} id\n\t * @param {number} depth\n\t * @param {number} at\n\t * @return {(string|void|*)}\n\t */\n\tfunction proxy (context, content, selectors, parents, line, column, length, id, depth, at) {\n\t\tfor (var i = 0, out = content, next; i < plugged; ++i) {\n\t\t\tswitch (next = plugins[i].call(stylis, context, out, selectors, parents, line, column, length, id, depth, at)) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase false:\n\t\t\t\tcase true:\n\t\t\t\tcase null: {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tout = next\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tswitch (out) {\n\t\t\tcase void 0:\n\t\t\tcase false:\n\t\t\tcase true:\n\t\t\tcase null:\n\t\t\tcase content: {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn out\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @param {number} code\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction delimited (code, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\t// /*\n\t\t\t\tcase FOWARDSLASH: {\n\t\t\t\t\tif (code === STAR) {\n\t\t\t\t\t\tif (body.charCodeAt(i - 1) === STAR &&  index + 2 !== i) {\n\t\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// //\n\t\t\t\tcase NEWLINE: {\n\t\t\t\t\tif (code === FOWARDSLASH) {\n\t\t\t\t\t\treturn i + 1\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * @param {number} type\n\t * @param {number} index\n\t * @param {number} length\n\t * @param {number} find\n\t * @param {string} body\n\t * @return {number}\n\t */\n\tfunction match (type, index, length, body) {\n\t\tfor (var i = index + 1; i < length; ++i) {\n\t\t\tswitch (body.charCodeAt(i)) {\n\t\t\t\tcase type: {\n\t\t\t\t\treturn i\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn i\n\t}\n\n\t/**\n\t * Minify\n\t *\n\t * @param {(string|*)} output\n\t * @return {string}\n\t */\n\tfunction minify (output) {\n\t\treturn output\n\t\t\t.replace(formatptn, '')\n\t\t\t.replace(beforeptn, '')\n\t\t\t.replace(afterptn, '$1')\n\t\t\t.replace(tailptn, '$1')\n\t\t\t.replace(whiteptn, ' ')\n\t}\n\n\t/**\n\t * Use\n\t *\n\t * @param {(Array<function(...?)>|function(...?)|number|void)?} plugin\n\t */\n\tfunction use (plugin) {\n\t\tswitch (plugin) {\n\t\t\tcase void 0:\n\t\t\tcase null: {\n\t\t\t\tplugged = plugins.length = 0\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tswitch (plugin.constructor) {\n\t\t\t\t\tcase Array: {\n\t\t\t\t\t\tfor (var i = 0, length = plugin.length; i < length; ++i) {\n\t\t\t\t\t\t\tuse(plugin[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase Function: {\n\t\t\t\t\t\tplugins[plugged++] = plugin\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tcase Boolean: {\n\t\t\t\t\t\tunkwn = !!plugin|0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n \t\t}\n\n \t\treturn use\n\t}\n\n\t/**\n\t * Set\n\t *\n\t * @param {*} options\n\t */\n\tfunction set (options) {\n\t\tfor (var name in options) {\n\t\t\tvar value = options[name]\n\t\t\tswitch (name) {\n\t\t\t\tcase 'keyframe': keyed = value|0; break\n\t\t\t\tcase 'global': escape = value|0; break\n\t\t\t\tcase 'cascade': cascade = value|0; break\n\t\t\t\tcase 'compress': compress = value|0; break\n\t\t\t\tcase 'semicolon': semicolon = value|0; break\n\t\t\t\tcase 'preserve': preserve = value|0; break\n\t\t\t\tcase 'prefix':\n\t\t\t\t\tshould = null\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tprefix = 0\n\t\t\t\t\t} else if (typeof value !== 'function') {\n\t\t\t\t\t\tprefix = 1\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprefix = 2\n\t\t\t\t\t\tshould = value\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn set\n\t}\n\n\t/**\n\t * Stylis\n\t *\n\t * @param {string} selector\n\t * @param {string} input\n\t * @return {*}\n\t */\n\tfunction stylis (selector, input) {\n\t\tif (this !== void 0 && this.constructor === stylis) {\n\t\t\treturn factory(selector)\n\t\t}\n\n\t\t// setup\n\t\tvar ns = selector\n\t\tvar code = ns.charCodeAt(0)\n\n\t\t// trim leading whitespace\n\t\tif (code < 33) {\n\t\t\tcode = (ns = ns.trim()).charCodeAt(0)\n\t\t}\n\n\t\t// keyframe/animation namespace\n\t\tif (keyed > 0) {\n\t\t\tkey = ns.replace(invalidptn, code === OPENBRACKET ? '' : '-')\n\t\t}\n\n\t\t// reset, used to assert if a plugin is moneky-patching the return value\n\t\tcode = 1\n\n\t\t// cascade/isolate\n\t\tif (cascade === 1) {\n\t\t\tnscope = ns\n\t\t} else {\n\t\t\tnscopealt = ns\n\t\t}\n\n\t\tvar selectors = [nscope]\n\t\tvar result\n\n\t\t// execute plugins, pre-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(PREPS, input, selectors, selectors, line, column, 0, 0, 0, 0)\n\n\t\t\tif (result !== void 0 && typeof result === 'string') {\n\t\t\t\tinput = result\n\t\t\t}\n\t\t}\n\n\t\t// build\n\t\tvar output = compile(array, selectors, input, 0, 0)\n\n\t\t// execute plugins, post-process context\n\t\tif (plugged > 0) {\n\t\t\tresult = proxy(POSTS, output, selectors, selectors, line, column, output.length, 0, 0, 0)\n\n\t\t\t// bypass minification\n\t\t\tif (result !== void 0 && typeof(output = result) !== 'string') {\n\t\t\t\tcode = 0\n\t\t\t}\n\t\t}\n\n\t\t// reset\n\t\tkey = ''\n\t\tnscope = ''\n\t\tnscopealt = ''\n\t\tpattern = 0\n\t\tline = 1\n\t\tcolumn = 1\n\n\t\treturn compress*code === 0 ? output : minify(output)\n\t}\n\n\tstylis['use'] = use\n\tstylis['set'] = set\n\n\tif (options !== void 0) {\n\t\tset(options)\n\t}\n\n\treturn stylis\n}));\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","/** @license React v16.5.2\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_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_PLACEHOLDER_TYPE = hasSymbol ? Symbol.for('react.placeholder') : 0xead1;\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_ASYNC_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_PLACEHOLDER_TYPE || typeof type === 'object' && type !== null && (typeof type.then === 'function' || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\nfunction typeOf(object) {\n  if (typeof object === 'object' && object !== null) {\n    var $$typeof = object.$$typeof;\n\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_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_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_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n}\n\nvar AsyncMode = REACT_ASYNC_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 Profiler = REACT_PROFILER_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\n\nfunction isAsyncMode(object) {\n  return typeOf(object) === REACT_ASYNC_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 isProfiler(object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isPortal(object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isStrictMode(object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Profiler = Profiler;\nexports.Portal = Portal;\nexports.StrictMode = StrictMode;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isProfiler = isProfiler;\nexports.isPortal = isPortal;\nexports.isStrictMode = isStrictMode;\n  })();\n}\n","'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","// @flow\n/* eslint-disable flowtype/object-type-delimiter */\n/* eslint-disable react/prop-types */\n\nimport React, { type Element } from 'react'\nimport { IS_BROWSER, DISABLE_SPEEDY, SC_ATTR } from '../constants'\nimport StyledError from '../utils/error'\nimport { type ExtractedComp } from '../utils/extractCompsFromCSS'\nimport { splitByRules } from '../utils/stringifyRules'\nimport getNonce from '../utils/nonce'\nimport once from '../utils/once'\n\nimport {\n  type Names,\n  addNameForId,\n  resetIdNames,\n  hasNameForId,\n  stringifyNames,\n  cloneNames,\n} from '../utils/styleNames'\n\nimport {\n  sheetForTag,\n  safeInsertRule,\n  deleteRules,\n} from '../utils/insertRuleHelpers'\n\nexport interface Tag<T> {\n  // $FlowFixMe: Doesn't seem to accept any combination w/ HTMLStyleElement for some reason\n  styleTag: HTMLStyleElement | null;\n  /* lists all ids of the tag */\n  getIds(): string[];\n  /* checks whether `name` is already injected for `id` */\n  hasNameForId(id: string, name: string): boolean;\n  /* inserts a marker to ensure the id's correct position in the sheet */\n  insertMarker(id: string): T;\n  /* inserts rules according to the ids markers */\n  insertRules(id: string, cssRules: string[], name: ?string): void;\n  /* removes all rules belonging to the id, keeping the marker around */\n  removeRules(id: string): void;\n  css(): string;\n  toHTML(additionalAttrs: ?string): string;\n  toElement(): Element<*>;\n  clone(): Tag<T>;\n  /* used in server side rendering to indicate that the rules in the tag have been flushed to HTML */\n  sealed: boolean;\n}\n\n/* this marker separates component styles and is important for rehydration */\nconst makeTextMarker = id => `\\n/* sc-component-id: ${id} */\\n`\n\n/* add up all numbers in array up until and including the index */\nconst addUpUntilIndex = (sizes: number[], index: number): number => {\n  let totalUpToIndex = 0\n  for (let i = 0; i <= index; i += 1) {\n    totalUpToIndex += sizes[i]\n  }\n\n  return totalUpToIndex\n}\n\n/* create a new style tag after lastEl */\nconst makeStyleTag = (\n  target: ?HTMLElement,\n  tagEl: ?Node,\n  insertBefore: ?boolean\n) => {\n  const el = document.createElement('style')\n  el.setAttribute(SC_ATTR, '')\n\n  const nonce = getNonce()\n  if (nonce) {\n    el.setAttribute('nonce', nonce)\n  }\n\n  /* Work around insertRule quirk in EdgeHTML */\n  el.appendChild(document.createTextNode(''))\n\n  if (target && !tagEl) {\n    /* Append to target when no previous element was passed */\n    target.appendChild(el)\n  } else {\n    if (!tagEl || !target || !tagEl.parentNode) {\n      throw new StyledError(6)\n    }\n\n    /* Insert new style tag after the previous one */\n    tagEl.parentNode.insertBefore(el, insertBefore ? tagEl : tagEl.nextSibling)\n  }\n\n  return el\n}\n\n/* takes a css factory function and outputs an html styled tag factory */\nconst wrapAsHtmlTag = (css: () => string, names: Names) => (\n  additionalAttrs: ?string\n): string => {\n  const nonce = getNonce()\n  const attrs = [\n    nonce && `nonce=\"${nonce}\"`,\n    `${SC_ATTR}=\"${stringifyNames(names)}\"`,\n    additionalAttrs,\n  ]\n\n  const htmlAttr = attrs.filter(Boolean).join(' ')\n  return `<style ${htmlAttr}>${css()}</style>`\n}\n\n/* takes a css factory function and outputs an element factory */\nconst wrapAsElement = (css: () => string, names: Names) => () => {\n  const props = {\n    [SC_ATTR]: stringifyNames(names),\n  }\n\n  const nonce = getNonce()\n  if (nonce) {\n    // $FlowFixMe\n    props.nonce = nonce\n  }\n\n  // eslint-disable-next-line react/no-danger\n  return <style {...props} dangerouslySetInnerHTML={{ __html: css() }} />\n}\n\nconst getIdsFromMarkersFactory = (markers: Object) => (): string[] =>\n  Object.keys(markers)\n\n/* speedy tags utilise insertRule */\nconst makeSpeedyTag = (\n  el: HTMLStyleElement,\n  getImportRuleTag: ?() => Tag<any>\n): Tag<number> => {\n  const names: Names = (Object.create(null): Object)\n  const markers = Object.create(null)\n  const sizes: number[] = []\n\n  const extractImport = getImportRuleTag !== undefined\n  /* indicates whther getImportRuleTag was called */\n  let usedImportRuleTag = false\n\n  const insertMarker = id => {\n    const prev = markers[id]\n    if (prev !== undefined) {\n      return prev\n    }\n\n    markers[id] = sizes.length\n    sizes.push(0)\n    resetIdNames(names, id)\n\n    return markers[id]\n  }\n\n  const insertRules = (id, cssRules, name) => {\n    const marker = insertMarker(id)\n    const sheet = sheetForTag(el)\n    const insertIndex = addUpUntilIndex(sizes, marker)\n\n    let injectedRules = 0\n    const importRules = []\n    const cssRulesSize = cssRules.length\n\n    for (let i = 0; i < cssRulesSize; i += 1) {\n      const cssRule = cssRules[i]\n      let mayHaveImport = extractImport /* @import rules are reordered to appear first */\n      if (mayHaveImport && cssRule.indexOf('@import') !== -1) {\n        importRules.push(cssRule)\n      } else if (safeInsertRule(sheet, cssRule, insertIndex + injectedRules)) {\n        mayHaveImport = false\n        injectedRules += 1\n      }\n    }\n\n    if (extractImport && importRules.length > 0) {\n      usedImportRuleTag = true\n      // $FlowFixMe\n      getImportRuleTag().insertRules(`${id}-import`, importRules)\n    }\n\n    sizes[marker] += injectedRules /* add up no of injected rules */\n    addNameForId(names, id, name)\n  }\n\n  const removeRules = id => {\n    const marker = markers[id]\n    if (marker === undefined) return\n\n    const size = sizes[marker]\n    const sheet = sheetForTag(el)\n    const removalIndex = addUpUntilIndex(sizes, marker)\n    deleteRules(sheet, removalIndex, size)\n    sizes[marker] = 0\n    resetIdNames(names, id)\n\n    if (extractImport && usedImportRuleTag) {\n      // $FlowFixMe\n      getImportRuleTag().removeRules(`${id}-import`)\n    }\n  }\n\n  const css = () => {\n    const { cssRules } = sheetForTag(el)\n    let str = ''\n\n    // eslint-disable-next-line guard-for-in\n    for (const id in markers) {\n      str += makeTextMarker(id)\n      const marker = markers[id]\n      const end = addUpUntilIndex(sizes, marker)\n      const size = sizes[marker]\n      for (let i = end - size; i < end; i += 1) {\n        const rule = cssRules[i]\n        if (rule !== undefined) {\n          str += rule.cssText\n        }\n      }\n    }\n\n    return str\n  }\n\n  return {\n    clone() {\n      throw new StyledError(5)\n    },\n    css,\n    getIds: getIdsFromMarkersFactory(markers),\n    hasNameForId: hasNameForId(names),\n    insertMarker,\n    insertRules,\n    removeRules,\n    sealed: false,\n    styleTag: el,\n    toElement: wrapAsElement(css, names),\n    toHTML: wrapAsHtmlTag(css, names),\n  }\n}\n\nconst makeTextNode = id => document.createTextNode(makeTextMarker(id))\n\nconst makeBrowserTag = (\n  el: HTMLStyleElement,\n  getImportRuleTag: ?() => Tag<any>\n): Tag<Text> => {\n  const names = (Object.create(null): Object)\n  const markers = Object.create(null)\n\n  const extractImport = getImportRuleTag !== undefined\n\n  /* indicates whther getImportRuleTag was called */\n  let usedImportRuleTag = false\n\n  const insertMarker = id => {\n    const prev = markers[id]\n    if (prev !== undefined) {\n      return prev\n    }\n\n    markers[id] = makeTextNode(id)\n    el.appendChild(markers[id])\n    names[id] = Object.create(null)\n\n    return markers[id]\n  }\n\n  const insertRules = (id, cssRules, name) => {\n    const marker = insertMarker(id)\n    const importRules = []\n    const cssRulesSize = cssRules.length\n\n    for (let i = 0; i < cssRulesSize; i += 1) {\n      const rule = cssRules[i]\n      let mayHaveImport = extractImport\n      if (mayHaveImport && rule.indexOf('@import') !== -1) {\n        importRules.push(rule)\n      } else {\n        mayHaveImport = false\n        const separator = i === cssRulesSize - 1 ? '' : ' '\n        marker.appendData(`${rule}${separator}`)\n      }\n    }\n\n    addNameForId(names, id, name)\n\n    if (extractImport && importRules.length > 0) {\n      usedImportRuleTag = true\n      // $FlowFixMe\n      getImportRuleTag().insertRules(`${id}-import`, importRules)\n    }\n  }\n\n  const removeRules = id => {\n    const marker = markers[id]\n    if (marker === undefined) return\n\n    /* create new empty text node and replace the current one */\n    const newMarker = makeTextNode(id)\n    el.replaceChild(newMarker, marker)\n    markers[id] = newMarker\n    resetIdNames(names, id)\n\n    if (extractImport && usedImportRuleTag) {\n      // $FlowFixMe\n      getImportRuleTag().removeRules(`${id}-import`)\n    }\n  }\n\n  const css = () => {\n    let str = ''\n    // eslint-disable-next-line guard-for-in\n    for (const id in markers) {\n      str += markers[id].data\n    }\n    return str\n  }\n\n  return {\n    clone() {\n      throw new StyledError(5)\n    },\n    css,\n    getIds: getIdsFromMarkersFactory(markers),\n    hasNameForId: hasNameForId(names),\n    insertMarker,\n    insertRules,\n    removeRules,\n    sealed: false,\n    styleTag: el,\n    toElement: wrapAsElement(css, names),\n    toHTML: wrapAsHtmlTag(css, names),\n  }\n}\n\nconst makeServerTagInternal = (namesArg, markersArg): Tag<[string]> => {\n  const names =\n    namesArg === undefined ? (Object.create(null): Object) : namesArg\n  const markers = markersArg === undefined ? Object.create(null) : markersArg\n\n  const insertMarker = id => {\n    const prev = markers[id]\n    if (prev !== undefined) {\n      return prev\n    }\n\n    return (markers[id] = [''])\n  }\n\n  const insertRules = (id, cssRules, name) => {\n    const marker = insertMarker(id)\n    marker[0] += cssRules.join(' ')\n    addNameForId(names, id, name)\n  }\n\n  const removeRules = id => {\n    const marker = markers[id]\n    if (marker === undefined) return\n    marker[0] = ''\n    resetIdNames(names, id)\n  }\n\n  const css = () => {\n    let str = ''\n    // eslint-disable-next-line guard-for-in\n    for (const id in markers) {\n      const cssForId = markers[id][0]\n      if (cssForId) {\n        str += makeTextMarker(id) + cssForId\n      }\n    }\n    return str\n  }\n\n  const clone = () => {\n    const namesClone = cloneNames(names)\n    const markersClone = Object.create(null)\n\n    // eslint-disable-next-line guard-for-in\n    for (const id in markers) {\n      markersClone[id] = [markers[id][0]]\n    }\n\n    return makeServerTagInternal(namesClone, markersClone)\n  }\n\n  const tag = {\n    clone,\n    css,\n    getIds: getIdsFromMarkersFactory(markers),\n    hasNameForId: hasNameForId(names),\n    insertMarker,\n    insertRules,\n    removeRules,\n    sealed: false,\n    styleTag: null,\n    toElement: wrapAsElement(css, names),\n    toHTML: wrapAsHtmlTag(css, names),\n  }\n\n  return tag\n}\n\nconst makeServerTag = (): Tag<[string]> => makeServerTagInternal()\n\nexport const makeTag = (\n  target: ?HTMLElement,\n  tagEl: ?HTMLStyleElement,\n  forceServer?: boolean,\n  insertBefore?: boolean,\n  getImportRuleTag?: () => Tag<any>\n): Tag<any> => {\n  if (IS_BROWSER && !forceServer) {\n    const el = makeStyleTag(target, tagEl, insertBefore)\n\n    if (DISABLE_SPEEDY) {\n      return makeBrowserTag(el, getImportRuleTag)\n    } else {\n      return makeSpeedyTag(el, getImportRuleTag)\n    }\n  }\n\n  return makeServerTag()\n}\n\n/* wraps a given tag so that rehydration is performed once when necessary */\nexport const makeRehydrationTag = (\n  tag: Tag<any>,\n  els: HTMLStyleElement[],\n  extracted: ExtractedComp[],\n  immediateRehydration: boolean\n): Tag<any> => {\n  /* rehydration function that adds all rules to the new tag */\n  const rehydrate = once(() => {\n    /* add all extracted components to the new tag */\n    for (let i = 0, len = extracted.length; i < len; i += 1) {\n      const { componentId, cssFromDOM } = extracted[i]\n      const cssRules = splitByRules(cssFromDOM)\n      tag.insertRules(componentId, cssRules)\n    }\n\n    /* remove old HTMLStyleElements, since they have been rehydrated */\n    for (let i = 0, len = els.length; i < len; i += 1) {\n      const el = els[i]\n      if (el.parentNode) {\n        el.parentNode.removeChild(el)\n      }\n    }\n  })\n\n  if (immediateRehydration) rehydrate()\n\n  return {\n    ...tag,\n    /* add rehydration hook to insertion methods */\n    insertMarker: id => {\n      rehydrate()\n      return tag.insertMarker(id)\n    },\n    insertRules: (id, cssRules, name) => {\n      rehydrate()\n      return tag.insertRules(id, cssRules, name)\n    },\n  }\n}\n","// @flow\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport StyleSheet from './StyleSheet'\nimport ServerStyleSheet from './ServerStyleSheet'\nimport { CONTEXT_KEY } from '../constants'\nimport StyledError from '../utils/error'\n\ntype Props = {\n  sheet?: StyleSheet | null,\n  target?: HTMLElement | null,\n}\n\nexport default class StyleSheetManager extends Component<Props, void> {\n  static childContextTypes = {\n    [CONTEXT_KEY]: PropTypes.oneOfType([\n      PropTypes.instanceOf(StyleSheet),\n      PropTypes.instanceOf(ServerStyleSheet),\n    ]).isRequired,\n  }\n\n  static propTypes = {\n    sheet: PropTypes.oneOfType([\n      PropTypes.instanceOf(StyleSheet),\n      PropTypes.instanceOf(ServerStyleSheet),\n    ]),\n    target: PropTypes.shape({\n      appendChild: PropTypes.func.isRequired,\n    }),\n  }\n\n  sheetInstance: StyleSheet\n\n  getChildContext() {\n    return { [CONTEXT_KEY]: this.sheetInstance }\n  }\n\n  componentWillMount() {\n    if (this.props.sheet) {\n      this.sheetInstance = this.props.sheet\n    } else if (this.props.target) {\n      this.sheetInstance = new StyleSheet(this.props.target)\n    } else {\n      throw new StyledError(4)\n    }\n  }\n\n  render() {\n    /* eslint-disable react/prop-types */\n    // Flow v0.43.1 will report an error accessing the `children` property,\n    // but v0.47.0 will not. It is necessary to use a type cast instead of\n    // a \"fixme\" comment to satisfy both Flow versions.\n    return React.Children.only((this.props: any).children)\n  }\n}\n","// @flow\nimport React, { Component, type Element } from 'react'\nimport PropTypes from 'prop-types'\nimport createBroadcast from '../utils/create-broadcast'\nimport type { Broadcast } from '../utils/create-broadcast'\nimport StyledError from '../utils/error'\nimport once from '../utils/once'\n\n// NOTE: DO NOT CHANGE, changing this is a semver major change!\nexport const CHANNEL = '__styled-components__'\nexport const CHANNEL_NEXT = `${CHANNEL}next__`\n\nexport const CONTEXT_CHANNEL_SHAPE = PropTypes.shape({\n  getTheme: PropTypes.func,\n  subscribe: PropTypes.func,\n  unsubscribe: PropTypes.func,\n})\n\nexport const contextShape = {\n  [CHANNEL]: PropTypes.func, // legacy\n  [CHANNEL_NEXT]: CONTEXT_CHANNEL_SHAPE,\n}\n\nexport type Theme = { [key: string]: mixed }\ntype ThemeProviderProps = {|\n  children?: Element<any>,\n  theme: Theme | ((outerTheme: Theme) => void),\n|}\n\nlet warnChannelDeprecated\nif (process.env.NODE_ENV !== 'production') {\n  warnChannelDeprecated = once(() => {\n    // eslint-disable-next-line no-console\n    console.warn(\n      `Warning: Usage of \\`context.${CHANNEL}\\` as a function is deprecated. It will be replaced with the object on \\`.context.${CHANNEL_NEXT}\\` in a future version.`\n    )\n  })\n}\n\nconst isFunction = test => typeof test === 'function'\n\n/**\n * Provide a theme to an entire react component tree via context and event listeners (have to do\n * both context and event emitter as pure components block context updates)\n */\nexport default class ThemeProvider extends Component<ThemeProviderProps, void> {\n  broadcast: Broadcast\n  getTheme: (theme?: Theme | ((outerTheme: Theme) => void)) => Theme\n  outerTheme: Theme\n  props: ThemeProviderProps\n  unsubscribeToOuterId: number = -1\n  unsubscribeToOuterId: string\n\n  static childContextTypes = contextShape\n  static contextTypes = {\n    [CHANNEL_NEXT]: CONTEXT_CHANNEL_SHAPE,\n  }\n\n  constructor() {\n    super()\n    this.getTheme = this.getTheme.bind(this)\n  }\n\n  componentWillMount() {\n    // If there is a ThemeProvider wrapper anywhere around this theme provider, merge this theme\n    // with the outer theme\n    const outerContext = this.context[CHANNEL_NEXT]\n    if (outerContext !== undefined) {\n      this.unsubscribeToOuterId = outerContext.subscribe(theme => {\n        this.outerTheme = theme\n\n        if (this.broadcast !== undefined) {\n          this.publish(this.props.theme)\n        }\n      })\n    }\n\n    this.broadcast = createBroadcast(this.getTheme())\n  }\n\n  getChildContext() {\n    return {\n      ...this.context,\n      [CHANNEL_NEXT]: {\n        getTheme: this.getTheme,\n        subscribe: this.broadcast.subscribe,\n        unsubscribe: this.broadcast.unsubscribe,\n      },\n      [CHANNEL]: subscriber => {\n        if (process.env.NODE_ENV !== 'production') {\n          warnChannelDeprecated()\n        }\n\n        // Patch the old `subscribe` provide via `CHANNEL` for older clients.\n        const unsubscribeId = this.broadcast.subscribe(subscriber)\n        return () => this.broadcast.unsubscribe(unsubscribeId)\n      },\n    }\n  }\n\n  componentWillReceiveProps(nextProps: ThemeProviderProps) {\n    if (this.props.theme !== nextProps.theme) {\n      this.publish(nextProps.theme)\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.unsubscribeToOuterId !== -1) {\n      this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeToOuterId)\n    }\n  }\n\n  // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n  getTheme(passedTheme: (outerTheme: Theme) => void | Theme) {\n    const theme = passedTheme || this.props.theme\n\n    if (isFunction(theme)) {\n      const mergedTheme = theme(this.outerTheme)\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        (mergedTheme === null ||\n          Array.isArray(mergedTheme) ||\n          typeof mergedTheme !== 'object')\n      ) {\n        throw new StyledError(7)\n      }\n\n      return mergedTheme\n    }\n\n    if (theme === null || Array.isArray(theme) || typeof theme !== 'object') {\n      throw new StyledError(8)\n    }\n\n    return { ...this.outerTheme, ...(theme: Object) }\n  }\n\n  publish(theme: Theme | ((outerTheme: Theme) => void)) {\n    this.broadcast.publish(this.getTheme(theme))\n  }\n\n  render() {\n    if (!this.props.children) {\n      return null\n    }\n\n    return React.Children.only(this.props.children)\n  }\n}\n","// @flow\n\nimport hoist from 'hoist-non-react-statics'\nimport PropTypes from 'prop-types'\nimport { Component, createElement } from 'react'\nimport { CONTEXT_KEY } from '../constants'\nimport createWarnTooManyClasses from '../utils/createWarnTooManyClasses'\nimport determineTheme from '../utils/determineTheme'\nimport { EMPTY_OBJECT } from '../utils/empties'\nimport escape from '../utils/escape'\nimport generateDisplayName from '../utils/generateDisplayName'\nimport getComponentName from '../utils/getComponentName'\nimport isStyledComponent from '../utils/isStyledComponent'\nimport isTag from '../utils/isTag'\nimport validAttr from '../utils/validAttr'\nimport hasInInheritanceChain from '../utils/hasInInheritanceChain'\nimport once from '../utils/once'\nimport ServerStyleSheet from './ServerStyleSheet'\nimport StyleSheet from './StyleSheet'\nimport { CHANNEL_NEXT, contextShape } from './ThemeProvider'\n\nimport type { Theme } from './ThemeProvider'\nimport type { RuleSet, Target } from '../types'\n\n// HACK for generating all static styles without needing to allocate\n// an empty execution context every single time...\nconst STATIC_EXECUTION_CONTEXT = {}\n\ntype BaseState = {\n  theme?: ?Theme,\n  generatedClassName?: string,\n}\n\nconst modifiedContextShape = {\n  ...contextShape,\n  [CONTEXT_KEY]: PropTypes.oneOfType([\n    PropTypes.instanceOf(StyleSheet),\n    PropTypes.instanceOf(ServerStyleSheet),\n  ]),\n}\n\nconst identifiers = {}\n\n/* We depend on components having unique IDs */\nconst generateId = (\n  ComponentStyle: Function,\n  _displayName: string,\n  parentComponentId: string\n) => {\n  const displayName =\n    typeof _displayName !== 'string' ? 'sc' : escape(_displayName)\n\n  /**\n   * This ensures uniqueness if two components happen to share\n   * the same displayName.\n   */\n  const nr = (identifiers[displayName] || 0) + 1\n  identifiers[displayName] = nr\n\n  const componentId = `${displayName}-${ComponentStyle.generateName(\n    displayName + nr\n  )}`\n\n  return parentComponentId !== undefined\n    ? `${parentComponentId}-${componentId}`\n    : componentId\n}\n\nlet warnExtendDeprecated = () => {}\nif (process.env.NODE_ENV !== 'production') {\n  warnExtendDeprecated = once(() => {\n    // eslint-disable-next-line no-console\n    console.warn(\n      'Warning: The \"extend\" API will be removed in the upcoming v4.0 release. Use styled(StyledComponent) instead. You can find more information here: https://github.com/styled-components/styled-components/issues/1546'\n    )\n  })\n}\n\n// $FlowFixMe\nclass BaseStyledComponent extends Component<*, BaseState> {\n  static target: Target\n  static styledComponentId: string\n  static attrs: Object\n  static componentStyle: Object\n  static defaultProps: Object\n  static warnTooManyClasses: Function\n\n  attrs = {}\n  state = {\n    theme: null,\n    generatedClassName: '',\n  }\n  unsubscribeId: number = -1\n\n  unsubscribeFromContext() {\n    if (this.unsubscribeId !== -1) {\n      this.context[CHANNEL_NEXT].unsubscribe(this.unsubscribeId)\n    }\n  }\n\n  buildExecutionContext(theme: any, props: any) {\n    const { attrs } = this.constructor\n    const context = { ...props, theme }\n    if (attrs === undefined) {\n      return context\n    }\n\n    this.attrs = Object.keys(attrs).reduce((acc, key) => {\n      const attr = attrs[key]\n\n      // eslint-disable-next-line no-param-reassign\n      acc[key] =\n        typeof attr === 'function' && !hasInInheritanceChain(attr, Component)\n          ? attr(context)\n          : attr\n      return acc\n    }, {})\n\n    return { ...context, ...this.attrs }\n  }\n\n  generateAndInjectStyles(theme: any, props: any) {\n    const { attrs, componentStyle, warnTooManyClasses } = this.constructor\n    const styleSheet = this.context[CONTEXT_KEY] || StyleSheet.master\n\n    // statically styled-components don't need to build an execution context object,\n    // and shouldn't be increasing the number of class names\n    if (componentStyle.isStatic && attrs === undefined) {\n      return componentStyle.generateAndInjectStyles(\n        STATIC_EXECUTION_CONTEXT,\n        styleSheet\n      )\n    } else {\n      const executionContext = this.buildExecutionContext(theme, props)\n      const className = componentStyle.generateAndInjectStyles(\n        executionContext,\n        styleSheet\n      )\n\n      if (\n        process.env.NODE_ENV !== 'production' &&\n        warnTooManyClasses !== undefined\n      ) {\n        warnTooManyClasses(className)\n      }\n\n      return className\n    }\n  }\n\n  componentWillMount() {\n    const { componentStyle } = this.constructor\n    const styledContext = this.context[CHANNEL_NEXT]\n\n    // If this is a statically-styled component, we don't need to the theme\n    // to generate or build styles.\n    if (componentStyle.isStatic) {\n      const generatedClassName = this.generateAndInjectStyles(\n        STATIC_EXECUTION_CONTEXT,\n        this.props\n      )\n      this.setState({ generatedClassName })\n      // If there is a theme in the context, subscribe to the event emitter. This\n      // is necessary due to pure components blocking context updates, this circumvents\n      // that by updating when an event is emitted\n    } else if (styledContext !== undefined) {\n      const { subscribe } = styledContext\n      this.unsubscribeId = subscribe(nextTheme => {\n        // This will be called once immediately\n        const theme = determineTheme(\n          this.props,\n          nextTheme,\n          this.constructor.defaultProps\n        )\n\n        const generatedClassName = this.generateAndInjectStyles(\n          theme,\n          this.props\n        )\n\n        this.setState({ theme, generatedClassName })\n      })\n    } else {\n      // eslint-disable-next-line react/prop-types\n      const theme = this.props.theme || EMPTY_OBJECT\n      const generatedClassName = this.generateAndInjectStyles(theme, this.props)\n      this.setState({ theme, generatedClassName })\n    }\n  }\n\n  componentWillReceiveProps(nextProps: { theme?: Theme, [key: string]: any }) {\n    // If this is a statically-styled component, we don't need to listen to\n    // props changes to update styles\n    const { componentStyle } = this.constructor\n    if (componentStyle.isStatic) {\n      return\n    }\n\n    this.setState(prevState => {\n      const theme = determineTheme(\n        nextProps,\n        prevState.theme,\n        this.constructor.defaultProps\n      )\n      const generatedClassName = this.generateAndInjectStyles(theme, nextProps)\n\n      return { theme, generatedClassName }\n    })\n  }\n\n  componentWillUnmount() {\n    this.unsubscribeFromContext()\n  }\n\n  render() {\n    // eslint-disable-next-line react/prop-types\n    const { innerRef } = this.props\n    const { generatedClassName } = this.state\n    const { styledComponentId, target } = this.constructor\n\n    const isTargetTag = isTag(target)\n\n    const className = [\n      // eslint-disable-next-line react/prop-types\n      this.props.className,\n      styledComponentId,\n      this.attrs.className,\n      generatedClassName,\n    ]\n      .filter(Boolean)\n      .join(' ')\n\n    const baseProps: Object = {\n      ...this.attrs,\n      className,\n    }\n\n    if (isStyledComponent(target)) {\n      baseProps.innerRef = innerRef\n    } else {\n      baseProps.ref = innerRef\n    }\n\n    const propsForElement = baseProps\n    let key\n\n    for (key in this.props) {\n      // Don't pass through non HTML tags through to HTML elements\n      // always omit innerRef\n      if (\n        key !== 'innerRef' &&\n        key !== 'className' &&\n        (!isTargetTag || validAttr(key))\n      ) {\n        propsForElement[key] =\n          key === 'style' && key in this.attrs\n            ? { ...this.attrs[key], ...this.props[key] }\n            : this.props[key]\n      }\n    }\n\n    return createElement(target, propsForElement)\n  }\n}\n\nexport default (ComponentStyle: Function, constructWithOptions: Function) => {\n  const createStyledComponent = (\n    target: Target,\n    options: Object,\n    rules: RuleSet\n  ) => {\n    const {\n      isClass = !isTag(target),\n      displayName = generateDisplayName(target),\n      componentId = generateId(\n        ComponentStyle,\n        options.displayName,\n        options.parentComponentId\n      ),\n      ParentComponent = BaseStyledComponent,\n      rules: extendingRules,\n      attrs,\n    } = options\n\n    const styledComponentId =\n      options.displayName && options.componentId\n        ? `${escape(options.displayName)}-${options.componentId}`\n        : options.componentId || componentId\n\n    const componentStyle = new ComponentStyle(\n      extendingRules === undefined ? rules : extendingRules.concat(rules),\n      attrs,\n      styledComponentId\n    )\n\n    class StyledComponent extends ParentComponent {\n      static attrs = attrs\n      static componentStyle = componentStyle\n      static contextTypes = modifiedContextShape\n      static displayName = displayName\n      static styledComponentId = styledComponentId\n      static target = target\n\n      static withComponent(tag: Target) {\n        const { componentId: previousComponentId, ...optionsToCopy } = options\n\n        const newComponentId =\n          previousComponentId &&\n          `${previousComponentId}-${\n            isTag(tag) ? tag : escape(getComponentName(tag))\n          }`\n\n        const newOptions = {\n          ...optionsToCopy,\n          componentId: newComponentId,\n          ParentComponent: StyledComponent,\n        }\n\n        return createStyledComponent(tag, newOptions, rules)\n      }\n\n      static get extend() {\n        const {\n          rules: rulesFromOptions,\n          componentId: parentComponentId,\n          ...optionsToCopy\n        } = options\n\n        const newRules =\n          rulesFromOptions === undefined\n            ? rules\n            : rulesFromOptions.concat(rules)\n\n        const newOptions = {\n          ...optionsToCopy,\n          rules: newRules,\n          parentComponentId,\n          ParentComponent: StyledComponent,\n        }\n\n        warnExtendDeprecated()\n\n        return constructWithOptions(createStyledComponent, target, newOptions)\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      StyledComponent.warnTooManyClasses = createWarnTooManyClasses(displayName)\n    }\n\n    if (isClass) {\n      hoist(StyledComponent, target, {\n        // all SC-specific things should not be hoisted\n        attrs: true,\n        componentStyle: true,\n        displayName: true,\n        extend: true,\n        styledComponentId: true,\n        target: true,\n        warnTooManyClasses: true,\n        withComponent: true,\n      })\n    }\n\n    return StyledComponent\n  }\n\n  return createStyledComponent\n}\n","// @flow\nimport hashStr from '../vendor/glamor/hash'\n\nimport type { RuleSet, NameGenerator, Flattener, Stringifier } from '../types'\nimport StyleSheet from './StyleSheet'\nimport { IS_BROWSER } from '../constants'\nimport isStyledComponent from '../utils/isStyledComponent'\n\nconst areStylesCacheable = IS_BROWSER\n\nconst isStaticRules = (rules: RuleSet, attrs?: Object): boolean => {\n  for (let i = 0, len = rules.length; i < len; i += 1) {\n    const rule = rules[i]\n\n    // recursive case\n    if (Array.isArray(rule) && !isStaticRules(rule)) {\n      return false\n    } else if (typeof rule === 'function' && !isStyledComponent(rule)) {\n      // functions are allowed to be static if they're just being\n      // used to get the classname of a nested styled component\n      return false\n    }\n  }\n\n  if (attrs !== undefined) {\n    // eslint-disable-next-line guard-for-in, no-restricted-syntax\n    for (const key in attrs) {\n      if (typeof attrs[key] === 'function') {\n        return false\n      }\n    }\n  }\n\n  return true\n}\n\nconst isHMREnabled =\n  typeof module !== 'undefined' &&\n  module.hot &&\n  process.env.NODE_ENV !== 'production'\n\n/*\n ComponentStyle is all the CSS-specific stuff, not\n the React-specific stuff.\n */\nexport default (\n  nameGenerator: NameGenerator,\n  flatten: Flattener,\n  stringifyRules: Stringifier\n) => {\n  /* combines hashStr (murmurhash) and nameGenerator for convenience */\n  const generateRuleHash = (str: string) => nameGenerator(hashStr(str))\n\n  class ComponentStyle {\n    rules: RuleSet\n    componentId: string\n    isStatic: boolean\n    lastClassName: ?string\n\n    constructor(rules: RuleSet, attrs?: Object, componentId: string) {\n      this.rules = rules\n      this.isStatic = !isHMREnabled && isStaticRules(rules, attrs)\n      this.componentId = componentId\n\n      if (!StyleSheet.master.hasId(componentId)) {\n        const placeholder =\n          process.env.NODE_ENV !== 'production' ? [`.${componentId} {}`] : []\n\n        StyleSheet.master.deferredInject(componentId, placeholder)\n      }\n    }\n\n    /*\n     * Flattens a rule set into valid CSS\n     * Hashes it, wraps the whole chunk in a .hash1234 {}\n     * Returns the hash to be injected on render()\n     * */\n    generateAndInjectStyles(executionContext: Object, styleSheet: StyleSheet) {\n      const { isStatic, componentId, lastClassName } = this\n      if (\n        areStylesCacheable &&\n        isStatic &&\n        lastClassName !== undefined &&\n        styleSheet.hasNameForId(componentId, ((lastClassName: any): string))\n      ) {\n        return lastClassName\n      }\n\n      const flatCSS = flatten(this.rules, executionContext)\n      const name = generateRuleHash(this.componentId + flatCSS.join(''))\n\n      if (!styleSheet.hasNameForId(componentId, name)) {\n        styleSheet.inject(\n          this.componentId,\n          stringifyRules(flatCSS, `.${name}`),\n          name\n        )\n      }\n\n      this.lastClassName = name\n      return name\n    }\n\n    static generateName(str: string): string {\n      return generateRuleHash(str)\n    }\n  }\n\n  return ComponentStyle\n}\n","// @flow\nimport hashStr from '../vendor/glamor/hash'\nimport type { Interpolation, NameGenerator, Stringifier } from '../types'\nimport StyleSheet from '../models/StyleSheet'\n\nconst replaceWhitespace = (str: string): string => str.replace(/\\s|\\\\n/g, '')\n\ntype KeyframesFn = (\n  strings: Array<string>,\n  ...interpolations: Array<Interpolation>\n) => string\n\nexport default (\n  nameGenerator: NameGenerator,\n  stringifyRules: Stringifier,\n  css: Function\n): KeyframesFn => (...arr): string => {\n  const styleSheet = StyleSheet.master\n  const rules = css(...arr)\n  const name = nameGenerator(hashStr(replaceWhitespace(JSON.stringify(rules))))\n  const id = `sc-keyframes-${name}`\n\n  if (!styleSheet.hasNameForId(id, name)) {\n    styleSheet.inject(id, stringifyRules(rules, name, '@keyframes'), name)\n  }\n\n  return name\n}\n","// @flow\nimport hashStr from '../vendor/glamor/hash'\nimport StyleSheet from '../models/StyleSheet'\nimport type { Interpolation, Stringifier } from '../types'\n\ntype InjectGlobalFn = (\n  strings: Array<string>,\n  ...interpolations: Array<Interpolation>\n) => void\n\nexport default (stringifyRules: Stringifier, css: Function) => {\n  const injectGlobal: InjectGlobalFn = (...args) => {\n    const styleSheet = StyleSheet.master\n    const rules = css(...args)\n    const hash = hashStr(JSON.stringify(rules))\n    const id = `sc-global-${hash}`\n\n    if (!styleSheet.hasId(id)) {\n      styleSheet.inject(id, stringifyRules(rules))\n    }\n  }\n\n  return injectGlobal\n}\n","import React, { Component } from \"react\";\nimport styled from \"styled-components\";\n\nimport chickenimage from \"../assets/images/chicken.png\";\nimport fb from \"../api/firebase\";\nimport { format } from \"date-fns\";\n\nconst SendChickenStyled = styled.a``;\n\nexport default class SendChicken extends Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      clicked: false\n    };\n  }\n\n  componentDidMount() {\n    if (this.props.todayUsers && this.props.userName) {\n      if (Object.keys(this.props.todayUsers).includes(this.props.userName)) {\n        this.setState({ clicked: true });\n      }\n    }\n  }\n\n  handleChickenClick = () => {\n    const today = format(new Date(), \"MM-DD-YYYY\");\n\n    if (this.props.userID && (this.props.userID !== undefined || \"\")) {\n      if (this.props.todayUsers && Object.keys(this.props.todayUsers)) {\n        if (Object.values(this.props.todayUsers).includes(this.props.userID)) {\n          // Unclicked\n          fb.child(\"dates\")\n            .child(today)\n            .orderByValue()\n            .equalTo(this.props.userID)\n            .once(\"child_added\", snapshot => {\n              snapshot.ref.remove();\n            });\n          this.setState({ clicked: false });\n          window.alert(\"Noooo why do you leave us??!!!\");\n        } else {\n          // Clicked\n          fb.child(\"dates\")\n            .child(today)\n            .push(this.props.userID, response => console.log(response));\n          this.setState({ clicked: true });\n        }\n      } else {\n        window.alert(\n          \"something went horribly wrong and Nils is an idiot, send him an e-mail\"\n        );\n      }\n    } else {\n      // Error\n      window.alert(\"No kipboi name set!\");\n    }\n  };\n\n  render() {\n    return (\n      <SendChickenStyled\n        href=\"#\"\n        onClick={this.handleChickenClick}\n        style={{ display: \"flex\", alignItems: \"center\", padding: \"3rem\" }}\n      >\n        <img\n          src={chickenimage}\n          alt=\"ChickenButton\"\n          style={{\n            width: \"100%\",\n            height: \"auto\",\n            display: \"block\",\n            filter: \"drop-shadow(0px 0px 35px rgba(0,0,0,0.45))\"\n          }}\n        />\n      </SendChickenStyled>\n    );\n  }\n}\n","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nmodule.exports = _interopRequireDefault;","function _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar setStatic = function setStatic(key, value) {\n  return function (BaseComponent) {\n    /* eslint-disable no-param-reassign */\n    BaseComponent[key] = value;\n    /* eslint-enable no-param-reassign */\n\n    return BaseComponent;\n  };\n};\n\nvar _default = setStatic;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setStatic = _interopRequireDefault(require(\"./setStatic\"));\n\nvar setDisplayName = function setDisplayName(displayName) {\n  return (0, _setStatic.default)('displayName', displayName);\n};\n\nvar _default = setDisplayName;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n  if (typeof Component === 'string') {\n    return Component;\n  }\n\n  if (!Component) {\n    return undefined;\n  }\n\n  return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar wrapDisplayName = function wrapDisplayName(BaseComponent, hocName) {\n  return hocName + \"(\" + (0, _getDisplayName.default)(BaseComponent) + \")\";\n};\n\nvar _default = wrapDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _react = require(\"react\");\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar shouldUpdate = function shouldUpdate(test) {\n  return function (BaseComponent) {\n    var factory = (0, _react.createFactory)(BaseComponent);\n\n    var ShouldUpdate =\n    /*#__PURE__*/\n    function (_Component) {\n      (0, _inheritsLoose2.default)(ShouldUpdate, _Component);\n\n      function ShouldUpdate() {\n        return _Component.apply(this, arguments) || this;\n      }\n\n      var _proto = ShouldUpdate.prototype;\n\n      _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n        return test(this.props, nextProps);\n      };\n\n      _proto.render = function render() {\n        return factory(this.props);\n      };\n\n      return ShouldUpdate;\n    }(_react.Component);\n\n    if (process.env.NODE_ENV !== 'production') {\n      return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'shouldUpdate'))(ShouldUpdate);\n    }\n\n    return ShouldUpdate;\n  };\n};\n\nvar _default = shouldUpdate;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shallowEqual = _interopRequireDefault(require(\"fbjs/lib/shallowEqual\"));\n\nvar _default = _shallowEqual.default;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _shouldUpdate = _interopRequireDefault(require(\"./shouldUpdate\"));\n\nvar _shallowEqual = _interopRequireDefault(require(\"./shallowEqual\"));\n\nvar _setDisplayName = _interopRequireDefault(require(\"./setDisplayName\"));\n\nvar _wrapDisplayName = _interopRequireDefault(require(\"./wrapDisplayName\"));\n\nvar pure = function pure(BaseComponent) {\n  var hoc = (0, _shouldUpdate.default)(function (props, nextProps) {\n    return !(0, _shallowEqual.default)(props, nextProps);\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'pure'))(hoc(BaseComponent));\n  }\n\n  return hoc(BaseComponent);\n};\n\nvar _default = pure;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _pure = _interopRequireDefault(require(\"recompose/pure\"));\n\nvar _SvgIcon = _interopRequireDefault(require(\"@material-ui/core/SvgIcon\"));\n\nfunction createSvgIcon(path, displayName) {\n  var Icon = function Icon(props) {\n    return _react.default.createElement(_SvgIcon.default, props, path);\n  };\n\n  Icon.displayName = \"\".concat(displayName, \"Icon\");\n  Icon = (0, _pure.default)(Icon);\n  Icon.muiName = 'SvgIcon';\n  return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n  d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), _react.default.createElement(\"path\", {\n  fill: \"none\",\n  d: \"M0 0h24v24H0z\"\n})), 'Edit');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n  d: \"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z\"\n}), _react.default.createElement(\"path\", {\n  fill: \"none\",\n  d: \"M0 0h24v24H0z\"\n})), 'CalendarToday');\n\nexports.default = _default;","import React, { Component } from \"react\";\nimport {\n  Dialog,\n  DialogTitle,\n  DialogContent,\n  DialogContentText,\n  FormControl,\n  Button,\n  TextField,\n  DialogActions\n} from \"@material-ui/core\";\n\nimport fb from \"../api/firebase\";\n\nexport default class ChangeNicknameDialog extends Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      nickname: \"\"\n    };\n  }\n\n  saveNickname = key => {\n    fb.child(\"users\")\n      .child(key)\n      .update({ nickname: this.state.nickname }, response =>\n        console.log(response)\n      );\n    this.handleClose();\n  };\n\n  handleClose = () => {\n    this.props.handleClose();\n  };\n\n  handleChange = event => {\n    this.setState({ nickname: event.target.value });\n  };\n\n  render() {\n    return (\n      <Dialog\n        open={true}\n        onClose={this.handleClose}\n        aria-labelledby=\"form-dialog-title\"\n      >\n        <DialogTitle>\n          Change {this.props.user && this.props.user.name}\n          's Nickname\n        </DialogTitle>\n        <DialogContent>\n          <DialogContentText>\n            To change {this.props.user.name}\n            's nickname, enter a new one and click save. It's that easy!\n          </DialogContentText>\n          <FormControl required fullWidth>\n            <TextField\n              label=\"What's the new nickname?\"\n              type=\"name\"\n              margin=\"normal\"\n              variant=\"outlined\"\n              onChange={this.handleChange}\n            />\n          </FormControl>\n        </DialogContent>\n        <DialogActions>\n          <Button onClick={this.handleClose} color=\"primary\">\n            Cancel\n          </Button>\n          <Button\n            type=\"submit\"\n            variant=\"raised\"\n            color=\"primary\"\n            onClick={() => {\n              this.saveNickname(this.props.user.key);\n            }}\n          >\n            Save nickname\n          </Button>\n        </DialogActions>\n      </Dialog>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport {\n  Card,\n  List,\n  ListItem,\n  ListItemText,\n  FormControl,\n  TextField,\n  IconButton,\n  Button,\n  CardContent,\n  Typography,\n  Divider,\n  ListItemSecondaryAction,\n  CardHeader\n} from \"@material-ui/core\";\n\nimport EditIcon from \"@material-ui/icons/Edit\";\nimport CalendarTodayIcon from \"@material-ui/icons/CalendarToday\";\n\nimport ls from \"local-storage\";\nimport fb from \"../api/firebase\";\nimport { format } from \"date-fns\";\nimport ChangeNicknameDialog from \"./changenickname\";\n\nexport class EnterKipName extends Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      name: \"\"\n    };\n  }\n\n  handleClick = e => {\n    if (this.state.name && (this.state.name !== undefined || \"\")) {\n      ls(\"name\", this.state.name);\n      console.log(this.props.users);\n      if (\n        !Object.values(this.props.users)\n          .map(user => user.name)\n          .includes(ls(\"name\"))\n      ) {\n        fb.child(\"users\").push({\n          name: this.state.name\n        });\n      }\n      location.reload();\n    } else {\n      window.alert(\"No valid kipboi name set!\");\n    }\n  };\n\n  handleChange = event => {\n    this.setState({ name: event.target.value });\n  };\n\n  render() {\n    return (\n      <Card>\n        <CardContent>\n          <Typography variant=\"headline\" component=\"h2\">\n            Set a name\n          </Typography>\n          <Typography variant=\"subheading\" gutterBottom>\n            You only have to do this once. Probably.\n          </Typography>\n          <Divider />\n          <FormControl required fullWidth>\n            <TextField\n              label=\"What's your kipboi name?\"\n              type=\"name\"\n              margin=\"normal\"\n              variant=\"outlined\"\n              onChange={this.handleChange}\n            />\n          </FormControl>\n          <Button\n            type=\"submit\"\n            fullWidth\n            variant=\"raised\"\n            color=\"primary\"\n            onClick={this.handleClick}\n          >\n            Save name\n          </Button>\n        </CardContent>\n      </Card>\n    );\n  }\n}\n\nexport class CurrentKipBoiz extends Component {\n  constructor(props) {\n    super(props);\n    this.changeNickname = this.changeNickname.bind(this);\n\n    this.state = {\n      showNicknameDialog: false,\n      selectedUser: {},\n      currentDate: format(new Date(), \"MM-DD-YYYY\")\n    };\n  }\n\n  changeNickname = user => {\n    this.setState({\n      showNicknameDialog: true,\n      selectedUser: user\n    });\n  };\n\n  render() {\n    let kipboiInfo = [];\n    let kipboiKeys = [];\n    let kipboiArr = [];\n\n    if (\n      this.props.todayUsers &&\n      Object.values(this.props.todayUsers).length > 0\n    ) {\n      kipboiInfo = this.props.allKipboiz;\n      kipboiKeys = Object.values(this.props.todayUsers);\n\n      kipboiArr = kipboiKeys.map(key => {\n        kipboiInfo[key].key = key;\n        return kipboiInfo[key];\n      });\n    }\n\n    return (\n      <div>\n        <Card>\n          <CardHeader\n            title={`${kipboiArr.length} Kipboiz`}\n            subheader={\n              this.state.currentDate !== format(new Date(), \"MM-DD-YYYY\")\n                ? \"on \" + this.state.currentDate\n                : null\n            }\n            action={\n              <IconButton>\n                <CalendarTodayIcon />\n              </IconButton>\n            }\n          />\n          <Divider />\n          <CardContent>\n            <List disablePadding>\n              {kipboiArr.map(item => (\n                <ListItem disableGutters key={`item-${item.key}`}>\n                  <ListItemText\n                    primary={`Kipboi ${item.name}`}\n                    secondary={item.nickname && item.nickname}\n                  />\n                  <ListItemSecondaryAction\n                    onClick={() => this.changeNickname(item)}\n                  >\n                    <IconButton>\n                      <EditIcon />\n                    </IconButton>\n                  </ListItemSecondaryAction>\n                </ListItem>\n              ))}\n            </List>\n          </CardContent>\n        </Card>\n        {this.state.showNicknameDialog && (\n          <ChangeNicknameDialog\n            user={this.state.selectedUser}\n            handleClose={() => {\n              this.setState({ showNicknameDialog: false });\n            }}\n          />\n        )}\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Grid } from \"@material-ui/core\";\n\nimport fb from \"/src/api/firebase\";\n\nimport ls from \"local-storage\";\nimport { format } from \"date-fns\";\n\n// User Components\nimport SendChicken from \"./components/sendchicken\";\nimport { CurrentKipBoiz, EnterKipName } from \"./components/kipboiz\";\n\nexport default class App extends Component {\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      currentDate: format(new Date(), \"MM-DD-YYYY\")\n    };\n  }\n\n  getUserInfo = () => {\n    return Object.keys(this.props.users).find(\n      key => this.props.users[key].name === ls(\"name\")\n    );\n  };\n\n  getUID = () => {\n    return Object.keys(this.props.users).find(\n      key => this.props.users[key].name === ls(\"name\")\n    );\n  };\n\n  render() {\n    return (\n      <Grid container justify=\"center\" alignItems=\"center\" direction=\"column\">\n        <Grid item xs={12} style={{ maxWidth: \"28rem\", height: \"auto\" }}>\n          {this.props.users && (\n            <SendChicken\n              userID={this.getUID()}\n              todayUsers={\n                this.props.dates[this.state.currentDate]\n                  ? this.props.dates[this.state.currentDate]\n                  : []\n              }\n            />\n          )}\n        </Grid>\n        <Grid item style={{ minWidth: \"24rem\" }}>\n          <Grid container direction=\"column\" spacing={16}>\n            {!ls(\"name\") || ls(\"name\") === undefined ? (\n              <Grid item xs={12}>\n                <EnterKipName users={this.props.users} />\n              </Grid>\n            ) : null}\n            <Grid item xs={12}>\n              <CurrentKipBoiz\n                todayUsers={\n                  this.props.dates\n                    ? this.props.dates[this.state.currentDate]\n                    : []\n                }\n                allKipboiz={this.props.users}\n              />\n            </Grid>\n          </Grid>\n        </Grid>\n      </Grid>\n    );\n  }\n}\n\nfb.on(\"value\", snapshot => {\n  const store = snapshot.val();\n  ReactDOM.render(<App {...store} />, document.getElementById(\"app\"));\n});\n\nif (module.hot) {\n  module.hot.accept();\n}\n"]}