Socket
Socket
Sign inDemoInstall

react-router

Package Overview
Dependencies
Maintainers
2
Versions
539
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-router - npm Package Compare versions

Comparing version 2.0.1 to 2.1.0

32

CHANGES.md

@@ -1,18 +0,28 @@

## [HEAD]
## [HEAD] \(v2.1.0\)
> Unreleased
## [v2.0.0-rc6]
- **Feature:** Add support for `onChange` hook on routes ([#3108])
- **Minor:** Include full warning messages in non-minified UMD build ([#3213])
- **Minor:** Speed up path matching ([#3217])
[HEAD]: https://github.com/reactjs/react-router/compare/latest...HEAD
[#3108]: https://github.com/reactjs/react-router/pull/3108
[#3213]: https://github.com/reactjs/react-router/pull/3213
[#3217]: https://github.com/reactjs/react-router/pull/3217
## [v2.0.1]
> March 9, 2016
- Fixed bug where transition hooks were not called on child routes of
parent's whose params changed but the child's did not. ([#3166])
- **Bugfix:** Call transition hooks on child routes of parents whose params
changed but the child's did not. ([#3166])
- **Minor:** Remove support for installing from source ([#3164])
[#3166][https://github.com/reactjs/react-router/pull/3166]
[v2.0.1]: https://github.com/reactjs/react-router/compare/v2.0.0...v2.0.1
[#3164]: https://github.com/reactjs/react-router/pull/3164
[#3166]: https://github.com/reactjs/react-router/pull/3166
[HEAD]: https://github.com/reactjs/react-router/compare/v2.0.0...HEAD
## [v2.0.0]
> Feb 10, 2016
- Add back basename support in `match` ([#3054])
- **Bugfix:** Add back basename support in `match` ([#3054])

@@ -26,5 +36,5 @@ [v2.0.0]: https://github.com/reactjs/react-router/compare/v2.0.0-rc6...v2.0.0

- **Breaking:** Removed default top-level `<Router>` export ([#2906])
- Use history.createLocation where possible ([#2910])
- Fix initial routing state after `match` ([#2965])
- Reduce stack size from matching routes ([#2923])
- **Bugfix:** Use history.createLocation where possible ([#2910])
- **Bugfix:** Fix initial routing state after `match` ([#2965])
- **Minor:** Reduce stack size from matching routes ([#2923])

@@ -31,0 +41,0 @@ [v2.0.0-rc6]: https://github.com/reactjs/react-router/compare/v2.0.0-rc5...v2.0.0-rc6

@@ -110,8 +110,15 @@ # API Reference

##### `to`
The path to link to, e.g. `/users/123`.
A [location descriptor](https://github.com/mjackson/history/blob/master/docs/Glossary.md#locationdescriptor). Usually this is a string or an object, with the following semantics:
##### `query`
* If it's a string it represents the absolute path to link to, e.g. `/users/123` (relative paths are not supported).
* If it's an object it can have four keys:
* `pathname`: A string representing the path to link to.
* `query`: An object of key:value pairs to be stringified.
* `hash`: A hash to put in the URL, e.g. `#a-hash`.
* `state`: State to persist to the `location`.
##### `query` **([Deprecated](https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#link-to-onenter-and-isactive-use-location-descriptors) see `to`)**
An object of key:value pairs to be stringified.
##### `hash`
##### `hash` **([Deprecated](https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#link-to-onenter-and-isactive-use-location-descriptors) see `to`)**
A hash to put in the URL, e.g. `#a-hash`.

@@ -121,3 +128,3 @@

##### `state`
##### `state` **([Deprecated](https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#link-to-onenter-and-isactive-use-location-descriptors) see `to`)**
State to persist to the `location`.

@@ -334,2 +341,7 @@

##### `onChange(prevState, nextState, replace, callback?)`
Called on routes when the location changes, but the route itself neither enters or leaves. For example, this will be called when a route's children change, or when the location query changes. It provides the previous router state, the next router state, and a function to redirect to another path. `this` will be the route instance that triggered the hook.
If `callback` is listed as a 4th argument, this hook will run asynchronously, and the transition will block until `callback` is called.
##### `onLeave()`

@@ -591,4 +603,11 @@ Called when a route is about to be exited.

It also pre-enhances the history with the
[useQueries](https://github.com/mjackson/history/blob/master/docs/QuerySupport.md)
and
[useBasename](https://github.com/mjackson/history/blob/master/docs/BasenameSupport.md)
enhancers from `history`
#### Example
```js
import createHashHistory from 'history/lib/createHashHistory'
const history = useRouterHistory(createHashHistory)({ queryKey: false })

@@ -627,3 +646,10 @@ ```

### `PropTypes`
TODO (Pull Requests Welcome)
The following objects are exposed as properties of the exported PropTypes object:
- `falsy`: Checks that a component does not have a prop
- `history`
- `location`
- `component`
- `components`
- `route`
- `routes`

@@ -630,0 +656,0 @@

@@ -27,4 +27,4 @@ # Component Lifecycle

|-----------|------------------------|
| App | `componentDidMount` |
| Home | `componentDidMount` |
| App | (2) `componentDidMount` |
| Home | (1) `componentDidMount` |
| Invoice | N/A |

@@ -37,5 +37,5 @@ | Account | N/A |

|-----------|------------------------|
| App | `componentWillReceiveProps`, `componentDidUpdate` |
| Home | `componentWillUnmount` |
| Invoice | `componentDidMount` |
| App | (1) `componentWillReceiveProps`, (4) `componentDidUpdate` |
| Home | (2) `componentWillUnmount` |
| Invoice | (3) `componentDidMount` |
| Account | N/A |

@@ -54,5 +54,5 @@

|-----------|------------------------|
| App | `componentWillReceiveProps`, `componentDidUpdate` |
| App | (1) `componentWillReceiveProps`, (4) `componentDidUpdate` |
| Home | N/A |
| Invoice | `componentWillReceiveProps`, `componentDidUpdate` |
| Invoice | (2) `componentWillReceiveProps`, (3) `componentDidUpdate` |
| Account | N/A |

@@ -67,6 +67,6 @@

|-----------|------------------------|
| App | `componentWillReceiveProps`, `componentDidUpdate` |
| App | (1) `componentWillReceiveProps`, (4) `componentDidUpdate` |
| Home | N/A |
| Invoice | `componentWillUnmount` |
| Account | `componentDidMount` |
| Invoice | (2) `componentWillUnmount` |
| Account | (3) `componentDidMount` |

@@ -73,0 +73,0 @@ ### Fetching Data

@@ -15,3 +15,3 @@ # Dynamic Routing

Coupled with a smart code splitting tool like [webpack](http://webpack.github.io/), a once tireless architecture is now simple and declarative.
Coupled with a smart code splitting tool like [webpack](http://webpack.github.io/), a once tiresome architecture is now simple and declarative.

@@ -18,0 +18,0 @@ ```js

@@ -92,4 +92,6 @@ # Histories

#### Should I use `hashHistory`?
Hash history works without configuring your server, so if you're just getting started, go ahead and use it. But, we don't recommend using it in production, every web app should aspire to use `browserHistory`.
Hash history works without configuring your server, so if you're just getting started, go ahead and use it. In general, though, production web applications should use `browserHistory` for the cleaner URLs, and for support for server-side rendering, which is impossible with `hashHistory`.
Additionally, as mentioned above, some older browsers do not support the HTML5 History API. If it's important to you to not use full page reloads for navigation on those older browsers, then you will also need to use `hashHistory`.
#### What is that `?_k=ckuvup` junk in the URL?

@@ -103,3 +105,3 @@ When a history transitions around your app with `push` or `replace`, it can store "location state" that doesn't show up in the URL on the new location, think of it a little bit like post data in an HTML form.

Its a bit different than the other two histories because you have to
It's a bit different than the other two histories because you have to
create one, it is this way to facilitate testing:

@@ -137,1 +139,40 @@

```
## Customize your history further
If you'd like to further customize the history options or use other
enhancers from
[history](https://github.com/mjackson/history/) you can use
`useRouterHistory`.
Be aware that `useRouterHistory` already pre-enhances your history
factory with the [useQueries](https://github.com/mjackson/history/blob/master/docs/QuerySupport.md) and [useBasename](https://github.com/mjackson/history/blob/master/docs/BasenameSupport.md) enhancers from `history`.
### Examples:
Defining a basename:
```js
import { useRouterHistory } from 'react-router'
import { createHistory } from 'history'
const history = useRouterHistory(createHistory)({
basename: '/base-path'
})
```
Using the
[useBeforeUnload](https://github.com/mjackson/history/blob/master/docs/ConfirmingNavigation.md)
enhancer:
```js
import { useRouterHistory } from 'react-router'
import { createHistory, useBeforeUnload } from 'history'
const history = useRouterHistory(useBeforeUnload(createHistory))()
history.listenBeforeUnload(function () {
return 'Are you sure you want to leave this page?'
})
```

@@ -68,3 +68,4 @@ # Index Routes and Index Links

const routes = [{
path: '/', component: App,
path: '/',
component: App,
indexRoute: { onEnter: (nextState, replace) => replace('/welcome') },

@@ -71,0 +72,0 @@ childRoutes: [

@@ -117,5 +117,7 @@ # Route Configuration

<Route path="about" component={About} />
<Route path="inbox" component={Inbox}>
{/* Use /messages/:id instead of messages/:id */}
<Route path="/messages/:id" component={Message} />
<Route path="inbox" component={Inbox} />
{/* Use /messages/:id instead of /inbox/messages/:id */}
<Route component={Inbox}>
<Route path="messages/:id" component={Message} />
</Route>

@@ -154,8 +156,11 @@ </Route>

<Route path="about" component={About} />
<Route path="inbox" component={Inbox}>
<Route path="/messages/:id" component={Message} />
{/* Redirect /inbox/messages/:id to /messages/:id */}
<Redirect from="messages/:id" to="/messages/:id" />
</Route>
<Route component={Inbox}>
<Route path="messages/:id" component={Message} />
</Route>
</Route>

@@ -189,24 +194,26 @@ </Router>

```js
const routes = [
{ path: '/',
component: App,
indexRoute: { component: Dashboard },
childRoutes: [
{ path: 'about', component: About },
{ path: 'inbox',
component: Inbox,
childRoutes: [
{ path: '/messages/:id', component: Message },
{ path: 'messages/:id',
onEnter: function (nextState, replace) {
replace('/messages/' + nextState.params.id)
}
}
]
}
]
}
]
const routes = {
path: '/',
component: App,
indexRoute: { component: Dashboard },
childRoutes: [
{ path: 'about', component: About },
{
path: 'inbox',
component: Inbox,
childRoutes: [{
path: 'messages/:id',
onEnter: ({ params }, replace) => replace(`/messages/${params.id}`)
}]
},
{
component: Inbox,
childRoutes: [{
path: 'messages/:id', component: Message
}]
}
]
}
render(<Router routes={routes} />, document.body)
```

@@ -61,3 +61,3 @@ # Server Rendering

## History singletons
## History Singletons

@@ -64,0 +64,0 @@ Because the server has no DOM available, the history singletons (`browserHistory` and `hashHistory`) do not function on the server. Instead, they will simply return `undefined`.

@@ -19,4 +19,5 @@ React Router Testing With Jest

- `"react-addons-test-utils": "^0.14.0"`
- `"jest-cli": "^0.5.10"`
- `"babel-jest": "^5.3.0"`
- `"jest": "^0.1.40"`
- `"jest-cli": "^0.10.0"`
- `"babel-jest": "^10.0.1"`

@@ -110,13 +111,10 @@ Also, make sure you are using node 4.x

// NOTE: cannot use es6 modules syntax because
// jest.dontMock & jest.autoMockOff()
// do not understand ES6 modules yet
jest.unmock('../BasicPage')
jest.dontMock('../BasicPage')
import TestUtils from 'react-addons-test-utils'
import ReactDOM from 'react-dom'
import React from 'react'
import BasicPage from '../BasicPage'
describe('BasicPage', function() {
let BasicPage = require('../BasicPage')
let TestUtils = require('react-addons-test-utils')
let ReactDOM = require('react-dom')
let React = require('react')

@@ -123,0 +121,0 @@ it('renders the Login button if not logged in', function() {

# Troubleshooting
### `this.context.router` is `undefined`
You will need to add the router context type to your component so the router will be available to you.
You need to add `router` to your component's `contextTypes` to make the router object available to you.
```js
contextTypes: {
router: React.PropTypes.func.isRequired
router: React.PropTypes.object.isRequired
}
```
### How to get previous path?
### Getting the previous location
```js

@@ -31,4 +34,5 @@ <Route component={App}>

### Component won't render
Route matching happens in the order they are defined (think `if/elseif` statement). In this case, `/about/me` will show the `UserPage` component because `/about/me` matches the first route. You need to reorder your routes if this happens.
`About` will never be reachable:
Route matching happens in the order they are defined (think `if/elseif` statement). In this case, `/about/me` will show the `<UserPage>` component because `/about/me` matches the first route. You need to reorder your routes if this happens. `<About>` will never be reachable:
```js

@@ -41,3 +45,4 @@ <Router>

`About` is now be reachable:
`About` is now reachable:
```js

@@ -49,1 +54,22 @@ <Router>

```
### "Required prop was not specified" on route components
You might see this if you are using `React.cloneElement` to inject props into route components from their parents. If you see this, remove `isRequired` from `propTypes` for those props. This happens because React validates `propTypes` when the element is created rather than when it is mounted. For more details, see [facebook/react#4494](https://github.com/facebook/react/issues/4494#issuecomment-125068868).
You should generally attempt to use this pattern as sparingly as possible. In general, it's best practice to minimize data dependencies between route components.
### `<noscript>` with server-side rendering and async routes
Use `match({ history, routes })` on the client side. See [the server rendering guide](guides/ServerRendering.md#async-routes).
### Passing additional values into route components
There are multiple ways to do this depending on what you want to do. You can:
- Define additional values on `<Route>` or the plain route. This will make those values available on `this.props.route` on route components.
- Pass in a `createElement` handler to `<Router>` or `<RouterContext>`. This will allow you to inject additional props into route elements at creation time.
- Define a top-level component above `<Router>` or `<RouterContext>` that exports additional values via `getChildContext`, then access them via context from rendered components.

@@ -16,3 +16,3 @@ 'use strict';

/**
* Returns an object of { leaveRoutes, enterRoutes } determined by
* Returns an object of { leaveRoutes, changeRoutes, enterRoutes } determined by
* the change from prevState to nextState. We leave routes if either

@@ -25,2 +25,5 @@ * 1) they are not in the next state or 2) they are in the next state

* from the top of the tree we're entering down to the leaf route.
*
* changeRoutes are any routes that didn't leave or enter during
* the transition.
*/

@@ -32,2 +35,3 @@ function computeChangedRoutes(prevState, nextState) {

var leaveRoutes = undefined,
changeRoutes = undefined,
enterRoutes = undefined;

@@ -50,4 +54,10 @@ if (prevRoutes) {

enterRoutes = nextRoutes.filter(function (route) {
return prevRoutes.indexOf(route) === -1 || leaveRoutes.indexOf(route) !== -1;
enterRoutes = [];
changeRoutes = [];
nextRoutes.forEach(function (route) {
var isNew = prevRoutes.indexOf(route) === -1;
var paramsChanged = leaveRoutes.indexOf(route) !== -1;
if (isNew || paramsChanged) enterRoutes.push(route);else changeRoutes.push(route);
});

@@ -57,2 +67,3 @@ })();

leaveRoutes = [];
changeRoutes = [];
enterRoutes = nextRoutes;

@@ -63,2 +74,3 @@ }

leaveRoutes: leaveRoutes,
changeRoutes: changeRoutes,
enterRoutes: enterRoutes

@@ -65,0 +77,0 @@ };

@@ -10,3 +10,3 @@ 'use strict';

import computeChangedRoutes from './computeChangedRoutes';
import { runEnterHooks, runLeaveHooks } from './TransitionUtils';
import { runEnterHooks, runChangeHooks, runLeaveHooks } from './TransitionUtils';
import { default as _isActive } from './isActive';

@@ -18,3 +18,3 @@ import getComponents from './getComponents';

for (var p in object) {
if (object.hasOwnProperty(p)) return true;
if (Object.prototype.hasOwnProperty.call(object, p)) return true;
}return false;

@@ -71,2 +71,3 @@ }

var leaveRoutes = _computeChangedRoutes.leaveRoutes;
var changeRoutes = _computeChangedRoutes.changeRoutes;
var enterRoutes = _computeChangedRoutes.enterRoutes;

@@ -81,20 +82,27 @@

runEnterHooks(enterRoutes, nextState, function (error, redirectInfo) {
if (error) {
callback(error);
} else if (redirectInfo) {
callback(null, createLocationFromRedirectInfo(redirectInfo));
} else {
// TODO: Fetch components after state is updated.
getComponents(nextState, function (error, components) {
if (error) {
callback(error);
} else {
// TODO: Make match a pure function and have some other API
// for "match and update state".
callback(null, null, state = _extends({}, nextState, { components: components }));
}
});
}
// change and enter hooks are run in series
runChangeHooks(changeRoutes, state, nextState, function (error, redirectInfo) {
if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);
runEnterHooks(enterRoutes, nextState, finishEnterHooks);
});
function finishEnterHooks(error, redirectInfo) {
if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);
// TODO: Fetch components after state is updated.
getComponents(nextState, function (error, components) {
if (error) {
callback(error);
} else {
// TODO: Make match a pure function and have some other API
// for "match and update state".
callback(null, null, state = _extends({}, nextState, { components: components }));
}
});
}
function handleErrorOrRedirect(error, redirectInfo) {
if (error) callback(error);else callback(null, createLocationFromRedirectInfo(redirectInfo));
}
}

@@ -110,3 +118,3 @@

var RouteHooks = {};
var RouteHooks = Object.create(null);

@@ -113,0 +121,0 @@ function getRouteHooksForRoutes(routes) {

@@ -17,6 +17,10 @@ 'use strict';

for (var p in params) {
if (params.hasOwnProperty(p) && paramNames.indexOf(p) !== -1) routeParams[p] = params[p];
}return routeParams;
if (Object.prototype.hasOwnProperty.call(params, p) && paramNames.indexOf(p) !== -1) {
routeParams[p] = params[p];
}
}
return routeParams;
}
export default getRouteParams;

@@ -19,3 +19,3 @@ 'use strict';

for (var p in a) {
if (!a.hasOwnProperty(p)) {
if (!Object.prototype.hasOwnProperty.call(a, p)) {
continue;

@@ -28,3 +28,3 @@ }

}
} else if (!b.hasOwnProperty(p)) {
} else if (!Object.prototype.hasOwnProperty.call(b, p)) {
return false;

@@ -31,0 +31,0 @@ } else if (!deepEqual(a[p], b[p])) {

@@ -25,5 +25,6 @@ 'use strict';

// TODO: De-duplicate against hasAnyProperties in createTransitionManager.
function isEmptyObject(object) {
for (var p in object) {
if (object.hasOwnProperty(p)) return false;
if (Object.prototype.hasOwnProperty.call(object, p)) return false;
}return true;

@@ -30,0 +31,0 @@ }

@@ -42,4 +42,4 @@ 'use strict';

(function () {
var pathless = route.childRoutes.filter(function (obj) {
return !obj.hasOwnProperty('path');
var pathless = route.childRoutes.filter(function (childRoute) {
return !childRoute.path;
});

@@ -46,0 +46,0 @@

@@ -14,6 +14,2 @@ 'use strict';

function escapeSource(string) {
return escapeRegExp(string).replace(/\/+/g, '/+');
}
function _compilePattern(pattern) {

@@ -30,13 +26,13 @@ var regexpSource = '';

tokens.push(pattern.slice(lastIndex, match.index));
regexpSource += escapeSource(pattern.slice(lastIndex, match.index));
regexpSource += escapeRegExp(pattern.slice(lastIndex, match.index));
}
if (match[1]) {
regexpSource += '([^/?#]+)';
regexpSource += '([^/]+)';
paramNames.push(match[1]);
} else if (match[0] === '**') {
regexpSource += '([\\s\\S]*)';
regexpSource += '(.*)';
paramNames.push('splat');
} else if (match[0] === '*') {
regexpSource += '([\\s\\S]*?)';
regexpSource += '(.*?)';
paramNames.push('splat');

@@ -56,3 +52,3 @@ } else if (match[0] === '(') {

tokens.push(pattern.slice(lastIndex, pattern.length));
regexpSource += escapeSource(pattern.slice(lastIndex, pattern.length));
regexpSource += escapeRegExp(pattern.slice(lastIndex, pattern.length));
}

@@ -97,9 +93,6 @@

function matchPattern(pattern, pathname) {
// Make leading slashes consistent between pattern and pathname.
// Ensure pattern starts with leading slash for consistency with pathname.
if (pattern.charAt(0) !== '/') {
pattern = '/' + pattern;
}
if (pathname.charAt(0) !== '/') {
pathname = '/' + pathname;
}

@@ -112,13 +105,12 @@ var _compilePattern2 = compilePattern(pattern);

regexpSource += '/*'; // Capture path separators
if (pattern.charAt(pattern.length - 1) !== '/') {
regexpSource += '/?'; // Allow optional path separator at end.
}
// Special-case patterns like '*' for catch-all routes.
var captureRemaining = tokens[tokens.length - 1] !== '*';
if (captureRemaining) {
// This will match newlines in the remaining path.
regexpSource += '([\\s\\S]*?)';
if (tokens[tokens.length - 1] === '*') {
regexpSource += '$';
}
var match = pathname.match(new RegExp('^' + regexpSource + '$', 'i'));
var match = pathname.match(new RegExp('^' + regexpSource, 'i'));

@@ -128,10 +120,9 @@ var remainingPathname = undefined,

if (match != null) {
if (captureRemaining) {
remainingPathname = match.pop();
var matchedPath = match[0].substr(0, match[0].length - remainingPathname.length);
var matchedPath = match[0];
remainingPathname = pathname.substr(matchedPath.length);
// If we didn't match the entire pathname, then make sure that the match
// we did get ends at a path separator (potentially the one we added
// above at the beginning of the path, if the actual match was empty).
if (remainingPathname && matchedPath.charAt(matchedPath.length - 1) !== '/') {
if (remainingPathname) {
// Require that the match ends at a path separator, if we didn't match
// the full path, so any remaining pathname is a new path segment.
if (matchedPath.charAt(matchedPath.length - 1) !== '/') {
return {

@@ -143,9 +134,10 @@ remainingPathname: null,

}
} else {
// If this matched at all, then the match was the entire pathname.
remainingPathname = '';
// If there is a remaining pathname, treat the path separator as part of
// the remaining pathname for properly continuing the match.
remainingPathname = '/' + remainingPathname;
}
paramValues = match.slice(1).map(function (v) {
return v != null ? decodeURIComponent(v) : v;
return v && decodeURIComponent(v);
});

@@ -152,0 +144,0 @@ } else {

@@ -104,3 +104,3 @@ 'use strict';

for (var prop in element) {
if (element.hasOwnProperty(prop)) props[prop] = element[prop];
if (Object.prototype.hasOwnProperty.call(element, prop)) props[prop] = element[prop];
}

@@ -113,3 +113,3 @@ }

for (var key in components) {
if (components.hasOwnProperty(key)) {
if (Object.prototype.hasOwnProperty.call(components, key)) {
// Pass through the key as a prop to createElement to allow

@@ -116,0 +116,0 @@ // custom createElement functions to know which named component

'use strict';
export default routerWarning;
export { _resetWarned };
import warning from 'warning';
var warned = {};
function routerWarning(falseToWarn, message) {
// Only issue deprecation warnings once.
if (message.indexOf('deprecated') !== -1) {
if (warned[message]) {
return;
}
warned[message] = true;
}
message = '[react-router] ' + message;

@@ -13,2 +26,6 @@

process.env.NODE_ENV !== 'production' ? warning.apply(undefined, [falseToWarn, message].concat(args)) : undefined;
}
function _resetWarned() {
warned = {};
}

@@ -24,3 +24,3 @@ 'use strict';

for (var propName in propTypes) {
if (propTypes.hasOwnProperty(propName)) {
if (Object.prototype.hasOwnProperty.call(propTypes, propName)) {
var error = propTypes[propName](props, propName, componentName);

@@ -27,0 +27,0 @@

'use strict';
export { runEnterHooks };
export { runChangeHooks };
export { runLeaveHooks };

@@ -8,7 +9,12 @@ import { loopAsync } from './AsyncUtils';

function createEnterHook(hook, route) {
return function (a, b, callback) {
hook.apply(route, arguments);
function createTransitionHook(hook, route, asyncArity) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (hook.length < 3) {
hook.apply(route, args);
if (hook.length < asyncArity) {
var callback = args[args.length - 1];
// Assume hook executes synchronously and

@@ -23,3 +29,3 @@ // automatically call the callback.

return routes.reduce(function (hooks, route) {
if (route.onEnter) hooks.push(createEnterHook(route.onEnter, route));
if (route.onEnter) hooks.push(createTransitionHook(route.onEnter, route, 3));

@@ -30,17 +36,11 @@ return hooks;

/**
* Runs all onEnter hooks in the given array of routes in order
* with onEnter(nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function getChangeHooks(routes) {
return routes.reduce(function (hooks, route) {
if (route.onChange) hooks.push(createTransitionHook(route.onChange, route, 4));
return hooks;
}, []);
}
function runEnterHooks(routes, nextState, callback) {
var hooks = getEnterHooks(routes);
if (!hooks.length) {
function runTransitionHooks(length, iter, callback) {
if (!length) {
callback();

@@ -66,4 +66,4 @@ return;

loopAsync(hooks.length, function (index, next, done) {
hooks[index](nextState, replace, function (error) {
loopAsync(length, function (index, next, done) {
iter(index, replace, function (error) {
if (error || redirectInfo) {

@@ -79,2 +79,38 @@ done(error, redirectInfo); // No need to continue.

/**
* Runs all onEnter hooks in the given array of routes in order
* with onEnter(nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function runEnterHooks(routes, nextState, callback) {
var hooks = getEnterHooks(routes);
return runTransitionHooks(hooks.length, function (index, replace, next) {
hooks[index](nextState, replace, next);
}, callback);
}
/**
* Runs all onChange hooks in the given array of routes in order
* with onChange(prevState, nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function runChangeHooks(routes, state, nextState, callback) {
var hooks = getChangeHooks(routes);
return runTransitionHooks(hooks.length, function (index, replace, next) {
hooks[index](state, nextState, replace, next);
}, callback);
}
/**
* Runs all onLeave hooks in the given array of routes in order.

@@ -81,0 +117,0 @@ */

@@ -6,3 +6,3 @@ <!--

======================
Questions will be closed without comment. Here are some resources to get help:
Questions *might* be closed without comment, sometimes we just don't have time for them. Before you ask one, here are some resources to get help first:

@@ -9,0 +9,0 @@ - Do the tutorial: https://github.com/reactjs/react-router-tutorial

@@ -18,3 +18,3 @@ 'use strict';

/**
* Returns an object of { leaveRoutes, enterRoutes } determined by
* Returns an object of { leaveRoutes, changeRoutes, enterRoutes } determined by
* the change from prevState to nextState. We leave routes if either

@@ -27,2 +27,5 @@ * 1) they are not in the next state or 2) they are in the next state

* from the top of the tree we're entering down to the leaf route.
*
* changeRoutes are any routes that didn't leave or enter during
* the transition.
*/

@@ -34,2 +37,3 @@ function computeChangedRoutes(prevState, nextState) {

var leaveRoutes = undefined,
changeRoutes = undefined,
enterRoutes = undefined;

@@ -52,4 +56,10 @@ if (prevRoutes) {

enterRoutes = nextRoutes.filter(function (route) {
return prevRoutes.indexOf(route) === -1 || leaveRoutes.indexOf(route) !== -1;
enterRoutes = [];
changeRoutes = [];
nextRoutes.forEach(function (route) {
var isNew = prevRoutes.indexOf(route) === -1;
var paramsChanged = leaveRoutes.indexOf(route) !== -1;
if (isNew || paramsChanged) enterRoutes.push(route);else changeRoutes.push(route);
});

@@ -59,2 +69,3 @@ })();

leaveRoutes = [];
changeRoutes = [];
enterRoutes = nextRoutes;

@@ -65,2 +76,3 @@ }

leaveRoutes: leaveRoutes,
changeRoutes: changeRoutes,
enterRoutes: enterRoutes

@@ -67,0 +79,0 @@ };

@@ -37,3 +37,3 @@ 'use strict';

for (var p in object) {
if (object.hasOwnProperty(p)) return true;
if (Object.prototype.hasOwnProperty.call(object, p)) return true;
}return false;

@@ -91,2 +91,3 @@ }

var leaveRoutes = _computeChangedRoutes.leaveRoutes;
var changeRoutes = _computeChangedRoutes.changeRoutes;
var enterRoutes = _computeChangedRoutes.enterRoutes;

@@ -101,20 +102,27 @@

_TransitionUtils.runEnterHooks(enterRoutes, nextState, function (error, redirectInfo) {
if (error) {
callback(error);
} else if (redirectInfo) {
callback(null, createLocationFromRedirectInfo(redirectInfo));
} else {
// TODO: Fetch components after state is updated.
_getComponents2['default'](nextState, function (error, components) {
if (error) {
callback(error);
} else {
// TODO: Make match a pure function and have some other API
// for "match and update state".
callback(null, null, state = _extends({}, nextState, { components: components }));
}
});
}
// change and enter hooks are run in series
_TransitionUtils.runChangeHooks(changeRoutes, state, nextState, function (error, redirectInfo) {
if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);
_TransitionUtils.runEnterHooks(enterRoutes, nextState, finishEnterHooks);
});
function finishEnterHooks(error, redirectInfo) {
if (error || redirectInfo) return handleErrorOrRedirect(error, redirectInfo);
// TODO: Fetch components after state is updated.
_getComponents2['default'](nextState, function (error, components) {
if (error) {
callback(error);
} else {
// TODO: Make match a pure function and have some other API
// for "match and update state".
callback(null, null, state = _extends({}, nextState, { components: components }));
}
});
}
function handleErrorOrRedirect(error, redirectInfo) {
if (error) callback(error);else callback(null, createLocationFromRedirectInfo(redirectInfo));
}
}

@@ -130,3 +138,3 @@

var RouteHooks = {};
var RouteHooks = Object.create(null);

@@ -133,0 +141,0 @@ function getRouteHooksForRoutes(routes) {

@@ -19,4 +19,8 @@ 'use strict';

for (var p in params) {
if (params.hasOwnProperty(p) && paramNames.indexOf(p) !== -1) routeParams[p] = params[p];
}return routeParams;
if (Object.prototype.hasOwnProperty.call(params, p) && paramNames.indexOf(p) !== -1) {
routeParams[p] = params[p];
}
}
return routeParams;
}

@@ -23,0 +27,0 @@

@@ -21,3 +21,3 @@ 'use strict';

for (var p in a) {
if (!a.hasOwnProperty(p)) {
if (!Object.prototype.hasOwnProperty.call(a, p)) {
continue;

@@ -30,3 +30,3 @@ }

}
} else if (!b.hasOwnProperty(p)) {
} else if (!Object.prototype.hasOwnProperty.call(b, p)) {
return false;

@@ -33,0 +33,0 @@ } else if (!deepEqual(a[p], b[p])) {

@@ -34,5 +34,6 @@ 'use strict';

// TODO: De-duplicate against hasAnyProperties in createTransitionManager.
function isEmptyObject(object) {
for (var p in object) {
if (object.hasOwnProperty(p)) return false;
if (Object.prototype.hasOwnProperty.call(object, p)) return false;
}return true;

@@ -39,0 +40,0 @@ }

@@ -51,4 +51,4 @@ 'use strict';

(function () {
var pathless = route.childRoutes.filter(function (obj) {
return !obj.hasOwnProperty('path');
var pathless = route.childRoutes.filter(function (childRoute) {
return !childRoute.path;
});

@@ -55,0 +55,0 @@

@@ -20,6 +20,2 @@ 'use strict';

function escapeSource(string) {
return escapeRegExp(string).replace(/\/+/g, '/+');
}
function _compilePattern(pattern) {

@@ -36,13 +32,13 @@ var regexpSource = '';

tokens.push(pattern.slice(lastIndex, match.index));
regexpSource += escapeSource(pattern.slice(lastIndex, match.index));
regexpSource += escapeRegExp(pattern.slice(lastIndex, match.index));
}
if (match[1]) {
regexpSource += '([^/?#]+)';
regexpSource += '([^/]+)';
paramNames.push(match[1]);
} else if (match[0] === '**') {
regexpSource += '([\\s\\S]*)';
regexpSource += '(.*)';
paramNames.push('splat');
} else if (match[0] === '*') {
regexpSource += '([\\s\\S]*?)';
regexpSource += '(.*?)';
paramNames.push('splat');

@@ -62,3 +58,3 @@ } else if (match[0] === '(') {

tokens.push(pattern.slice(lastIndex, pattern.length));
regexpSource += escapeSource(pattern.slice(lastIndex, pattern.length));
regexpSource += escapeRegExp(pattern.slice(lastIndex, pattern.length));
}

@@ -103,9 +99,6 @@

function matchPattern(pattern, pathname) {
// Make leading slashes consistent between pattern and pathname.
// Ensure pattern starts with leading slash for consistency with pathname.
if (pattern.charAt(0) !== '/') {
pattern = '/' + pattern;
}
if (pathname.charAt(0) !== '/') {
pathname = '/' + pathname;
}

@@ -118,13 +111,12 @@ var _compilePattern2 = compilePattern(pattern);

regexpSource += '/*'; // Capture path separators
if (pattern.charAt(pattern.length - 1) !== '/') {
regexpSource += '/?'; // Allow optional path separator at end.
}
// Special-case patterns like '*' for catch-all routes.
var captureRemaining = tokens[tokens.length - 1] !== '*';
if (captureRemaining) {
// This will match newlines in the remaining path.
regexpSource += '([\\s\\S]*?)';
if (tokens[tokens.length - 1] === '*') {
regexpSource += '$';
}
var match = pathname.match(new RegExp('^' + regexpSource + '$', 'i'));
var match = pathname.match(new RegExp('^' + regexpSource, 'i'));

@@ -134,10 +126,9 @@ var remainingPathname = undefined,

if (match != null) {
if (captureRemaining) {
remainingPathname = match.pop();
var matchedPath = match[0].substr(0, match[0].length - remainingPathname.length);
var matchedPath = match[0];
remainingPathname = pathname.substr(matchedPath.length);
// If we didn't match the entire pathname, then make sure that the match
// we did get ends at a path separator (potentially the one we added
// above at the beginning of the path, if the actual match was empty).
if (remainingPathname && matchedPath.charAt(matchedPath.length - 1) !== '/') {
if (remainingPathname) {
// Require that the match ends at a path separator, if we didn't match
// the full path, so any remaining pathname is a new path segment.
if (matchedPath.charAt(matchedPath.length - 1) !== '/') {
return {

@@ -149,9 +140,10 @@ remainingPathname: null,

}
} else {
// If this matched at all, then the match was the entire pathname.
remainingPathname = '';
// If there is a remaining pathname, treat the path separator as part of
// the remaining pathname for properly continuing the match.
remainingPathname = '/' + remainingPathname;
}
paramValues = match.slice(1).map(function (v) {
return v != null ? decodeURIComponent(v) : v;
return v && decodeURIComponent(v);
});

@@ -158,0 +150,0 @@ } else {

@@ -122,3 +122,3 @@ 'use strict';

for (var prop in element) {
if (element.hasOwnProperty(prop)) props[prop] = element[prop];
if (Object.prototype.hasOwnProperty.call(element, prop)) props[prop] = element[prop];
}

@@ -131,3 +131,3 @@ }

for (var key in components) {
if (components.hasOwnProperty(key)) {
if (Object.prototype.hasOwnProperty.call(components, key)) {
// Pass through the key as a prop to createElement to allow

@@ -134,0 +134,0 @@ // custom createElement functions to know which named component

@@ -5,2 +5,3 @@ 'use strict';

exports['default'] = routerWarning;
exports._resetWarned = _resetWarned;

@@ -13,3 +14,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var warned = {};
function routerWarning(falseToWarn, message) {
// Only issue deprecation warnings once.
if (message.indexOf('deprecated') !== -1) {
if (warned[message]) {
return;
}
warned[message] = true;
}
message = '[react-router] ' + message;

@@ -24,2 +36,4 @@

module.exports = exports['default'];
function _resetWarned() {
warned = {};
}

@@ -34,3 +34,3 @@ 'use strict';

for (var propName in propTypes) {
if (propTypes.hasOwnProperty(propName)) {
if (Object.prototype.hasOwnProperty.call(propTypes, propName)) {
var error = propTypes[propName](props, propName, componentName);

@@ -37,0 +37,0 @@

@@ -5,2 +5,3 @@ 'use strict';

exports.runEnterHooks = runEnterHooks;
exports.runChangeHooks = runChangeHooks;
exports.runLeaveHooks = runLeaveHooks;

@@ -16,7 +17,12 @@

function createEnterHook(hook, route) {
return function (a, b, callback) {
hook.apply(route, arguments);
function createTransitionHook(hook, route, asyncArity) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (hook.length < 3) {
hook.apply(route, args);
if (hook.length < asyncArity) {
var callback = args[args.length - 1];
// Assume hook executes synchronously and

@@ -31,3 +37,3 @@ // automatically call the callback.

return routes.reduce(function (hooks, route) {
if (route.onEnter) hooks.push(createEnterHook(route.onEnter, route));
if (route.onEnter) hooks.push(createTransitionHook(route.onEnter, route, 3));

@@ -38,17 +44,11 @@ return hooks;

/**
* Runs all onEnter hooks in the given array of routes in order
* with onEnter(nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function getChangeHooks(routes) {
return routes.reduce(function (hooks, route) {
if (route.onChange) hooks.push(createTransitionHook(route.onChange, route, 4));
return hooks;
}, []);
}
function runEnterHooks(routes, nextState, callback) {
var hooks = getEnterHooks(routes);
if (!hooks.length) {
function runTransitionHooks(length, iter, callback) {
if (!length) {
callback();

@@ -74,4 +74,4 @@ return;

_AsyncUtils.loopAsync(hooks.length, function (index, next, done) {
hooks[index](nextState, replace, function (error) {
_AsyncUtils.loopAsync(length, function (index, next, done) {
iter(index, replace, function (error) {
if (error || redirectInfo) {

@@ -87,2 +87,38 @@ done(error, redirectInfo); // No need to continue.

/**
* Runs all onEnter hooks in the given array of routes in order
* with onEnter(nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function runEnterHooks(routes, nextState, callback) {
var hooks = getEnterHooks(routes);
return runTransitionHooks(hooks.length, function (index, replace, next) {
hooks[index](nextState, replace, next);
}, callback);
}
/**
* Runs all onChange hooks in the given array of routes in order
* with onChange(prevState, nextState, replace, callback) and calls
* callback(error, redirectInfo) when finished. The first hook
* to use replace short-circuits the loop.
*
* If a hook needs to run asynchronously, it may use the callback
* function. However, doing so will cause the transition to pause,
* which could lead to a non-responsive UI if the hook is slow.
*/
function runChangeHooks(routes, state, nextState, callback) {
var hooks = getChangeHooks(routes);
return runTransitionHooks(hooks.length, function (index, replace, next) {
hooks[index](state, nextState, replace, next);
}, callback);
}
/**
* Runs all onLeave hooks in the given array of routes in order.

@@ -89,0 +125,0 @@ */

{
"name": "react-router",
"version": "2.0.1",
"version": "2.1.0",
"description": "A complete routing library for React.js",

@@ -10,3 +10,2 @@ "files": [

"lib",
"modules/*.js",
"umd"

@@ -23,3 +22,3 @@ ],

"build-es6": "rimraf es6 && babel ./modules -d es6 --blacklist=es6.modules --ignore '__tests__'",
"build-umd": "NODE_ENV=production webpack modules/index.js umd/ReactRouter.js",
"build-umd": "NODE_ENV=development webpack modules/index.js umd/ReactRouter.js",
"build-min": "NODE_ENV=production webpack -p modules/index.js umd/ReactRouter.min.js",

@@ -38,43 +37,43 @@ "lint": "eslint modules examples",

"dependencies": {
"history": "^2.0.0",
"invariant": "^2.0.0",
"warning": "^2.0.0"
"history": "^2.0.1",
"invariant": "^2.2.1",
"warning": "^2.1.0"
},
"devDependencies": {
"babel": "^5.4.7",
"babel-core": "^5.4.7",
"babel-eslint": "^4.1.6",
"babel-loader": "^5.0.0",
"babel": "^5.8.38",
"babel-core": "^5.8.38",
"babel-eslint": "^4.1.8",
"babel-loader": "^5.4.0",
"babel-plugin-dev-expression": "^0.1.0",
"bundle-loader": "^0.5.2",
"bundle-loader": "^0.5.4",
"codecov.io": "^0.1.6",
"coveralls": "^2.11.4",
"css-loader": "^0.19.0",
"eslint": "^1.7.3",
"eslint-config-rackt": "^1.1.0",
"eslint-plugin-react": "^3.6.3",
"expect": "^1.12.0",
"express": "^4.13.3",
"coveralls": "^2.11.9",
"css-loader": "^0.23.1",
"eslint": "^1.10.3",
"eslint-config-rackt": "^1.1.1",
"eslint-plugin-react": "^3.16.1",
"expect": "^1.16.0",
"express": "^4.13.4",
"express-urlrewrite": "^1.2.0",
"gzip-size": "^3.0.0",
"isparta-loader": "^1.0.0",
"karma": "^0.13.13",
"karma-browserstack-launcher": "^0.1.4",
"karma-chrome-launcher": "^0.2.0",
"karma-coverage": "^0.5.3",
"karma-mocha": "^0.2.0",
"karma-mocha-reporter": "^1.1.1",
"karma-sourcemap-loader": "^0.3.5",
"karma": "^0.13.22",
"karma-browserstack-launcher": "^0.1.10",
"karma-chrome-launcher": "^0.2.3",
"karma-coverage": "^0.5.5",
"karma-mocha": "^0.2.2",
"karma-mocha-reporter": "^2.0.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^1.7.0",
"mocha": "^2.0.1",
"pretty-bytes": "^2.0.1",
"qs": "^4.0.0",
"react": "^0.14.0",
"react-addons-css-transition-group": "^0.14.0",
"react-addons-test-utils": "0.14.0",
"react-dom": "^0.14.0",
"rimraf": "^2.4.3",
"style-loader": "^0.12.4",
"webpack": "^1.4.13",
"webpack-dev-middleware": "^1.2.0"
"mocha": "^2.4.5",
"pretty-bytes": "^3.0.1",
"qs": "^6.1.0",
"react": "^15.0.0",
"react-addons-css-transition-group": "^15.0.0",
"react-addons-test-utils": "^15.0.0",
"react-dom": "^15.0.0",
"rimraf": "^2.5.2",
"style-loader": "^0.13.1",
"webpack": "^1.12.14",
"webpack-dev-middleware": "^1.6.1"
},

@@ -81,0 +80,0 @@ "tags": [

@@ -12,7 +12,8 @@ # react-router [![Travis][build-badge]][build] [![npm package][npm-badge]][npm]

- [Tutorial - Do This First!](https://github.com/reactjs/react-router-tutorial)
- [Guides and API Docs](https://github.com/reactjs/react-router/tree/master/docs)
- [Change Log](/CHANGES.md)
- [Tutorial – do this first!](https://github.com/reactjs/react-router-tutorial)
- [Guides and API docs](https://github.com/reactjs/react-router/tree/master/docs)
- [Troubleshooting guide](https://github.com/reactjs/react-router/blob/master/docs/Troubleshooting.md)
- [Changelog](/CHANGES.md)
- [Stack Overflow](http://stackoverflow.com/questions/tagged/react-router)
- [Codepen Boilerplate](http://codepen.io/anon/pen/xwQZdy?editors=001)
- [CodePen boilerplate](http://codepen.io/anon/pen/xwQZdy?editors=001)
Please use for bug reports

@@ -19,0 +20,0 @@

@@ -1,2 +0,2 @@

!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.ReactRouter=t(require("react")):e.ReactRouter=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(37),a=r(o);t.Router=a["default"];var u=n(18),i=r(u);t.Link=i["default"];var s=n(31),c=r(s);t.IndexLink=c["default"];var f=n(32),l=r(f);t.IndexRedirect=l["default"];var d=n(33),p=r(d);t.IndexRoute=p["default"];var h=n(19),v=r(h);t.Redirect=v["default"];var y=n(35),g=r(y);t.Route=g["default"];var m=n(30),_=r(m);t.History=_["default"];var P=n(34),O=r(P);t.Lifecycle=O["default"];var R=n(36),x=r(R);t.RouteContext=x["default"];var w=n(48),b=r(w);t.useRoutes=b["default"];var M=n(5);t.createRoutes=M.createRoutes;var E=n(13),j=r(E);t.RouterContext=j["default"];var S=n(38),A=r(S);t.RoutingContext=A["default"];var C=n(6),k=r(C);t.PropTypes=k["default"];var T=n(46),H=r(T);t.match=H["default"];var L=n(24),q=r(L);t.useRouterHistory=q["default"];var U=n(8);t.formatPattern=U.formatPattern;var N=n(40),B=r(N);t.browserHistory=B["default"];var I=n(44),D=r(I);t.hashHistory=D["default"];var F=n(21),W=r(F);t.createMemoryHistory=W["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){t="[react-router] "+t;for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o]}t.__esModule=!0,t["default"]=o;var a=n(4);r(a);e.exports=t["default"]},function(t,n){t.exports=e},function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,u,i){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,u,i],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}};e.exports=r},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return null==e||p["default"].isValidElement(e)}function a(e){return o(e)||Array.isArray(e)&&e.every(o)}function u(e,t,n){e=e||"UnknownComponent";for(var r in t)if(t.hasOwnProperty(r)){var o=t[r](n,r,e);o instanceof Error}}function i(e,t){return l({},e,t)}function s(e){var t=e.type,n=i(t.defaultProps,e.props);if(t.propTypes&&u(t.displayName||t.name,t.propTypes,n),n.children){var r=c(n.children,n);r.length&&(n.childRoutes=r),delete n.children}return n}function c(e,t){var n=[];return p["default"].Children.forEach(e,function(e){if(p["default"].isValidElement(e))if(e.type.createRouteFromReactElement){var r=e.type.createRouteFromReactElement(e,t);r&&n.push(r)}else n.push(s(e))}),n}function f(e){return a(e)?e=c(e):e&&!Array.isArray(e)&&(e=[e]),e}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.isReactChildren=a,t.createRouteFromReactElement=s,t.createRoutesFromReactChildren=c,t.createRoutes=f;var d=n(2),p=r(d),h=n(1);r(h)},function(e,t,n){"use strict";function r(e,t,n){return e[t]?new Error("<"+n+'> should not have a "'+t+'" prop'):void 0}t.__esModule=!0,t.falsy=r;var o=n(2),a=o.PropTypes.func,u=o.PropTypes.object,i=o.PropTypes.arrayOf,s=o.PropTypes.oneOfType,c=o.PropTypes.element,f=o.PropTypes.shape,l=o.PropTypes.string,d=f({listen:a.isRequired,pushState:a.isRequired,replaceState:a.isRequired,go:a.isRequired});t.history=d;var p=f({pathname:l.isRequired,search:l.isRequired,state:u,action:l.isRequired,key:l});t.location=p;var h=s([a,l]);t.component=h;var v=s([h,u]);t.components=v;var y=s([u,c]);t.route=y;var g=s([y,i(y)]);t.routes=g,t["default"]={falsy:r,history:d,location:p,component:h,components:v,route:y}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}function a(e){var t=o(e),n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substring(a),t=t.substring(0,a));var u=t.indexOf("?");return-1!==u&&(n=t.substring(u),t=t.substring(0,u)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}t.__esModule=!0,t.extractPath=o,t.parsePath=a;var u=n(4);r(u)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a(e){return o(e).replace(/\/+/g,"/+")}function u(e){for(var t="",n=[],r=[],o=void 0,u=0,i=/:([a-zA-Z_$][a-zA-Z0-9_$]*)|\*\*|\*|\(|\)/g;o=i.exec(e);)o.index!==u&&(r.push(e.slice(u,o.index)),t+=a(e.slice(u,o.index))),o[1]?(t+="([^/?#]+)",n.push(o[1])):"**"===o[0]?(t+="([\\s\\S]*)",n.push("splat")):"*"===o[0]?(t+="([\\s\\S]*?)",n.push("splat")):"("===o[0]?t+="(?:":")"===o[0]&&(t+=")?"),r.push(o[0]),u=i.lastIndex;return u!==e.length&&(r.push(e.slice(u,e.length)),t+=a(e.slice(u,e.length))),{pattern:e,regexpSource:t,paramNames:n,tokens:r}}function i(e){return e in h||(h[e]=u(e)),h[e]}function s(e,t){"/"!==e.charAt(0)&&(e="/"+e),"/"!==t.charAt(0)&&(t="/"+t);var n=i(e),r=n.regexpSource,o=n.paramNames,a=n.tokens;r+="/*";var u="*"!==a[a.length-1];u&&(r+="([\\s\\S]*?)");var s=t.match(new RegExp("^"+r+"$","i")),c=void 0,f=void 0;if(null!=s){if(u){c=s.pop();var l=s[0].substr(0,s[0].length-c.length);if(c&&"/"!==l.charAt(l.length-1))return{remainingPathname:null,paramNames:o,paramValues:null}}else c="";f=s.slice(1).map(function(e){return null!=e?decodeURIComponent(e):e})}else c=f=null;return{remainingPathname:c,paramNames:o,paramValues:f}}function c(e){return i(e).paramNames}function f(e,t){var n=s(e,t),r=n.paramNames,o=n.paramValues;return null!=o?r.reduce(function(e,t,n){return e[t]=o[n],e},{}):null}function l(e,t){t=t||{};for(var n=i(e),r=n.tokens,o=0,a="",u=0,s=void 0,c=void 0,f=void 0,l=0,d=r.length;d>l;++l)s=r[l],"*"===s||"**"===s?(f=Array.isArray(t.splat)?t.splat[u++]:t.splat,null!=f||o>0?void 0:p["default"](!1),null!=f&&(a+=encodeURI(f))):"("===s?o+=1:")"===s?o-=1:":"===s.charAt(0)?(c=s.substring(1),f=t[c],null!=f||o>0?void 0:p["default"](!1),null!=f&&(a+=encodeURIComponent(f))):a+=s;return a.replace(/\/+/g,"/")}t.__esModule=!0,t.compilePattern=i,t.matchPattern=s,t.getParamNames=c,t.getParams=f,t.formatPattern=l;var d=n(3),p=r(d),h={}},function(e,t){"use strict";t.__esModule=!0;var n="PUSH";t.PUSH=n;var r="REPLACE";t.REPLACE=r;var o="POP";t.POP=o,t["default"]={PUSH:n,REPLACE:r,POP:o}},function(e,t){"use strict";t.__esModule=!0;var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.canUseDOM=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return c.stringify(e).replace(/%20/g,"+")}function u(e){return function(){function t(e){if(null==e.query){var t=e.search;e.query=R(t.substring(1)),e[v]={search:t,searchBase:""}}return e}function n(e,t){var n,r=e[v],o=t?O(t):"";if(!r&&!o)return e;"string"==typeof e&&(e=d.parsePath(e));var a=void 0;a=r&&e.search===r.search?r.searchBase:e.search||"";var u=a;return o&&(u+=(u?"&":"?")+o),i({},e,(n={search:u},n[v]={search:u,searchBase:a},n))}function r(e){return w.listenBefore(function(n,r){l["default"](e,t(n),r)})}function u(e){return w.listen(function(n){e(t(n))})}function s(e){w.push(n(e,e.query))}function c(e){w.replace(n(e,e.query))}function f(e,t){return w.createPath(n(e,t||e.query))}function p(e,t){return w.createHref(n(e,t||e.query))}function g(e){for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;r>a;a++)o[a-1]=arguments[a];var u=w.createLocation.apply(w,[n(e,e.query)].concat(o));return e.query&&(u.query=e.query),t(u)}function m(e,t,n){"string"==typeof t&&(t=d.parsePath(t)),s(i({state:e},t,{query:n}))}function _(e,t,n){"string"==typeof t&&(t=d.parsePath(t)),c(i({state:e},t,{query:n}))}var P=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],O=P.stringifyQuery,R=P.parseQueryString,x=o(P,["stringifyQuery","parseQueryString"]),w=e(x);return"function"!=typeof O&&(O=a),"function"!=typeof R&&(R=y),i({},w,{listenBefore:r,listen:u,push:s,replace:c,createPath:f,createHref:p,createLocation:g,pushState:h["default"](m,"pushState is deprecated; use push instead"),replaceState:h["default"](_,"replaceState is deprecated; use replace instead")})}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=n(4),c=(r(s),n(56)),f=n(17),l=r(f),d=n(7),p=n(16),h=r(p),v="$searchBase",y=c.parse;t["default"]=u,e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n){function r(){return i=!0,s?void(f=[].concat(o.call(arguments))):void n.apply(this,arguments)}function a(){if(!i&&(c=!0,!s)){for(s=!0;!i&&e>u&&c;)c=!1,t.call(this,u++,a,r);return s=!1,i?void n.apply(this,f):void(u>=e&&c&&(i=!0,n()))}}var u=0,i=!1,s=!1,c=!1,f=void 0;a()}function r(e,t,n){function r(e,t,r){u||(t?(u=!0,n(t)):(a[e]=r,u=++i===o,u&&n(null,a)))}var o=e.length,a=[];if(0===o)return n(null,a);var u=!1,i=0;e.forEach(function(e,n){t(e,n,function(e,t){r(n,e,t)})})}t.__esModule=!0;var o=Array.prototype.slice;t.loopAsync=n,t.mapAsync=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(3),u=r(a),i=n(2),s=r(i),c=n(23),f=(r(c),n(43)),l=r(f),d=n(5),p=n(1),h=(r(p),s["default"].PropTypes),v=h.array,y=h.func,g=h.object,m=s["default"].createClass({displayName:"RouterContext",propTypes:{history:g,router:g.isRequired,location:g.isRequired,routes:v.isRequired,params:g.isRequired,components:v.isRequired,createElement:y.isRequired},getDefaultProps:function(){return{createElement:s["default"].createElement}},childContextTypes:{history:g,location:g.isRequired,router:g.isRequired},getChildContext:function(){var e=this.props,t=e.router,n=e.history,r=e.location;return t||(t=o({},n,{setRouteLeaveHook:n.listenBeforeLeavingRoute}),delete t.listenBeforeLeavingRoute),{history:n,location:r,router:t}},createElement:function(e,t){return null==e?null:this.props.createElement(e,t)},render:function(){var e=this,t=this.props,n=t.history,r=t.location,a=t.routes,i=t.params,c=t.components,f=null;return c&&(f=c.reduceRight(function(t,u,s){if(null==u)return t;var c=a[s],f=l["default"](c,i),p={history:n,location:r,params:i,route:c,routeParams:f,routes:a};if(d.isReactChildren(t))p.children=t;else if(t)for(var h in t)t.hasOwnProperty(h)&&(p[h]=t[h]);if("object"==typeof u){var v={};for(var y in u)u.hasOwnProperty(y)&&(v[y]=e.createElement(u[y],o({key:y},p)));return v}return e.createElement(u,p)},f)),null===f||f===!1||s["default"].isValidElement(f)?void 0:u["default"](!1),f}});t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){for(var t in e)if(e.hasOwnProperty(t))return!0;return!1}function a(e,t){function n(t){var n=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],o=void 0;return n&&n!==!0||null!==r?(t={pathname:t,query:n},o=r||!1):(t=e.createLocation(t),o=n),p["default"](t,o,O.location,O.routes,O.params)}function r(t){return e.createLocation(t,s.REPLACE)}function a(e,n){R&&R.location===e?i(R,n):g["default"](t,e,function(t,r){t?n(t):r?i(u({},r,{location:e}),n):n()})}function i(e,t){var n=f["default"](O,e),o=n.leaveRoutes,a=n.enterRoutes;l.runLeaveHooks(o),o.filter(function(e){return-1===a.indexOf(e)}).forEach(m),l.runEnterHooks(a,e,function(n,o){n?t(n):o?t(null,r(o)):v["default"](e,function(n,r){n?t(n):t(null,null,O=u({},e,{components:r}))})})}function c(e){var t=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];return e.__id__||t&&(e.__id__=x++)}function d(e){return e.reduce(function(e,t){return e.push.apply(e,w[c(t)]),e},[])}function h(e,n){g["default"](t,e,function(t,r){if(null==r)return void n();R=u({},r,{location:e});for(var o=d(f["default"](O,R).leaveRoutes),a=void 0,i=0,s=o.length;null==a&&s>i;++i)a=o[i](e);n(a)})}function y(){if(O.routes){for(var e=d(O.routes),t=void 0,n=0,r=e.length;"string"!=typeof t&&r>n;++n)t=e[n]();return t}}function m(e){var t=c(e,!1);t&&(delete w[t],o(w)||(b&&(b(),b=null),M&&(M(),M=null)))}function _(t,n){var r=c(t),a=w[r];if(a)-1===a.indexOf(n)&&a.push(n);else{var u=!o(w);w[r]=[n],u&&(b=e.listenBefore(h),e.listenBeforeUnload&&(M=e.listenBeforeUnload(y)))}return function(){var e=w[r];if(e){var o=e.filter(function(e){return e!==n});0===o.length?m(t):w[r]=o}}}function P(t){return e.listen(function(n){O.location===n?t(null,O):a(n,function(n,r,o){n?t(n):r?e.transitionTo(r):o&&t(null,o)})})}var O={},R=void 0,x=1,w={},b=void 0,M=void 0;return{isActive:n,match:a,listenBeforeLeavingRoute:_,listen:P}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=a;var i=n(1),s=(r(i),n(9)),c=n(41),f=r(c),l=n(39),d=n(45),p=r(d),h=n(42),v=r(h),y=n(47),g=r(y);e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function o(){return window.location.href.split("#")[1]||""}function a(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function u(){return window.location.pathname+window.location.search+window.location.hash}function i(e){e&&window.history.go(e)}function s(e,t){t(window.confirm(e))}function c(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function f(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}t.__esModule=!0,t.addEventListener=n,t.removeEventListener=r,t.getHashPath=o,t.replaceHashPath=a,t.getWindowPath=u,t.go=i,t.getUserConfirmation=s,t.supportsHistory=c,t.supportsGoWithoutReloadUsingHash=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(){return e.apply(this,arguments)}}t.__esModule=!0;var a=n(4);r(a);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=e(t,n);e.length<2&&n(r)}t.__esModule=!0;var a=n(4);r(a);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return 0===e.button}function u(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function i(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function s(e,t){var n=t.query,r=t.hash,o=t.state;return n||r||o?{pathname:e,query:n,hash:r,state:o}:e}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=n(2),l=r(f),d=n(1),p=(r(d),l["default"].PropTypes),h=p.bool,v=p.object,y=p.string,g=p.func,m=p.oneOfType,_=l["default"].createClass({displayName:"Link",contextTypes:{router:v},propTypes:{to:m([y,v]).isRequired,query:v,hash:y,state:v,activeStyle:v,activeClassName:y,onlyActiveOnIndex:h.isRequired,onClick:g},getDefaultProps:function(){return{onlyActiveOnIndex:!1,className:"",style:{}}},handleClick:function(e){var t=!0;if(this.props.onClick&&this.props.onClick(e),!u(e)&&a(e)){if(e.defaultPrevented===!0&&(t=!1),this.props.target)return void(t||e.preventDefault());if(e.preventDefault(),t){var n=this.props,r=n.to,o=n.query,i=n.hash,c=n.state,f=s(r,{query:o,hash:i,state:c});this.context.router.push(f)}}},render:function(){var e=this.props,t=e.to,n=e.query,r=e.hash,a=e.state,u=e.activeClassName,f=e.activeStyle,d=e.onlyActiveOnIndex,p=o(e,["to","query","hash","state","activeClassName","activeStyle","onlyActiveOnIndex"]),h=this.context.router;if(h){var v=s(t,{query:n,hash:r,state:a});p.href=h.createHref(v),(u||null!=f&&!i(f))&&h.isActive(v,d)&&(u&&(p.className+=""===p.className?u:" "+u),f&&(p.style=c({},p.style,f)))}return l["default"].createElement("a",c({},p,{onClick:this.handleClick}))}});t["default"]=_,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(3),i=r(u),s=n(5),c=n(8),f=n(6),l=a["default"].PropTypes,d=l.string,p=l.object,h=a["default"].createClass({displayName:"Redirect",statics:{createRouteFromReactElement:function(e){var t=s.createRouteFromReactElement(e);return t.from&&(t.path=t.from),t.onEnter=function(e,n){var r=e.location,o=e.params,a=void 0;if("/"===t.to.charAt(0))a=c.formatPattern(t.to,o);else if(t.to){var u=e.routes.indexOf(t),i=h.getRoutePattern(e.routes,u-1),s=i.replace(/\/*$/,"/")+t.to;a=c.formatPattern(s,o)}else a=r.pathname;n({pathname:a,query:t.query||r.query,state:t.state||r.state})},t},getRoutePattern:function(e,t){for(var n="",r=t;r>=0;r--){var o=e[r],a=o.path||"";if(n=a.replace(/\/*$/,"/")+n,0===a.indexOf("/"))break}return"/"+n}},propTypes:{path:d,from:d,to:d.isRequired,query:p,state:p,onEnter:f.falsy,children:f.falsy},render:function(){i["default"](!1)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return u({},e,{setRouteLeaveHook:t.listenBeforeLeavingRoute,isActive:t.isActive})}function a(e,t){return e=u({},e,t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.createRouterObject=o,t.createRoutingHistory=a;var i=n(23);r(i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=f["default"](e),n=function(){return t},r=u["default"](s["default"](n))(e);return r.__v2_compatible__=!0,r}t.__esModule=!0,t["default"]=o;var a=n(11),u=r(a),i=n(29),s=r(i),c=n(55),f=r(c);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(24),a=r(o),u=!("undefined"==typeof window||!window.document||!window.document.createElement);t["default"]=function(e){var t=void 0;return u&&(t=a["default"](e)()),t},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!u)return e;var n={},r=function(t){"function"==typeof e[t]?n[t]=function(){return e[t].apply(e,arguments)}:Object.defineProperty(n,t,{configurable:!1,enumerable:!1,get:function(){return e[t]}})};for(var o in e)r(o);return n}t.__esModule=!0,t["default"]=o;var a=n(1),u=(r(a),!1);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return function(t){var n=u["default"](s["default"](e))(t);return n.__v2_compatible__=!0,n}}t.__esModule=!0,t["default"]=o;var a=n(11),u=r(a),i=n(29),s=r(i);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return s+e}function a(e,t){try{null==t?window.sessionStorage.removeItem(o(e)):window.sessionStorage.setItem(o(e),JSON.stringify(t))}catch(n){if(n.name===f)return;if(c.indexOf(n.name)>=0&&0===window.sessionStorage.length)return;throw n}}function u(e){var t=void 0;try{t=window.sessionStorage.getItem(o(e))}catch(n){if(n.name===f)return null}if(t)try{return JSON.parse(t)}catch(n){}return null}t.__esModule=!0,t.saveState=a,t.readState=u;var i=n(4),s=(r(i),"@@History/"),c=["QuotaExceededError","QUOTA_EXCEEDED_ERR"],f="SecurityError"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return s.canUseDOM?void 0:i["default"](!1),n.listen(e)}var n=l["default"](a({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return a({},n,{listen:t})}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(3),i=r(u),s=n(10),c=n(15),f=n(28),l=r(f);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return"string"==typeof e&&"/"===e.charAt(0)}function a(){var e=g.getHashPath();return o(e)?!0:(g.replaceHashPath("/"+e),!1)}function u(e,t,n){return e+(-1===e.indexOf("?")?"?":"&")+(t+"="+n)}function i(e,t){return e.replace(new RegExp("[?&]?"+t+"=[a-zA-Z0-9]+"),"")}function s(e,t){var n=e.match(new RegExp("\\?.*?\\b"+t+"=(.+?)\\b"));return n&&n[1]}function c(){function e(){var e=g.getHashPath(),t=void 0,n=void 0;E?(t=s(e,E),e=i(e,E),t?n=m.readState(t):(n=null,t=j.createKey(),g.replaceHashPath(u(e,E,t)))):t=n=null;var r=v.parsePath(e);return j.createLocation(f({},r,{state:n}),void 0,t)}function t(t){function n(){a()&&r(e())}var r=t.transitionTo;return a(),g.addEventListener(window,"hashchange",n),function(){g.removeEventListener(window,"hashchange",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,o=e.state,a=e.action,i=e.key;if(a!==h.POP){var s=(t||"")+n+r;E?(s=u(s,E,i),m.saveState(i,o)):e.key=e.state=null;var c=g.getHashPath();a===h.PUSH?c!==s&&(window.location.hash=s):c!==s&&g.replaceHashPath(s)}}function r(e){1===++S&&(A=t(j));var n=j.listenBefore(e);return function(){n(),0===--S&&A()}}function o(e){1===++S&&(A=t(j));var n=j.listen(e);return function(){n(),0===--S&&A()}}function c(e){j.push(e)}function l(e){j.replace(e)}function d(e){j.go(e)}function _(e){return"#"+j.createHref(e)}function R(e){1===++S&&(A=t(j)),j.registerTransitionHook(e)}function x(e){j.unregisterTransitionHook(e),0===--S&&A()}function w(e,t){j.pushState(e,t)}function b(e,t){j.replaceState(e,t)}var M=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];y.canUseDOM?void 0:p["default"](!1);var E=M.queryKey;(void 0===E||E)&&(E="string"==typeof E?E:O);var j=P["default"](f({},M,{getCurrentLocation:e,finishTransition:n,saveState:m.saveState})),S=0,A=void 0;g.supportsGoWithoutReloadUsingHash();return f({},j,{listenBefore:r,listen:o,push:c,replace:l,go:d,createHref:_,registerTransitionHook:R,unregisterTransitionHook:x,pushState:w,replaceState:b})}t.__esModule=!0;var f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(4),d=(r(l),n(3)),p=r(d),h=n(9),v=n(7),y=n(10),g=n(15),m=n(25),_=n(26),P=r(_),O="_k";t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return Math.random().toString(36).substr(2,e)}function a(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&f["default"](e.state,t.state)}function u(){function e(e){return N.push(e),function(){N=N.filter(function(t){return t!==e})}}function t(){return F&&F.action===p.POP?B.indexOf(F.key):D?B.indexOf(D.key):-1}function n(e){var n=t();D=e,D.action===p.PUSH?B=[].concat(B.slice(0,n+1),[D.key]):D.action===p.REPLACE&&(B[n]=D.key),I.forEach(function(e){e(D)})}function r(e){if(I.push(e),D)e(D);else{var t=k();B=[t.key],n(t)}return function(){I=I.filter(function(t){return t!==e})}}function u(e,t){d.loopAsync(N.length,function(t,n,r){g["default"](N[t],e,function(e){null!=e?r(e):n()})},function(e){U&&"string"==typeof e?U(e,function(e){t(e!==!1)}):t(e!==!1)})}function s(e){D&&a(D,e)||(F=e,u(e,function(t){if(F===e)if(t){if(e.action===p.PUSH){var r=R(D),o=R(e);o===r&&f["default"](D.state,e.state)&&(e.action=p.REPLACE)}T(e)!==!1&&n(e)}else if(D&&e.action===p.POP){var a=B.indexOf(D.key),u=B.indexOf(e.key);-1!==a&&-1!==u&&L(a-u)}}))}function c(e){s(w(e,p.PUSH,O()))}function h(e){s(w(e,p.REPLACE,O()))}function y(){L(-1)}function m(){L(1)}function O(){return o(q)}function R(e){if(null==e||"string"==typeof e)return e;var t=e.pathname,n=e.search,r=e.hash,o=t;return n&&(o+=n),r&&(o+=r),o}function x(e){return R(e)}function w(e,t){var n=arguments.length<=2||void 0===arguments[2]?O():arguments[2];return"object"==typeof t&&("string"==typeof e&&(e=l.parsePath(e)),e=i({},e,{state:t}),t=n,n=arguments[3]||O()),v["default"](e,t,n)}function b(e){D?(M(D,e),n(D)):M(k(),e)}function M(e,t){e.state=i({},e.state,t),H(e.key,e.state)}function E(e){-1===N.indexOf(e)&&N.push(e)}function j(e){N=N.filter(function(t){return t!==e})}function S(e,t){"string"==typeof t&&(t=l.parsePath(t)),c(i({state:e},t))}function A(e,t){"string"==typeof t&&(t=l.parsePath(t)),h(i({state:e},t))}var C=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],k=C.getCurrentLocation,T=C.finishTransition,H=C.saveState,L=C.go,q=C.keyLength,U=C.getUserConfirmation;"number"!=typeof q&&(q=P);var N=[],B=[],I=[],D=void 0,F=void 0;return{listenBefore:e,listen:r,transitionTo:s,push:c,replace:h,go:L,goBack:y,goForward:m,createKey:O,createPath:R,createHref:x,createLocation:w,setState:_["default"](b,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:_["default"](E,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:_["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:_["default"](S,"pushState is deprecated; use push instead"),replaceState:_["default"](A,"replaceState is deprecated; use replace instead")}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=n(4),c=(r(s),n(49)),f=r(c),l=n(7),d=n(52),p=n(9),h=n(54),v=r(h),y=n(17),g=r(y),m=n(16),_=r(m),P=6;t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return function(){function t(e){return _&&null==e.basename&&(0===e.pathname.indexOf(_)?(e.pathname=e.pathname.substring(_.length),e.basename=_,""===e.pathname&&(e.pathname="/")):e.basename=""),e}function n(e){if(!_)return e;"string"==typeof e&&(e=s.parsePath(e));var t=e.pathname,n="/"===_.slice(-1)?_:_+"/",r="/"===t.charAt(0)?t.slice(1):t,o=n+r;return u({},e,{pathname:o})}function r(e){return O.listenBefore(function(n,r){f["default"](e,t(n),r)})}function a(e){return O.listen(function(n){e(t(n))})}function c(e){O.push(n(e))}function l(e){O.replace(n(e))}function p(e){return O.createPath(n(e))}function h(e){return O.createHref(n(e))}function v(e){for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;r>a;a++)o[a-1]=arguments[a];return t(O.createLocation.apply(O,[n(e)].concat(o)))}function y(e,t){"string"==typeof t&&(t=s.parsePath(t)),c(u({state:e},t))}function g(e,t){"string"==typeof t&&(t=s.parsePath(t)),l(u({state:e},t))}var m=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],_=m.basename,P=o(m,["basename"]),O=e(P);if(null==_&&i.canUseDOM){var R=document.getElementsByTagName("base")[0];R&&(_=s.extractPath(R.href))}return u({},O,{listenBefore:r,listen:a,push:c,replace:l,createPath:p,createHref:h,createLocation:v,pushState:d["default"](y,"pushState is deprecated; use push instead"),replaceState:d["default"](g,"replaceState is deprecated; use replace instead")})}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(10),s=n(7),c=n(17),f=r(c),l=n(16),d=r(l);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(6)),u={contextTypes:{history:a.history},componentWillMount:function(){this.history=this.context.history}};t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(2),u=r(a),i=n(18),s=r(i),c=u["default"].createClass({displayName:"IndexLink",render:function(){return u["default"].createElement(s["default"],o({},this.props,{onlyActiveOnIndex:!0}))}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(1),i=(r(u),n(3)),s=r(i),c=n(19),f=r(c),l=n(6),d=a["default"].PropTypes,p=d.string,h=d.object,v=a["default"].createClass({displayName:"IndexRedirect",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=f["default"].createRouteFromReactElement(e))}},propTypes:{to:p.isRequired,query:h,state:h,onEnter:l.falsy,children:l.falsy},render:function(){s["default"](!1)}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(1),i=(r(u),n(3)),s=r(i),c=n(5),f=n(6),l=a["default"].PropTypes.func,d=a["default"].createClass({displayName:"IndexRoute",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=c.createRouteFromReactElement(e))}},propTypes:{path:f.falsy,component:f.component,components:f.components,getComponent:l,getComponents:l},render:function(){s["default"](!1)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(2)),u=r(a),i=n(3),s=r(i),c=u["default"].PropTypes.object,f={contextTypes:{history:c.isRequired,route:c},propTypes:{route:c},componentDidMount:function(){this.routerWillLeave?void 0:s["default"](!1);var e=this.props.route||this.context.route;e?void 0:s["default"](!1),this._unlistenBeforeLeavingRoute=this.context.history.listenBeforeLeavingRoute(e,this.routerWillLeave)},componentWillUnmount:function(){this._unlistenBeforeLeavingRoute&&this._unlistenBeforeLeavingRoute()}};t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(3),i=r(u),s=n(5),c=n(6),f=a["default"].PropTypes,l=f.string,d=f.func,p=a["default"].createClass({displayName:"Route",statics:{createRouteFromReactElement:s.createRouteFromReactElement},propTypes:{path:l,component:c.component,components:c.components,getComponent:d,getComponents:d},render:function(){i["default"](!1)}});t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(2)),u=r(a),i=u["default"].PropTypes.object,s={propTypes:{route:i.isRequired},childContextTypes:{route:i.isRequired},getChildContext:function(){return{route:this.props.route}},componentWillMount:function(){}};t["default"]=s,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return!e||!e.__v2_compatible__}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(27),s=r(i),c=n(11),f=r(c),l=n(2),d=r(l),p=n(14),h=r(p),v=n(6),y=n(13),g=r(y),m=n(5),_=n(20),P=n(1),O=(r(P),
d["default"].PropTypes),R=O.func,x=O.object,w=d["default"].createClass({displayName:"Router",propTypes:{history:x,children:v.routes,routes:v.routes,render:R,createElement:R,onError:R,onUpdate:R,matchContext:x},getDefaultProps:function(){return{render:function(e){return d["default"].createElement(g["default"],e)}}},getInitialState:function(){return{location:null,routes:null,params:null,components:null}},handleError:function(e){if(!this.props.onError)throw e;this.props.onError.call(this,e)},componentWillMount:function(){var e=this,t=this.props,n=(t.parseQueryString,t.stringifyQuery,this.createRouterObjects()),r=n.history,o=n.transitionManager,a=n.router;this._unlisten=o.listen(function(t,n){t?e.handleError(t):e.setState(n,e.props.onUpdate)}),this.history=r,this.router=a},createRouterObjects:function(){var e=this.props.matchContext;if(e)return e;var t=this.props.history,n=this.props,r=n.routes,o=n.children;a(t)&&(t=this.wrapDeprecatedHistory(t));var u=h["default"](t,m.createRoutes(r||o)),i=_.createRouterObject(t,u),s=_.createRoutingHistory(t,u);return{history:s,transitionManager:u,router:i}},wrapDeprecatedHistory:function(e){var t=this.props,n=t.parseQueryString,r=t.stringifyQuery,o=void 0;return o=e?function(){return e}:s["default"],f["default"](o)({parseQueryString:n,stringifyQuery:r})},componentWillReceiveProps:function(e){},componentWillUnmount:function(){this._unlisten&&this._unlisten()},render:function b(){var e=this.state,t=e.location,n=e.routes,r=e.params,a=e.components,i=this.props,s=i.createElement,b=i.render,c=o(i,["createElement","render"]);return null==t?null:(Object.keys(w.propTypes).forEach(function(e){return delete c[e]}),b(u({},c,{history:this.history,router:this.router,location:t,routes:n,params:r,components:a,createElement:s})))}});t["default"]=w,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(13),i=r(u),s=n(1),c=(r(s),a["default"].createClass({displayName:"RoutingContext",componentWillMount:function(){},render:function(){return a["default"].createElement(i["default"],this.props)}}));t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(n,r,o){e.apply(t,arguments),e.length<3&&o()}}function a(e){return e.reduce(function(e,t){return t.onEnter&&e.push(o(t.onEnter,t)),e},[])}function u(e,t,n){function r(e,t,n){return t?void(u={pathname:t,query:n,state:e}):void(u=e)}var o=a(e);if(!o.length)return void n();var u=void 0;s.loopAsync(o.length,function(e,n,a){o[e](t,r,function(e){e||u?a(e,u):n()})},n)}function i(e){for(var t=0,n=e.length;n>t;++t)e[t].onLeave&&e[t].onLeave.call(e[t])}t.__esModule=!0,t.runEnterHooks=u,t.runLeaveHooks=i;var s=n(12),c=n(1);r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(53),a=r(o),u=n(22),i=r(u);t["default"]=i["default"](a["default"]),e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){if(!e.path)return!1;var r=a.getParamNames(e.path);return r.some(function(e){return t.params[e]!==n.params[e]})}function o(e,t){var n=e&&e.routes,o=t.routes,a=void 0,u=void 0;return n?!function(){var i=!1;a=n.filter(function(n){if(i)return!0;var a=-1===o.indexOf(n)||r(n,e,t);return a&&(i=!0),a}),a.reverse(),u=o.filter(function(e){return-1===n.indexOf(e)||-1!==a.indexOf(e)})}():(a=[],u=o),{leaveRoutes:a,enterRoutes:u}}t.__esModule=!0;var a=n(8);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){t.component||t.components?n(null,t.component||t.components):t.getComponent?t.getComponent(e,n):t.getComponents?t.getComponents(e,n):n()}function o(e,t){a.mapAsync(e.routes,function(t,n,o){r(e.location,t,o)},t)}t.__esModule=!0;var a=n(12);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n={};if(!e.path)return n;var r=o.getParamNames(e.path);for(var a in t)t.hasOwnProperty(a)&&-1!==r.indexOf(a)&&(n[a]=t[a]);return n}t.__esModule=!0;var o=n(8);t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(27),a=r(o),u=n(22),i=r(u);t["default"]=i["default"](a["default"]),e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){if(e==t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return r(e,t[n])});if("object"==typeof e){for(var n in e)if(e.hasOwnProperty(n))if(void 0===e[n]){if(void 0!==t[n])return!1}else{if(!t.hasOwnProperty(n))return!1;if(!r(e[n],t[n]))return!1}return!0}return String(e)===String(t)}function o(e,t,n){return e.every(function(e,r){return String(t[r])===String(n[e])})}function a(e,t,n){for(var r=e,a=[],u=[],i=0,s=t.length;s>i;++i){var f=t[i],l=f.path||"";if("/"===l.charAt(0)&&(r=e,a=[],u=[]),null!==r){var d=c.matchPattern(l,r);r=d.remainingPathname,a=[].concat(a,d.paramNames),u=[].concat(u,d.paramValues)}if(""===r&&f.path&&o(a,u,n))return i}return null}function u(e,t,n,r){var o=a(e,t,n);return null===o?!1:r?t.slice(o+1).every(function(e){return!e.path}):!0}function i(e,t){return null==t?null==e:null==e?!0:r(e,t)}function s(e,t,n,r,o){var a=e.pathname,s=e.query;return null==n?!1:u(a,r,o,t)?i(s,n.query):!1}t.__esModule=!0,t["default"]=s;var c=n(8);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){var n=e.history,r=e.routes,a=e.location,i=o(e,["history","routes","location"]);n||a?void 0:s["default"](!1),n=n?n:f["default"](i);var c=d["default"](n,p.createRoutes(r)),l=void 0;a?a=n.createLocation(a):l=n.listen(function(e){a=e});var v=h.createRouterObject(n,c);n=h.createRoutingHistory(n,c),c.match(a,function(e,r,o){t(e,r,o&&u({},o,{history:n,router:v,matchContext:{history:n,transitionManager:c,router:v}})),l&&l()})}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(3),s=r(i),c=n(21),f=r(c),l=n(14),d=r(l),p=n(5),h=n(20);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){if(e.childRoutes)return[null,e.childRoutes];if(!e.getChildRoutes)return[];var r=!0,o=void 0;return e.getChildRoutes(t,function(e,t){return t=!e&&p.createRoutes(t),r?void(o=[e,t]):void n(e,t)}),r=!1,o}function a(e,t,n){e.indexRoute?n(null,e.indexRoute):e.getIndexRoute?e.getIndexRoute(t,function(e,t){n(e,!e&&p.createRoutes(t)[0])}):e.childRoutes?!function(){var r=e.childRoutes.filter(function(e){return!e.hasOwnProperty("path")});l.loopAsync(r.length,function(e,n,o){a(r[e],t,function(t,a){if(t||a){var u=[r[e]].concat(Array.isArray(a)?a:[a]);o(t,u)}else n()})},function(e,t){n(null,t)})}():n()}function u(e,t,n){return t.reduce(function(e,t,r){var o=n&&n[r];return Array.isArray(e[t])?e[t].push(o):t in e?e[t]=[e[t],o]:e[t]=o,e},e)}function i(e,t){return u({},e,t)}function s(e,t,n,r,u,s){var f=e.path||"";if("/"===f.charAt(0)&&(n=t.pathname,r=[],u=[]),null!==n){var l=d.matchPattern(f,n);if(n=l.remainingPathname,r=[].concat(r,l.paramNames),u=[].concat(u,l.paramValues),""===n&&e.path){var p=function(){var n={routes:[e],params:i(r,u)};return a(e,t,function(e,t){if(e)s(e);else{if(Array.isArray(t)){var r;(r=n.routes).push.apply(r,t)}else t&&n.routes.push(t);s(null,n)}}),{v:void 0}}();if("object"==typeof p)return p.v}}if(null!=n||e.childRoutes){var h=function(o,a){o?s(o):a?c(a,t,function(t,n){t?s(t):n?(n.routes.unshift(e),s(null,n)):s()},n,r,u):s()},v=o(e,t,h);v&&h.apply(void 0,v)}else s()}function c(e,t,n){var r=arguments.length<=3||void 0===arguments[3]?t.pathname:arguments[3],o=arguments.length<=4||void 0===arguments[4]?[]:arguments[4],a=arguments.length<=5||void 0===arguments[5]?[]:arguments[5];return function(){l.loopAsync(e.length,function(n,u,i){s(e[n],t,r,o,a,function(e,t){e||t?i(e,t):u()})},n)}()}t.__esModule=!0;var f=n(1),l=(r(f),n(12)),d=n(8),p=n(5);t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=t.routes,r=o(t,["routes"]),a=s["default"](e)(r),i=f["default"](a,n);return u({},a,i)}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(11),s=r(i),c=n(14),f=r(c),l=n(1);r(l);t["default"]=a,e.exports=t["default"]},function(e,t,n){function r(e){return null===e||void 0===e}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function a(e,t,n){var a,f;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(s(e))return s(t)?(e=u.call(e),t=u.call(t),c(e,t,n)):!1;if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(a=0;a<e.length;a++)if(e[a]!==t[a])return!1;return!0}try{var l=i(e),d=i(t)}catch(p){return!1}if(l.length!=d.length)return!1;for(l.sort(),d.sort(),a=l.length-1;a>=0;a--)if(l[a]!=d[a])return!1;for(a=l.length-1;a>=0;a--)if(f=l[a],!c(e[f],t[f],n))return!1;return typeof e==typeof t}var u=Array.prototype.slice,i=n(51),s=n(50),c=e.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:a(e,t,n)}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=o?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t){"use strict";function n(e,t,n){function r(){u=!0,n.apply(this,arguments)}function o(){u||(e>a?t.call(this,a++,o,r):r.apply(this,arguments))}var a=0,u=!1;o()}t.__esModule=!0,t.loopAsync=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){function e(e){e=e||window.history.state||{};var t=l.getWindowPath(),n=e,r=n.key,o=void 0;r?o=d.readState(r):(o=null,r=_.createKey(),g&&window.history.replaceState(a({},e,{key:r}),null,t));var u=c.parsePath(t);return _.createLocation(a({},u,{state:o}),void 0,r)}function t(t){function n(t){void 0!==t.state&&r(e(t.state))}var r=t.transitionTo;return l.addEventListener(window,"popstate",n),function(){l.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,o=e.hash,a=e.state,u=e.action,i=e.key;if(u!==s.POP){d.saveState(i,a);var c=(t||"")+n+r+o,f={key:i};if(u===s.PUSH){if(m)return window.location.href=c,!1;window.history.pushState(f,null,c)}else{if(m)return window.location.replace(c),!1;window.history.replaceState(f,null,c)}}}function r(e){1===++P&&(O=t(_));var n=_.listenBefore(e);return function(){n(),0===--P&&O()}}function o(e){1===++P&&(O=t(_));var n=_.listen(e);return function(){n(),0===--P&&O()}}function u(e){1===++P&&(O=t(_)),_.registerTransitionHook(e)}function p(e){_.unregisterTransitionHook(e),0===--P&&O()}var v=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];f.canUseDOM?void 0:i["default"](!1);var y=v.forceRefresh,g=l.supportsHistory(),m=!g||y,_=h["default"](a({},v,{getCurrentLocation:e,finishTransition:n,saveState:d.saveState})),P=0,O=void 0;return a({},_,{listenBefore:r,listen:o,registerTransitionHook:u,unregisterTransitionHook:p})}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(3),i=r(u),s=n(9),c=n(7),f=n(10),l=n(15),d=n(25),p=n(26),h=r(p);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?i.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],r=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=s.parsePath(e)),"object"==typeof t&&(e=a({},e,{state:t}),t=n||i.POP,n=r);var o=e.pathname||"/",u=e.search||"",c=e.hash||"",f=e.state||null;return{pathname:o,search:u,hash:c,state:f,action:t,key:n}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(4),i=(r(u),n(9)),s=n(7);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e.filter(function(e){return e.state}).reduce(function(e,t){return e[t.key]=t.state,e},{})}function a(){function e(e,t){g[e]=t}function t(e){return g[e]}function n(){var e=v[y],n=e.key,r=e.basename,o=e.pathname,a=e.search,i=(r||"")+o+(a||""),s=void 0;n?s=t(n):(s=null,n=d.createKey(),e.key=n);var c=f.parsePath(i);return d.createLocation(u({},c,{state:s}),void 0,n)}function r(e){var t=y+e;return t>=0&&t<v.length}function a(e){if(e){if(!r(e))return;y+=e;var t=n();d.transitionTo(u({},t,{action:l.POP}))}}function i(t){switch(t.action){case l.PUSH:y+=1,y<v.length&&v.splice(y),v.push(t),e(t.key,t.state);break;case l.REPLACE:v[y]=t,e(t.key,t.state)}}var s=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];Array.isArray(s)?s={entries:s}:"string"==typeof s&&(s={entries:[s]});var d=p["default"](u({},s,{getCurrentLocation:n,finishTransition:i,saveState:e,go:a})),h=s,v=h.entries,y=h.current;"string"==typeof v?v=[v]:Array.isArray(v)||(v=["/"]),v=v.map(function(e){var t=d.createKey();return"string"==typeof e?{pathname:e,key:t}:"object"==typeof e&&e?u({},e,{key:t}):void c["default"](!1)}),null==y?y=v.length-1:y>=0&&y<v.length?void 0:c["default"](!1);var g=o(v);return d}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(4),s=(r(i),n(3)),c=r(s),f=n(7),l=n(9),d=n(28),p=r(d);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(57);t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e){return"string"!=typeof e?{}:(e=e.trim().replace(/^(\?|#|&)/,""),e?e.split("&").reduce(function(e,t){var n=t.replace(/\+/g," ").split("="),r=n.shift(),o=n.length>0?n.join("="):void 0;return r=decodeURIComponent(r),o=void 0===o?null:decodeURIComponent(o),e.hasOwnProperty(r)?Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]:e[r]=o,e},{}):{})},t.stringify=function(e){return e?Object.keys(e).sort().map(function(t){var n=e[t];return void 0===n?"":null===n?t:Array.isArray(n)?n.sort().map(function(e){return r(t)+"="+r(e)}).join("&"):r(t)+"="+r(n)}).filter(function(e){return e.length>0}).join("&"):""}},function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}}])});
!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.ReactRouter=t(require("react")):e.ReactRouter=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(37),a=r(o);t.Router=a["default"];var u=n(18),i=r(u);t.Link=i["default"];var s=n(31),c=r(s);t.IndexLink=c["default"];var f=n(32),l=r(f);t.IndexRedirect=l["default"];var d=n(33),p=r(d);t.IndexRoute=p["default"];var h=n(19),v=r(h);t.Redirect=v["default"];var y=n(35),g=r(y);t.Route=g["default"];var m=n(30),_=r(m);t.History=_["default"];var O=n(34),P=r(O);t.Lifecycle=P["default"];var R=n(36),x=r(R);t.RouteContext=x["default"];var b=n(48),w=r(b);t.useRoutes=w["default"];var M=n(5);t.createRoutes=M.createRoutes;var E=n(13),j=r(E);t.RouterContext=j["default"];var A=n(38),C=r(A);t.RoutingContext=C["default"];var k=n(6),S=r(k);t.PropTypes=S["default"];var T=n(46),H=r(T);t.match=H["default"];var L=n(24),q=r(L);t.useRouterHistory=q["default"];var U=n(8);t.formatPattern=U.formatPattern;var N=n(40),B=r(N);t.browserHistory=B["default"];var I=n(44),D=r(I);t.hashHistory=D["default"];var W=n(21),F=r(W);t.createMemoryHistory=F["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(-1!==t.indexOf("deprecated")){if(i[t])return;i[t]=!0}t="[react-router] "+t;for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;n>o;o++)r[o-2]=arguments[o]}function a(){i={}}t.__esModule=!0,t["default"]=o,t._resetWarned=a;var u=n(4),i=(r(u),{})},function(t,n){t.exports=e},function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,u,i){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,u,i],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}};e.exports=r},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return null==e||p["default"].isValidElement(e)}function a(e){return o(e)||Array.isArray(e)&&e.every(o)}function u(e,t,n){e=e||"UnknownComponent";for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var o=t[r](n,r,e);o instanceof Error}}function i(e,t){return l({},e,t)}function s(e){var t=e.type,n=i(t.defaultProps,e.props);if(t.propTypes&&u(t.displayName||t.name,t.propTypes,n),n.children){var r=c(n.children,n);r.length&&(n.childRoutes=r),delete n.children}return n}function c(e,t){var n=[];return p["default"].Children.forEach(e,function(e){if(p["default"].isValidElement(e))if(e.type.createRouteFromReactElement){var r=e.type.createRouteFromReactElement(e,t);r&&n.push(r)}else n.push(s(e))}),n}function f(e){return a(e)?e=c(e):e&&!Array.isArray(e)&&(e=[e]),e}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.isReactChildren=a,t.createRouteFromReactElement=s,t.createRoutesFromReactChildren=c,t.createRoutes=f;var d=n(2),p=r(d),h=n(1);r(h)},function(e,t,n){"use strict";function r(e,t,n){return e[t]?new Error("<"+n+'> should not have a "'+t+'" prop'):void 0}t.__esModule=!0,t.falsy=r;var o=n(2),a=o.PropTypes.func,u=o.PropTypes.object,i=o.PropTypes.arrayOf,s=o.PropTypes.oneOfType,c=o.PropTypes.element,f=o.PropTypes.shape,l=o.PropTypes.string,d=f({listen:a.isRequired,pushState:a.isRequired,replaceState:a.isRequired,go:a.isRequired});t.history=d;var p=f({pathname:l.isRequired,search:l.isRequired,state:u,action:l.isRequired,key:l});t.location=p;var h=s([a,l]);t.component=h;var v=s([h,u]);t.components=v;var y=s([u,c]);t.route=y;var g=s([y,i(y)]);t.routes=g,t["default"]={falsy:r,history:d,location:p,component:h,components:v,route:y}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}function a(e){var t=o(e),n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substring(a),t=t.substring(0,a));var u=t.indexOf("?");return-1!==u&&(n=t.substring(u),t=t.substring(0,u)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}t.__esModule=!0,t.extractPath=o,t.parsePath=a;var u=n(4);r(u)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a(e){for(var t="",n=[],r=[],a=void 0,u=0,i=/:([a-zA-Z_$][a-zA-Z0-9_$]*)|\*\*|\*|\(|\)/g;a=i.exec(e);)a.index!==u&&(r.push(e.slice(u,a.index)),t+=o(e.slice(u,a.index))),a[1]?(t+="([^/]+)",n.push(a[1])):"**"===a[0]?(t+="(.*)",n.push("splat")):"*"===a[0]?(t+="(.*?)",n.push("splat")):"("===a[0]?t+="(?:":")"===a[0]&&(t+=")?"),r.push(a[0]),u=i.lastIndex;return u!==e.length&&(r.push(e.slice(u,e.length)),t+=o(e.slice(u,e.length))),{pattern:e,regexpSource:t,paramNames:n,tokens:r}}function u(e){return e in p||(p[e]=a(e)),p[e]}function i(e,t){"/"!==e.charAt(0)&&(e="/"+e);var n=u(e),r=n.regexpSource,o=n.paramNames,a=n.tokens;"/"!==e.charAt(e.length-1)&&(r+="/?"),"*"===a[a.length-1]&&(r+="$");var i=t.match(new RegExp("^"+r,"i")),s=void 0,c=void 0;if(null!=i){var f=i[0];if(s=t.substr(f.length)){if("/"!==f.charAt(f.length-1))return{remainingPathname:null,paramNames:o,paramValues:null};s="/"+s}c=i.slice(1).map(function(e){return e&&decodeURIComponent(e)})}else s=c=null;return{remainingPathname:s,paramNames:o,paramValues:c}}function s(e){return u(e).paramNames}function c(e,t){var n=i(e,t),r=n.paramNames,o=n.paramValues;return null!=o?r.reduce(function(e,t,n){return e[t]=o[n],e},{}):null}function f(e,t){t=t||{};for(var n=u(e),r=n.tokens,o=0,a="",i=0,s=void 0,c=void 0,f=void 0,l=0,p=r.length;p>l;++l)s=r[l],"*"===s||"**"===s?(f=Array.isArray(t.splat)?t.splat[i++]:t.splat,null!=f||o>0?void 0:d["default"](!1),null!=f&&(a+=encodeURI(f))):"("===s?o+=1:")"===s?o-=1:":"===s.charAt(0)?(c=s.substring(1),f=t[c],null!=f||o>0?void 0:d["default"](!1),null!=f&&(a+=encodeURIComponent(f))):a+=s;return a.replace(/\/+/g,"/")}t.__esModule=!0,t.compilePattern=u,t.matchPattern=i,t.getParamNames=s,t.getParams=c,t.formatPattern=f;var l=n(3),d=r(l),p={}},function(e,t){"use strict";t.__esModule=!0;var n="PUSH";t.PUSH=n;var r="REPLACE";t.REPLACE=r;var o="POP";t.POP=o,t["default"]={PUSH:n,REPLACE:r,POP:o}},function(e,t){"use strict";t.__esModule=!0;var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.canUseDOM=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return s.stringify(e).replace(/%20/g,"+")}function a(e){return function(){function t(e){if(null==e.query){var t=e.search;e.query=R(t.substring(1)),e[h]={search:t,searchBase:""}}return e}function n(e,t){var n,r=e[h],o=t?P(t):"";if(!r&&!o)return e;"string"==typeof e&&(e=l.parsePath(e));var a=void 0;a=r&&e.search===r.search?r.searchBase:e.search||"";var i=a;return o&&(i+=(i?"&":"?")+o),u({},e,(n={search:i},n[h]={search:i,searchBase:a},n))}function r(e){return O.listenBefore(function(n,r){f["default"](e,t(n),r)})}function a(e){return O.listen(function(n){e(t(n))})}function i(e){O.push(n(e,e.query))}function s(e){O.replace(n(e,e.query))}function c(e,t){return O.createPath(n(e,t||e.query))}function d(e,t){return O.createHref(n(e,t||e.query))}function y(e){for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;r>a;a++)o[a-1]=arguments[a];var u=O.createLocation.apply(O,[n(e,e.query)].concat(o));return e.query&&(u.query=e.query),t(u)}function g(e,t,n){"string"==typeof t&&(t=l.parsePath(t)),i(u({state:e},t,{query:n}))}function m(e,t,n){"string"==typeof t&&(t=l.parsePath(t)),s(u({state:e},t,{query:n}))}var _=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],O=e(_),P=_.stringifyQuery,R=_.parseQueryString;return"function"!=typeof P&&(P=o),"function"!=typeof R&&(R=v),u({},O,{listenBefore:r,listen:a,push:i,replace:s,createPath:c,createHref:d,createLocation:y,pushState:p["default"](g,"pushState is deprecated; use push instead"),replaceState:p["default"](m,"replaceState is deprecated; use replace instead")})}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(4),s=(r(i),n(56)),c=n(17),f=r(c),l=n(7),d=n(16),p=r(d),h="$searchBase",v=s.parse;t["default"]=a,e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n){function r(){return i=!0,s?void(f=[].concat(o.call(arguments))):void n.apply(this,arguments)}function a(){if(!i&&(c=!0,!s)){for(s=!0;!i&&e>u&&c;)c=!1,t.call(this,u++,a,r);return s=!1,i?void n.apply(this,f):void(u>=e&&c&&(i=!0,n()))}}var u=0,i=!1,s=!1,c=!1,f=void 0;a()}function r(e,t,n){function r(e,t,r){u||(t?(u=!0,n(t)):(a[e]=r,u=++i===o,u&&n(null,a)))}var o=e.length,a=[];if(0===o)return n(null,a);var u=!1,i=0;e.forEach(function(e,n){t(e,n,function(e,t){r(n,e,t)})})}t.__esModule=!0;var o=Array.prototype.slice;t.loopAsync=n,t.mapAsync=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(3),u=r(a),i=n(2),s=r(i),c=n(23),f=(r(c),n(43)),l=r(f),d=n(5),p=n(1),h=(r(p),s["default"].PropTypes),v=h.array,y=h.func,g=h.object,m=s["default"].createClass({displayName:"RouterContext",propTypes:{history:g,router:g.isRequired,location:g.isRequired,routes:v.isRequired,params:g.isRequired,components:v.isRequired,createElement:y.isRequired},getDefaultProps:function(){return{createElement:s["default"].createElement}},childContextTypes:{history:g,location:g.isRequired,router:g.isRequired},getChildContext:function(){var e=this.props,t=e.router,n=e.history,r=e.location;return t||(t=o({},n,{setRouteLeaveHook:n.listenBeforeLeavingRoute}),delete t.listenBeforeLeavingRoute),{history:n,location:r,router:t}},createElement:function(e,t){return null==e?null:this.props.createElement(e,t)},render:function(){var e=this,t=this.props,n=t.history,r=t.location,a=t.routes,i=t.params,c=t.components,f=null;return c&&(f=c.reduceRight(function(t,u,s){if(null==u)return t;var c=a[s],f=l["default"](c,i),p={history:n,location:r,params:i,route:c,routeParams:f,routes:a};if(d.isReactChildren(t))p.children=t;else if(t)for(var h in t)Object.prototype.hasOwnProperty.call(t,h)&&(p[h]=t[h]);if("object"==typeof u){var v={};for(var y in u)Object.prototype.hasOwnProperty.call(u,y)&&(v[y]=e.createElement(u[y],o({key:y},p)));return v}return e.createElement(u,p)},f)),null===f||f===!1||s["default"].isValidElement(f)?void 0:u["default"](!1),f}});t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!0;return!1}function a(e,t){function n(t){var n=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],o=void 0;return n&&n!==!0||null!==r?(t={pathname:t,query:n},o=r||!1):(t=e.createLocation(t),o=n),p["default"](t,o,P.location,P.routes,P.params)}function r(t){return e.createLocation(t,s.REPLACE)}function a(e,n){R&&R.location===e?i(R,n):g["default"](t,e,function(t,r){t?n(t):r?i(u({},r,{location:e}),n):n()})}function i(e,t){function n(n,r){return n||r?o(n,r):void v["default"](e,function(n,r){n?t(n):t(null,null,P=u({},e,{components:r}))})}function o(e,n){e?t(e):t(null,r(n))}var a=f["default"](P,e),i=a.leaveRoutes,s=a.changeRoutes,c=a.enterRoutes;l.runLeaveHooks(i),i.filter(function(e){return-1===c.indexOf(e)}).forEach(m),l.runChangeHooks(s,P,e,function(t,r){return t||r?o(t,r):void l.runEnterHooks(c,e,n)})}function c(e){var t=arguments.length<=1||void 0===arguments[1]?!0:arguments[1];return e.__id__||t&&(e.__id__=x++)}function d(e){return e.reduce(function(e,t){return e.push.apply(e,b[c(t)]),e},[])}function h(e,n){g["default"](t,e,function(t,r){if(null==r)return void n();R=u({},r,{location:e});for(var o=d(f["default"](P,R).leaveRoutes),a=void 0,i=0,s=o.length;null==a&&s>i;++i)a=o[i](e);n(a)})}function y(){if(P.routes){for(var e=d(P.routes),t=void 0,n=0,r=e.length;"string"!=typeof t&&r>n;++n)t=e[n]();return t}}function m(e){var t=c(e,!1);t&&(delete b[t],o(b)||(w&&(w(),w=null),M&&(M(),M=null)))}function _(t,n){var r=c(t),a=b[r];if(a)-1===a.indexOf(n)&&a.push(n);else{var u=!o(b);b[r]=[n],u&&(w=e.listenBefore(h),e.listenBeforeUnload&&(M=e.listenBeforeUnload(y)))}return function(){var e=b[r];if(e){var o=e.filter(function(e){return e!==n});0===o.length?m(t):b[r]=o}}}function O(t){return e.listen(function(n){P.location===n?t(null,P):a(n,function(n,r,o){n?t(n):r?e.transitionTo(r):o&&t(null,o)})})}var P={},R=void 0,x=1,b=Object.create(null),w=void 0,M=void 0;return{isActive:n,match:a,listenBeforeLeavingRoute:_,listen:O}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=a;var i=n(1),s=(r(i),n(9)),c=n(41),f=r(c),l=n(39),d=n(45),p=r(d),h=n(42),v=r(h),y=n(47),g=r(y);e.exports=t["default"]},function(e,t){"use strict";function n(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function o(){return window.location.href.split("#")[1]||""}function a(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function u(){return window.location.pathname+window.location.search+window.location.hash}function i(e){e&&window.history.go(e)}function s(e,t){t(window.confirm(e))}function c(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?window.history&&"pushState"in window.history:!1}function f(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}t.__esModule=!0,t.addEventListener=n,t.removeEventListener=r,t.getHashPath=o,t.replaceHashPath=a,t.getWindowPath=u,t.go=i,t.getUserConfirmation=s,t.supportsHistory=c,t.supportsGoWithoutReloadUsingHash=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(){return e.apply(this,arguments)}}t.__esModule=!0;var a=n(4);r(a);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=e(t,n);e.length<2&&n(r)}t.__esModule=!0;var a=n(4);r(a);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return 0===e.button}function u(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function i(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function s(e,t){var n=t.query,r=t.hash,o=t.state;return n||r||o?{pathname:e,query:n,hash:r,state:o}:e}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=n(2),l=r(f),d=n(1),p=(r(d),l["default"].PropTypes),h=p.bool,v=p.object,y=p.string,g=p.func,m=p.oneOfType,_=l["default"].createClass({displayName:"Link",contextTypes:{router:v},propTypes:{to:m([y,v]).isRequired,query:v,hash:y,state:v,activeStyle:v,activeClassName:y,onlyActiveOnIndex:h.isRequired,onClick:g},getDefaultProps:function(){return{onlyActiveOnIndex:!1,className:"",style:{}}},handleClick:function(e){var t=!0;if(this.props.onClick&&this.props.onClick(e),!u(e)&&a(e)){if(e.defaultPrevented===!0&&(t=!1),this.props.target)return void(t||e.preventDefault());if(e.preventDefault(),t){var n=this.props,r=n.to,o=n.query,i=n.hash,c=n.state,f=s(r,{query:o,hash:i,state:c});this.context.router.push(f)}}},render:function(){var e=this.props,t=e.to,n=e.query,r=e.hash,a=e.state,u=e.activeClassName,f=e.activeStyle,d=e.onlyActiveOnIndex,p=o(e,["to","query","hash","state","activeClassName","activeStyle","onlyActiveOnIndex"]),h=this.context.router;if(h){var v=s(t,{query:n,hash:r,state:a});p.href=h.createHref(v),(u||null!=f&&!i(f))&&h.isActive(v,d)&&(u&&(p.className+=""===p.className?u:" "+u),f&&(p.style=c({},p.style,f)))}return l["default"].createElement("a",c({},p,{onClick:this.handleClick}))}});t["default"]=_,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(3),i=r(u),s=n(5),c=n(8),f=n(6),l=a["default"].PropTypes,d=l.string,p=l.object,h=a["default"].createClass({displayName:"Redirect",statics:{createRouteFromReactElement:function(e){var t=s.createRouteFromReactElement(e);return t.from&&(t.path=t.from),t.onEnter=function(e,n){var r=e.location,o=e.params,a=void 0;if("/"===t.to.charAt(0))a=c.formatPattern(t.to,o);else if(t.to){var u=e.routes.indexOf(t),i=h.getRoutePattern(e.routes,u-1),s=i.replace(/\/*$/,"/")+t.to;a=c.formatPattern(s,o)}else a=r.pathname;n({pathname:a,query:t.query||r.query,state:t.state||r.state})},t},getRoutePattern:function(e,t){for(var n="",r=t;r>=0;r--){var o=e[r],a=o.path||"";if(n=a.replace(/\/*$/,"/")+n,0===a.indexOf("/"))break}return"/"+n}},propTypes:{path:d,from:d,to:d.isRequired,query:p,state:p,onEnter:f.falsy,children:f.falsy},render:function(){i["default"](!1)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return u({},e,{setRouteLeaveHook:t.listenBeforeLeavingRoute,isActive:t.isActive})}function a(e,t){return e=u({},e,t)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.createRouterObject=o,t.createRoutingHistory=a;var i=n(23);r(i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=f["default"](e),n=function(){return t},r=u["default"](s["default"](n))(e);return r.__v2_compatible__=!0,r}t.__esModule=!0,t["default"]=o;var a=n(11),u=r(a),i=n(29),s=r(i),c=n(55),f=r(c);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(24),a=r(o),u=!("undefined"==typeof window||!window.document||!window.document.createElement);t["default"]=function(e){var t=void 0;return u&&(t=a["default"](e)()),t},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!u)return e;var n={},r=function(t){"function"==typeof e[t]?n[t]=function(){return e[t].apply(e,arguments)}:Object.defineProperty(n,t,{configurable:!1,enumerable:!1,get:function(){return e[t]}})};for(var o in e)r(o);return n}t.__esModule=!0,t["default"]=o;var a=n(1),u=(r(a),!1);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return function(t){var n=u["default"](s["default"](e))(t);return n.__v2_compatible__=!0,n}}t.__esModule=!0,t["default"]=o;var a=n(11),u=r(a),i=n(29),s=r(i);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return s+e}function a(e,t){try{null==t?window.sessionStorage.removeItem(o(e)):window.sessionStorage.setItem(o(e),JSON.stringify(t))}catch(n){if(n.name===f)return;if(c.indexOf(n.name)>=0&&0===window.sessionStorage.length)return;throw n}}function u(e){var t=void 0;try{t=window.sessionStorage.getItem(o(e))}catch(n){if(n.name===f)return null}if(t)try{return JSON.parse(t)}catch(n){}return null}t.__esModule=!0,t.saveState=a,t.readState=u;var i=n(4),s=(r(i),"@@History/"),c=["QuotaExceededError","QUOTA_EXCEEDED_ERR"],f="SecurityError"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return s.canUseDOM?void 0:i["default"](!1),n.listen(e)}var n=l["default"](a({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return a({},n,{listen:t})}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(3),i=r(u),s=n(10),c=n(15),f=n(28),l=r(f);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return"string"==typeof e&&"/"===e.charAt(0)}function a(){var e=g.getHashPath();return o(e)?!0:(g.replaceHashPath("/"+e),!1)}function u(e,t,n){return e+(-1===e.indexOf("?")?"?":"&")+(t+"="+n)}function i(e,t){return e.replace(new RegExp("[?&]?"+t+"=[a-zA-Z0-9]+"),"")}function s(e,t){var n=e.match(new RegExp("\\?.*?\\b"+t+"=(.+?)\\b"));return n&&n[1]}function c(){function e(){var e=g.getHashPath(),t=void 0,n=void 0;E?(t=s(e,E),e=i(e,E),t?n=m.readState(t):(n=null,t=j.createKey(),g.replaceHashPath(u(e,E,t)))):t=n=null;var r=v.parsePath(e);return j.createLocation(f({},r,{state:n}),void 0,t)}function t(t){function n(){a()&&r(e())}var r=t.transitionTo;return a(),g.addEventListener(window,"hashchange",n),function(){g.removeEventListener(window,"hashchange",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,o=e.state,a=e.action,i=e.key;if(a!==h.POP){var s=(t||"")+n+r;E?(s=u(s,E,i),m.saveState(i,o)):e.key=e.state=null;var c=g.getHashPath();a===h.PUSH?c!==s&&(window.location.hash=s):c!==s&&g.replaceHashPath(s)}}function r(e){1===++A&&(C=t(j));var n=j.listenBefore(e);return function(){n(),0===--A&&C()}}function o(e){1===++A&&(C=t(j));var n=j.listen(e);return function(){n(),0===--A&&C()}}function c(e){j.push(e)}function l(e){j.replace(e)}function d(e){j.go(e)}function _(e){return"#"+j.createHref(e)}function R(e){1===++A&&(C=t(j)),j.registerTransitionHook(e)}function x(e){j.unregisterTransitionHook(e),0===--A&&C()}function b(e,t){j.pushState(e,t)}function w(e,t){j.replaceState(e,t)}var M=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];y.canUseDOM?void 0:p["default"](!1);var E=M.queryKey;(void 0===E||E)&&(E="string"==typeof E?E:P);var j=O["default"](f({},M,{getCurrentLocation:e,finishTransition:n,saveState:m.saveState})),A=0,C=void 0;g.supportsGoWithoutReloadUsingHash();return f({},j,{listenBefore:r,listen:o,push:c,replace:l,go:d,createHref:_,registerTransitionHook:R,unregisterTransitionHook:x,pushState:b,replaceState:w})}t.__esModule=!0;var f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=n(4),d=(r(l),n(3)),p=r(d),h=n(9),v=n(7),y=n(10),g=n(15),m=n(25),_=n(26),O=r(_),P="_k";t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return Math.random().toString(36).substr(2,e)}function a(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&f["default"](e.state,t.state)}function u(){function e(e){return N.push(e),function(){N=N.filter(function(t){return t!==e})}}function t(){return W&&W.action===p.POP?B.indexOf(W.key):D?B.indexOf(D.key):-1}function n(e){var n=t();D=e,D.action===p.PUSH?B=[].concat(B.slice(0,n+1),[D.key]):D.action===p.REPLACE&&(B[n]=D.key),I.forEach(function(e){e(D)})}function r(e){if(I.push(e),D)e(D);else{var t=S();B=[t.key],n(t)}return function(){I=I.filter(function(t){return t!==e})}}function u(e,t){d.loopAsync(N.length,function(t,n,r){g["default"](N[t],e,function(e){null!=e?r(e):n()})},function(e){q&&"string"==typeof e?q(e,function(e){t(e!==!1)}):t(e!==!1)})}function s(e){D&&a(D,e)||(W=e,u(e,function(t){if(W===e)if(t){if(e.action===p.PUSH){var r=R(D),o=R(e);o===r&&f["default"](D.state,e.state)&&(e.action=p.REPLACE)}T(e)!==!1&&n(e)}else if(D&&e.action===p.POP){var a=B.indexOf(D.key),u=B.indexOf(e.key);-1!==a&&-1!==u&&L(a-u)}}))}function c(e){s(b(e,p.PUSH,P()))}function h(e){s(b(e,p.REPLACE,P()))}function y(){L(-1)}function m(){L(1)}function P(){return o(U)}function R(e){if(null==e||"string"==typeof e)return e;var t=e.pathname,n=e.search,r=e.hash,o=t;return n&&(o+=n),r&&(o+=r),o}function x(e){return R(e)}function b(e,t){var n=arguments.length<=2||void 0===arguments[2]?P():arguments[2];return"object"==typeof t&&("string"==typeof e&&(e=l.parsePath(e)),e=i({},e,{state:t}),t=n,n=arguments[3]||P()),v["default"](e,t,n)}function w(e){D?(M(D,e),n(D)):M(S(),e)}function M(e,t){e.state=i({},e.state,t),H(e.key,e.state)}function E(e){-1===N.indexOf(e)&&N.push(e)}function j(e){N=N.filter(function(t){return t!==e})}function A(e,t){"string"==typeof t&&(t=l.parsePath(t)),c(i({state:e},t))}function C(e,t){"string"==typeof t&&(t=l.parsePath(t)),h(i({state:e},t))}var k=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],S=k.getCurrentLocation,T=k.finishTransition,H=k.saveState,L=k.go,q=k.getUserConfirmation,U=k.keyLength;"number"!=typeof U&&(U=O);var N=[],B=[],I=[],D=void 0,W=void 0;return{listenBefore:e,listen:r,transitionTo:s,push:c,replace:h,go:L,goBack:y,goForward:m,createKey:P,createPath:R,createHref:x,createLocation:b,setState:_["default"](w,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:_["default"](E,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:_["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:_["default"](A,"pushState is deprecated; use push instead"),replaceState:_["default"](C,"replaceState is deprecated; use replace instead")}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=n(4),c=(r(s),n(49)),f=r(c),l=n(7),d=n(52),p=n(9),h=n(54),v=r(h),y=n(17),g=r(y),m=n(16),_=r(m),O=6;t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return function(){function t(e){return _&&null==e.basename&&(0===e.pathname.indexOf(_)?(e.pathname=e.pathname.substring(_.length),e.basename=_,""===e.pathname&&(e.pathname="/")):e.basename=""),e}function n(e){if(!_)return e;"string"==typeof e&&(e=i.parsePath(e));var t=e.pathname,n="/"===_.slice(-1)?_:_+"/",r="/"===t.charAt(0)?t.slice(1):t,o=n+r;return a({},e,{pathname:o})}function r(e){return m.listenBefore(function(n,r){c["default"](e,t(n),r)})}function o(e){return m.listen(function(n){e(t(n))})}function s(e){m.push(n(e))}function f(e){m.replace(n(e))}function d(e){return m.createPath(n(e))}function p(e){return m.createHref(n(e))}function h(e){for(var r=arguments.length,o=Array(r>1?r-1:0),a=1;r>a;a++)o[a-1]=arguments[a];return t(m.createLocation.apply(m,[n(e)].concat(o)))}function v(e,t){"string"==typeof t&&(t=i.parsePath(t)),s(a({state:e},t))}function y(e,t){"string"==typeof t&&(t=i.parsePath(t)),f(a({state:e},t))}var g=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],m=e(g),_=g.basename;if(null==_&&u.canUseDOM){var O=document.getElementsByTagName("base")[0];O&&(_=i.extractPath(O.href))}return a({},m,{listenBefore:r,listen:o,push:s,replace:f,createPath:d,createHref:p,createLocation:h,pushState:l["default"](v,"pushState is deprecated; use push instead"),replaceState:l["default"](y,"replaceState is deprecated; use replace instead")})}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(10),i=n(7),s=n(17),c=r(s),f=n(16),l=r(f);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(6)),u={contextTypes:{history:a.history},componentWillMount:function(){this.history=this.context.history}};t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(2),u=r(a),i=n(18),s=r(i),c=u["default"].createClass({displayName:"IndexLink",render:function(){return u["default"].createElement(s["default"],o({},this.props,{onlyActiveOnIndex:!0}))}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(1),i=(r(u),n(3)),s=r(i),c=n(19),f=r(c),l=n(6),d=a["default"].PropTypes,p=d.string,h=d.object,v=a["default"].createClass({displayName:"IndexRedirect",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=f["default"].createRouteFromReactElement(e))}},propTypes:{to:p.isRequired,query:h,state:h,onEnter:l.falsy,children:l.falsy},render:function(){s["default"](!1)}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(1),i=(r(u),n(3)),s=r(i),c=n(5),f=n(6),l=a["default"].PropTypes.func,d=a["default"].createClass({displayName:"IndexRoute",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=c.createRouteFromReactElement(e))}},propTypes:{path:f.falsy,component:f.component,components:f.components,getComponent:l,getComponents:l},render:function(){s["default"](!1)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(2)),u=r(a),i=n(3),s=r(i),c=u["default"].PropTypes.object,f={contextTypes:{history:c.isRequired,route:c},propTypes:{route:c},componentDidMount:function(){this.routerWillLeave?void 0:s["default"](!1);var e=this.props.route||this.context.route;e?void 0:s["default"](!1),this._unlistenBeforeLeavingRoute=this.context.history.listenBeforeLeavingRoute(e,this.routerWillLeave)},componentWillUnmount:function(){this._unlistenBeforeLeavingRoute&&this._unlistenBeforeLeavingRoute()}};t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(3),i=r(u),s=n(5),c=n(6),f=a["default"].PropTypes,l=f.string,d=f.func,p=a["default"].createClass({displayName:"Route",statics:{createRouteFromReactElement:s.createRouteFromReactElement},propTypes:{path:l,component:c.component,components:c.components,getComponent:d,getComponents:d},render:function(){i["default"](!1)}});t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(1),a=(r(o),n(2)),u=r(a),i=u["default"].PropTypes.object,s={propTypes:{route:i.isRequired},childContextTypes:{route:i.isRequired},getChildContext:function(){return{route:this.props.route}},componentWillMount:function(){}};t["default"]=s,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return!e||!e.__v2_compatible__}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(27),s=r(i),c=n(11),f=r(c),l=n(2),d=r(l),p=n(14),h=r(p),v=n(6),y=n(13),g=r(y),m=n(5),_=n(20),O=n(1),P=(r(O),d["default"].PropTypes),R=P.func,x=P.object,b=d["default"].createClass({
displayName:"Router",propTypes:{history:x,children:v.routes,routes:v.routes,render:R,createElement:R,onError:R,onUpdate:R,matchContext:x},getDefaultProps:function(){return{render:function(e){return d["default"].createElement(g["default"],e)}}},getInitialState:function(){return{location:null,routes:null,params:null,components:null}},handleError:function(e){if(!this.props.onError)throw e;this.props.onError.call(this,e)},componentWillMount:function(){var e=this,t=this.props,n=(t.parseQueryString,t.stringifyQuery,this.createRouterObjects()),r=n.history,o=n.transitionManager,a=n.router;this._unlisten=o.listen(function(t,n){t?e.handleError(t):e.setState(n,e.props.onUpdate)}),this.history=r,this.router=a},createRouterObjects:function(){var e=this.props.matchContext;if(e)return e;var t=this.props.history,n=this.props,r=n.routes,o=n.children;a(t)&&(t=this.wrapDeprecatedHistory(t));var u=h["default"](t,m.createRoutes(r||o)),i=_.createRouterObject(t,u),s=_.createRoutingHistory(t,u);return{history:s,transitionManager:u,router:i}},wrapDeprecatedHistory:function(e){var t=this.props,n=t.parseQueryString,r=t.stringifyQuery,o=void 0;return o=e?function(){return e}:s["default"],f["default"](o)({parseQueryString:n,stringifyQuery:r})},componentWillReceiveProps:function(e){},componentWillUnmount:function(){this._unlisten&&this._unlisten()},render:function w(){var e=this.state,t=e.location,n=e.routes,r=e.params,a=e.components,i=this.props,s=i.createElement,w=i.render,c=o(i,["createElement","render"]);return null==t?null:(Object.keys(b.propTypes).forEach(function(e){return delete c[e]}),w(u({},c,{history:this.history,router:this.router,location:t,routes:n,params:r,components:a,createElement:s})))}});t["default"]=b,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(2),a=r(o),u=n(13),i=r(u),s=n(1),c=(r(s),a["default"].createClass({displayName:"RoutingContext",componentWillMount:function(){},render:function(){return a["default"].createElement(i["default"],this.props)}}));t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){return function(){for(var r=arguments.length,o=Array(r),a=0;r>a;a++)o[a]=arguments[a];if(e.apply(t,o),e.length<n){var u=o[o.length-1];u()}}}function a(e){return e.reduce(function(e,t){return t.onEnter&&e.push(o(t.onEnter,t,3)),e},[])}function u(e){return e.reduce(function(e,t){return t.onChange&&e.push(o(t.onChange,t,4)),e},[])}function i(e,t,n){function r(e,t,n){return t?void(o={pathname:t,query:n,state:e}):void(o=e)}if(!e)return void n();var o=void 0;l.loopAsync(e,function(e,n,a){t(e,r,function(e){e||o?a(e,o):n()})},n)}function s(e,t,n){var r=a(e);return i(r.length,function(e,n,o){r[e](t,n,o)},n)}function c(e,t,n,r){var o=u(e);return i(o.length,function(e,r,a){o[e](t,n,r,a)},r)}function f(e){for(var t=0,n=e.length;n>t;++t)e[t].onLeave&&e[t].onLeave.call(e[t])}t.__esModule=!0,t.runEnterHooks=s,t.runChangeHooks=c,t.runLeaveHooks=f;var l=n(12),d=n(1);r(d)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(53),a=r(o),u=n(22),i=r(u);t["default"]=i["default"](a["default"]),e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){if(!e.path)return!1;var r=a.getParamNames(e.path);return r.some(function(e){return t.params[e]!==n.params[e]})}function o(e,t){var n=e&&e.routes,o=t.routes,a=void 0,u=void 0,i=void 0;return n?!function(){var s=!1;a=n.filter(function(n){if(s)return!0;var a=-1===o.indexOf(n)||r(n,e,t);return a&&(s=!0),a}),a.reverse(),i=[],u=[],o.forEach(function(e){var t=-1===n.indexOf(e),r=-1!==a.indexOf(e);t||r?i.push(e):u.push(e)})}():(a=[],u=[],i=o),{leaveRoutes:a,changeRoutes:u,enterRoutes:i}}t.__esModule=!0;var a=n(8);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){t.component||t.components?n(null,t.component||t.components):t.getComponent?t.getComponent(e,n):t.getComponents?t.getComponents(e,n):n()}function o(e,t){a.mapAsync(e.routes,function(t,n,o){r(e.location,t,o)},t)}t.__esModule=!0;var a=n(12);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n={};if(!e.path)return n;var r=o.getParamNames(e.path);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&-1!==r.indexOf(a)&&(n[a]=t[a]);return n}t.__esModule=!0;var o=n(8);t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(27),a=r(o),u=n(22),i=r(u);t["default"]=i["default"](a["default"]),e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){if(e==t)return!0;if(null==e||null==t)return!1;if(Array.isArray(e))return Array.isArray(t)&&e.length===t.length&&e.every(function(e,n){return r(e,t[n])});if("object"==typeof e){for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n))if(void 0===e[n]){if(void 0!==t[n])return!1}else{if(!Object.prototype.hasOwnProperty.call(t,n))return!1;if(!r(e[n],t[n]))return!1}return!0}return String(e)===String(t)}function o(e,t,n){return e.every(function(e,r){return String(t[r])===String(n[e])})}function a(e,t,n){for(var r=e,a=[],u=[],i=0,s=t.length;s>i;++i){var f=t[i],l=f.path||"";if("/"===l.charAt(0)&&(r=e,a=[],u=[]),null!==r){var d=c.matchPattern(l,r);r=d.remainingPathname,a=[].concat(a,d.paramNames),u=[].concat(u,d.paramValues)}if(""===r&&f.path&&o(a,u,n))return i}return null}function u(e,t,n,r){var o=a(e,t,n);return null===o?!1:r?t.slice(o+1).every(function(e){return!e.path}):!0}function i(e,t){return null==t?null==e:null==e?!0:r(e,t)}function s(e,t,n,r,o){var a=e.pathname,s=e.query;return null==n?!1:u(a,r,o,t)?i(s,n.query):!1}t.__esModule=!0,t["default"]=s;var c=n(8);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){var n=e.history,r=e.routes,a=e.location,i=o(e,["history","routes","location"]);n||a?void 0:s["default"](!1),n=n?n:f["default"](i);var c=d["default"](n,p.createRoutes(r)),l=void 0;a?a=n.createLocation(a):l=n.listen(function(e){a=e});var v=h.createRouterObject(n,c);n=h.createRoutingHistory(n,c),c.match(a,function(e,r,o){t(e,r,o&&u({},o,{history:n,router:v,matchContext:{history:n,transitionManager:c,router:v}})),l&&l()})}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(3),s=r(i),c=n(21),f=r(c),l=n(14),d=r(l),p=n(5),h=n(20);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){if(e.childRoutes)return[null,e.childRoutes];if(!e.getChildRoutes)return[];var r=!0,o=void 0;return e.getChildRoutes(t,function(e,t){return t=!e&&p.createRoutes(t),r?void(o=[e,t]):void n(e,t)}),r=!1,o}function a(e,t,n){e.indexRoute?n(null,e.indexRoute):e.getIndexRoute?e.getIndexRoute(t,function(e,t){n(e,!e&&p.createRoutes(t)[0])}):e.childRoutes?!function(){var r=e.childRoutes.filter(function(e){return!e.path});l.loopAsync(r.length,function(e,n,o){a(r[e],t,function(t,a){if(t||a){var u=[r[e]].concat(Array.isArray(a)?a:[a]);o(t,u)}else n()})},function(e,t){n(null,t)})}():n()}function u(e,t,n){return t.reduce(function(e,t,r){var o=n&&n[r];return Array.isArray(e[t])?e[t].push(o):t in e?e[t]=[e[t],o]:e[t]=o,e},e)}function i(e,t){return u({},e,t)}function s(e,t,n,r,u,s){var f=e.path||"";if("/"===f.charAt(0)&&(n=t.pathname,r=[],u=[]),null!==n){var l=d.matchPattern(f,n);if(n=l.remainingPathname,r=[].concat(r,l.paramNames),u=[].concat(u,l.paramValues),""===n&&e.path){var p=function(){var n={routes:[e],params:i(r,u)};return a(e,t,function(e,t){if(e)s(e);else{if(Array.isArray(t)){var r;(r=n.routes).push.apply(r,t)}else t&&n.routes.push(t);s(null,n)}}),{v:void 0}}();if("object"==typeof p)return p.v}}if(null!=n||e.childRoutes){var h=function(o,a){o?s(o):a?c(a,t,function(t,n){t?s(t):n?(n.routes.unshift(e),s(null,n)):s()},n,r,u):s()},v=o(e,t,h);v&&h.apply(void 0,v)}else s()}function c(e,t,n){var r=arguments.length<=3||void 0===arguments[3]?t.pathname:arguments[3],o=arguments.length<=4||void 0===arguments[4]?[]:arguments[4],a=arguments.length<=5||void 0===arguments[5]?[]:arguments[5];return function(){l.loopAsync(e.length,function(n,u,i){s(e[n],t,r,o,a,function(e,t){e||t?i(e,t):u()})},n)}()}t.__esModule=!0;var f=n(1),l=(r(f),n(12)),d=n(8),p=n(5);t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=t.routes,r=o(t,["routes"]),a=s["default"](e)(r),i=f["default"](a,n);return u({},a,i)}}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(11),s=r(i),c=n(14),f=r(c),l=n(1);r(l);t["default"]=a,e.exports=t["default"]},function(e,t,n){function r(e){return null===e||void 0===e}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:!(e.length>0&&"number"!=typeof e[0]):!1}function a(e,t,n){var a,f;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(s(e))return s(t)?(e=u.call(e),t=u.call(t),c(e,t,n)):!1;if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(a=0;a<e.length;a++)if(e[a]!==t[a])return!1;return!0}try{var l=i(e),d=i(t)}catch(p){return!1}if(l.length!=d.length)return!1;for(l.sort(),d.sort(),a=l.length-1;a>=0;a--)if(l[a]!=d[a])return!1;for(a=l.length-1;a>=0;a--)if(f=l[a],!c(e[f],t[f],n))return!1;return typeof e==typeof t}var u=Array.prototype.slice,i=n(51),s=n(50),c=e.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:a(e,t,n)}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=o?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},function(e,t){"use strict";function n(e,t,n){function o(){return i=!0,s?void(f=[].concat(r.call(arguments))):void n.apply(this,arguments)}function a(){if(!i&&(c=!0,!s)){for(s=!0;!i&&e>u&&c;)c=!1,t.call(this,u++,a,o);return s=!1,i?void n.apply(this,f):void(u>=e&&c&&(i=!0,n()))}}var u=0,i=!1,s=!1,c=!1,f=void 0;a()}t.__esModule=!0;var r=Array.prototype.slice;t.loopAsync=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){function e(e){e=e||window.history.state||{};var t=l.getWindowPath(),n=e,r=n.key,o=void 0;r?o=d.readState(r):(o=null,r=_.createKey(),g&&window.history.replaceState(a({},e,{key:r}),null,t));var u=c.parsePath(t);return _.createLocation(a({},u,{state:o}),void 0,r)}function t(t){function n(t){void 0!==t.state&&r(e(t.state))}var r=t.transitionTo;return l.addEventListener(window,"popstate",n),function(){l.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,o=e.hash,a=e.state,u=e.action,i=e.key;if(u!==s.POP){d.saveState(i,a);var c=(t||"")+n+r+o,f={key:i};if(u===s.PUSH){if(m)return window.location.href=c,!1;window.history.pushState(f,null,c)}else{if(m)return window.location.replace(c),!1;window.history.replaceState(f,null,c)}}}function r(e){1===++O&&(P=t(_));var n=_.listenBefore(e);return function(){n(),0===--O&&P()}}function o(e){1===++O&&(P=t(_));var n=_.listen(e);return function(){n(),0===--O&&P()}}function u(e){1===++O&&(P=t(_)),_.registerTransitionHook(e)}function p(e){_.unregisterTransitionHook(e),0===--O&&P()}var v=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];f.canUseDOM?void 0:i["default"](!1);var y=v.forceRefresh,g=l.supportsHistory(),m=!g||y,_=h["default"](a({},v,{getCurrentLocation:e,finishTransition:n,saveState:d.saveState})),O=0,P=void 0;return a({},_,{listenBefore:r,listen:o,registerTransitionHook:u,unregisterTransitionHook:p})}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(3),i=r(u),s=n(9),c=n(7),f=n(10),l=n(15),d=n(25),p=n(26),h=r(p);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?i.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],r=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=s.parsePath(e)),"object"==typeof t&&(e=a({},e,{state:t}),t=n||i.POP,n=r);var o=e.pathname||"/",u=e.search||"",c=e.hash||"",f=e.state||null;return{pathname:o,search:u,hash:c,state:f,action:t,key:n}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(4),i=(r(u),n(9)),s=n(7);t["default"]=o,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e.filter(function(e){return e.state}).reduce(function(e,t){return e[t.key]=t.state,e},{})}function a(){function e(e,t){g[e]=t}function t(e){return g[e]}function n(){var e=v[y],n=e.basename,r=e.pathname,o=e.search,a=(n||"")+r+(o||""),i=void 0,s=void 0;e.key?(i=e.key,s=t(i)):(i=d.createKey(),s=null,e.key=i);var c=f.parsePath(a);return d.createLocation(u({},c,{state:s}),void 0,i)}function r(e){var t=y+e;return t>=0&&t<v.length}function a(e){if(e){if(!r(e))return;y+=e;var t=n();d.transitionTo(u({},t,{action:l.POP}))}}function i(t){switch(t.action){case l.PUSH:y+=1,y<v.length&&v.splice(y),v.push(t),e(t.key,t.state);break;case l.REPLACE:v[y]=t,e(t.key,t.state)}}var s=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];Array.isArray(s)?s={entries:s}:"string"==typeof s&&(s={entries:[s]});var d=p["default"](u({},s,{getCurrentLocation:n,finishTransition:i,saveState:e,go:a})),h=s,v=h.entries,y=h.current;"string"==typeof v?v=[v]:Array.isArray(v)||(v=["/"]),v=v.map(function(e){var t=d.createKey();return"string"==typeof e?{pathname:e,key:t}:"object"==typeof e&&e?u({},e,{key:t}):void c["default"](!1)}),null==y?y=v.length-1:y>=0&&y<v.length?void 0:c["default"](!1);var g=o(v);return d}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(4),s=(r(i),n(3)),c=r(s),f=n(7),l=n(9),d=n(28),p=r(d);t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(57);t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e){return"string"!=typeof e?{}:(e=e.trim().replace(/^(\?|#|&)/,""),e?e.split("&").reduce(function(e,t){var n=t.replace(/\+/g," ").split("="),r=n.shift(),o=n.length>0?n.join("="):void 0;return r=decodeURIComponent(r),o=void 0===o?null:decodeURIComponent(o),e.hasOwnProperty(r)?Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]:e[r]=o,e},{}):{})},t.stringify=function(e){return e?Object.keys(e).sort().map(function(t){var n=e[t];return void 0===n?"":null===n?t:Array.isArray(n)?n.slice().sort().map(function(e){return r(t)+"="+r(e)}).join("&"):r(t)+"="+r(n)}).filter(function(e){return e.length>0}).join("&"):""}},function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}}])});

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc