diff --git a/dist/redux-little-router.js b/dist/redux-little-router.js index 2bf0d306..a1cffeeb 100644 --- a/dist/redux-little-router.js +++ b/dist/redux-little-router.js @@ -69,9 +69,9 @@ return /******/ (function(modules) { // webpackBootstrap var _provider2 = _interopRequireDefault(_provider); - var _link = __webpack_require__(31); + var _link = __webpack_require__(53); - var _fragment = __webpack_require__(32); + var _fragment = __webpack_require__(54); var _fragment2 = _interopRequireDefault(_fragment); @@ -2643,70 +2643,1584 @@ return /******/ (function(modules) { // webpackBootstrap var _react2 = _interopRequireDefault(_react); + var _reactRedux = __webpack_require__(31); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var RouterProviderImpl = function (_Component) { + _inherits(RouterProviderImpl, _Component); + + function RouterProviderImpl(props) { + _classCallCheck(this, RouterProviderImpl); + + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProviderImpl).call(this, props)); + + _this.router = { + store: props.store + }; + return _this; + } + + _createClass(RouterProviderImpl, [{ + key: 'getChildContext', + value: function getChildContext() { + return { + router: this.router + }; + } + }, { + key: 'render', + value: function render() { + return this.props.children; + } + }]); + + return RouterProviderImpl; + }(_react.Component); + + RouterProviderImpl.childContextTypes = { + router: _react.PropTypes.object + }; + + var RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) { + return { + router: state.router + }; + })(RouterProviderImpl); + + exports.default = function (_ref) { + var store = _ref.store; + return function (ComposedComponent) { + return function (props) { + return _react2.default.createElement( + RouterProvider, + { store: store }, + _react2.default.createElement(ComposedComponent, props) + ); + }; + }; + }; + +/***/ }, +/* 30 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_30__; + +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.connect = exports.Provider = undefined; + + var _Provider = __webpack_require__(32); + + var _Provider2 = _interopRequireDefault(_Provider); + + var _connect = __webpack_require__(35); + + var _connect2 = _interopRequireDefault(_connect); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + exports.Provider = _Provider2["default"]; + exports.connect = _connect2["default"]; + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + exports["default"] = undefined; + + var _react = __webpack_require__(30); + + var _storeShape = __webpack_require__(33); + + var _storeShape2 = _interopRequireDefault(_storeShape); + + var _warning = __webpack_require__(34); + + var _warning2 = _interopRequireDefault(_warning); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var didWarnAboutReceivingStore = false; + function warnAboutReceivingStore() { + if (didWarnAboutReceivingStore) { + return; + } + didWarnAboutReceivingStore = true; + + (0, _warning2["default"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.'); + } + + var Provider = function (_Component) { + _inherits(Provider, _Component); + + Provider.prototype.getChildContext = function getChildContext() { + return { store: this.store }; + }; + + function Provider(props, context) { + _classCallCheck(this, Provider); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); + + _this.store = props.store; + return _this; + } + + Provider.prototype.render = function render() { + var children = this.props.children; + + return _react.Children.only(children); + }; + + return Provider; + }(_react.Component); + + exports["default"] = Provider; + + if (process.env.NODE_ENV !== 'production') { + Provider.prototype.componentWillReceiveProps = function (nextProps) { + var store = this.store; + var nextStore = nextProps.store; + + if (store !== nextStore) { + warnAboutReceivingStore(); + } + }; + } + + Provider.propTypes = { + store: _storeShape2["default"].isRequired, + children: _react.PropTypes.element.isRequired + }; + Provider.childContextTypes = { + store: _storeShape2["default"].isRequired + }; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _react = __webpack_require__(30); + + exports["default"] = _react.PropTypes.shape({ + subscribe: _react.PropTypes.func.isRequired, + dispatch: _react.PropTypes.func.isRequired, + getState: _react.PropTypes.func.isRequired + }); + +/***/ }, +/* 34 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports["default"] = warning; + /** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ + function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + } + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + var _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; }; + + exports.__esModule = true; + exports["default"] = connect; + + var _react = __webpack_require__(30); + + var _storeShape = __webpack_require__(33); + + var _storeShape2 = _interopRequireDefault(_storeShape); + + var _shallowEqual = __webpack_require__(36); + + var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + + var _wrapActionCreators = __webpack_require__(37); + + var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators); + + var _warning = __webpack_require__(34); + + var _warning2 = _interopRequireDefault(_warning); + + var _isPlainObject = __webpack_require__(40); + + var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + + var _hoistNonReactStatics = __webpack_require__(52); + + var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + + var _invariant = __webpack_require__(4); + + var _invariant2 = _interopRequireDefault(_invariant); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var defaultMapStateToProps = function defaultMapStateToProps(state) { + return {}; + }; // eslint-disable-line no-unused-vars + var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) { + return { dispatch: dispatch }; + }; + var defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) { + return _extends({}, parentProps, stateProps, dispatchProps); + }; + + function getDisplayName(WrappedComponent) { + return WrappedComponent.displayName || WrappedComponent.name || 'Component'; + } + + var errorObject = { value: null }; + function tryCatch(fn, ctx) { + try { + return fn.apply(ctx); + } catch (e) { + errorObject.value = e; + return errorObject; + } + } + + // Helps track hot reloading. + var nextVersion = 0; + + function connect(mapStateToProps, mapDispatchToProps, mergeProps) { + var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; + + var shouldSubscribe = Boolean(mapStateToProps); + var mapState = mapStateToProps || defaultMapStateToProps; + + var mapDispatch = undefined; + if (typeof mapDispatchToProps === 'function') { + mapDispatch = mapDispatchToProps; + } else if (!mapDispatchToProps) { + mapDispatch = defaultMapDispatchToProps; + } else { + mapDispatch = (0, _wrapActionCreators2["default"])(mapDispatchToProps); + } + + var finalMergeProps = mergeProps || defaultMergeProps; + var _options$pure = options.pure; + var pure = _options$pure === undefined ? true : _options$pure; + var _options$withRef = options.withRef; + var withRef = _options$withRef === undefined ? false : _options$withRef; + + var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps; + + // Helps track hot reloading. + var version = nextVersion++; + + return function wrapWithConnect(WrappedComponent) { + var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')'; + + function checkStateShape(props, methodName) { + if (!(0, _isPlainObject2["default"])(props)) { + (0, _warning2["default"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.')); + } + } + + function computeMergedProps(stateProps, dispatchProps, parentProps) { + var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps); + if (process.env.NODE_ENV !== 'production') { + checkStateShape(mergedProps, 'mergeProps'); + } + return mergedProps; + } + + var Connect = function (_Component) { + _inherits(Connect, _Component); + + Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() { + return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged; + }; + + function Connect(props, context) { + _classCallCheck(this, Connect); + + var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); + + _this.version = version; + _this.store = props.store || context.store; + + (0, _invariant2["default"])(_this.store, 'Could not find "store" in either the context or ' + ('props of "' + connectDisplayName + '". ') + 'Either wrap the root component in a , ' + ('or explicitly pass "store" as a prop to "' + connectDisplayName + '".')); + + var storeState = _this.store.getState(); + _this.state = { storeState: storeState }; + _this.clearCache(); + return _this; + } + + Connect.prototype.computeStateProps = function computeStateProps(store, props) { + if (!this.finalMapStateToProps) { + return this.configureFinalMapState(store, props); + } + + var state = store.getState(); + var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state); + + if (process.env.NODE_ENV !== 'production') { + checkStateShape(stateProps, 'mapStateToProps'); + } + return stateProps; + }; + + Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) { + var mappedState = mapState(store.getState(), props); + var isFactory = typeof mappedState === 'function'; + + this.finalMapStateToProps = isFactory ? mappedState : mapState; + this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1; + + if (isFactory) { + return this.computeStateProps(store, props); + } + + if (process.env.NODE_ENV !== 'production') { + checkStateShape(mappedState, 'mapStateToProps'); + } + return mappedState; + }; + + Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) { + if (!this.finalMapDispatchToProps) { + return this.configureFinalMapDispatch(store, props); + } + + var dispatch = store.dispatch; + + var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch); + + if (process.env.NODE_ENV !== 'production') { + checkStateShape(dispatchProps, 'mapDispatchToProps'); + } + return dispatchProps; + }; + + Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) { + var mappedDispatch = mapDispatch(store.dispatch, props); + var isFactory = typeof mappedDispatch === 'function'; + + this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch; + this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1; + + if (isFactory) { + return this.computeDispatchProps(store, props); + } + + if (process.env.NODE_ENV !== 'production') { + checkStateShape(mappedDispatch, 'mapDispatchToProps'); + } + return mappedDispatch; + }; + + Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() { + var nextStateProps = this.computeStateProps(this.store, this.props); + if (this.stateProps && (0, _shallowEqual2["default"])(nextStateProps, this.stateProps)) { + return false; + } + + this.stateProps = nextStateProps; + return true; + }; + + Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() { + var nextDispatchProps = this.computeDispatchProps(this.store, this.props); + if (this.dispatchProps && (0, _shallowEqual2["default"])(nextDispatchProps, this.dispatchProps)) { + return false; + } + + this.dispatchProps = nextDispatchProps; + return true; + }; + + Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() { + var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props); + if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2["default"])(nextMergedProps, this.mergedProps)) { + return false; + } + + this.mergedProps = nextMergedProps; + return true; + }; + + Connect.prototype.isSubscribed = function isSubscribed() { + return typeof this.unsubscribe === 'function'; + }; + + Connect.prototype.trySubscribe = function trySubscribe() { + if (shouldSubscribe && !this.unsubscribe) { + this.unsubscribe = this.store.subscribe(this.handleChange.bind(this)); + this.handleChange(); + } + }; + + Connect.prototype.tryUnsubscribe = function tryUnsubscribe() { + if (this.unsubscribe) { + this.unsubscribe(); + this.unsubscribe = null; + } + }; + + Connect.prototype.componentDidMount = function componentDidMount() { + this.trySubscribe(); + }; + + Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (!pure || !(0, _shallowEqual2["default"])(nextProps, this.props)) { + this.haveOwnPropsChanged = true; + } + }; + + Connect.prototype.componentWillUnmount = function componentWillUnmount() { + this.tryUnsubscribe(); + this.clearCache(); + }; + + Connect.prototype.clearCache = function clearCache() { + this.dispatchProps = null; + this.stateProps = null; + this.mergedProps = null; + this.haveOwnPropsChanged = true; + this.hasStoreStateChanged = true; + this.haveStatePropsBeenPrecalculated = false; + this.statePropsPrecalculationError = null; + this.renderedElement = null; + this.finalMapDispatchToProps = null; + this.finalMapStateToProps = null; + }; + + Connect.prototype.handleChange = function handleChange() { + if (!this.unsubscribe) { + return; + } + + var storeState = this.store.getState(); + var prevStoreState = this.state.storeState; + if (pure && prevStoreState === storeState) { + return; + } + + if (pure && !this.doStatePropsDependOnOwnProps) { + var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this); + if (!haveStatePropsChanged) { + return; + } + if (haveStatePropsChanged === errorObject) { + this.statePropsPrecalculationError = errorObject.value; + } + this.haveStatePropsBeenPrecalculated = true; + } + + this.hasStoreStateChanged = true; + this.setState({ storeState: storeState }); + }; + + Connect.prototype.getWrappedInstance = function getWrappedInstance() { + (0, _invariant2["default"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.'); + + return this.refs.wrappedInstance; + }; + + Connect.prototype.render = function render() { + var haveOwnPropsChanged = this.haveOwnPropsChanged; + var hasStoreStateChanged = this.hasStoreStateChanged; + var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated; + var statePropsPrecalculationError = this.statePropsPrecalculationError; + var renderedElement = this.renderedElement; + + this.haveOwnPropsChanged = false; + this.hasStoreStateChanged = false; + this.haveStatePropsBeenPrecalculated = false; + this.statePropsPrecalculationError = null; + + if (statePropsPrecalculationError) { + throw statePropsPrecalculationError; + } + + var shouldUpdateStateProps = true; + var shouldUpdateDispatchProps = true; + if (pure && renderedElement) { + shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps; + shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps; + } + + var haveStatePropsChanged = false; + var haveDispatchPropsChanged = false; + if (haveStatePropsBeenPrecalculated) { + haveStatePropsChanged = true; + } else if (shouldUpdateStateProps) { + haveStatePropsChanged = this.updateStatePropsIfNeeded(); + } + if (shouldUpdateDispatchProps) { + haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded(); + } + + var haveMergedPropsChanged = true; + if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) { + haveMergedPropsChanged = this.updateMergedPropsIfNeeded(); + } else { + haveMergedPropsChanged = false; + } + + if (!haveMergedPropsChanged && renderedElement) { + return renderedElement; + } + + if (withRef) { + this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, { + ref: 'wrappedInstance' + })); + } else { + this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps); + } + + return this.renderedElement; + }; + + return Connect; + }(_react.Component); + + Connect.displayName = connectDisplayName; + Connect.WrappedComponent = WrappedComponent; + Connect.contextTypes = { + store: _storeShape2["default"] + }; + Connect.propTypes = { + store: _storeShape2["default"] + }; + + if (process.env.NODE_ENV !== 'production') { + Connect.prototype.componentWillUpdate = function componentWillUpdate() { + if (this.version === version) { + return; + } + + // We are hot reloading! + this.version = version; + this.trySubscribe(); + this.clearCache(); + }; + } + + return (0, _hoistNonReactStatics2["default"])(Connect, WrappedComponent); + }; + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 36 */ +/***/ function(module, exports) { + + "use strict"; + + exports.__esModule = true; + exports["default"] = shallowEqual; + function shallowEqual(objA, objB) { + if (objA === objB) { + return true; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } + + // Test for A's keys different from B. + var hasOwn = Object.prototype.hasOwnProperty; + for (var i = 0; i < keysA.length; i++) { + if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { + return false; + } + } + + return true; + } + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports["default"] = wrapActionCreators; + + var _redux = __webpack_require__(38); + + function wrapActionCreators(actionCreators) { + return function (dispatch) { + return (0, _redux.bindActionCreators)(actionCreators, dispatch); + }; + } + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined; + + var _createStore = __webpack_require__(39); + + var _createStore2 = _interopRequireDefault(_createStore); + + var _combineReducers = __webpack_require__(47); + + var _combineReducers2 = _interopRequireDefault(_combineReducers); + + var _bindActionCreators = __webpack_require__(49); + + var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators); + + var _applyMiddleware = __webpack_require__(50); + + var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware); + + var _compose = __webpack_require__(51); + + var _compose2 = _interopRequireDefault(_compose); + + var _warning = __webpack_require__(48); + + var _warning2 = _interopRequireDefault(_warning); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + /* + * This is a dummy function to check if the function name has been altered by minification. + * If the function has been minified and NODE_ENV !== 'production', warn the user. + */ + function isCrushed() {} + + if (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') { + (0, _warning2["default"])('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.'); + } + + exports.createStore = _createStore2["default"]; + exports.combineReducers = _combineReducers2["default"]; + exports.bindActionCreators = _bindActionCreators2["default"]; + exports.applyMiddleware = _applyMiddleware2["default"]; + exports.compose = _compose2["default"]; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.ActionTypes = undefined; + exports["default"] = createStore; + + var _isPlainObject = __webpack_require__(40); + + var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + + var _symbolObservable = __webpack_require__(45); + + var _symbolObservable2 = _interopRequireDefault(_symbolObservable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + /** + * These are private action types reserved by Redux. + * For any unknown actions, you must return the current state. + * If the current state is undefined, you must return the initial state. + * Do not reference these action types directly in your code. + */ + var ActionTypes = exports.ActionTypes = { + INIT: '@@redux/INIT' + }; + + /** + * Creates a Redux store that holds the state tree. + * The only way to change the data in the store is to call `dispatch()` on it. + * + * There should only be a single store in your app. To specify how different + * parts of the state tree respond to actions, you may combine several reducers + * into a single reducer function by using `combineReducers`. + * + * @param {Function} reducer A function that returns the next state tree, given + * the current state tree and the action to handle. + * + * @param {any} [initialState] The initial state. You may optionally specify it + * to hydrate the state from the server in universal apps, or to restore a + * previously serialized user session. + * If you use `combineReducers` to produce the root reducer function, this must be + * an object with the same shape as `combineReducers` keys. + * + * @param {Function} enhancer The store enhancer. You may optionally specify it + * to enhance the store with third-party capabilities such as middleware, + * time travel, persistence, etc. The only store enhancer that ships with Redux + * is `applyMiddleware()`. + * + * @returns {Store} A Redux store that lets you read the state, dispatch actions + * and subscribe to changes. + */ + function createStore(reducer, initialState, enhancer) { + var _ref2; + + if (typeof initialState === 'function' && typeof enhancer === 'undefined') { + enhancer = initialState; + initialState = undefined; + } + + if (typeof enhancer !== 'undefined') { + if (typeof enhancer !== 'function') { + throw new Error('Expected the enhancer to be a function.'); + } + + return enhancer(createStore)(reducer, initialState); + } + + if (typeof reducer !== 'function') { + throw new Error('Expected the reducer to be a function.'); + } + + var currentReducer = reducer; + var currentState = initialState; + var currentListeners = []; + var nextListeners = currentListeners; + var isDispatching = false; + + function ensureCanMutateNextListeners() { + if (nextListeners === currentListeners) { + nextListeners = currentListeners.slice(); + } + } + + /** + * Reads the state tree managed by the store. + * + * @returns {any} The current state tree of your application. + */ + function getState() { + return currentState; + } + + /** + * Adds a change listener. It will be called any time an action is dispatched, + * and some part of the state tree may potentially have changed. You may then + * call `getState()` to read the current state tree inside the callback. + * + * You may call `dispatch()` from a change listener, with the following + * caveats: + * + * 1. The subscriptions are snapshotted just before every `dispatch()` call. + * If you subscribe or unsubscribe while the listeners are being invoked, this + * will not have any effect on the `dispatch()` that is currently in progress. + * However, the next `dispatch()` call, whether nested or not, will use a more + * recent snapshot of the subscription list. + * + * 2. The listener should not expect to see all state changes, as the state + * might have been updated multiple times during a nested `dispatch()` before + * the listener is called. It is, however, guaranteed that all subscribers + * registered before the `dispatch()` started will be called with the latest + * state by the time it exits. + * + * @param {Function} listener A callback to be invoked on every dispatch. + * @returns {Function} A function to remove this change listener. + */ + function subscribe(listener) { + if (typeof listener !== 'function') { + throw new Error('Expected listener to be a function.'); + } + + var isSubscribed = true; + + ensureCanMutateNextListeners(); + nextListeners.push(listener); + + return function unsubscribe() { + if (!isSubscribed) { + return; + } + + isSubscribed = false; + + ensureCanMutateNextListeners(); + var index = nextListeners.indexOf(listener); + nextListeners.splice(index, 1); + }; + } + + /** + * Dispatches an action. It is the only way to trigger a state change. + * + * The `reducer` function, used to create the store, will be called with the + * current state tree and the given `action`. Its return value will + * be considered the **next** state of the tree, and the change listeners + * will be notified. + * + * The base implementation only supports plain object actions. If you want to + * dispatch a Promise, an Observable, a thunk, or something else, you need to + * wrap your store creating function into the corresponding middleware. For + * example, see the documentation for the `redux-thunk` package. Even the + * middleware will eventually dispatch plain object actions using this method. + * + * @param {Object} action A plain object representing “what changed”. It is + * a good idea to keep actions serializable so you can record and replay user + * sessions, or use the time travelling `redux-devtools`. An action must have + * a `type` property which may not be `undefined`. It is a good idea to use + * string constants for action types. + * + * @returns {Object} For convenience, the same action object you dispatched. + * + * Note that, if you use a custom middleware, it may wrap `dispatch()` to + * return something else (for example, a Promise you can await). + */ + function dispatch(action) { + if (!(0, _isPlainObject2["default"])(action)) { + throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); + } + + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); + } + + if (isDispatching) { + throw new Error('Reducers may not dispatch actions.'); + } + + try { + isDispatching = true; + currentState = currentReducer(currentState, action); + } finally { + isDispatching = false; + } + + var listeners = currentListeners = nextListeners; + for (var i = 0; i < listeners.length; i++) { + listeners[i](); + } + + return action; + } + + /** + * Replaces the reducer currently used by the store to calculate the state. + * + * You might need this if your app implements code splitting and you want to + * load some of the reducers dynamically. You might also need this if you + * implement a hot reloading mechanism for Redux. + * + * @param {Function} nextReducer The reducer for the store to use instead. + * @returns {void} + */ + function replaceReducer(nextReducer) { + if (typeof nextReducer !== 'function') { + throw new Error('Expected the nextReducer to be a function.'); + } + + currentReducer = nextReducer; + dispatch({ type: ActionTypes.INIT }); + } + + /** + * Interoperability point for observable/reactive libraries. + * @returns {observable} A minimal observable of state changes. + * For more information, see the observable proposal: + * https://github.com/zenparsing/es-observable + */ + function observable() { + var _ref; + + var outerSubscribe = subscribe; + return _ref = { + /** + * The minimal observable subscription method. + * @param {Object} observer Any object that can be used as an observer. + * The observer object should have a `next` method. + * @returns {subscription} An object with an `unsubscribe` method that can + * be used to unsubscribe the observable from the store, and prevent further + * emission of values from the observable. + */ + + subscribe: function subscribe(observer) { + if (typeof observer !== 'object') { + throw new TypeError('Expected the observer to be an object.'); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = outerSubscribe(observeState); + return { unsubscribe: unsubscribe }; + } + }, _ref[_symbolObservable2["default"]] = function () { + return this; + }, _ref; + } + + // When a store is created, an "INIT" action is dispatched so that every + // reducer returns their initial state. This effectively populates + // the initial state tree. + dispatch({ type: ActionTypes.INIT }); + + return _ref2 = { + dispatch: dispatch, + subscribe: subscribe, + getState: getState, + replaceReducer: replaceReducer + }, _ref2[_symbolObservable2["default"]] = observable, _ref2; + } + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + var getPrototype = __webpack_require__(41), + isHostObject = __webpack_require__(43), + isObjectLike = __webpack_require__(44); + + /** `Object#toString` result references. */ + var objectTag = '[object Object]'; + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || + objectToString.call(value) != objectTag || isHostObject(value)) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return (typeof Ctor == 'function' && + Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString); + } + + module.exports = isPlainObject; + + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + var overArg = __webpack_require__(42); + + /** Built-in value references. */ + var getPrototype = overArg(Object.getPrototypeOf, Object); + + module.exports = getPrototype; + + +/***/ }, +/* 42 */ +/***/ function(module, exports) { + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + module.exports = overArg; + + +/***/ }, +/* 43 */ +/***/ function(module, exports) { + + /** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ + function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; + } - function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + module.exports = isHostObject; + + +/***/ }, +/* 44 */ +/***/ function(module, exports) { + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + module.exports = isObjectLike; + + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {/* global window */ + 'use strict'; - var RouterProvider = exports.RouterProvider = function (_Component) { - _inherits(RouterProvider, _Component); + module.exports = __webpack_require__(46)(global || window || this); - function RouterProvider(props) { - _classCallCheck(this, RouterProvider); + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }, +/* 46 */ +/***/ function(module, exports) { + + 'use strict'; - var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProvider).call(this, props)); + module.exports = function symbolObservablePonyfill(root) { + var result; + var Symbol = root.Symbol; - _this.router = { - store: props.store - }; - return _this; + if (typeof Symbol === 'function') { + if (Symbol.observable) { + result = Symbol.observable; + } else { + result = Symbol('observable'); + Symbol.observable = result; + } + } else { + result = '@@observable'; + } + + return result; + }; + + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + exports["default"] = combineReducers; + + var _createStore = __webpack_require__(39); + + var _isPlainObject = __webpack_require__(40); + + var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + + var _warning = __webpack_require__(48); + + var _warning2 = _interopRequireDefault(_warning); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + function getUndefinedStateErrorMessage(key, action) { + var actionType = action && action.type; + var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; + + return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; + } + + function getUnexpectedStateShapeWarningMessage(inputState, reducers, action) { + var reducerKeys = Object.keys(reducers); + var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'initialState argument passed to createStore' : 'previous state received by the reducer'; + + if (reducerKeys.length === 0) { + return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; } - _createClass(RouterProvider, [{ - key: 'getChildContext', - value: function getChildContext() { - return { - router: this.router - }; + if (!(0, _isPlainObject2["default"])(inputState)) { + return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); + } + + var unexpectedKeys = Object.keys(inputState).filter(function (key) { + return !reducers.hasOwnProperty(key); + }); + + if (unexpectedKeys.length > 0) { + return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); + } + } + + function assertReducerSanity(reducers) { + Object.keys(reducers).forEach(function (key) { + var reducer = reducers[key]; + var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT }); + + if (typeof initialState === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.'); } - }, { - key: 'render', - value: function render() { - return this.props.children; + + var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); + if (typeof reducer(undefined, { type: type }) === 'undefined') { + throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); } - }]); + }); + } - return RouterProvider; - }(_react.Component); + /** + * Turns an object whose values are different reducer functions, into a single + * reducer function. It will call every child reducer, and gather their results + * into a single state object, whose keys correspond to the keys of the passed + * reducer functions. + * + * @param {Object} reducers An object whose values correspond to different + * reducer functions that need to be combined into one. One handy way to obtain + * it is to use ES6 `import * as reducers` syntax. The reducers may never return + * undefined for any action. Instead, they should return their initial state + * if the state passed to them was undefined, and the current state for any + * unrecognized action. + * + * @returns {Function} A reducer function that invokes every reducer inside the + * passed object, and builds a state object with the same shape. + */ + function combineReducers(reducers) { + var reducerKeys = Object.keys(reducers); + var finalReducers = {}; + for (var i = 0; i < reducerKeys.length; i++) { + var key = reducerKeys[i]; + if (typeof reducers[key] === 'function') { + finalReducers[key] = reducers[key]; + } + } + var finalReducerKeys = Object.keys(finalReducers); - RouterProvider.childContextTypes = { - router: _react.PropTypes.object - }; + var sanityError; + try { + assertReducerSanity(finalReducers); + } catch (e) { + sanityError = e; + } - exports.default = function (_ref) { - var store = _ref.store; - return function (ComposedComponent) { - return function (props) { - return _react2.default.createElement( - RouterProvider, - { store: store }, - _react2.default.createElement(ComposedComponent, props) - ); + return function combination() { + var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var action = arguments[1]; + + if (sanityError) { + throw sanityError; + } + + if (process.env.NODE_ENV !== 'production') { + var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action); + if (warningMessage) { + (0, _warning2["default"])(warningMessage); + } + } + + var hasChanged = false; + var nextState = {}; + for (var i = 0; i < finalReducerKeys.length; i++) { + var key = finalReducerKeys[i]; + var reducer = finalReducers[key]; + var previousStateForKey = state[key]; + var nextStateForKey = reducer(previousStateForKey, action); + if (typeof nextStateForKey === 'undefined') { + var errorMessage = getUndefinedStateErrorMessage(key, action); + throw new Error(errorMessage); + } + nextState[key] = nextStateForKey; + hasChanged = hasChanged || nextStateForKey !== previousStateForKey; + } + return hasChanged ? nextState : state; + }; + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 48 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports["default"] = warning; + /** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ + function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + } + +/***/ }, +/* 49 */ +/***/ function(module, exports) { + + 'use strict'; + + exports.__esModule = true; + exports["default"] = bindActionCreators; + function bindActionCreator(actionCreator, dispatch) { + return function () { + return dispatch(actionCreator.apply(undefined, arguments)); + }; + } + + /** + * Turns an object whose values are action creators, into an object with the + * same keys, but with every function wrapped into a `dispatch` call so they + * may be invoked directly. This is just a convenience method, as you can call + * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. + * + * For convenience, you can also pass a single function as the first argument, + * and get a function in return. + * + * @param {Function|Object} actionCreators An object whose values are action + * creator functions. One handy way to obtain it is to use ES6 `import * as` + * syntax. You may also pass a single function. + * + * @param {Function} dispatch The `dispatch` function available on your Redux + * store. + * + * @returns {Function|Object} The object mimicking the original object, but with + * every action creator wrapped into the `dispatch` call. If you passed a + * function as `actionCreators`, the return value will also be a single + * function. + */ + function bindActionCreators(actionCreators, dispatch) { + if (typeof actionCreators === 'function') { + return bindActionCreator(actionCreators, dispatch); + } + + if (typeof actionCreators !== 'object' || actionCreators === null) { + throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); + } + + var keys = Object.keys(actionCreators); + var boundActionCreators = {}; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var actionCreator = actionCreators[key]; + if (typeof actionCreator === 'function') { + boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); + } + } + return boundActionCreators; + } + +/***/ }, +/* 50 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _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; }; + + exports["default"] = applyMiddleware; + + var _compose = __webpack_require__(51); + + var _compose2 = _interopRequireDefault(_compose); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + + /** + * Creates a store enhancer that applies middleware to the dispatch method + * of the Redux store. This is handy for a variety of tasks, such as expressing + * asynchronous actions in a concise manner, or logging every action payload. + * + * See `redux-thunk` package as an example of the Redux middleware. + * + * Because middleware is potentially asynchronous, this should be the first + * store enhancer in the composition chain. + * + * Note that each middleware will be given the `dispatch` and `getState` functions + * as named arguments. + * + * @param {...Function} middlewares The middleware chain to be applied. + * @returns {Function} A store enhancer applying the middleware. + */ + function applyMiddleware() { + for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { + middlewares[_key] = arguments[_key]; + } + + return function (createStore) { + return function (reducer, initialState, enhancer) { + var store = createStore(reducer, initialState, enhancer); + var _dispatch = store.dispatch; + var chain = []; + + var middlewareAPI = { + getState: store.getState, + dispatch: function dispatch(action) { + return _dispatch(action); + } + }; + chain = middlewares.map(function (middleware) { + return middleware(middlewareAPI); + }); + _dispatch = _compose2["default"].apply(undefined, chain)(store.dispatch); + + return _extends({}, store, { + dispatch: _dispatch + }); }; }; - }; + } /***/ }, -/* 30 */ +/* 51 */ /***/ function(module, exports) { - module.exports = __WEBPACK_EXTERNAL_MODULE_30__; + "use strict"; + + exports.__esModule = true; + exports["default"] = compose; + /** + * Composes single-argument functions from right to left. The rightmost + * function can take multiple arguments as it provides the signature for + * the resulting composite function. + * + * @param {...Function} funcs The functions to compose. + * @returns {Function} A function obtained by composing the argument functions + * from right to left. For example, compose(f, g, h) is identical to doing + * (...args) => f(g(h(...args))). + */ + + function compose() { + for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + if (funcs.length === 0) { + return function (arg) { + return arg; + }; + } else { + var _ret = function () { + var last = funcs[funcs.length - 1]; + var rest = funcs.slice(0, -1); + return { + v: function v() { + return rest.reduceRight(function (composed, f) { + return f(composed); + }, last.apply(undefined, arguments)); + } + }; + }(); + + if (typeof _ret === "object") return _ret.v; + } + } /***/ }, -/* 31 */ +/* 52 */ +/***/ function(module, exports) { + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + 'use strict'; + + var REACT_STATICS = { + childContextTypes: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + mixins: true, + propTypes: true, + type: true + }; + + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + arguments: true, + arity: true + }; + + var isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function'; + + module.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) { + if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components + var keys = Object.getOwnPropertyNames(sourceComponent); + + /* istanbul ignore else */ + if (isGetOwnPropertySymbolsAvailable) { + keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent)); + } + + for (var i = 0; i < keys.length; ++i) { + if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) { + try { + targetComponent[keys[i]] = sourceComponent[keys[i]]; + } catch (error) { + + } + } + } + } + + return targetComponent; + }; + + +/***/ }, +/* 53 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2778,14 +4292,28 @@ return /******/ (function(modules) { // webpackBootstrap return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey); }; - var _onClick = function _onClick(_ref2) { + var handleClick = function handleClick(_ref2) { var e = _ref2.e; var target = _ref2.target; var location = _ref2.location; var replaceState = _ref2.replaceState; var router = _ref2.router; + var onClick = _ref2.onClick; + + if (onClick) { + onClick(e); + } + + if (hasModifier(e) || isNotLeftClick(e)) { + return; + } - if (hasModifier(e) || isNotLeftClick(e) || target) { + if (e.defaultPrevented) { + return; + } + + // If target prop is set (e.g. to "_blank"), let browser handle link. + if (target) { return; } @@ -2800,13 +4328,14 @@ return /******/ (function(modules) { // webpackBootstrap }; var Link = function Link(props, context) { + var children = props.children; var href = props.href; - var target = props.target; + var onClick = props.onClick; var persistQuery = props.persistQuery; var replaceState = props.replaceState; - var children = props.children; + var target = props.target; - var rest = _objectWithoutProperties(props, ['href', 'target', 'persistQuery', 'replaceState', 'children']); + var rest = _objectWithoutProperties(props, ['children', 'href', 'onClick', 'persistQuery', 'replaceState', 'target']); var router = context.router; @@ -2823,15 +4352,26 @@ return /******/ (function(modules) { // webpackBootstrap 'a', _extends({ href: normalizeHref(location), - onClick: function onClick(e) { - return _onClick({ + onClick: function (_onClick) { + function onClick(_x) { + return _onClick.apply(this, arguments); + } + + onClick.toString = function () { + return _onClick.toString(); + }; + + return onClick; + }(function (e) { + return handleClick({ e: e, - target: target, location: location, + onClick: onClick, replaceState: replaceState, - router: router + router: router, + target: target }); - } + }) }, rest), children ); @@ -2881,7 +4421,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.PersistentQueryLink = PersistentQueryLink; /***/ }, -/* 32 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2892,10 +4432,6 @@ return /******/ (function(modules) { // webpackBootstrap var _react = __webpack_require__(30); - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var Fragment = function Fragment(props, context) { var forRoute = props.forRoute; var forRoutes = props.forRoutes; @@ -2931,11 +4467,7 @@ return /******/ (function(modules) { // webpackBootstrap return null; } - return _react2.default.createElement( - 'div', - null, - children - ); + return children; }; diff --git a/dist/redux-little-router.js.map b/dist/redux-little-router.js.map index 75cbd401..66b91151 100644 --- a/dist/redux-little-router.js.map +++ b/dist/redux-little-router.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap f132305b2b1211151293","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./link.js","webpack:///./fragment.js"],"names":[],"mappings":"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;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC/JtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACnLA;;AAEA;AACA;AACA,EAAC;;AAED,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AC5DA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,iKAAgK;AAChK;AACA;;AAEA,qC;;;;;;;ACxBA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG,IAAI;AACP;;AAEA;AACA,yEAAwE;;AAExE;AACA,gBAAe;AACf,IAAG;AACH,gBAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0DAAyD,SAAS,eAAe;AACjF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAoC,oBAAoB,uBAAuB;AAC/E;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yDAAwD;AACxD;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;;AAGA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;AC3IA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,2EAA0E;;AAE1E;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,+B;;;;;;AC9GA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA0E;;AAE1E;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;ACjGA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjFO,KAAM,8CAAmB,yBAAzB;AACA,KAAM,sBAAO,aAAb;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kBAAK,WAAX;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kCAAa,mBAAnB,C;;;;;;;;;;;;ACLP;;;;;;mBAEe,UAAC,MAAD,EAAoB;AACjC,OAAM,YAAY,OAAO,IAAP,CAAY,MAAZ,EAAoB,GAApB,CAAwB;AAAA,YAAU;AAClD,mBADkD;AAElD,gBAAS,yBAAe,KAAf,CAFyC;AAGlD,eAAQ,OAAO,KAAP;AAH0C,MAAV;AAAA,IAAxB,CAAlB;;AAMA,UAAO,UAAC,WAAD,EAAyB;AAC9B;AACA,SAAM,QAAQ,YAAY,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAd,CAF8B,CAEW;;AAEzC;AACA,UAAK,IAAI,IAAI,CAAb,EAAgB,IAAI,UAAU,MAA9B,EAAsC,GAAtC,EAA2C;AACzC,WAAM,cAAc,UAAU,CAAV,CAApB;AACA,WAAM,QAAQ,YAAY,OAAZ,CAAoB,KAApB,CAA0B,KAA1B,CAAd;;AAEA,WAAI,KAAJ,EAAW;AACT;AACA,gBAAO;AACL,kBAAO,YAAY,KADd;AAEL,mBAAQ,KAFH;AAGL,mBAAQ,YAAY;AAHf,UAAP;AAKD;AACF;;AAED,YAAO,IAAP;AACD,IApBD;AAqBD,E;;;;;;AC/BD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAA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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_30__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap f132305b2b1211151293\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (!Object.keys(routes).every(route => route.indexOf('/') === 0)) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\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\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\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 try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\n ** module chunks = 0\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 17\n ** module chunks = 0\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 18\n ** module chunks = 0\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\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\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 (e) {\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 (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 22\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\nexport default (routes: Object) => {\n const routeList = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return (incomingUrl: string) => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 26\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state && state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from './create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, { Component, PropTypes } from 'react';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: ReactPropTypes.node\n};\n\nexport class RouterProvider extends Component {\n router: { store: Store };\n\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n return this.props.children;\n }\n}\n\nRouterProvider.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_30__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 30\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n href: string | LocationDescriptor,\n replaceState: bool,\n persistQuery: bool,\n target: string,\n className: string,\n style: Object,\n children: ReactPropTypes.node\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\nimport type { RouterContext } from './provider';\n\nimport React, { PropTypes } from 'react';\n\ntype Props = {\n forRoute: string,\n forRoutes: [string],\n withConditions: (location: Location) => bool,\n children: ReactPropTypes.node\n};\n\nconst Fragment = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { matchRoute } = context.router.store;\n const { router: location } = context.router.store.getState();\n const matchResult = matchRoute(location.pathname);\n\n if (!matchResult) {\n return null;\n }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 9af17258cb609a0c4c85","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/_isHostObject.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./link.js","webpack:///./fragment.js"],"names":[],"mappings":"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;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC/JtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACnLA;;AAEA;AACA;AACA,EAAC;;AAED,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AC5DA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,iKAAgK;AAChK;AACA;;AAEA,qC;;;;;;;ACxBA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG,IAAI;AACP;;AAEA;AACA,yEAAwE;;AAExE;AACA,gBAAe;AACf,IAAG;AACH,gBAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0DAAyD,SAAS,eAAe;AACjF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qCAAoC,oBAAoB,uBAAuB;AAC/E;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yDAAwD;AACxD;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;;AAGA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;AC3IA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,2EAA0E;;AAE1E;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,+B;;;;;;AC9GA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA0E;;AAE1E;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;ACjGA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjFO,KAAM,8CAAmB,yBAAzB;AACA,KAAM,sBAAO,aAAb;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kBAAK,WAAX;AACA,KAAM,4BAAU,gBAAhB;AACA,KAAM,kCAAa,mBAAnB,C;;;;;;;;;;;;ACLP;;;;;;mBAEe,UAAC,MAAD,EAAoB;AACjC,OAAM,YAAY,OAAO,IAAP,CAAY,MAAZ,EAAoB,GAApB,CAAwB;AAAA,YAAU;AAClD,mBADkD;AAElD,gBAAS,yBAAe,KAAf,CAFyC;AAGlD,eAAQ,OAAO,KAAP;AAH0C,MAAV;AAAA,IAAxB,CAAlB;;AAMA,UAAO,UAAC,WAAD,EAAyB;AAC9B;AACA,SAAM,QAAQ,YAAY,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAd,CAF8B,CAEW;;AAEzC;AACA,UAAK,IAAI,IAAI,CAAb,EAAgB,IAAI,UAAU,MAA9B,EAAsC,GAAtC,EAA2C;AACzC,WAAM,cAAc,UAAU,CAAV,CAApB;AACA,WAAM,QAAQ,YAAY,OAAZ,CAAoB,KAApB,CAA0B,KAA1B,CAAd;;AAEA,WAAI,KAAJ,EAAW;AACT;AACA,gBAAO;AACL,kBAAO,YAAY,KADd;AAEL,mBAAQ,KAFH;AAGL,mBAAQ,YAAY;AAHf,UAAP;AAKD;AACF;;AAED,YAAO,IAAP;AACD,IApBD;AAqBD,E;;;;;;AC/BD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAA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,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA,GAAE;AACF;AACA,WAAU;AACV;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA,oBAAmB;AACnB;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yEAAwE;;AAExE;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,yBAAyB;AAChD;;AAEA;AACA,yGAAwG,gBAAgB;;AAExH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF;AACxF;AACA,YAAW;AACX,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACxYA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACzBA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wC;;;;;;;AC7CA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,YAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,aAAa;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,aAAY,yBAAyB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACrQA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;;AAEA;;;;;;;;ACHA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;;;;;;;AClBA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAmE;AACnE;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,sCAAsC;;AAEjF;AACA;AACA;;AAEA;AACA,oCAAmC,aAAa;AAChD;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,yEAAwE;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC9HA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;ACxBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,cAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClDA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA,yEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;AACA;AACA,E;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,mEAAkE,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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_30__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9af17258cb609a0c4c85\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (!Object.keys(routes).every(route => route.indexOf('/') === 0)) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\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\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\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 try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\n ** module chunks = 0\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 17\n ** module chunks = 0\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 18\n ** module chunks = 0\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\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\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 (e) {\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 (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 22\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\nexport default (routes: Object) => {\n const routeList = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return (incomingUrl: string) => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 26\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state && state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from './create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, { Component, PropTypes } from 'react';\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: ReactPropTypes.node\n};\n\nclass RouterProviderImpl extends Component {\n router: { store: Store };\n\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n return this.props.children;\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_30__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 30\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 31\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 32\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 33\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\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 /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 34\n ** module chunks = 0\n **/","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 35\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\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 var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 36\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 37\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2[\"default\"])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2[\"default\"];\nexports.combineReducers = _combineReducers2[\"default\"];\nexports.bindActionCreators = _bindActionCreators2[\"default\"];\nexports.applyMiddleware = _applyMiddleware2[\"default\"];\nexports.compose = _compose2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 38\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports[\"default\"] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [initialState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, initialState, enhancer) {\n var _ref2;\n\n if (typeof initialState === 'function' && typeof enhancer === 'undefined') {\n enhancer = initialState;\n initialState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, initialState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = initialState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2[\"default\"])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2[\"default\"]] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2[\"default\"]] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 39\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 40\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 41\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 42\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 43\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isObjectLike.js\n ** module id = 44\n ** module chunks = 0\n **/","/* global window */\n'use strict';\n\nmodule.exports = require('./ponyfill')(global || window || this);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 45\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = 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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/ponyfill.js\n ** module id = 46\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'initialState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2[\"default\"])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key);\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action);\n if (warningMessage) {\n (0, _warning2[\"default\"])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 47\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 48\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 49\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\"] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, initialState, enhancer) {\n var store = createStore(reducer, initialState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2[\"default\"].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 50\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n } else {\n var _ret = function () {\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return {\n v: function v() {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n }\n };\n }();\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 51\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: 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 arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 52\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: ReactPropTypes.node,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({e, target, location, replaceState, router, onClick}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\nimport type { RouterContext } from './provider';\n\nimport { PropTypes } from 'react';\n\ntype Props = {\n forRoute: string,\n forRoutes: [string],\n withConditions: (location: Location) => bool,\n children: ReactPropTypes.node\n};\n\nconst Fragment = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { matchRoute } = context.router.store;\n const { router: location } = context.router.store.getState();\n const matchResult = matchRoute(location.pathname);\n\n if (!matchResult) {\n return null;\n }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return children;\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/redux-little-router.min.js b/dist/redux-little-router.min.js index 1f8ff6db..ca97d813 100644 --- a/dist/redux-little-router.min.js +++ b/dist/redux-little-router.min.js @@ -1,3 +1,3 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReduxLittleRouter=t(require("react")):e.ReduxLittleRouter=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatcher=t.locationDidChange=t.routerReducer=t.GO_BACK=t.GO_FORWARD=t.GO=t.REPLACE=t.PUSH=t.LOCATION_CHANGED=t.Fragment=t.PersistentQueryLink=t.Link=t.RouterProvider=t.provideRouter=t.initializeCurrentLocation=t.createStoreWithRouter=void 0;var o=r(1),a=n(o),i=r(28),u=n(i),c=r(30),s=r(31),f=n(s),l=r(26),d=n(l),p=r(23),h=n(p),y=r(22);t.createStoreWithRouter=a["default"],t.initializeCurrentLocation=o.initializeCurrentLocation,t.provideRouter=u["default"],t.RouterProvider=i.RouterProvider,t.Link=c.Link,t.PersistentQueryLink=c.PersistentQueryLink,t.Fragment=f["default"],t.LOCATION_CHANGED=y.LOCATION_CHANGED,t.PUSH=y.PUSH,t.REPLACE=y.REPLACE,t.GO=y.GO,t.GO_FORWARD=y.GO_FORWARD,t.GO_BACK=y.GO_BACK,t.routerReducer=d["default"],t.locationDidChange=o.locationDidChange,t.createMatcher=h["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.initializeCurrentLocation=t.locationDidChange=void 0;var o=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===i)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),a=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,a.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,a.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t=e&&u&&(a=!0,n()))}};f()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),a=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=a},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v1?t-1:0),o=1;o1?t-1:0),o=1;oa))return i=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),i;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,a;if(Array.isArray(e)){for(o=-1,a=e.length;++o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0; -var c=function(){function e(e,t){for(var r=0;r=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===a)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),i=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,i.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,i.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t=e&&u&&(i=!0,n()))}};f()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),i=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v1?t-1:0),o=1;o1?t-1:0),o=1;oi))return a=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),a;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,i;if(Array.isArray(e)){for(o=-1,i=e.length;++o, "+('or explicitly pass "store" as a prop to "'+r+'".'));var c=a.store.getState();return a.state={storeState:c},a.clearCache(),a}return a(u,n),u.prototype.shouldComponentUpdate=function(){return!b||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var r=e.getState(),n=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(r,t):this.finalMapStateToProps(r);return n},u.prototype.configureFinalMapState=function(e,t){var r=p(e.getState(),t),n="function"==typeof r;return this.finalMapStateToProps=n?r:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,n?this.computeStateProps(e,t):r},u.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var r=e.dispatch,n=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(r,t):this.finalMapDispatchToProps(r);return n},u.prototype.configureFinalMapDispatch=function(e,t){var r=h(e.dispatch,t),n="function"==typeof r;return this.finalMapDispatchToProps=n?r:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,n?this.computeDispatchProps(e,t):r},u.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,y["default"])(e,this.stateProps))&&(this.stateProps=e,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,y["default"])(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&x&&(0,y["default"])(e,this.mergedProps))&&(this.mergedProps=e,!0)},u.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){s&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(e){b&&(0,y["default"])(e,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!b||t!==e){if(b&&!this.doStatePropsDependOnOwnProps){var r=c(this.updateStatePropsIfNeeded,this);if(!r)return;r===j&&(this.statePropsPrecalculationError=j.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},u.prototype.getWrappedInstance=function(){return(0,C["default"])(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},u.prototype.render=function(){var t=this.haveOwnPropsChanged,r=this.hasStoreStateChanged,n=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;b&&i&&(a=r||t&&this.doStatePropsDependOnOwnProps,u=t&&this.doDispatchPropsDependOnOwnProps);var c=!1,s=!1;n?c=!0:a&&(c=this.updateStatePropsIfNeeded()),u&&(s=this.updateDispatchPropsIfNeeded());var p=!0;return p=!!(c||s||t)&&this.updateMergedPropsIfNeeded(),!p&&i?i:(w?this.renderedElement=(0,l.createElement)(e,f({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,l.createElement)(e,this.mergedProps),this.renderedElement)},u}(l.Component);return n.displayName=r,n.WrappedComponent=e,n.contextTypes={store:d["default"]},n.propTypes={store:d["default"]},(0,O["default"])(n,e)}}var f=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var c=function(){function e(e,t){for(var r=0;r 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _queryString = __webpack_require__(19);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(20);\n\tvar objectAssign = __webpack_require__(21);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn encode(key, opts);\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (routes) {\n\t var routeList = Object.keys(routes).map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(route),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(route);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname) {\n\t return state;\n\t }\n\t\n\t return _extends({}, action.payload, {\n\t previous: state && state.current\n\t });\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var _ref$pathname = _ref.pathname;\n\t var pathname = _ref$pathname === undefined ? '/' : _ref$pathname;\n\t var _ref$query = _ref.query;\n\t var query = _ref$query === undefined ? {} : _ref$query;\n\t var routes = _ref.routes;\n\t var history = _ref.history;\n\t return _extends({}, history.createLocation({\n\t pathname: pathname,\n\t query: query\n\t }), (0, _createMatcher2.default)(routes)(pathname));\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RouterProvider = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar RouterProvider = exports.RouterProvider = function (_Component) {\n\t _inherits(RouterProvider, _Component);\n\t\n\t function RouterProvider(props) {\n\t _classCallCheck(this, RouterProvider);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProvider).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProvider, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t return this.props.children;\n\t }\n\t }]);\n\t\n\t return RouterProvider;\n\t}(_react.Component);\n\t\n\tRouterProvider.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar _onClick = function _onClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t\n\t if (hasModifier(e) || isNotLeftClick(e) || target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var href = props.href;\n\t var target = props.target;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var children = props.children;\n\t\n\t var rest = _objectWithoutProperties(props, ['href', 'target', 'persistQuery', 'replaceState', 'children']);\n\t\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: normalizeHref(location),\n\t onClick: function onClick(e) {\n\t return _onClick({\n\t e: e,\n\t target: target,\n\t location: location,\n\t replaceState: replaceState,\n\t router: router\n\t });\n\t }\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(PersistentQueryLink).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Fragment = function Fragment(props, context) {\n\t var forRoute = props.forRoute;\n\t var forRoutes = props.forRoutes;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t var matchRoute = context.router.store.matchRoute;\n\t\n\t var _context$router$store = context.router.store.getState();\n\t\n\t var location = _context$router$store.router;\n\t\n\t var matchResult = matchRoute(location.pathname);\n\t\n\t if (!matchResult) {\n\t return null;\n\t }\n\t\n\t if (forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (forRoutes) {\n\t var anyMatch = forRoutes.some(function (route) {\n\t return matchResult.route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\t\n\tFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.default = Fragment;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 988cb417941fd67eb046\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (!Object.keys(routes).every(route => route.indexOf('/') === 0)) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\n ** module chunks = 0\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 16\n ** module chunks = 0\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\n ** module chunks = 0\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\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\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 (e) {\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 (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\nexport default (routes: Object) => {\n const routeList = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return (incomingUrl: string) => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state && state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from './create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, { Component, PropTypes } from 'react';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: ReactPropTypes.node\n};\n\nexport class RouterProvider extends Component {\n router: { store: Store };\n\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n return this.props.children;\n }\n}\n\nRouterProvider.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 29\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n href: string | LocationDescriptor,\n replaceState: bool,\n persistQuery: bool,\n target: string,\n className: string,\n style: Object,\n children: ReactPropTypes.node\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst onClick = ({e, target, location, replaceState, router}) => {\n if (hasModifier(e) || isNotLeftClick(e) || target) {\n return;\n }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href,\n target,\n persistQuery,\n replaceState,\n children,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n onClick({\n e,\n target,\n location,\n replaceState,\n router\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\nimport type { RouterContext } from './provider';\n\nimport React, { PropTypes } from 'react';\n\ntype Props = {\n forRoute: string,\n forRoutes: [string],\n withConditions: (location: Location) => bool,\n children: ReactPropTypes.node\n};\n\nconst Fragment = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { matchRoute } = context.router.store;\n const { router: location } = context.router.store.getState();\n const matchResult = matchRoute(location.pathname);\n\n if (!matchResult) {\n return null;\n }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///redux-little-router.min.js","webpack:///webpack/bootstrap 302345f0b56942d57477","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/_isHostObject.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./link.js","webpack:///./fragment.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_29__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","createMatcher","locationDidChange","routerReducer","GO_BACK","GO_FORWARD","GO","REPLACE","PUSH","LOCATION_CHANGED","Fragment","PersistentQueryLink","Link","RouterProvider","provideRouter","initializeCurrentLocation","createStoreWithRouter","undefined","_storeEnhancer","_storeEnhancer2","_provider","_provider2","_link","_fragment","_fragment2","_reducer","_reducer2","_createMatcher","_createMatcher2","_actionTypes","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","_createBrowserHistory","_createBrowserHistory2","_createMemoryHistory","_createMemoryHistory2","_useBasename","_useBasename2","_useQueries","_useQueries2","_initialRouterState","_initialRouterState2","README_MESSAGE","_ref","location","matchRoute","pathname","type","payload","resolveHistory","_ref2","basename","forServerRender","historyFactory","_ref3","routes","query","_ref3$basename","_ref3$forServerRender","_ref3$createMatcher","userHistory","history","Error","keys","every","route","indexOf","createStore","reducer","initialState","enhancer","enhancedReducer","state","action","vanillaState","router","newState","Array","isArray","nextState","nextEffects","store","listen","dispatch","push","replace","go","goBack","goForward","_interopRequireWildcard","newObj","_invariant","_invariant2","_ExecutionEnvironment","_BrowserProtocol","BrowserProtocol","_RefreshProtocol","RefreshProtocol","_DOMUtils","_createHistory","_createHistory2","createBrowserHistory","options","canUseDOM","useRefresh","forceRefresh","supportsHistory","Protocol","getUserConfirmation","getCurrentLocation","pushLocation","replaceLocation","listenerCount","stopListener","startListener","listener","before","transitionTo","unlisten","listenBefore","invariant","condition","format","a","b","d","e","f","error","args","argIndex","name","framesToPop","window","document","createElement","_LocationUtils","_DOMStateStorage","_PathUtils","PopStateEvent","_createLocation","historyState","createLocation","search","hash","readState","updateLocation","message","callback","confirm","handlePopState","event","addEventListener","removeEventListener","updateState","saveState","createPath","path","pushState","replaceState","n","locationsAreEqual","statesAreEqual","createQuery","_typeof","Symbol","iterator","constructor","_Actions","isDate","props","create","input","POP","object","parsePath","toString","typeofA","typeofB","item","index","getQueryStringValueFromPath","stripQueryStringValueFromPath","addQueryStringValueToPath","isAbsolutePath","_warning","extractPath","charAt","_parsePath","_parsePath2","RegExp","match","prefix","suffix","_parsePath3","string","substring","hashIndex","searchIndex","warning","node","attachEvent","detachEvent","ua","navigator","userAgent","supportsGoWithoutReloadUsingHash","QuotaExceededErrors","SecurityError","KeyPrefix","createKey","sessionStorage","removeItem","setItem","JSON","stringify","json","getItem","parse","enumerable","get","href","_toConsumableArray","arr","arr2","from","_AsyncUtils","_runTransitionHook","_runTransitionHook2","createHistory","keyLength","currentLocation","pendingLocation","beforeListeners","listeners","allKeys","getCurrentIndex","nextLocation","currentIndex","concat","slice","forEach","filter","confirmTransitionTo","loopAsync","next","done","result","ok","prevPath","nextPath","prevIndex","nextIndex","Math","random","substr","createHref","turns","work","currentTurn","isDone","isSync","hasNext","doneArgs","_len","_key","apply","runTransitionHook","hook","createStateStorage","entries","entry","reduce","memo","createMemoryHistory","current","init","canGo","splice","_options","map","storage","useBasename","addBasename","prependBasename","pname","normalizedBasename","normalizedPathname","_queryString","defaultStringifyQuery","defaultParseQueryString","useQueries","stringifyQuery","parseQueryString","decodeQuery","encodeQuery","queryString","newLocation","encode","opts","strict","strictUriEncode","encodeURIComponent","objectAssign","extract","str","split","ret","trim","param","parts","shift","val","join","decodeURIComponent","defaults","sort","val2","x","charCodeAt","toUpperCase","toObject","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","propIsEnumerable","propertyIsEnumerable","symbols","to","s","getOwnPropertySymbols","_urlPattern","_urlPattern2","routeList","pattern","incomingUrl","storedRoute","params","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","UrlPattern","P","astNodeContainsSegmentsForProvidedParams","astNodeToNames","astNodeToRegexString","baseAstNodeToRegexString","concatMap","defaultOptions","escapeForRegex","getParam","keysAndValuesToObject","newParser","regexGroupCount","stringConcatMap","array","results","regex","exec","values","Result","rest","Tagged","tag","parser","tagged","matches","sequence","parsers","pick","indexes","lazy","fn","cached","baseMany","end","stringResult","atLeastOneResultRequired","endResult","parserResult","many1","concatMany1Till","firstChoice","U","wildcard","wildcardChar","optional","optionalSegmentStartChar","optionalSegmentEndChar","segmentNameCharset","named","segmentNameStartChar","escapedChar","escapeChar","token","segmentValueCharset","astNode","nextIndexes","sideEffects","maxIndex","arg1","arg2","groupCount","parsed","withoutWhitespace","isRegex","ast","names","url","groups","__webpack_amd_options__","previous","_ref$pathname","_ref$query","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","writable","configurable","setPrototypeOf","__proto__","_createClass","defineProperties","descriptor","protoProps","staticProps","_react","_react2","_reactRedux","RouterProviderImpl","_Component","_this","getPrototypeOf","children","Component","childContextTypes","PropTypes","connect","ComposedComponent","Provider","_Provider","_Provider2","_connect","_connect2","_storeShape","_storeShape2","context","getChildContext","render","Children","only","propTypes","isRequired","element","shape","subscribe","func","getState","console","getDisplayName","WrappedComponent","displayName","tryCatch","ctx","errorObject","mapStateToProps","mapDispatchToProps","mergeProps","shouldSubscribe","Boolean","mapState","defaultMapStateToProps","mapDispatch","_wrapActionCreators2","defaultMapDispatchToProps","finalMergeProps","defaultMergeProps","_options$pure","pure","_options$withRef","withRef","checkMergedEquals","version","nextVersion","computeMergedProps","stateProps","dispatchProps","parentProps","mergedProps","connectDisplayName","Connect","storeState","clearCache","shouldComponentUpdate","haveOwnPropsChanged","hasStoreStateChanged","computeStateProps","finalMapStateToProps","configureFinalMapState","doStatePropsDependOnOwnProps","mappedState","isFactory","computeDispatchProps","finalMapDispatchToProps","configureFinalMapDispatch","doDispatchPropsDependOnOwnProps","mappedDispatch","updateStatePropsIfNeeded","nextStateProps","_shallowEqual2","updateDispatchPropsIfNeeded","nextDispatchProps","updateMergedPropsIfNeeded","nextMergedProps","isSubscribed","unsubscribe","trySubscribe","handleChange","bind","tryUnsubscribe","componentDidMount","componentWillReceiveProps","nextProps","componentWillUnmount","haveStatePropsBeenPrecalculated","statePropsPrecalculationError","renderedElement","prevStoreState","haveStatePropsChanged","setState","getWrappedInstance","refs","wrappedInstance","shouldUpdateStateProps","shouldUpdateDispatchProps","haveDispatchPropsChanged","haveMergedPropsChanged","ref","contextTypes","_hoistNonReactStatics2","_shallowEqual","_wrapActionCreators","_isPlainObject","_hoistNonReactStatics","shallowEqual","objA","objB","keysA","keysB","hasOwn","wrapActionCreators","actionCreators","_redux","bindActionCreators","compose","applyMiddleware","combineReducers","_createStore","_createStore2","_combineReducers","_combineReducers2","_bindActionCreators","_bindActionCreators2","_applyMiddleware","_applyMiddleware2","_compose","_compose2","ensureCanMutateNextListeners","nextListeners","currentListeners","currentState","_isPlainObject2","isDispatching","currentReducer","replaceReducer","nextReducer","ActionTypes","INIT","observable","outerSubscribe","observer","observeState","_symbolObservable2","_symbolObservable","isPlainObject","isObjectLike","objectToString","objectTag","isHostObject","proto","getPrototype","Ctor","funcToString","objectCtorString","funcProto","Function","objectProto","overArg","transform","arg","global","getUndefinedStateErrorMessage","actionType","actionName","assertReducerSanity","reducers","reducerKeys","finalReducers","sanityError","finalReducerKeys","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","boundActionCreators","middlewares","_dispatch","chain","middlewareAPI","middleware","funcs","_ret","last","v","reduceRight","composed","REACT_STATICS","defaultProps","getDefaultProps","mixins","KNOWN_STATICS","caller","arity","isGetOwnPropertySymbolsAvailable","targetComponent","sourceComponent","customStatics","_objectWithoutProperties","LEFT_MOUSE_BUTTON","normalizeHref","normalizeLocation","pathnameAndQuery","resolveQueryForLocation","linkLocation","persistQuery","currentQuery","isNotLeftClick","button","hasModifier","shiftKey","altKey","metaKey","ctrlKey","handleClick","onClick","defaultPrevented","preventDefault","locationDescriptor","_onClick","_x","_props","forRoute","forRoutes","withConditions","_context$router$store","matchResult","anyMatch","some"],"mappings":"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","file":"redux-little-router.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_29__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_29__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createMatcher = exports.locationDidChange = exports.routerReducer = exports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.RouterProvider = exports.provideRouter = exports.initializeCurrentLocation = exports.createStoreWithRouter = undefined;\n\t\n\tvar _storeEnhancer = __webpack_require__(1);\n\t\n\tvar _storeEnhancer2 = _interopRequireDefault(_storeEnhancer);\n\t\n\tvar _provider = __webpack_require__(28);\n\t\n\tvar _provider2 = _interopRequireDefault(_provider);\n\t\n\tvar _link = __webpack_require__(52);\n\t\n\tvar _fragment = __webpack_require__(53);\n\t\n\tvar _fragment2 = _interopRequireDefault(_fragment);\n\t\n\tvar _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.createStoreWithRouter = _storeEnhancer2.default;\n\texports.initializeCurrentLocation = _storeEnhancer.initializeCurrentLocation;\n\texports.provideRouter = _provider2.default;\n\texports.RouterProvider = _provider.RouterProvider;\n\texports.Link = _link.Link;\n\texports.PersistentQueryLink = _link.PersistentQueryLink;\n\texports.Fragment = _fragment2.default;\n\texports.LOCATION_CHANGED = _actionTypes.LOCATION_CHANGED;\n\texports.PUSH = _actionTypes.PUSH;\n\texports.REPLACE = _actionTypes.REPLACE;\n\texports.GO = _actionTypes.GO;\n\texports.GO_FORWARD = _actionTypes.GO_FORWARD;\n\texports.GO_BACK = _actionTypes.GO_BACK;\n\texports.routerReducer = _reducer2.default;\n\texports.locationDidChange = _storeEnhancer.locationDidChange;\n\texports.createMatcher = _createMatcher2.default;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.initializeCurrentLocation = exports.locationDidChange = undefined;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createBrowserHistory = __webpack_require__(2);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _createMemoryHistory = __webpack_require__(16);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _useBasename = __webpack_require__(17);\n\t\n\tvar _useBasename2 = _interopRequireDefault(_useBasename);\n\t\n\tvar _useQueries = __webpack_require__(18);\n\t\n\tvar _useQueries2 = _interopRequireDefault(_useQueries);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _initialRouterState = __webpack_require__(27);\n\t\n\tvar _initialRouterState2 = _interopRequireDefault(_initialRouterState);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar README_MESSAGE = '\\n See the README for more information:\\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\\n';\n\t\n\tvar locationDidChange = exports.locationDidChange = function locationDidChange(_ref) {\n\t var location = _ref.location;\n\t var matchRoute = _ref.matchRoute;\n\t\n\t // Extract the pathname so that we don't match against the basename.\n\t // This avoids requiring basename-hardcoded routes.\n\t var pathname = location.pathname;\n\t\n\t\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: _extends({}, location, matchRoute(pathname))\n\t };\n\t};\n\t\n\tvar initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) {\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: location\n\t };\n\t};\n\t\n\tvar resolveHistory = function resolveHistory(_ref2) {\n\t var basename = _ref2.basename;\n\t var forServerRender = _ref2.forServerRender;\n\t\n\t var historyFactory = forServerRender ? _createMemoryHistory2.default : _createBrowserHistory2.default;\n\t\n\t return (0, _useBasename2.default)((0, _useQueries2.default)(historyFactory))({\n\t basename: basename\n\t });\n\t};\n\t\n\texports.default = function (_ref3) {\n\t var routes = _ref3.routes;\n\t var pathname = _ref3.pathname;\n\t var query = _ref3.query;\n\t var _ref3$basename = _ref3.basename;\n\t var basename = _ref3$basename === undefined ? '' : _ref3$basename;\n\t var _ref3$forServerRender = _ref3.forServerRender;\n\t var forServerRender = _ref3$forServerRender === undefined ? false : _ref3$forServerRender;\n\t var _ref3$createMatcher = _ref3.createMatcher;\n\t var createMatcher = _ref3$createMatcher === undefined ? _createMatcher2.default : _ref3$createMatcher;\n\t var userHistory = _ref3.history;\n\t\n\t if (!routes) {\n\t throw Error('\\n Missing route configuration. You must define your routes as\\n an object where the keys are routes and the values are any\\n route-specific data.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t\n\t // eslint-disable-next-line no-magic-numbers\n\t if (!Object.keys(routes).every(function (route) {\n\t return route.indexOf('/') === 0;\n\t })) {\n\t throw Error('\\n The route configuration you provided is malformed. Make sure\\n that all of your routes start with a slash.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t\n\t var history = userHistory || resolveHistory({\n\t basename: basename, forServerRender: forServerRender\n\t });\n\t\n\t return function (createStore) {\n\t return function (reducer, initialState, enhancer) {\n\t var enhancedReducer = function enhancedReducer(state, action) {\n\t var vanillaState = _extends({}, state);\n\t delete vanillaState.router;\n\t\n\t var newState = reducer(vanillaState, action);\n\t\n\t // Support redux-loop\n\t if (Array.isArray(newState)) {\n\t var nextState = newState[0]; // eslint-disable-line no-magic-numbers\n\t var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n\t return [_extends({}, nextState, {\n\t router: (0, _reducer2.default)(state && state.router, action)\n\t }), nextEffects];\n\t }\n\t\n\t return _extends({}, reducer(vanillaState, action), {\n\t router: (0, _reducer2.default)(state && state.router, action)\n\t });\n\t };\n\t\n\t var store = createStore(enhancedReducer, pathname || query ? _extends({}, initialState, {\n\t router: (0, _initialRouterState2.default)({\n\t pathname: pathname, query: query || {}, routes: routes, history: history\n\t }) }) : initialState, enhancer);\n\t\n\t var matchRoute = createMatcher(routes);\n\t history.listen(function (location) {\n\t if (location) {\n\t store.dispatch(locationDidChange({\n\t location: location, matchRoute: matchRoute\n\t }));\n\t }\n\t });\n\t\n\t var dispatch = function dispatch(action) {\n\t switch (action.type) {\n\t case _actionTypes.PUSH:\n\t history.push(action.payload);\n\t return null;\n\t case _actionTypes.REPLACE:\n\t history.replace(action.payload);\n\t return null;\n\t case _actionTypes.GO:\n\t history.go(action.payload);\n\t return null;\n\t case _actionTypes.GO_BACK:\n\t history.goBack();\n\t return null;\n\t case _actionTypes.GO_FORWARD:\n\t history.goForward();\n\t return null;\n\t default:\n\t // We return the result of dispatch here\n\t // to retain compatibility with enhancers\n\t // that return a promise from dispatch.\n\t return store.dispatch(action);\n\t }\n\t };\n\t\n\t return _extends({}, store, { dispatch: dispatch, history: history, matchRoute: matchRoute });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _ExecutionEnvironment = __webpack_require__(4);\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\t\n\tvar _RefreshProtocol = __webpack_require__(12);\n\t\n\tvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tfunction _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\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Creates and returns a history object that uses HTML5's history API\n\t * (pushState, replaceState, and the popstate event) to manage history.\n\t * This is the recommended method of managing history in browsers because\n\t * it provides the cleanest URLs.\n\t *\n\t * Note: In browsers that do not support the HTML5 history API full\n\t * page reloads will be used to preserve clean URLs. You can force this\n\t * behavior using { forceRefresh: true } in options.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t !_ExecutionEnvironment.canUseDOM ? false ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\t\n\t var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n\t var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\t\n\t var getUserConfirmation = Protocol.getUserConfirmation;\n\t var getCurrentLocation = Protocol.getCurrentLocation;\n\t var pushLocation = Protocol.pushLocation;\n\t var replaceLocation = Protocol.replaceLocation;\n\t var go = Protocol.go;\n\t\n\t\n\t var history = (0, _createHistory2.default)(_extends({\n\t getUserConfirmation: getUserConfirmation }, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var listenerCount = 0,\n\t stopListener = void 0;\n\t\n\t var startListener = function startListener(listener, before) {\n\t if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\t\n\t var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\t\n\t return function () {\n\t unlisten();\n\t\n\t if (--listenerCount === 0) stopListener();\n\t };\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t return startListener(listener, true);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return startListener(listener, false);\n\t };\n\t\n\t return _extends({}, history, {\n\t listenBefore: listenBefore,\n\t listen: listen\n\t });\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _DOMStateStorage = __webpack_require__(11);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\t/* eslint-disable no-alert */\n\t\n\t\n\tvar PopStateEvent = 'popstate';\n\t\n\tvar _createLocation = function _createLocation(historyState) {\n\t var key = historyState && historyState.key;\n\t\n\t return (0, _LocationUtils.createLocation)({\n\t pathname: window.location.pathname,\n\t search: window.location.search,\n\t hash: window.location.hash,\n\t state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n\t }, undefined, key);\n\t};\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t var historyState = void 0;\n\t try {\n\t historyState = window.history.state || {};\n\t } catch (error) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/mjackson/history/pull/289\n\t historyState = {};\n\t }\n\t\n\t return _createLocation(historyState);\n\t};\n\t\n\tvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t};\n\t\n\tvar startListener = exports.startListener = function startListener(listener) {\n\t var handlePopState = function handlePopState(event) {\n\t if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n\t listener(_createLocation(event.state));\n\t };\n\t\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t return function () {\n\t return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t };\n\t};\n\t\n\tvar updateLocation = function updateLocation(location, updateState) {\n\t var state = location.state;\n\t var key = location.key;\n\t\n\t\n\t if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\t\n\t updateState({ key: key }, (0, _PathUtils.createPath)(location));\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.pushState(state, null, path);\n\t });\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.replaceState(state, null, path);\n\t });\n\t};\n\t\n\tvar go = exports.go = function go(n) {\n\t if (n) window.history.go(n);\n\t};\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createQuery = exports.createQuery = function createQuery(props) {\n\t return _extends(Object.create(null), props);\n\t};\n\t\n\tvar createLocation = exports.createLocation = function createLocation() {\n\t var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n\t var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\t\n\t var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\t\n\t var pathname = object.pathname || '/';\n\t var search = object.search || '';\n\t var hash = object.hash || '';\n\t var state = object.state;\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash,\n\t state: state,\n\t action: action,\n\t key: key\n\t };\n\t};\n\t\n\tvar isDate = function isDate(object) {\n\t return Object.prototype.toString.call(object) === '[object Date]';\n\t};\n\t\n\tvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (typeofA !== typeofB) return false;\n\t\n\t !(typeofA !== 'function') ? false ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t // Not the same object, but same type.\n\t if (typeofA === 'object') {\n\t !!(isDate(a) && isDate(b)) ? false ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n\t return statesAreEqual(a[key], b[key]);\n\t });\n\t\n\t return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n\t return statesAreEqual(item, b[index]);\n\t });\n\t }\n\t\n\t // All other serializable types (string, number, boolean)\n\t // should be strict equal.\n\t return false;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.key === b.key &&\n\t // a.action === b.action && // Different action !== location change.\n\t a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n\t return typeof path === 'string' && path.charAt(0) === '/';\n\t};\n\t\n\tvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n\t var _parsePath = parsePath(path);\n\t\n\t var pathname = _parsePath.pathname;\n\t var search = _parsePath.search;\n\t var hash = _parsePath.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n\t hash: hash\n\t });\n\t};\n\t\n\tvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n\t var _parsePath2 = parsePath(path);\n\t\n\t var pathname = _parsePath2.pathname;\n\t var search = _parsePath2.search;\n\t var hash = _parsePath2.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n\t return prefix === '?' ? prefix : suffix;\n\t }),\n\t hash: hash\n\t });\n\t};\n\t\n\tvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n\t var _parsePath3 = parsePath(path);\n\t\n\t var search = _parsePath3.search;\n\t\n\t var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n\t return match && match[1];\n\t};\n\t\n\tvar extractPath = function extractPath(string) {\n\t var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n\t return match == null ? string : string.substring(match[0].length);\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = extractPath(path);\n\t var search = '';\n\t var hash = '';\n\t\n\t false ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substring(hashIndex);\n\t pathname = pathname.substring(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substring(searchIndex);\n\t pathname = pathname.substring(0, searchIndex);\n\t }\n\t\n\t if (pathname === '') pathname = '/';\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t if (location == null || typeof location === 'string') return location;\n\t\n\t var basename = location.basename;\n\t var pathname = location.pathname;\n\t var search = location.search;\n\t var hash = location.hash;\n\t\n\t var path = (basename || '') + pathname;\n\t\n\t if (search && search !== '?') path += search;\n\t\n\t if (hash) path += hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _queryString = __webpack_require__(19);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(20);\n\tvar objectAssign = __webpack_require__(21);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn encode(key, opts);\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (routes) {\n\t var routeList = Object.keys(routes).map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(route),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(route);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname) {\n\t return state;\n\t }\n\t\n\t return _extends({}, action.payload, {\n\t previous: state && state.current\n\t });\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var _ref$pathname = _ref.pathname;\n\t var pathname = _ref$pathname === undefined ? '/' : _ref$pathname;\n\t var _ref$query = _ref.query;\n\t var query = _ref$query === undefined ? {} : _ref$query;\n\t var routes = _ref.routes;\n\t var history = _ref.history;\n\t return _extends({}, history.createLocation({\n\t pathname: pathname,\n\t query: query\n\t }), (0, _createMatcher2.default)(routes)(pathname));\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RouterProvider = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(30);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar RouterProviderImpl = function (_Component) {\n\t _inherits(RouterProviderImpl, _Component);\n\t\n\t function RouterProviderImpl(props) {\n\t _classCallCheck(this, RouterProviderImpl);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RouterProviderImpl).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProviderImpl, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t return this.props.children;\n\t }\n\t }]);\n\t\n\t return RouterProviderImpl;\n\t}(_react.Component);\n\t\n\tRouterProviderImpl.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) {\n\t return {\n\t router: state.router\n\t };\n\t})(RouterProviderImpl);\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.connect = exports.Provider = undefined;\n\t\n\tvar _Provider = __webpack_require__(31);\n\t\n\tvar _Provider2 = _interopRequireDefault(_Provider);\n\t\n\tvar _connect = __webpack_require__(34);\n\t\n\tvar _connect2 = _interopRequireDefault(_connect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\texports.Provider = _Provider2[\"default\"];\n\texports.connect = _connect2[\"default\"];\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = undefined;\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _storeShape = __webpack_require__(32);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _warning = __webpack_require__(33);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar didWarnAboutReceivingStore = false;\n\tfunction warnAboutReceivingStore() {\n\t if (didWarnAboutReceivingStore) {\n\t return;\n\t }\n\t didWarnAboutReceivingStore = true;\n\t\n\t (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n\t}\n\t\n\tvar Provider = function (_Component) {\n\t _inherits(Provider, _Component);\n\t\n\t Provider.prototype.getChildContext = function getChildContext() {\n\t return { store: this.store };\n\t };\n\t\n\t function Provider(props, context) {\n\t _classCallCheck(this, Provider);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.store = props.store;\n\t return _this;\n\t }\n\t\n\t Provider.prototype.render = function render() {\n\t var children = this.props.children;\n\t\n\t return _react.Children.only(children);\n\t };\n\t\n\t return Provider;\n\t}(_react.Component);\n\t\n\texports[\"default\"] = Provider;\n\t\n\tif (false) {\n\t Provider.prototype.componentWillReceiveProps = function (nextProps) {\n\t var store = this.store;\n\t var nextStore = nextProps.store;\n\t\n\t if (store !== nextStore) {\n\t warnAboutReceivingStore();\n\t }\n\t };\n\t}\n\t\n\tProvider.propTypes = {\n\t store: _storeShape2[\"default\"].isRequired,\n\t children: _react.PropTypes.element.isRequired\n\t};\n\tProvider.childContextTypes = {\n\t store: _storeShape2[\"default\"].isRequired\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\texports[\"default\"] = _react.PropTypes.shape({\n\t subscribe: _react.PropTypes.func.isRequired,\n\t dispatch: _react.PropTypes.func.isRequired,\n\t getState: _react.PropTypes.func.isRequired\n\t});\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = connect;\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _storeShape = __webpack_require__(32);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _shallowEqual = __webpack_require__(35);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _wrapActionCreators = __webpack_require__(36);\n\t\n\tvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\t\n\tvar _warning = __webpack_require__(33);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _isPlainObject = __webpack_require__(39);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _hoistNonReactStatics = __webpack_require__(51);\n\t\n\tvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n\t return {};\n\t}; // eslint-disable-line no-unused-vars\n\tvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n\t return { dispatch: dispatch };\n\t};\n\tvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n\t return _extends({}, parentProps, stateProps, dispatchProps);\n\t};\n\t\n\tfunction getDisplayName(WrappedComponent) {\n\t return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t}\n\t\n\tvar errorObject = { value: null };\n\tfunction tryCatch(fn, ctx) {\n\t try {\n\t return fn.apply(ctx);\n\t } catch (e) {\n\t errorObject.value = e;\n\t return errorObject;\n\t }\n\t}\n\t\n\t// Helps track hot reloading.\n\tvar nextVersion = 0;\n\t\n\tfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n\t var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\t\n\t var shouldSubscribe = Boolean(mapStateToProps);\n\t var mapState = mapStateToProps || defaultMapStateToProps;\n\t\n\t var mapDispatch = undefined;\n\t if (typeof mapDispatchToProps === 'function') {\n\t mapDispatch = mapDispatchToProps;\n\t } else if (!mapDispatchToProps) {\n\t mapDispatch = defaultMapDispatchToProps;\n\t } else {\n\t mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n\t }\n\t\n\t var finalMergeProps = mergeProps || defaultMergeProps;\n\t var _options$pure = options.pure;\n\t var pure = _options$pure === undefined ? true : _options$pure;\n\t var _options$withRef = options.withRef;\n\t var withRef = _options$withRef === undefined ? false : _options$withRef;\n\t\n\t var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\t\n\t // Helps track hot reloading.\n\t var version = nextVersion++;\n\t\n\t return function wrapWithConnect(WrappedComponent) {\n\t var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\t\n\t function checkStateShape(props, methodName) {\n\t if (!(0, _isPlainObject2[\"default\"])(props)) {\n\t (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n\t }\n\t }\n\t\n\t function computeMergedProps(stateProps, dispatchProps, parentProps) {\n\t var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n\t if (false) {\n\t checkStateShape(mergedProps, 'mergeProps');\n\t }\n\t return mergedProps;\n\t }\n\t\n\t var Connect = function (_Component) {\n\t _inherits(Connect, _Component);\n\t\n\t Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n\t return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n\t };\n\t\n\t function Connect(props, context) {\n\t _classCallCheck(this, Connect);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.version = version;\n\t _this.store = props.store || context.store;\n\t\n\t (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\t\n\t var storeState = _this.store.getState();\n\t _this.state = { storeState: storeState };\n\t _this.clearCache();\n\t return _this;\n\t }\n\t\n\t Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n\t if (!this.finalMapStateToProps) {\n\t return this.configureFinalMapState(store, props);\n\t }\n\t\n\t var state = store.getState();\n\t var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\t\n\t if (false) {\n\t checkStateShape(stateProps, 'mapStateToProps');\n\t }\n\t return stateProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n\t var mappedState = mapState(store.getState(), props);\n\t var isFactory = typeof mappedState === 'function';\n\t\n\t this.finalMapStateToProps = isFactory ? mappedState : mapState;\n\t this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeStateProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedState, 'mapStateToProps');\n\t }\n\t return mappedState;\n\t };\n\t\n\t Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n\t if (!this.finalMapDispatchToProps) {\n\t return this.configureFinalMapDispatch(store, props);\n\t }\n\t\n\t var dispatch = store.dispatch;\n\t\n\t var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\t\n\t if (false) {\n\t checkStateShape(dispatchProps, 'mapDispatchToProps');\n\t }\n\t return dispatchProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n\t var mappedDispatch = mapDispatch(store.dispatch, props);\n\t var isFactory = typeof mappedDispatch === 'function';\n\t\n\t this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n\t this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeDispatchProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedDispatch, 'mapDispatchToProps');\n\t }\n\t return mappedDispatch;\n\t };\n\t\n\t Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n\t var nextStateProps = this.computeStateProps(this.store, this.props);\n\t if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n\t return false;\n\t }\n\t\n\t this.stateProps = nextStateProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n\t var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n\t if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n\t return false;\n\t }\n\t\n\t this.dispatchProps = nextDispatchProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n\t var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n\t if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n\t return false;\n\t }\n\t\n\t this.mergedProps = nextMergedProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.isSubscribed = function isSubscribed() {\n\t return typeof this.unsubscribe === 'function';\n\t };\n\t\n\t Connect.prototype.trySubscribe = function trySubscribe() {\n\t if (shouldSubscribe && !this.unsubscribe) {\n\t this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n\t this.handleChange();\n\t }\n\t };\n\t\n\t Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n\t if (this.unsubscribe) {\n\t this.unsubscribe();\n\t this.unsubscribe = null;\n\t }\n\t };\n\t\n\t Connect.prototype.componentDidMount = function componentDidMount() {\n\t this.trySubscribe();\n\t };\n\t\n\t Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n\t this.haveOwnPropsChanged = true;\n\t }\n\t };\n\t\n\t Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.tryUnsubscribe();\n\t this.clearCache();\n\t };\n\t\n\t Connect.prototype.clearCache = function clearCache() {\n\t this.dispatchProps = null;\n\t this.stateProps = null;\n\t this.mergedProps = null;\n\t this.haveOwnPropsChanged = true;\n\t this.hasStoreStateChanged = true;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t this.renderedElement = null;\n\t this.finalMapDispatchToProps = null;\n\t this.finalMapStateToProps = null;\n\t };\n\t\n\t Connect.prototype.handleChange = function handleChange() {\n\t if (!this.unsubscribe) {\n\t return;\n\t }\n\t\n\t var storeState = this.store.getState();\n\t var prevStoreState = this.state.storeState;\n\t if (pure && prevStoreState === storeState) {\n\t return;\n\t }\n\t\n\t if (pure && !this.doStatePropsDependOnOwnProps) {\n\t var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n\t if (!haveStatePropsChanged) {\n\t return;\n\t }\n\t if (haveStatePropsChanged === errorObject) {\n\t this.statePropsPrecalculationError = errorObject.value;\n\t }\n\t this.haveStatePropsBeenPrecalculated = true;\n\t }\n\t\n\t this.hasStoreStateChanged = true;\n\t this.setState({ storeState: storeState });\n\t };\n\t\n\t Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n\t (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\t\n\t return this.refs.wrappedInstance;\n\t };\n\t\n\t Connect.prototype.render = function render() {\n\t var haveOwnPropsChanged = this.haveOwnPropsChanged;\n\t var hasStoreStateChanged = this.hasStoreStateChanged;\n\t var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n\t var statePropsPrecalculationError = this.statePropsPrecalculationError;\n\t var renderedElement = this.renderedElement;\n\t\n\t this.haveOwnPropsChanged = false;\n\t this.hasStoreStateChanged = false;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t\n\t if (statePropsPrecalculationError) {\n\t throw statePropsPrecalculationError;\n\t }\n\t\n\t var shouldUpdateStateProps = true;\n\t var shouldUpdateDispatchProps = true;\n\t if (pure && renderedElement) {\n\t shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n\t shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n\t }\n\t\n\t var haveStatePropsChanged = false;\n\t var haveDispatchPropsChanged = false;\n\t if (haveStatePropsBeenPrecalculated) {\n\t haveStatePropsChanged = true;\n\t } else if (shouldUpdateStateProps) {\n\t haveStatePropsChanged = this.updateStatePropsIfNeeded();\n\t }\n\t if (shouldUpdateDispatchProps) {\n\t haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n\t }\n\t\n\t var haveMergedPropsChanged = true;\n\t if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n\t haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n\t } else {\n\t haveMergedPropsChanged = false;\n\t }\n\t\n\t if (!haveMergedPropsChanged && renderedElement) {\n\t return renderedElement;\n\t }\n\t\n\t if (withRef) {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n\t ref: 'wrappedInstance'\n\t }));\n\t } else {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n\t }\n\t\n\t return this.renderedElement;\n\t };\n\t\n\t return Connect;\n\t }(_react.Component);\n\t\n\t Connect.displayName = connectDisplayName;\n\t Connect.WrappedComponent = WrappedComponent;\n\t Connect.contextTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t Connect.propTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t\n\t if (false) {\n\t Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n\t if (this.version === version) {\n\t return;\n\t }\n\t\n\t // We are hot reloading!\n\t this.version = version;\n\t this.trySubscribe();\n\t this.clearCache();\n\t };\n\t }\n\t\n\t return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n\t };\n\t}\n\n/***/ },\n/* 35 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = wrapActionCreators;\n\t\n\tvar _redux = __webpack_require__(37);\n\t\n\tfunction wrapActionCreators(actionCreators) {\n\t return function (dispatch) {\n\t return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n\t };\n\t}\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\t\n\tvar _createStore = __webpack_require__(38);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _combineReducers = __webpack_require__(46);\n\t\n\tvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\t\n\tvar _bindActionCreators = __webpack_require__(48);\n\t\n\tvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\t\n\tvar _applyMiddleware = __webpack_require__(49);\n\t\n\tvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\t\n\tvar _compose = __webpack_require__(50);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tvar _warning = __webpack_require__(47);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\t/*\n\t* This is a dummy function to check if the function name has been altered by minification.\n\t* If the function has been minified and NODE_ENV !== 'production', warn the user.\n\t*/\n\tfunction isCrushed() {}\n\t\n\tif (false) {\n\t (0, _warning2[\"default\"])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n\t}\n\t\n\texports.createStore = _createStore2[\"default\"];\n\texports.combineReducers = _combineReducers2[\"default\"];\n\texports.bindActionCreators = _bindActionCreators2[\"default\"];\n\texports.applyMiddleware = _applyMiddleware2[\"default\"];\n\texports.compose = _compose2[\"default\"];\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.ActionTypes = undefined;\n\texports[\"default\"] = createStore;\n\t\n\tvar _isPlainObject = __webpack_require__(39);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(44);\n\t\n\tvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\t/**\n\t * These are private action types reserved by Redux.\n\t * For any unknown actions, you must return the current state.\n\t * If the current state is undefined, you must return the initial state.\n\t * Do not reference these action types directly in your code.\n\t */\n\tvar ActionTypes = exports.ActionTypes = {\n\t INIT: '@@redux/INIT'\n\t};\n\t\n\t/**\n\t * Creates a Redux store that holds the state tree.\n\t * The only way to change the data in the store is to call `dispatch()` on it.\n\t *\n\t * There should only be a single store in your app. To specify how different\n\t * parts of the state tree respond to actions, you may combine several reducers\n\t * into a single reducer function by using `combineReducers`.\n\t *\n\t * @param {Function} reducer A function that returns the next state tree, given\n\t * the current state tree and the action to handle.\n\t *\n\t * @param {any} [initialState] The initial state. You may optionally specify it\n\t * to hydrate the state from the server in universal apps, or to restore a\n\t * previously serialized user session.\n\t * If you use `combineReducers` to produce the root reducer function, this must be\n\t * an object with the same shape as `combineReducers` keys.\n\t *\n\t * @param {Function} enhancer The store enhancer. You may optionally specify it\n\t * to enhance the store with third-party capabilities such as middleware,\n\t * time travel, persistence, etc. The only store enhancer that ships with Redux\n\t * is `applyMiddleware()`.\n\t *\n\t * @returns {Store} A Redux store that lets you read the state, dispatch actions\n\t * and subscribe to changes.\n\t */\n\tfunction createStore(reducer, initialState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof initialState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = initialState;\n\t initialState = undefined;\n\t }\n\t\n\t if (typeof enhancer !== 'undefined') {\n\t if (typeof enhancer !== 'function') {\n\t throw new Error('Expected the enhancer to be a function.');\n\t }\n\t\n\t return enhancer(createStore)(reducer, initialState);\n\t }\n\t\n\t if (typeof reducer !== 'function') {\n\t throw new Error('Expected the reducer to be a function.');\n\t }\n\t\n\t var currentReducer = reducer;\n\t var currentState = initialState;\n\t var currentListeners = [];\n\t var nextListeners = currentListeners;\n\t var isDispatching = false;\n\t\n\t function ensureCanMutateNextListeners() {\n\t if (nextListeners === currentListeners) {\n\t nextListeners = currentListeners.slice();\n\t }\n\t }\n\t\n\t /**\n\t * Reads the state tree managed by the store.\n\t *\n\t * @returns {any} The current state tree of your application.\n\t */\n\t function getState() {\n\t return currentState;\n\t }\n\t\n\t /**\n\t * Adds a change listener. It will be called any time an action is dispatched,\n\t * and some part of the state tree may potentially have changed. You may then\n\t * call `getState()` to read the current state tree inside the callback.\n\t *\n\t * You may call `dispatch()` from a change listener, with the following\n\t * caveats:\n\t *\n\t * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n\t * If you subscribe or unsubscribe while the listeners are being invoked, this\n\t * will not have any effect on the `dispatch()` that is currently in progress.\n\t * However, the next `dispatch()` call, whether nested or not, will use a more\n\t * recent snapshot of the subscription list.\n\t *\n\t * 2. The listener should not expect to see all state changes, as the state\n\t * might have been updated multiple times during a nested `dispatch()` before\n\t * the listener is called. It is, however, guaranteed that all subscribers\n\t * registered before the `dispatch()` started will be called with the latest\n\t * state by the time it exits.\n\t *\n\t * @param {Function} listener A callback to be invoked on every dispatch.\n\t * @returns {Function} A function to remove this change listener.\n\t */\n\t function subscribe(listener) {\n\t if (typeof listener !== 'function') {\n\t throw new Error('Expected listener to be a function.');\n\t }\n\t\n\t var isSubscribed = true;\n\t\n\t ensureCanMutateNextListeners();\n\t nextListeners.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed) {\n\t return;\n\t }\n\t\n\t isSubscribed = false;\n\t\n\t ensureCanMutateNextListeners();\n\t var index = nextListeners.indexOf(listener);\n\t nextListeners.splice(index, 1);\n\t };\n\t }\n\t\n\t /**\n\t * Dispatches an action. It is the only way to trigger a state change.\n\t *\n\t * The `reducer` function, used to create the store, will be called with the\n\t * current state tree and the given `action`. Its return value will\n\t * be considered the **next** state of the tree, and the change listeners\n\t * will be notified.\n\t *\n\t * The base implementation only supports plain object actions. If you want to\n\t * dispatch a Promise, an Observable, a thunk, or something else, you need to\n\t * wrap your store creating function into the corresponding middleware. For\n\t * example, see the documentation for the `redux-thunk` package. Even the\n\t * middleware will eventually dispatch plain object actions using this method.\n\t *\n\t * @param {Object} action A plain object representing “what changed”. It is\n\t * a good idea to keep actions serializable so you can record and replay user\n\t * sessions, or use the time travelling `redux-devtools`. An action must have\n\t * a `type` property which may not be `undefined`. It is a good idea to use\n\t * string constants for action types.\n\t *\n\t * @returns {Object} For convenience, the same action object you dispatched.\n\t *\n\t * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n\t * return something else (for example, a Promise you can await).\n\t */\n\t function dispatch(action) {\n\t if (!(0, _isPlainObject2[\"default\"])(action)) {\n\t throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n\t }\n\t\n\t if (typeof action.type === 'undefined') {\n\t throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n\t }\n\t\n\t if (isDispatching) {\n\t throw new Error('Reducers may not dispatch actions.');\n\t }\n\t\n\t try {\n\t isDispatching = true;\n\t currentState = currentReducer(currentState, action);\n\t } finally {\n\t isDispatching = false;\n\t }\n\t\n\t var listeners = currentListeners = nextListeners;\n\t for (var i = 0; i < listeners.length; i++) {\n\t listeners[i]();\n\t }\n\t\n\t return action;\n\t }\n\t\n\t /**\n\t * Replaces the reducer currently used by the store to calculate the state.\n\t *\n\t * You might need this if your app implements code splitting and you want to\n\t * load some of the reducers dynamically. You might also need this if you\n\t * implement a hot reloading mechanism for Redux.\n\t *\n\t * @param {Function} nextReducer The reducer for the store to use instead.\n\t * @returns {void}\n\t */\n\t function replaceReducer(nextReducer) {\n\t if (typeof nextReducer !== 'function') {\n\t throw new Error('Expected the nextReducer to be a function.');\n\t }\n\t\n\t currentReducer = nextReducer;\n\t dispatch({ type: ActionTypes.INIT });\n\t }\n\t\n\t /**\n\t * Interoperability point for observable/reactive libraries.\n\t * @returns {observable} A minimal observable of state changes.\n\t * For more information, see the observable proposal:\n\t * https://github.com/zenparsing/es-observable\n\t */\n\t function observable() {\n\t var _ref;\n\t\n\t var outerSubscribe = subscribe;\n\t return _ref = {\n\t /**\n\t * The minimal observable subscription method.\n\t * @param {Object} observer Any object that can be used as an observer.\n\t * The observer object should have a `next` method.\n\t * @returns {subscription} An object with an `unsubscribe` method that can\n\t * be used to unsubscribe the observable from the store, and prevent further\n\t * emission of values from the observable.\n\t */\n\t\n\t subscribe: function subscribe(observer) {\n\t if (typeof observer !== 'object') {\n\t throw new TypeError('Expected the observer to be an object.');\n\t }\n\t\n\t function observeState() {\n\t if (observer.next) {\n\t observer.next(getState());\n\t }\n\t }\n\t\n\t observeState();\n\t var unsubscribe = outerSubscribe(observeState);\n\t return { unsubscribe: unsubscribe };\n\t }\n\t }, _ref[_symbolObservable2[\"default\"]] = function () {\n\t return this;\n\t }, _ref;\n\t }\n\t\n\t // When a store is created, an \"INIT\" action is dispatched so that every\n\t // reducer returns their initial state. This effectively populates\n\t // the initial state tree.\n\t dispatch({ type: ActionTypes.INIT });\n\t\n\t return _ref2 = {\n\t dispatch: dispatch,\n\t subscribe: subscribe,\n\t getState: getState,\n\t replaceReducer: replaceReducer\n\t }, _ref2[_symbolObservable2[\"default\"]] = observable, _ref2;\n\t}\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getPrototype = __webpack_require__(40),\n\t isHostObject = __webpack_require__(42),\n\t isObjectLike = __webpack_require__(43);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) ||\n\t objectToString.call(value) != objectTag || isHostObject(value)) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return (typeof Ctor == 'function' &&\n\t Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(41);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ },\n/* 41 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = isHostObject;\n\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/* global window */\n\t'use strict';\n\t\n\tmodule.exports = __webpack_require__(45)(global || window || this);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar Symbol = root.Symbol;\n\t\n\t\tif (typeof Symbol === 'function') {\n\t\t\tif (Symbol.observable) {\n\t\t\t\tresult = Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = Symbol('observable');\n\t\t\t\tSymbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = combineReducers;\n\t\n\tvar _createStore = __webpack_require__(38);\n\t\n\tvar _isPlainObject = __webpack_require__(39);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(47);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction getUndefinedStateErrorMessage(key, action) {\n\t var actionType = action && action.type;\n\t var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\t\n\t return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n\t}\n\t\n\tfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action) {\n\t var reducerKeys = Object.keys(reducers);\n\t var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'initialState argument passed to createStore' : 'previous state received by the reducer';\n\t\n\t if (reducerKeys.length === 0) {\n\t return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n\t }\n\t\n\t if (!(0, _isPlainObject2[\"default\"])(inputState)) {\n\t return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n\t }\n\t\n\t var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n\t return !reducers.hasOwnProperty(key);\n\t });\n\t\n\t if (unexpectedKeys.length > 0) {\n\t return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n\t }\n\t}\n\t\n\tfunction assertReducerSanity(reducers) {\n\t Object.keys(reducers).forEach(function (key) {\n\t var reducer = reducers[key];\n\t var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\t\n\t if (typeof initialState === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n\t }\n\t\n\t var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\t if (typeof reducer(undefined, { type: type }) === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Turns an object whose values are different reducer functions, into a single\n\t * reducer function. It will call every child reducer, and gather their results\n\t * into a single state object, whose keys correspond to the keys of the passed\n\t * reducer functions.\n\t *\n\t * @param {Object} reducers An object whose values correspond to different\n\t * reducer functions that need to be combined into one. One handy way to obtain\n\t * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n\t * undefined for any action. Instead, they should return their initial state\n\t * if the state passed to them was undefined, and the current state for any\n\t * unrecognized action.\n\t *\n\t * @returns {Function} A reducer function that invokes every reducer inside the\n\t * passed object, and builds a state object with the same shape.\n\t */\n\tfunction combineReducers(reducers) {\n\t var reducerKeys = Object.keys(reducers);\n\t var finalReducers = {};\n\t for (var i = 0; i < reducerKeys.length; i++) {\n\t var key = reducerKeys[i];\n\t if (typeof reducers[key] === 'function') {\n\t finalReducers[key] = reducers[key];\n\t }\n\t }\n\t var finalReducerKeys = Object.keys(finalReducers);\n\t\n\t var sanityError;\n\t try {\n\t assertReducerSanity(finalReducers);\n\t } catch (e) {\n\t sanityError = e;\n\t }\n\t\n\t return function combination() {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (sanityError) {\n\t throw sanityError;\n\t }\n\t\n\t if (false) {\n\t var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action);\n\t if (warningMessage) {\n\t (0, _warning2[\"default\"])(warningMessage);\n\t }\n\t }\n\t\n\t var hasChanged = false;\n\t var nextState = {};\n\t for (var i = 0; i < finalReducerKeys.length; i++) {\n\t var key = finalReducerKeys[i];\n\t var reducer = finalReducers[key];\n\t var previousStateForKey = state[key];\n\t var nextStateForKey = reducer(previousStateForKey, action);\n\t if (typeof nextStateForKey === 'undefined') {\n\t var errorMessage = getUndefinedStateErrorMessage(key, action);\n\t throw new Error(errorMessage);\n\t }\n\t nextState[key] = nextStateForKey;\n\t hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n\t }\n\t return hasChanged ? nextState : state;\n\t };\n\t}\n\n/***/ },\n/* 47 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = bindActionCreators;\n\tfunction bindActionCreator(actionCreator, dispatch) {\n\t return function () {\n\t return dispatch(actionCreator.apply(undefined, arguments));\n\t };\n\t}\n\t\n\t/**\n\t * Turns an object whose values are action creators, into an object with the\n\t * same keys, but with every function wrapped into a `dispatch` call so they\n\t * may be invoked directly. This is just a convenience method, as you can call\n\t * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n\t *\n\t * For convenience, you can also pass a single function as the first argument,\n\t * and get a function in return.\n\t *\n\t * @param {Function|Object} actionCreators An object whose values are action\n\t * creator functions. One handy way to obtain it is to use ES6 `import * as`\n\t * syntax. You may also pass a single function.\n\t *\n\t * @param {Function} dispatch The `dispatch` function available on your Redux\n\t * store.\n\t *\n\t * @returns {Function|Object} The object mimicking the original object, but with\n\t * every action creator wrapped into the `dispatch` call. If you passed a\n\t * function as `actionCreators`, the return value will also be a single\n\t * function.\n\t */\n\tfunction bindActionCreators(actionCreators, dispatch) {\n\t if (typeof actionCreators === 'function') {\n\t return bindActionCreator(actionCreators, dispatch);\n\t }\n\t\n\t if (typeof actionCreators !== 'object' || actionCreators === null) {\n\t throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n\t }\n\t\n\t var keys = Object.keys(actionCreators);\n\t var boundActionCreators = {};\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var actionCreator = actionCreators[key];\n\t if (typeof actionCreator === 'function') {\n\t boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n\t }\n\t }\n\t return boundActionCreators;\n\t}\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports[\"default\"] = applyMiddleware;\n\t\n\tvar _compose = __webpack_require__(50);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\t/**\n\t * Creates a store enhancer that applies middleware to the dispatch method\n\t * of the Redux store. This is handy for a variety of tasks, such as expressing\n\t * asynchronous actions in a concise manner, or logging every action payload.\n\t *\n\t * See `redux-thunk` package as an example of the Redux middleware.\n\t *\n\t * Because middleware is potentially asynchronous, this should be the first\n\t * store enhancer in the composition chain.\n\t *\n\t * Note that each middleware will be given the `dispatch` and `getState` functions\n\t * as named arguments.\n\t *\n\t * @param {...Function} middlewares The middleware chain to be applied.\n\t * @returns {Function} A store enhancer applying the middleware.\n\t */\n\tfunction applyMiddleware() {\n\t for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n\t middlewares[_key] = arguments[_key];\n\t }\n\t\n\t return function (createStore) {\n\t return function (reducer, initialState, enhancer) {\n\t var store = createStore(reducer, initialState, enhancer);\n\t var _dispatch = store.dispatch;\n\t var chain = [];\n\t\n\t var middlewareAPI = {\n\t getState: store.getState,\n\t dispatch: function dispatch(action) {\n\t return _dispatch(action);\n\t }\n\t };\n\t chain = middlewares.map(function (middleware) {\n\t return middleware(middlewareAPI);\n\t });\n\t _dispatch = _compose2[\"default\"].apply(undefined, chain)(store.dispatch);\n\t\n\t return _extends({}, store, {\n\t dispatch: _dispatch\n\t });\n\t };\n\t };\n\t}\n\n/***/ },\n/* 50 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = compose;\n\t/**\n\t * Composes single-argument functions from right to left. The rightmost\n\t * function can take multiple arguments as it provides the signature for\n\t * the resulting composite function.\n\t *\n\t * @param {...Function} funcs The functions to compose.\n\t * @returns {Function} A function obtained by composing the argument functions\n\t * from right to left. For example, compose(f, g, h) is identical to doing\n\t * (...args) => f(g(h(...args))).\n\t */\n\t\n\tfunction compose() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t if (funcs.length === 0) {\n\t return function (arg) {\n\t return arg;\n\t };\n\t } else {\n\t var _ret = function () {\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return {\n\t v: function v() {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t }\n\t };\n\t }();\n\t\n\t if (typeof _ret === \"object\") return _ret.v;\n\t }\n\t}\n\n/***/ },\n/* 51 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2015, Yahoo! Inc.\n\t * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n\t */\n\t'use strict';\n\t\n\tvar REACT_STATICS = {\n\t childContextTypes: true,\n\t contextTypes: true,\n\t defaultProps: true,\n\t displayName: true,\n\t getDefaultProps: true,\n\t mixins: true,\n\t propTypes: true,\n\t type: true\n\t};\n\t\n\tvar KNOWN_STATICS = {\n\t name: true,\n\t length: true,\n\t prototype: true,\n\t caller: true,\n\t arguments: true,\n\t arity: true\n\t};\n\t\n\tvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\t\n\tmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n\t if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\t var keys = Object.getOwnPropertyNames(sourceComponent);\n\t\n\t /* istanbul ignore else */\n\t if (isGetOwnPropertySymbolsAvailable) {\n\t keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n\t }\n\t\n\t for (var i = 0; i < keys.length; ++i) {\n\t if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n\t try {\n\t targetComponent[keys[i]] = sourceComponent[keys[i]];\n\t } catch (error) {\n\t\n\t }\n\t }\n\t }\n\t }\n\t\n\t return targetComponent;\n\t};\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(22);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar handleClick = function handleClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t var onClick = _ref2.onClick;\n\t\n\t if (onClick) {\n\t onClick(e);\n\t }\n\t\n\t if (hasModifier(e) || isNotLeftClick(e)) {\n\t return;\n\t }\n\t\n\t if (e.defaultPrevented) {\n\t return;\n\t }\n\t\n\t // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n\t if (target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var children = props.children;\n\t var href = props.href;\n\t var onClick = props.onClick;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var target = props.target;\n\t\n\t var rest = _objectWithoutProperties(props, ['children', 'href', 'onClick', 'persistQuery', 'replaceState', 'target']);\n\t\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: normalizeHref(location),\n\t onClick: function (_onClick) {\n\t function onClick(_x) {\n\t return _onClick.apply(this, arguments);\n\t }\n\t\n\t onClick.toString = function () {\n\t return _onClick.toString();\n\t };\n\t\n\t return onClick;\n\t }(function (e) {\n\t return handleClick({\n\t e: e,\n\t location: location,\n\t onClick: onClick,\n\t replaceState: replaceState,\n\t router: router,\n\t target: target\n\t });\n\t })\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(PersistentQueryLink).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(29);\n\t\n\tvar Fragment = function Fragment(props, context) {\n\t var forRoute = props.forRoute;\n\t var forRoutes = props.forRoutes;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t var matchRoute = context.router.store.matchRoute;\n\t\n\t var _context$router$store = context.router.store.getState();\n\t\n\t var location = _context$router$store.router;\n\t\n\t var matchResult = matchRoute(location.pathname);\n\t\n\t if (!matchResult) {\n\t return null;\n\t }\n\t\n\t if (forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (forRoutes) {\n\t var anyMatch = forRoutes.some(function (route) {\n\t return matchResult.route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return children;\n\t};\n\t\n\t\n\tFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.default = Fragment;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 302345f0b56942d57477\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport Fragment from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\nimport initialRouterState from './initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (!Object.keys(routes).every(route => route.indexOf('/') === 0)) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = {...state};\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...reducer(vanillaState, action),\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n }\n )} : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {...store, dispatch, history, matchRoute};\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\n ** module chunks = 0\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 16\n ** module chunks = 0\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\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 return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\n ** module chunks = 0\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\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 newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\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\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 (e) {\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 (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\nexport default (routes: Object) => {\n const routeList = Object.keys(routes).map(route => ({\n route,\n pattern: new UrlPattern(route),\n result: routes[route]\n }));\n\n return (incomingUrl: string) => {\n // Discard query strings\n const route = incomingUrl.split('?')[0]; // eslint-disable-line no-magic-numbers\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(route);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n return {\n ...action.payload,\n previous: state && state.current\n };\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from './create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, { Component, PropTypes } from 'react';\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: ReactPropTypes.node\n};\n\nclass RouterProviderImpl extends Component {\n router: { store: Store };\n\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n render() {\n return this.props.children;\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_29__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 29\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 30\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 31\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 32\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\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 /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 33\n ** module chunks = 0\n **/","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 34\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\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 var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 35\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 36\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2[\"default\"])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2[\"default\"];\nexports.combineReducers = _combineReducers2[\"default\"];\nexports.bindActionCreators = _bindActionCreators2[\"default\"];\nexports.applyMiddleware = _applyMiddleware2[\"default\"];\nexports.compose = _compose2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 37\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports[\"default\"] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [initialState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, initialState, enhancer) {\n var _ref2;\n\n if (typeof initialState === 'function' && typeof enhancer === 'undefined') {\n enhancer = initialState;\n initialState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, initialState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = initialState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2[\"default\"])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2[\"default\"]] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2[\"default\"]] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 38\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 39\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 40\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 41\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 42\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isObjectLike.js\n ** module id = 43\n ** module chunks = 0\n **/","/* global window */\n'use strict';\n\nmodule.exports = require('./ponyfill')(global || window || this);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 44\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = 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\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/ponyfill.js\n ** module id = 45\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'initialState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2[\"default\"])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key);\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action);\n if (warningMessage) {\n (0, _warning2[\"default\"])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 46\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 47\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 48\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\"] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, initialState, enhancer) {\n var store = createStore(reducer, initialState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2[\"default\"].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 49\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n } else {\n var _ret = function () {\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return {\n v: function v() {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n }\n };\n }();\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 50\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: 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 arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 51\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: ReactPropTypes.node,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({e, target, location, replaceState, router, onClick}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\nimport type { RouterContext } from './provider';\n\nimport { PropTypes } from 'react';\n\ntype Props = {\n forRoute: string,\n forRoutes: [string],\n withConditions: (location: Location) => bool,\n children: ReactPropTypes.node\n};\n\nconst Fragment = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const { forRoute, forRoutes, withConditions, children } = props;\n const { matchRoute } = context.router.store;\n const { router: location } = context.router.store.getState();\n const matchResult = matchRoute(location.pathname);\n\n if (!matchResult) {\n return null;\n }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (forRoutes) {\n const anyMatch = forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return children;\n};\n\nFragment.contextTypes = {\n router: PropTypes.object\n};\n\nexport default Fragment;\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index c5224d7a..ba40a94e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redux-little-router", - "version": "7.3.2", + "version": "8.0.0", "description": "A barebones routing solution for Redux applications.", "main": "lib/index.js", "scripts": {