diff --git a/client/source/scripts/actions/TorrentActions.js b/client/source/scripts/actions/TorrentActions.js
index 20d6a61c..26794a4e 100644
--- a/client/source/scripts/actions/TorrentActions.js
+++ b/client/source/scripts/actions/TorrentActions.js
@@ -212,7 +212,6 @@ const TorrentActions = {
},
setFilePriority: function(hash, fileIndices, priority) {
- console.log(hash, fileIndices, priority);
return axios.patch(`/client/torrents/${hash}/priority`, {
hash,
fileIndices,
diff --git a/client/source/scripts/components/filesystem/DirectoryFileList.js b/client/source/scripts/components/filesystem/DirectoryFileList.js
index 32011f3b..4e313b57 100644
--- a/client/source/scripts/components/filesystem/DirectoryFileList.js
+++ b/client/source/scripts/components/filesystem/DirectoryFileList.js
@@ -69,7 +69,7 @@ export default class DirectoryFiles extends React.Component {
return (
+ key={`${index}-${file.filename}`} title={file.filename}>
{file.filename}
@@ -83,7 +83,8 @@ export default class DirectoryFiles extends React.Component {
+ fileIndex={file.index} onChange={this.handlePriorityChange}
+ key={`${file.index}-${file.filename}`} />
);
diff --git a/client/source/scripts/components/filesystem/DirectoryTree.js b/client/source/scripts/components/filesystem/DirectoryTree.js
index 368508d5..feb793e2 100644
--- a/client/source/scripts/components/filesystem/DirectoryTree.js
+++ b/client/source/scripts/components/filesystem/DirectoryTree.js
@@ -26,12 +26,12 @@ export default class DirectoryTree extends React.Component {
if (branchName === 'files') {
return (
+ key={`${index}${depth}${branchName}`} />
);
} else {
return (
+ hash={hash} subTree={branch} key={`${index}${depth}${branchName}`} />
);
}
});
diff --git a/client/source/scripts/components/filesystem/DirectoryTreeNode.js b/client/source/scripts/components/filesystem/DirectoryTreeNode.js
index f30fd5f1..8cc43ff3 100644
--- a/client/source/scripts/components/filesystem/DirectoryTreeNode.js
+++ b/client/source/scripts/components/filesystem/DirectoryTreeNode.js
@@ -25,7 +25,7 @@ export default class DirectoryTreeNode extends React.Component {
return (
+ hash={this.props.hash} key={`${this.state.expanded}-${this.props.depth}`} />
);
} else {
diff --git a/config.js b/config.js
index 1235d647..2ed69938 100644
--- a/config.js
+++ b/config.js
@@ -1,5 +1,7 @@
const config = {
databasePath: './server/db/',
+ host: 'localhost',
+ hostPort: 5000,
maxHistoryStates: 30,
pollInterval: 5000,
uiDatabaseCleanInterval: 1000 * 60 * 60 // 1 hour
diff --git a/server/assets/app.js b/server/assets/app.js
index 3f10d90f..e8665926 100644
--- a/server/assets/app.js
+++ b/server/assets/app.js
@@ -1118,7 +1118,7 @@
/* 179 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _axios = __webpack_require__(180);\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _dispatcherAppDispatcher = __webpack_require__(194);\n\nvar _dispatcherAppDispatcher2 = _interopRequireDefault(_dispatcherAppDispatcher);\n\nvar _constantsActionTypes = __webpack_require__(198);\n\nvar _constantsActionTypes2 = _interopRequireDefault(_constantsActionTypes);\n\nvar TorrentActions = {\n addTorrents: function addTorrents(urls, destination) {\n _axios2['default'].post('/ui/torrent-location', {\n destination: destination\n })['catch'](function (error) {\n console.log(error);\n });\n return _axios2['default'].post('/client/add', {\n urls: urls,\n destination: destination\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_ADD_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_ADD_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n deleteTorrents: function deleteTorrents(hash) {\n return _axios2['default'].post('/client/torrents/delete', { hash: hash }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_REMOVE_TORRENT_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_REMOVE_TORRENT_ERROR,\n error: error\n });\n });\n },\n\n fetchLatestTorrentLocation: function fetchLatestTorrentLocation() {\n return _axios2['default'].get('/ui/torrent-location').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].UI_LATEST_TORRENT_LOCATION_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].UI_LATEST_TORRENT_LOCATION_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n fetchTorrents: function fetchTorrents() {\n return _axios2['default'].get('/client/torrents').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (torrents) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENTS_SUCCESS,\n data: {\n torrents: torrents\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENTS_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n fetchTorrentDetails: function fetchTorrentDetails(hash) {\n return _axios2['default'].post('/client/torrent-details', {\n hash: hash\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (torrentDetails) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_DETAILS_SUCCESS,\n data: {\n hash: hash,\n torrentDetails: torrentDetails\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_DETAILS_ERROR,\n data: {\n hash: hash\n }\n });\n });\n },\n\n fetchTorrentStatusCount: function fetchTorrentStatusCount() {\n return _axios2['default'].get('/client/torrents/status-count').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_STATUS_COUNT_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_STATUS_COUNT_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n fetchTorrentTrackerCount: function fetchTorrentTrackerCount() {\n return _axios2['default'].get('/client/torrents/tracker-count').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_TRACKER_COUNT_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_TRACKER_COUNT_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n startTorrents: function startTorrents(hashes) {\n return _axios2['default'].post('/client/start', {\n hashes: hashes\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_START_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_START_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n stopTorrents: function stopTorrents(hashes) {\n return _axios2['default'].post('/client/stop', {\n hashes: hashes\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n setFilePriority: function setFilePriority(hash, fileIndices, priority) {\n console.log(hash, fileIndices, priority);\n return _axios2['default'].patch('/client/torrents/' + hash + '/priority', {\n hash: hash,\n fileIndices: fileIndices,\n priority: priority\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n console.log(data);\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_ERROR,\n error: error\n });\n });\n }\n};\n\nexports['default'] = TorrentActions;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvYWN0aW9ucy9Ub3JyZW50QWN0aW9ucy5qcz8yMTA0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRjs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0EsK0RBQStELGFBQWE7QUFDNUUseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5RUFBeUU7O0FBRXpFO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5RUFBeUU7O0FBRXpFO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHlFQUF5RTs7QUFFekU7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6IjE3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9heGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7XG5cbnZhciBfYXhpb3MyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYXhpb3MpO1xuXG52YXIgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9BcHBEaXNwYXRjaGVyJyk7XG5cbnZhciBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIpO1xuXG52YXIgX2NvbnN0YW50c0FjdGlvblR5cGVzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL0FjdGlvblR5cGVzJyk7XG5cbnZhciBfY29uc3RhbnRzQWN0aW9uVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY29uc3RhbnRzQWN0aW9uVHlwZXMpO1xuXG52YXIgVG9ycmVudEFjdGlvbnMgPSB7XG4gIGFkZFRvcnJlbnRzOiBmdW5jdGlvbiBhZGRUb3JyZW50cyh1cmxzLCBkZXN0aW5hdGlvbikge1xuICAgIF9heGlvczJbJ2RlZmF1bHQnXS5wb3N0KCcvdWkvdG9ycmVudC1sb2NhdGlvbicsIHtcbiAgICAgIGRlc3RpbmF0aW9uOiBkZXN0aW5hdGlvblxuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIH0pO1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL2NsaWVudC9hZGQnLCB7XG4gICAgICB1cmxzOiB1cmxzLFxuICAgICAgZGVzdGluYXRpb246IGRlc3RpbmF0aW9uXG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0FERF9UT1JSRU5UX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICByZXNwb25zZTogcmVzcG9uc2VcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0FERF9UT1JSRU5UX0VSUk9SLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGRlbGV0ZVRvcnJlbnRzOiBmdW5jdGlvbiBkZWxldGVUb3JyZW50cyhoYXNoKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5wb3N0KCcvY2xpZW50L3RvcnJlbnRzL2RlbGV0ZScsIHsgaGFzaDogaGFzaCB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9SRU1PVkVfVE9SUkVOVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfUkVNT1ZFX1RPUlJFTlRfRVJST1IsXG4gICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZmV0Y2hMYXRlc3RUb3JyZW50TG9jYXRpb246IGZ1bmN0aW9uIGZldGNoTGF0ZXN0VG9ycmVudExvY2F0aW9uKCkge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10uZ2V0KCcvdWkvdG9ycmVudC1sb2NhdGlvbicpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGpzb24gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgcmV0dXJuIGpzb24uZGF0YTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uVUlfTEFURVNUX1RPUlJFTlRfTE9DQVRJT05fUkVRVUVTVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5VSV9MQVRFU1RfVE9SUkVOVF9MT0NBVElPTl9SRVFVRVNUX0VSUk9SLFxuICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGZldGNoVG9ycmVudHM6IGZ1bmN0aW9uIGZldGNoVG9ycmVudHMoKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5nZXQoJy9jbGllbnQvdG9ycmVudHMnKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAodG9ycmVudHMpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVFNfU1VDQ0VTUyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRvcnJlbnRzOiB0b3JyZW50c1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVFNfRVJST1IsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZmV0Y2hUb3JyZW50RGV0YWlsczogZnVuY3Rpb24gZmV0Y2hUb3JyZW50RGV0YWlscyhoYXNoKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5wb3N0KCcvY2xpZW50L3RvcnJlbnQtZGV0YWlscycsIHtcbiAgICAgIGhhc2g6IGhhc2hcbiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAodG9ycmVudERldGFpbHMpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVF9ERVRBSUxTX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoYXNoOiBoYXNoLFxuICAgICAgICAgIHRvcnJlbnREZXRhaWxzOiB0b3JyZW50RGV0YWlsc1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVF9ERVRBSUxTX0VSUk9SLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaGFzaDogaGFzaFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBmZXRjaFRvcnJlbnRTdGF0dXNDb3VudDogZnVuY3Rpb24gZmV0Y2hUb3JyZW50U3RhdHVzQ291bnQoKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5nZXQoJy9jbGllbnQvdG9ycmVudHMvc3RhdHVzLWNvdW50JykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVF9TVEFUVVNfQ09VTlRfUkVRVUVTVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiBkYXRhXG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVF9TVEFUVVNfQ09VTlRfUkVRVUVTVF9FUlJPUixcbiAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBmZXRjaFRvcnJlbnRUcmFja2VyQ291bnQ6IGZ1bmN0aW9uIGZldGNoVG9ycmVudFRyYWNrZXJDb3VudCgpIHtcbiAgICByZXR1cm4gX2F4aW9zMlsnZGVmYXVsdCddLmdldCgnL2NsaWVudC90b3JyZW50cy90cmFja2VyLWNvdW50JykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfRkVUQ0hfVE9SUkVOVF9UUkFDS0VSX0NPVU5UX1JFUVVFU1RfU1VDQ0VTUyxcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfVFJBQ0tFUl9DT1VOVF9SRVFVRVNUX0VSUk9SLFxuICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIHN0YXJ0VG9ycmVudHM6IGZ1bmN0aW9uIHN0YXJ0VG9ycmVudHMoaGFzaGVzKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5wb3N0KCcvY2xpZW50L3N0YXJ0Jywge1xuICAgICAgaGFzaGVzOiBoYXNoZXNcbiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfU1RBUlRfVE9SUkVOVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9TVEFSVF9UT1JSRU5UX0VSUk9SLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIHN0b3BUb3JyZW50czogZnVuY3Rpb24gc3RvcFRvcnJlbnRzKGhhc2hlcykge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL2NsaWVudC9zdG9wJywge1xuICAgICAgaGFzaGVzOiBoYXNoZXNcbiAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfU1RPUF9UT1JSRU5UX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICByZXNwb25zZTogcmVzcG9uc2VcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1NUT1BfVE9SUkVOVF9FUlJPUixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBzZXRGaWxlUHJpb3JpdHk6IGZ1bmN0aW9uIHNldEZpbGVQcmlvcml0eShoYXNoLCBmaWxlSW5kaWNlcywgcHJpb3JpdHkpIHtcbiAgICBjb25zb2xlLmxvZyhoYXNoLCBmaWxlSW5kaWNlcywgcHJpb3JpdHkpO1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucGF0Y2goJy9jbGllbnQvdG9ycmVudHMvJyArIGhhc2ggKyAnL3ByaW9yaXR5Jywge1xuICAgICAgaGFzaDogaGFzaCxcbiAgICAgIGZpbGVJbmRpY2VzOiBmaWxlSW5kaWNlcyxcbiAgICAgIHByaW9yaXR5OiBwcmlvcml0eVxuICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGpzb24gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgcmV0dXJuIGpzb24uZGF0YTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfU1RPUF9UT1JSRU5UX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IGRhdGFcbiAgICAgIH0pO1xuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9TVE9QX1RPUlJFTlRfRVJST1IsXG4gICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFRvcnJlbnRBY3Rpb25zO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL2NsaWVudC9zb3VyY2Uvc2NyaXB0cy9hY3Rpb25zL1RvcnJlbnRBY3Rpb25zLmpzXG4gKiogbW9kdWxlIGlkID0gMTc5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _axios = __webpack_require__(180);\n\nvar _axios2 = _interopRequireDefault(_axios);\n\nvar _dispatcherAppDispatcher = __webpack_require__(194);\n\nvar _dispatcherAppDispatcher2 = _interopRequireDefault(_dispatcherAppDispatcher);\n\nvar _constantsActionTypes = __webpack_require__(198);\n\nvar _constantsActionTypes2 = _interopRequireDefault(_constantsActionTypes);\n\nvar TorrentActions = {\n addTorrents: function addTorrents(urls, destination) {\n _axios2['default'].post('/ui/torrent-location', {\n destination: destination\n })['catch'](function (error) {\n console.log(error);\n });\n return _axios2['default'].post('/client/add', {\n urls: urls,\n destination: destination\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_ADD_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_ADD_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n deleteTorrents: function deleteTorrents(hash) {\n return _axios2['default'].post('/client/torrents/delete', { hash: hash }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_REMOVE_TORRENT_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_REMOVE_TORRENT_ERROR,\n error: error\n });\n });\n },\n\n fetchLatestTorrentLocation: function fetchLatestTorrentLocation() {\n return _axios2['default'].get('/ui/torrent-location').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].UI_LATEST_TORRENT_LOCATION_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].UI_LATEST_TORRENT_LOCATION_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n fetchTorrents: function fetchTorrents() {\n return _axios2['default'].get('/client/torrents').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (torrents) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENTS_SUCCESS,\n data: {\n torrents: torrents\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENTS_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n fetchTorrentDetails: function fetchTorrentDetails(hash) {\n return _axios2['default'].post('/client/torrent-details', {\n hash: hash\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (torrentDetails) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_DETAILS_SUCCESS,\n data: {\n hash: hash,\n torrentDetails: torrentDetails\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_DETAILS_ERROR,\n data: {\n hash: hash\n }\n });\n });\n },\n\n fetchTorrentStatusCount: function fetchTorrentStatusCount() {\n return _axios2['default'].get('/client/torrents/status-count').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_STATUS_COUNT_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_STATUS_COUNT_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n fetchTorrentTrackerCount: function fetchTorrentTrackerCount() {\n return _axios2['default'].get('/client/torrents/tracker-count').then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_TRACKER_COUNT_REQUEST_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_FETCH_TORRENT_TRACKER_COUNT_REQUEST_ERROR,\n error: error\n });\n });\n },\n\n startTorrents: function startTorrents(hashes) {\n return _axios2['default'].post('/client/start', {\n hashes: hashes\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_START_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_START_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n stopTorrents: function stopTorrents(hashes) {\n return _axios2['default'].post('/client/stop', {\n hashes: hashes\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (response) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_SUCCESS,\n data: {\n response: response\n }\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_ERROR,\n data: {\n error: error\n }\n });\n });\n },\n\n setFilePriority: function setFilePriority(hash, fileIndices, priority) {\n return _axios2['default'].patch('/client/torrents/' + hash + '/priority', {\n hash: hash,\n fileIndices: fileIndices,\n priority: priority\n }).then(function () {\n var json = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n return json.data;\n }).then(function (data) {\n console.log(data);\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_SUCCESS,\n data: data\n });\n })['catch'](function (error) {\n _dispatcherAppDispatcher2['default'].dispatchServerAction({\n type: _constantsActionTypes2['default'].CLIENT_STOP_TORRENT_ERROR,\n error: error\n });\n });\n }\n};\n\nexports['default'] = TorrentActions;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvYWN0aW9ucy9Ub3JyZW50QWN0aW9ucy5qcz8yMTA0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRjs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0EsK0RBQStELGFBQWE7QUFDNUUseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5RUFBeUU7O0FBRXpFO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wseUVBQXlFOztBQUV6RTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5RUFBeUU7O0FBRXpFO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5RUFBeUU7O0FBRXpFO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIxNzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfYXhpb3MgPSByZXF1aXJlKCdheGlvcycpO1xuXG52YXIgX2F4aW9zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2F4aW9zKTtcblxudmFyIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvQXBwRGlzcGF0Y2hlcicpO1xuXG52YXIgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyKTtcblxudmFyIF9jb25zdGFudHNBY3Rpb25UeXBlcyA9IHJlcXVpcmUoJy4uL2NvbnN0YW50cy9BY3Rpb25UeXBlcycpO1xuXG52YXIgX2NvbnN0YW50c0FjdGlvblR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NvbnN0YW50c0FjdGlvblR5cGVzKTtcblxudmFyIFRvcnJlbnRBY3Rpb25zID0ge1xuICBhZGRUb3JyZW50czogZnVuY3Rpb24gYWRkVG9ycmVudHModXJscywgZGVzdGluYXRpb24pIHtcbiAgICBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL3VpL3RvcnJlbnQtbG9jYXRpb24nLCB7XG4gICAgICBkZXN0aW5hdGlvbjogZGVzdGluYXRpb25cbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICB9KTtcbiAgICByZXR1cm4gX2F4aW9zMlsnZGVmYXVsdCddLnBvc3QoJy9jbGllbnQvYWRkJywge1xuICAgICAgdXJsczogdXJscyxcbiAgICAgIGRlc3RpbmF0aW9uOiBkZXN0aW5hdGlvblxuICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGpzb24gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgcmV0dXJuIGpzb24uZGF0YTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9BRERfVE9SUkVOVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9BRERfVE9SUkVOVF9FUlJPUixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBkZWxldGVUb3JyZW50czogZnVuY3Rpb24gZGVsZXRlVG9ycmVudHMoaGFzaCkge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL2NsaWVudC90b3JyZW50cy9kZWxldGUnLCB7IGhhc2g6IGhhc2ggfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfUkVNT1ZFX1RPUlJFTlRfU1VDQ0VTUyxcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1JFTU9WRV9UT1JSRU5UX0VSUk9SLFxuICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGZldGNoTGF0ZXN0VG9ycmVudExvY2F0aW9uOiBmdW5jdGlvbiBmZXRjaExhdGVzdFRvcnJlbnRMb2NhdGlvbigpIHtcbiAgICByZXR1cm4gX2F4aW9zMlsnZGVmYXVsdCddLmdldCgnL3VpL3RvcnJlbnQtbG9jYXRpb24nKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBqc29uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHJldHVybiBqc29uLmRhdGE7XG4gICAgfSkudGhlbihmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLlVJX0xBVEVTVF9UT1JSRU5UX0xPQ0FUSU9OX1JFUVVFU1RfU1VDQ0VTUyxcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uVUlfTEFURVNUX1RPUlJFTlRfTE9DQVRJT05fUkVRVUVTVF9FUlJPUixcbiAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBmZXRjaFRvcnJlbnRzOiBmdW5jdGlvbiBmZXRjaFRvcnJlbnRzKCkge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10uZ2V0KCcvY2xpZW50L3RvcnJlbnRzJykudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHRvcnJlbnRzKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRTX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0b3JyZW50czogdG9ycmVudHNcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRTX0VSUk9SLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGZldGNoVG9ycmVudERldGFpbHM6IGZ1bmN0aW9uIGZldGNoVG9ycmVudERldGFpbHMoaGFzaCkge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL2NsaWVudC90b3JyZW50LWRldGFpbHMnLCB7XG4gICAgICBoYXNoOiBoYXNoXG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHRvcnJlbnREZXRhaWxzKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfREVUQUlMU19TVUNDRVNTLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaGFzaDogaGFzaCxcbiAgICAgICAgICB0b3JyZW50RGV0YWlsczogdG9ycmVudERldGFpbHNcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfREVUQUlMU19FUlJPUixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhhc2g6IGhhc2hcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZmV0Y2hUb3JyZW50U3RhdHVzQ291bnQ6IGZ1bmN0aW9uIGZldGNoVG9ycmVudFN0YXR1c0NvdW50KCkge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10uZ2V0KCcvY2xpZW50L3RvcnJlbnRzL3N0YXR1cy1jb3VudCcpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGpzb24gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgcmV0dXJuIGpzb24uZGF0YTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfU1RBVFVTX0NPVU5UX1JFUVVFU1RfU1VDQ0VTUyxcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfU1RBVFVTX0NPVU5UX1JFUVVFU1RfRVJST1IsXG4gICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZmV0Y2hUb3JyZW50VHJhY2tlckNvdW50OiBmdW5jdGlvbiBmZXRjaFRvcnJlbnRUcmFja2VyQ291bnQoKSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5nZXQoJy9jbGllbnQvdG9ycmVudHMvdHJhY2tlci1jb3VudCcpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGpzb24gPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAgICAgcmV0dXJuIGpzb24uZGF0YTtcbiAgICB9KS50aGVuKGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX0ZFVENIX1RPUlJFTlRfVFJBQ0tFUl9DT1VOVF9SRVFVRVNUX1NVQ0NFU1MsXG4gICAgICAgIGRhdGE6IGRhdGFcbiAgICAgIH0pO1xuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9GRVRDSF9UT1JSRU5UX1RSQUNLRVJfQ09VTlRfUkVRVUVTVF9FUlJPUixcbiAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBzdGFydFRvcnJlbnRzOiBmdW5jdGlvbiBzdGFydFRvcnJlbnRzKGhhc2hlcykge1xuICAgIHJldHVybiBfYXhpb3MyWydkZWZhdWx0J10ucG9zdCgnL2NsaWVudC9zdGFydCcsIHtcbiAgICAgIGhhc2hlczogaGFzaGVzXG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1NUQVJUX1RPUlJFTlRfU1VDQ0VTUyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHJlc3BvbnNlOiByZXNwb25zZVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIF9kaXNwYXRjaGVyQXBwRGlzcGF0Y2hlcjJbJ2RlZmF1bHQnXS5kaXNwYXRjaFNlcnZlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IF9jb25zdGFudHNBY3Rpb25UeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfU1RBUlRfVE9SUkVOVF9FUlJPUixcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSxcblxuICBzdG9wVG9ycmVudHM6IGZ1bmN0aW9uIHN0b3BUb3JyZW50cyhoYXNoZXMpIHtcbiAgICByZXR1cm4gX2F4aW9zMlsnZGVmYXVsdCddLnBvc3QoJy9jbGllbnQvc3RvcCcsIHtcbiAgICAgIGhhc2hlczogaGFzaGVzXG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1NUT1BfVE9SUkVOVF9TVUNDRVNTLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pWydjYXRjaCddKGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9TVE9QX1RPUlJFTlRfRVJST1IsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgc2V0RmlsZVByaW9yaXR5OiBmdW5jdGlvbiBzZXRGaWxlUHJpb3JpdHkoaGFzaCwgZmlsZUluZGljZXMsIHByaW9yaXR5KSB7XG4gICAgcmV0dXJuIF9heGlvczJbJ2RlZmF1bHQnXS5wYXRjaCgnL2NsaWVudC90b3JyZW50cy8nICsgaGFzaCArICcvcHJpb3JpdHknLCB7XG4gICAgICBoYXNoOiBoYXNoLFxuICAgICAgZmlsZUluZGljZXM6IGZpbGVJbmRpY2VzLFxuICAgICAgcHJpb3JpdHk6IHByaW9yaXR5XG4gICAgfSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIganNvbiA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gICAgICByZXR1cm4ganNvbi5kYXRhO1xuICAgIH0pLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgX2Rpc3BhdGNoZXJBcHBEaXNwYXRjaGVyMlsnZGVmYXVsdCddLmRpc3BhdGNoU2VydmVyQWN0aW9uKHtcbiAgICAgICAgdHlwZTogX2NvbnN0YW50c0FjdGlvblR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9TVE9QX1RPUlJFTlRfU1VDQ0VTUyxcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfSk7XG4gICAgfSlbJ2NhdGNoJ10oZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBfZGlzcGF0Y2hlckFwcERpc3BhdGNoZXIyWydkZWZhdWx0J10uZGlzcGF0Y2hTZXJ2ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBfY29uc3RhbnRzQWN0aW9uVHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1NUT1BfVE9SUkVOVF9FUlJPUixcbiAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVG9ycmVudEFjdGlvbnM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2FjdGlvbnMvVG9ycmVudEFjdGlvbnMuanNcbiAqKiBtb2R1bGUgaWQgPSAxNzlcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
/***/ },
/* 180 */
@@ -1256,7 +1256,7 @@
/* 202 */
/***/ function(module, exports) {
- eval("'use strict';\n\nvar config = {\n databasePath: './server/db/',\n maxHistoryStates: 30,\n pollInterval: 5000,\n uiDatabaseCleanInterval: 1000 * 60 * 60 // 1 hour\n};\n\nmodule.exports = config;//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcuanM/MzMzOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJmaWxlIjoiMjAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29uZmlnID0ge1xuICBkYXRhYmFzZVBhdGg6ICcuL3NlcnZlci9kYi8nLFxuICBtYXhIaXN0b3J5U3RhdGVzOiAzMCxcbiAgcG9sbEludGVydmFsOiA1MDAwLFxuICB1aURhdGFiYXNlQ2xlYW5JbnRlcnZhbDogMTAwMCAqIDYwICogNjAgLy8gMSBob3VyXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbmZpZztcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY29uZmlnLmpzXG4gKiogbW9kdWxlIGlkID0gMjAyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+ eval("'use strict';\n\nvar config = {\n databasePath: './server/db/',\n host: 'localhost',\n hostPort: 5000,\n maxHistoryStates: 30,\n pollInterval: 5000,\n uiDatabaseCleanInterval: 1000 * 60 * 60 // 1 hour\n};\n\nmodule.exports = config;//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcuanM/MzMzOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwiZmlsZSI6IjIwMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIGNvbmZpZyA9IHtcbiAgZGF0YWJhc2VQYXRoOiAnLi9zZXJ2ZXIvZGIvJyxcbiAgaG9zdDogJ2xvY2FsaG9zdCcsXG4gIGhvc3RQb3J0OiA1MDAwLFxuICBtYXhIaXN0b3J5U3RhdGVzOiAzMCxcbiAgcG9sbEludGVydmFsOiA1MDAwLFxuICB1aURhdGFiYXNlQ2xlYW5JbnRlcnZhbDogMTAwMCAqIDYwICogNjAgLy8gMSBob3VyXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNvbmZpZztcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY29uZmlnLmpzXG4gKiogbW9kdWxlIGlkID0gMjAyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
/***/ },
/* 203 */
@@ -1496,13 +1496,13 @@
/* 242 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _DirectoryFileList = __webpack_require__(243);\n\nvar _DirectoryFileList2 = _interopRequireDefault(_DirectoryFileList);\n\nvar _DirectoryTreeNode = __webpack_require__(246);\n\nvar _DirectoryTreeNode2 = _interopRequireDefault(_DirectoryTreeNode);\n\nvar METHODS_TO_BIND = ['getDirectoryTreeDomNodes'];\n\nvar DirectoryTree = (function (_React$Component) {\n _inherits(DirectoryTree, _React$Component);\n\n function DirectoryTree() {\n var _this = this;\n\n _classCallCheck(this, DirectoryTree);\n\n _get(Object.getPrototypeOf(DirectoryTree.prototype), 'constructor', this).call(this);\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryTree, [{\n key: 'getDirectoryTreeDomNodes',\n value: function getDirectoryTreeDomNodes(tree) {\n var depth = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];\n\n var index = 0;\n var hash = this.props.hash;\n depth++;\n\n return Object.keys(tree).map(function (branchName) {\n var branch = tree[branchName];\n index++;\n\n if (branchName === 'files') {\n return _react2['default'].createElement(_DirectoryFileList2['default'], { branch: branch, hash: hash,\n key: '' + index + depth });\n } else {\n return _react2['default'].createElement(_DirectoryTreeNode2['default'], { depth: depth, directoryName: branchName,\n hash: hash, subTree: branch, key: '' + index + depth });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__tree' },\n this.getDirectoryTreeDomNodes(this.props.tree, this.props.depth)\n );\n }\n }]);\n\n return DirectoryTree;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryTree;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWUuanM/MmUyYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsd0NBQXdDLG1CQUFtQiw0QkFBNEIsa0RBQWtELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sY0FBYyxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUVscEIsc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtRkFBbUY7QUFDbkYscUNBQXFDO0FBQ3JDLFNBQVM7QUFDVCxtRkFBbUY7QUFDbkYsa0VBQWtFO0FBQ2xFO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxvQ0FBb0M7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyNDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeDIsIF94MywgX3g0KSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94MiwgcHJvcGVydHkgPSBfeDMsIHJlY2VpdmVyID0gX3g0OyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94MiA9IHBhcmVudDsgX3gzID0gcHJvcGVydHk7IF94NCA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9EaXJlY3RvcnlGaWxlTGlzdCA9IHJlcXVpcmUoJy4vRGlyZWN0b3J5RmlsZUxpc3QnKTtcblxudmFyIF9EaXJlY3RvcnlGaWxlTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9EaXJlY3RvcnlGaWxlTGlzdCk7XG5cbnZhciBfRGlyZWN0b3J5VHJlZU5vZGUgPSByZXF1aXJlKCcuL0RpcmVjdG9yeVRyZWVOb2RlJyk7XG5cbnZhciBfRGlyZWN0b3J5VHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRGlyZWN0b3J5VHJlZU5vZGUpO1xuXG52YXIgTUVUSE9EU19UT19CSU5EID0gWydnZXREaXJlY3RvcnlUcmVlRG9tTm9kZXMnXTtcblxudmFyIERpcmVjdG9yeVRyZWUgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERpcmVjdG9yeVRyZWUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIERpcmVjdG9yeVRyZWUoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEaXJlY3RvcnlUcmVlKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKERpcmVjdG9yeVRyZWUucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuY2FsbCh0aGlzKTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERpcmVjdG9yeVRyZWUsIFt7XG4gICAga2V5OiAnZ2V0RGlyZWN0b3J5VHJlZURvbU5vZGVzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGlyZWN0b3J5VHJlZURvbU5vZGVzKHRyZWUpIHtcbiAgICAgIHZhciBkZXB0aCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB2YXIgaGFzaCA9IHRoaXMucHJvcHMuaGFzaDtcbiAgICAgIGRlcHRoKys7XG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0cmVlKS5tYXAoZnVuY3Rpb24gKGJyYW5jaE5hbWUpIHtcbiAgICAgICAgdmFyIGJyYW5jaCA9IHRyZWVbYnJhbmNoTmFtZV07XG4gICAgICAgIGluZGV4Kys7XG5cbiAgICAgICAgaWYgKGJyYW5jaE5hbWUgPT09ICdmaWxlcycpIHtcbiAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0RpcmVjdG9yeUZpbGVMaXN0MlsnZGVmYXVsdCddLCB7IGJyYW5jaDogYnJhbmNoLCBoYXNoOiBoYXNoLFxuICAgICAgICAgICAga2V5OiAnJyArIGluZGV4ICsgZGVwdGggfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9EaXJlY3RvcnlUcmVlTm9kZTJbJ2RlZmF1bHQnXSwgeyBkZXB0aDogZGVwdGgsIGRpcmVjdG9yeU5hbWU6IGJyYW5jaE5hbWUsXG4gICAgICAgICAgICBoYXNoOiBoYXNoLCBzdWJUcmVlOiBicmFuY2gsIGtleTogJycgKyBpbmRleCArIGRlcHRoIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7IGNsYXNzTmFtZTogJ2RpcmVjdG9yeS10cmVlX190cmVlJyB9LFxuICAgICAgICB0aGlzLmdldERpcmVjdG9yeVRyZWVEb21Ob2Rlcyh0aGlzLnByb3BzLnRyZWUsIHRoaXMucHJvcHMuZGVwdGgpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEaXJlY3RvcnlUcmVlO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IERpcmVjdG9yeVRyZWU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvZmlsZXN5c3RlbS9EaXJlY3RvcnlUcmVlLmpzXG4gKiogbW9kdWxlIGlkID0gMjQyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _DirectoryFileList = __webpack_require__(243);\n\nvar _DirectoryFileList2 = _interopRequireDefault(_DirectoryFileList);\n\nvar _DirectoryTreeNode = __webpack_require__(246);\n\nvar _DirectoryTreeNode2 = _interopRequireDefault(_DirectoryTreeNode);\n\nvar METHODS_TO_BIND = ['getDirectoryTreeDomNodes'];\n\nvar DirectoryTree = (function (_React$Component) {\n _inherits(DirectoryTree, _React$Component);\n\n function DirectoryTree() {\n var _this = this;\n\n _classCallCheck(this, DirectoryTree);\n\n _get(Object.getPrototypeOf(DirectoryTree.prototype), 'constructor', this).call(this);\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryTree, [{\n key: 'getDirectoryTreeDomNodes',\n value: function getDirectoryTreeDomNodes(tree) {\n var depth = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];\n\n var index = 0;\n var hash = this.props.hash;\n depth++;\n\n return Object.keys(tree).map(function (branchName) {\n var branch = tree[branchName];\n index++;\n\n if (branchName === 'files') {\n return _react2['default'].createElement(_DirectoryFileList2['default'], { branch: branch, hash: hash,\n key: '' + index + depth + branchName });\n } else {\n return _react2['default'].createElement(_DirectoryTreeNode2['default'], { depth: depth, directoryName: branchName,\n hash: hash, subTree: branch, key: '' + index + depth + branchName });\n }\n });\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__tree' },\n this.getDirectoryTreeDomNodes(this.props.tree, this.props.depth)\n );\n }\n }]);\n\n return DirectoryTree;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryTree;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWUuanM/MmUyYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsd0NBQXdDLG1CQUFtQiw0QkFBNEIsa0RBQWtELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sY0FBYyxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUVscEIsc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtRkFBbUY7QUFDbkYsa0RBQWtEO0FBQ2xELFNBQVM7QUFDVCxtRkFBbUY7QUFDbkYsK0VBQStFO0FBQy9FO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxvQ0FBb0M7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyNDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeDIsIF94MywgX3g0KSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94MiwgcHJvcGVydHkgPSBfeDMsIHJlY2VpdmVyID0gX3g0OyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94MiA9IHBhcmVudDsgX3gzID0gcHJvcGVydHk7IF94NCA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9EaXJlY3RvcnlGaWxlTGlzdCA9IHJlcXVpcmUoJy4vRGlyZWN0b3J5RmlsZUxpc3QnKTtcblxudmFyIF9EaXJlY3RvcnlGaWxlTGlzdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9EaXJlY3RvcnlGaWxlTGlzdCk7XG5cbnZhciBfRGlyZWN0b3J5VHJlZU5vZGUgPSByZXF1aXJlKCcuL0RpcmVjdG9yeVRyZWVOb2RlJyk7XG5cbnZhciBfRGlyZWN0b3J5VHJlZU5vZGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfRGlyZWN0b3J5VHJlZU5vZGUpO1xuXG52YXIgTUVUSE9EU19UT19CSU5EID0gWydnZXREaXJlY3RvcnlUcmVlRG9tTm9kZXMnXTtcblxudmFyIERpcmVjdG9yeVRyZWUgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERpcmVjdG9yeVRyZWUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIERpcmVjdG9yeVRyZWUoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEaXJlY3RvcnlUcmVlKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKERpcmVjdG9yeVRyZWUucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuY2FsbCh0aGlzKTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERpcmVjdG9yeVRyZWUsIFt7XG4gICAga2V5OiAnZ2V0RGlyZWN0b3J5VHJlZURvbU5vZGVzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGlyZWN0b3J5VHJlZURvbU5vZGVzKHRyZWUpIHtcbiAgICAgIHZhciBkZXB0aCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMV07XG5cbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICB2YXIgaGFzaCA9IHRoaXMucHJvcHMuaGFzaDtcbiAgICAgIGRlcHRoKys7XG5cbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0cmVlKS5tYXAoZnVuY3Rpb24gKGJyYW5jaE5hbWUpIHtcbiAgICAgICAgdmFyIGJyYW5jaCA9IHRyZWVbYnJhbmNoTmFtZV07XG4gICAgICAgIGluZGV4Kys7XG5cbiAgICAgICAgaWYgKGJyYW5jaE5hbWUgPT09ICdmaWxlcycpIHtcbiAgICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX0RpcmVjdG9yeUZpbGVMaXN0MlsnZGVmYXVsdCddLCB7IGJyYW5jaDogYnJhbmNoLCBoYXNoOiBoYXNoLFxuICAgICAgICAgICAga2V5OiAnJyArIGluZGV4ICsgZGVwdGggKyBicmFuY2hOYW1lIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfRGlyZWN0b3J5VHJlZU5vZGUyWydkZWZhdWx0J10sIHsgZGVwdGg6IGRlcHRoLCBkaXJlY3RvcnlOYW1lOiBicmFuY2hOYW1lLFxuICAgICAgICAgICAgaGFzaDogaGFzaCwgc3ViVHJlZTogYnJhbmNoLCBrZXk6ICcnICsgaW5kZXggKyBkZXB0aCArIGJyYW5jaE5hbWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiAnZGlyZWN0b3J5LXRyZWVfX3RyZWUnIH0sXG4gICAgICAgIHRoaXMuZ2V0RGlyZWN0b3J5VHJlZURvbU5vZGVzKHRoaXMucHJvcHMudHJlZSwgdGhpcy5wcm9wcy5kZXB0aClcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIERpcmVjdG9yeVRyZWU7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gRGlyZWN0b3J5VHJlZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWUuanNcbiAqKiBtb2R1bGUgaWQgPSAyNDJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
/***/ },
/* 243 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _iconsFile = __webpack_require__(244);\n\nvar _iconsFile2 = _interopRequireDefault(_iconsFile);\n\nvar _utilFormatData = __webpack_require__(214);\n\nvar _utilFormatData2 = _interopRequireDefault(_utilFormatData);\n\nvar _PriorityMeter = __webpack_require__(245);\n\nvar _PriorityMeter2 = _interopRequireDefault(_PriorityMeter);\n\nvar _actionsTorrentActions = __webpack_require__(179);\n\nvar _actionsTorrentActions2 = _interopRequireDefault(_actionsTorrentActions);\n\nvar MAX_LEVEL = 2;\nvar METHODS_TO_BIND = ['handlePriorityChange', 'processPriorities'];\n\nvar DirectoryFiles = (function (_React$Component) {\n _inherits(DirectoryFiles, _React$Component);\n\n function DirectoryFiles() {\n var _this = this;\n\n _classCallCheck(this, DirectoryFiles);\n\n _get(Object.getPrototypeOf(DirectoryFiles.prototype), 'constructor', this).call(this);\n\n this.state = {\n priorities: {},\n files: null\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryFiles, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.processPriorities();\n }\n }, {\n key: 'handlePriorityChange',\n value: function handlePriorityChange(fileIndex) {\n var priorities = this.state.priorities;\n var priorityLevel = priorities[fileIndex];\n\n if (priorityLevel == null) {\n return;\n }\n\n if (priorityLevel++ >= MAX_LEVEL) {\n priorityLevel = 0;\n }\n\n priorities[fileIndex] = priorityLevel;\n\n this.setState({ priorities: priorities });\n\n _actionsTorrentActions2['default'].setFilePriority(this.props.hash, [fileIndex], priorityLevel);\n }\n }, {\n key: 'processPriorities',\n value: function processPriorities() {\n var priorities = this.state.priorities;\n\n this.props.branch.forEach(function (file, index) {\n if (priorities[file.index] == null) {\n priorities[file.index] = Number(file.priority);\n }\n });\n\n this.setState({ priorities: priorities });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var branch = Object.assign([], this.props.branch);\n\n branch.sort(function (a, b) {\n return a.filename.localeCompare(b.filename);\n });\n\n var files = branch.map(function (file, index) {\n var fileSize = _utilFormatData2['default'].data(file.sizeBytes, '', 1);\n\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--file file',\n key: '' + index, title: file.filename },\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__name' },\n _react2['default'].createElement(_iconsFile2['default'], null),\n file.filename\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--size' },\n fileSize.value,\n _react2['default'].createElement(\n 'em',\n { className: 'unit' },\n fileSize.unit\n )\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--size' },\n file.percentComplete,\n '%'\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--priority' },\n _react2['default'].createElement(_PriorityMeter2['default'], { level: _this2.state.priorities[file.index],\n fileIndex: file.index, onChange: _this2.handlePriorityChange })\n )\n );\n });\n\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--file-list' },\n files\n );\n }\n }]);\n\n return DirectoryFiles;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryFiles;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeUZpbGVMaXN0LmpzPzAzMWEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SiwwQ0FBMEMsK0RBQStELHFHQUFxRyxFQUFFLHlFQUF5RSxlQUFlLHlFQUF5RSxFQUFFLEVBQUUsdUhBQXVIOztBQUU1ZTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLHFCQUFxQix5QkFBeUI7O0FBRTlDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUCxxQkFBcUIseUJBQXlCO0FBQzlDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsbURBQW1EO0FBQ25EO0FBQ0E7QUFDQSxhQUFhLHVDQUF1QztBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwrQ0FBK0M7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSxvQkFBb0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsK0NBQStDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFtRDtBQUNoRSwwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQSxTQUFTLG9FQUFvRTtBQUM3RTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBIiwiZmlsZSI6IjI0My5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbnZhciBfZ2V0ID0gZnVuY3Rpb24gZ2V0KF94LCBfeDIsIF94MykgeyB2YXIgX2FnYWluID0gdHJ1ZTsgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7IHZhciBvYmplY3QgPSBfeCwgcHJvcGVydHkgPSBfeDIsIHJlY2VpdmVyID0gX3gzOyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94ID0gcGFyZW50OyBfeDIgPSBwcm9wZXJ0eTsgX3gzID0gcmVjZWl2ZXI7IF9hZ2FpbiA9IHRydWU7IGRlc2MgPSBwYXJlbnQgPSB1bmRlZmluZWQ7IGNvbnRpbnVlIF9mdW5jdGlvbjsgfSB9IGVsc2UgaWYgKCd2YWx1ZScgaW4gZGVzYykgeyByZXR1cm4gZGVzYy52YWx1ZTsgfSBlbHNlIHsgdmFyIGdldHRlciA9IGRlc2MuZ2V0OyBpZiAoZ2V0dGVyID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSByZXR1cm4gZ2V0dGVyLmNhbGwocmVjZWl2ZXIpOyB9IH0gfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2ljb25zRmlsZSA9IHJlcXVpcmUoJy4uL2ljb25zL0ZpbGUnKTtcblxudmFyIF9pY29uc0ZpbGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaWNvbnNGaWxlKTtcblxudmFyIF91dGlsRm9ybWF0RGF0YSA9IHJlcXVpcmUoJy4uLy4uL3V0aWwvZm9ybWF0RGF0YScpO1xuXG52YXIgX3V0aWxGb3JtYXREYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3V0aWxGb3JtYXREYXRhKTtcblxudmFyIF9Qcmlvcml0eU1ldGVyID0gcmVxdWlyZSgnLi9Qcmlvcml0eU1ldGVyJyk7XG5cbnZhciBfUHJpb3JpdHlNZXRlcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Qcmlvcml0eU1ldGVyKTtcblxudmFyIF9hY3Rpb25zVG9ycmVudEFjdGlvbnMgPSByZXF1aXJlKCcuLi8uLi9hY3Rpb25zL1RvcnJlbnRBY3Rpb25zJyk7XG5cbnZhciBfYWN0aW9uc1RvcnJlbnRBY3Rpb25zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FjdGlvbnNUb3JyZW50QWN0aW9ucyk7XG5cbnZhciBNQVhfTEVWRUwgPSAyO1xudmFyIE1FVEhPRFNfVE9fQklORCA9IFsnaGFuZGxlUHJpb3JpdHlDaGFuZ2UnLCAncHJvY2Vzc1ByaW9yaXRpZXMnXTtcblxudmFyIERpcmVjdG9yeUZpbGVzID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhEaXJlY3RvcnlGaWxlcywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gRGlyZWN0b3J5RmlsZXMoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEaXJlY3RvcnlGaWxlcyk7XG5cbiAgICBfZ2V0KE9iamVjdC5nZXRQcm90b3R5cGVPZihEaXJlY3RvcnlGaWxlcy5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5jYWxsKHRoaXMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHByaW9yaXRpZXM6IHt9LFxuICAgICAgZmlsZXM6IG51bGxcbiAgICB9O1xuXG4gICAgTUVUSE9EU19UT19CSU5ELmZvckVhY2goZnVuY3Rpb24gKG1ldGhvZCkge1xuICAgICAgX3RoaXNbbWV0aG9kXSA9IF90aGlzW21ldGhvZF0uYmluZChfdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRGlyZWN0b3J5RmlsZXMsIFt7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbE1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAgICAgdGhpcy5wcm9jZXNzUHJpb3JpdGllcygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZVByaW9yaXR5Q2hhbmdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlUHJpb3JpdHlDaGFuZ2UoZmlsZUluZGV4KSB7XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHRoaXMuc3RhdGUucHJpb3JpdGllcztcbiAgICAgIHZhciBwcmlvcml0eUxldmVsID0gcHJpb3JpdGllc1tmaWxlSW5kZXhdO1xuXG4gICAgICBpZiAocHJpb3JpdHlMZXZlbCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHByaW9yaXR5TGV2ZWwrKyA+PSBNQVhfTEVWRUwpIHtcbiAgICAgICAgcHJpb3JpdHlMZXZlbCA9IDA7XG4gICAgICB9XG5cbiAgICAgIHByaW9yaXRpZXNbZmlsZUluZGV4XSA9IHByaW9yaXR5TGV2ZWw7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBwcmlvcml0aWVzOiBwcmlvcml0aWVzIH0pO1xuXG4gICAgICBfYWN0aW9uc1RvcnJlbnRBY3Rpb25zMlsnZGVmYXVsdCddLnNldEZpbGVQcmlvcml0eSh0aGlzLnByb3BzLmhhc2gsIFtmaWxlSW5kZXhdLCBwcmlvcml0eUxldmVsKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdwcm9jZXNzUHJpb3JpdGllcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHByb2Nlc3NQcmlvcml0aWVzKCkge1xuICAgICAgdmFyIHByaW9yaXRpZXMgPSB0aGlzLnN0YXRlLnByaW9yaXRpZXM7XG5cbiAgICAgIHRoaXMucHJvcHMuYnJhbmNoLmZvckVhY2goZnVuY3Rpb24gKGZpbGUsIGluZGV4KSB7XG4gICAgICAgIGlmIChwcmlvcml0aWVzW2ZpbGUuaW5kZXhdID09IG51bGwpIHtcbiAgICAgICAgICBwcmlvcml0aWVzW2ZpbGUuaW5kZXhdID0gTnVtYmVyKGZpbGUucHJpb3JpdHkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHByaW9yaXRpZXM6IHByaW9yaXRpZXMgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBicmFuY2ggPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLnByb3BzLmJyYW5jaCk7XG5cbiAgICAgIGJyYW5jaC5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgIHJldHVybiBhLmZpbGVuYW1lLmxvY2FsZUNvbXBhcmUoYi5maWxlbmFtZSk7XG4gICAgICB9KTtcblxuICAgICAgdmFyIGZpbGVzID0gYnJhbmNoLm1hcChmdW5jdGlvbiAoZmlsZSwgaW5kZXgpIHtcbiAgICAgICAgdmFyIGZpbGVTaXplID0gX3V0aWxGb3JtYXREYXRhMlsnZGVmYXVsdCddLmRhdGEoZmlsZS5zaXplQnl0ZXMsICcnLCAxKTtcblxuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgeyBjbGFzc05hbWU6ICdkaXJlY3RvcnktdHJlZV9fbm9kZSBkaXJlY3RvcnktdHJlZV9fbm9kZS0tZmlsZSBmaWxlJyxcbiAgICAgICAgICAgIGtleTogJycgKyBpbmRleCwgdGl0bGU6IGZpbGUuZmlsZW5hbWUgfSxcbiAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdmaWxlX19kZXRhaWwgZmlsZV9fbmFtZScgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9pY29uc0ZpbGUyWydkZWZhdWx0J10sIG51bGwpLFxuICAgICAgICAgICAgZmlsZS5maWxlbmFtZVxuICAgICAgICAgICksXG4gICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlsZV9fZGV0YWlsIGZpbGVfX2RldGFpbC0tc2l6ZScgfSxcbiAgICAgICAgICAgIGZpbGVTaXplLnZhbHVlLFxuICAgICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICdlbScsXG4gICAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAndW5pdCcgfSxcbiAgICAgICAgICAgICAgZmlsZVNpemUudW5pdFxuICAgICAgICAgICAgKVxuICAgICAgICAgICksXG4gICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlsZV9fZGV0YWlsIGZpbGVfX2RldGFpbC0tc2l6ZScgfSxcbiAgICAgICAgICAgIGZpbGUucGVyY2VudENvbXBsZXRlLFxuICAgICAgICAgICAgJyUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICdmaWxlX19kZXRhaWwgZmlsZV9fZGV0YWlsLS1wcmlvcml0eScgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Qcmlvcml0eU1ldGVyMlsnZGVmYXVsdCddLCB7IGxldmVsOiBfdGhpczIuc3RhdGUucHJpb3JpdGllc1tmaWxlLmluZGV4XSxcbiAgICAgICAgICAgICAgZmlsZUluZGV4OiBmaWxlLmluZGV4LCBvbkNoYW5nZTogX3RoaXMyLmhhbmRsZVByaW9yaXR5Q2hhbmdlIH0pXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiAnZGlyZWN0b3J5LXRyZWVfX25vZGUgZGlyZWN0b3J5LXRyZWVfX25vZGUtLWZpbGUtbGlzdCcgfSxcbiAgICAgICAgZmlsZXNcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIERpcmVjdG9yeUZpbGVzO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IERpcmVjdG9yeUZpbGVzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL2NsaWVudC9zb3VyY2Uvc2NyaXB0cy9jb21wb25lbnRzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RmlsZUxpc3QuanNcbiAqKiBtb2R1bGUgaWQgPSAyNDNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _iconsFile = __webpack_require__(244);\n\nvar _iconsFile2 = _interopRequireDefault(_iconsFile);\n\nvar _utilFormatData = __webpack_require__(214);\n\nvar _utilFormatData2 = _interopRequireDefault(_utilFormatData);\n\nvar _PriorityMeter = __webpack_require__(245);\n\nvar _PriorityMeter2 = _interopRequireDefault(_PriorityMeter);\n\nvar _actionsTorrentActions = __webpack_require__(179);\n\nvar _actionsTorrentActions2 = _interopRequireDefault(_actionsTorrentActions);\n\nvar MAX_LEVEL = 2;\nvar METHODS_TO_BIND = ['handlePriorityChange', 'processPriorities'];\n\nvar DirectoryFiles = (function (_React$Component) {\n _inherits(DirectoryFiles, _React$Component);\n\n function DirectoryFiles() {\n var _this = this;\n\n _classCallCheck(this, DirectoryFiles);\n\n _get(Object.getPrototypeOf(DirectoryFiles.prototype), 'constructor', this).call(this);\n\n this.state = {\n priorities: {},\n files: null\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryFiles, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.processPriorities();\n }\n }, {\n key: 'handlePriorityChange',\n value: function handlePriorityChange(fileIndex) {\n var priorities = this.state.priorities;\n var priorityLevel = priorities[fileIndex];\n\n if (priorityLevel == null) {\n return;\n }\n\n if (priorityLevel++ >= MAX_LEVEL) {\n priorityLevel = 0;\n }\n\n priorities[fileIndex] = priorityLevel;\n\n this.setState({ priorities: priorities });\n\n _actionsTorrentActions2['default'].setFilePriority(this.props.hash, [fileIndex], priorityLevel);\n }\n }, {\n key: 'processPriorities',\n value: function processPriorities() {\n var priorities = this.state.priorities;\n\n this.props.branch.forEach(function (file, index) {\n if (priorities[file.index] == null) {\n priorities[file.index] = Number(file.priority);\n }\n });\n\n this.setState({ priorities: priorities });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var branch = Object.assign([], this.props.branch);\n\n branch.sort(function (a, b) {\n return a.filename.localeCompare(b.filename);\n });\n\n var files = branch.map(function (file, index) {\n var fileSize = _utilFormatData2['default'].data(file.sizeBytes, '', 1);\n\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--file file',\n key: index + '-' + file.filename, title: file.filename },\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__name' },\n _react2['default'].createElement(_iconsFile2['default'], null),\n file.filename\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--size' },\n fileSize.value,\n _react2['default'].createElement(\n 'em',\n { className: 'unit' },\n fileSize.unit\n )\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--size' },\n file.percentComplete,\n '%'\n ),\n _react2['default'].createElement(\n 'div',\n { className: 'file__detail file__detail--priority' },\n _react2['default'].createElement(_PriorityMeter2['default'], { level: _this2.state.priorities[file.index],\n fileIndex: file.index, onChange: _this2.handlePriorityChange,\n key: file.index + '-' + file.filename })\n )\n );\n });\n\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--file-list' },\n files\n );\n }\n }]);\n\n return DirectoryFiles;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryFiles;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeUZpbGVMaXN0LmpzPzAzMWEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SiwwQ0FBMEMsK0RBQStELHFHQUFxRyxFQUFFLHlFQUF5RSxlQUFlLHlFQUF5RSxFQUFFLEVBQUUsdUhBQXVIOztBQUU1ZTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLHFCQUFxQix5QkFBeUI7O0FBRTlDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUCxxQkFBcUIseUJBQXlCO0FBQzlDO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsb0VBQW9FO0FBQ3BFO0FBQ0E7QUFDQSxhQUFhLHVDQUF1QztBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwrQ0FBK0M7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSxvQkFBb0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsK0NBQStDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1EQUFtRDtBQUNoRSwwRUFBMEU7QUFDMUU7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBLFNBQVMsb0VBQW9FO0FBQzdFO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEO0FBQ0EiLCJmaWxlIjoiMjQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxudmFyIF9nZXQgPSBmdW5jdGlvbiBnZXQoX3gsIF94MiwgX3gzKSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94LCBwcm9wZXJ0eSA9IF94MiwgcmVjZWl2ZXIgPSBfeDM7IF9hZ2FpbiA9IGZhbHNlOyBpZiAob2JqZWN0ID09PSBudWxsKSBvYmplY3QgPSBGdW5jdGlvbi5wcm90b3R5cGU7IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3BlcnR5KTsgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkgeyB2YXIgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChwYXJlbnQgPT09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSBlbHNlIHsgX3ggPSBwYXJlbnQ7IF94MiA9IHByb3BlcnR5OyBfeDMgPSByZWNlaXZlcjsgX2FnYWluID0gdHJ1ZTsgZGVzYyA9IHBhcmVudCA9IHVuZGVmaW5lZDsgY29udGludWUgX2Z1bmN0aW9uOyB9IH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBkZXNjKSB7IHJldHVybiBkZXNjLnZhbHVlOyB9IGVsc2UgeyB2YXIgZ2V0dGVyID0gZGVzYy5nZXQ7IGlmIChnZXR0ZXIgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IHJldHVybiBnZXR0ZXIuY2FsbChyZWNlaXZlcik7IH0gfSB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfaWNvbnNGaWxlID0gcmVxdWlyZSgnLi4vaWNvbnMvRmlsZScpO1xuXG52YXIgX2ljb25zRmlsZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pY29uc0ZpbGUpO1xuXG52YXIgX3V0aWxGb3JtYXREYXRhID0gcmVxdWlyZSgnLi4vLi4vdXRpbC9mb3JtYXREYXRhJyk7XG5cbnZhciBfdXRpbEZvcm1hdERhdGEyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXRpbEZvcm1hdERhdGEpO1xuXG52YXIgX1ByaW9yaXR5TWV0ZXIgPSByZXF1aXJlKCcuL1ByaW9yaXR5TWV0ZXInKTtcblxudmFyIF9Qcmlvcml0eU1ldGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1ByaW9yaXR5TWV0ZXIpO1xuXG52YXIgX2FjdGlvbnNUb3JyZW50QWN0aW9ucyA9IHJlcXVpcmUoJy4uLy4uL2FjdGlvbnMvVG9ycmVudEFjdGlvbnMnKTtcblxudmFyIF9hY3Rpb25zVG9ycmVudEFjdGlvbnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYWN0aW9uc1RvcnJlbnRBY3Rpb25zKTtcblxudmFyIE1BWF9MRVZFTCA9IDI7XG52YXIgTUVUSE9EU19UT19CSU5EID0gWydoYW5kbGVQcmlvcml0eUNoYW5nZScsICdwcm9jZXNzUHJpb3JpdGllcyddO1xuXG52YXIgRGlyZWN0b3J5RmlsZXMgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERpcmVjdG9yeUZpbGVzLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBEaXJlY3RvcnlGaWxlcygpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERpcmVjdG9yeUZpbGVzKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKERpcmVjdG9yeUZpbGVzLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmNhbGwodGhpcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgcHJpb3JpdGllczoge30sXG4gICAgICBmaWxlczogbnVsbFxuICAgIH07XG5cbiAgICBNRVRIT0RTX1RPX0JJTkQuZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XG4gICAgICBfdGhpc1ttZXRob2RdID0gX3RoaXNbbWV0aG9kXS5iaW5kKF90aGlzKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhEaXJlY3RvcnlGaWxlcywgW3tcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsTW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgICB0aGlzLnByb2Nlc3NQcmlvcml0aWVzKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFuZGxlUHJpb3JpdHlDaGFuZ2UnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBoYW5kbGVQcmlvcml0eUNoYW5nZShmaWxlSW5kZXgpIHtcbiAgICAgIHZhciBwcmlvcml0aWVzID0gdGhpcy5zdGF0ZS5wcmlvcml0aWVzO1xuICAgICAgdmFyIHByaW9yaXR5TGV2ZWwgPSBwcmlvcml0aWVzW2ZpbGVJbmRleF07XG5cbiAgICAgIGlmIChwcmlvcml0eUxldmVsID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJpb3JpdHlMZXZlbCsrID49IE1BWF9MRVZFTCkge1xuICAgICAgICBwcmlvcml0eUxldmVsID0gMDtcbiAgICAgIH1cblxuICAgICAgcHJpb3JpdGllc1tmaWxlSW5kZXhdID0gcHJpb3JpdHlMZXZlbDtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHByaW9yaXRpZXM6IHByaW9yaXRpZXMgfSk7XG5cbiAgICAgIF9hY3Rpb25zVG9ycmVudEFjdGlvbnMyWydkZWZhdWx0J10uc2V0RmlsZVByaW9yaXR5KHRoaXMucHJvcHMuaGFzaCwgW2ZpbGVJbmRleF0sIHByaW9yaXR5TGV2ZWwpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3Byb2Nlc3NQcmlvcml0aWVzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcHJvY2Vzc1ByaW9yaXRpZXMoKSB7XG4gICAgICB2YXIgcHJpb3JpdGllcyA9IHRoaXMuc3RhdGUucHJpb3JpdGllcztcblxuICAgICAgdGhpcy5wcm9wcy5icmFuY2guZm9yRWFjaChmdW5jdGlvbiAoZmlsZSwgaW5kZXgpIHtcbiAgICAgICAgaWYgKHByaW9yaXRpZXNbZmlsZS5pbmRleF0gPT0gbnVsbCkge1xuICAgICAgICAgIHByaW9yaXRpZXNbZmlsZS5pbmRleF0gPSBOdW1iZXIoZmlsZS5wcmlvcml0eSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgcHJpb3JpdGllczogcHJpb3JpdGllcyB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIGJyYW5jaCA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMucHJvcHMuYnJhbmNoKTtcblxuICAgICAgYnJhbmNoLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEuZmlsZW5hbWUubG9jYWxlQ29tcGFyZShiLmZpbGVuYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgZmlsZXMgPSBicmFuY2gubWFwKGZ1bmN0aW9uIChmaWxlLCBpbmRleCkge1xuICAgICAgICB2YXIgZmlsZVNpemUgPSBfdXRpbEZvcm1hdERhdGEyWydkZWZhdWx0J10uZGF0YShmaWxlLnNpemVCeXRlcywgJycsIDEpO1xuXG4gICAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICB7IGNsYXNzTmFtZTogJ2RpcmVjdG9yeS10cmVlX19ub2RlIGRpcmVjdG9yeS10cmVlX19ub2RlLS1maWxlIGZpbGUnLFxuICAgICAgICAgICAga2V5OiBpbmRleCArICctJyArIGZpbGUuZmlsZW5hbWUsIHRpdGxlOiBmaWxlLmZpbGVuYW1lIH0sXG4gICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlsZV9fZGV0YWlsIGZpbGVfX25hbWUnIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfaWNvbnNGaWxlMlsnZGVmYXVsdCddLCBudWxsKSxcbiAgICAgICAgICAgIGZpbGUuZmlsZW5hbWVcbiAgICAgICAgICApLFxuICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2ZpbGVfX2RldGFpbCBmaWxlX19kZXRhaWwtLXNpemUnIH0sXG4gICAgICAgICAgICBmaWxlU2l6ZS52YWx1ZSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAnZW0nLFxuICAgICAgICAgICAgICB7IGNsYXNzTmFtZTogJ3VuaXQnIH0sXG4gICAgICAgICAgICAgIGZpbGVTaXplLnVuaXRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApLFxuICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgJ2RpdicsXG4gICAgICAgICAgICB7IGNsYXNzTmFtZTogJ2ZpbGVfX2RldGFpbCBmaWxlX19kZXRhaWwtLXNpemUnIH0sXG4gICAgICAgICAgICBmaWxlLnBlcmNlbnRDb21wbGV0ZSxcbiAgICAgICAgICAgICclJ1xuICAgICAgICAgICksXG4gICAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZmlsZV9fZGV0YWlsIGZpbGVfX2RldGFpbC0tcHJpb3JpdHknIH0sXG4gICAgICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfUHJpb3JpdHlNZXRlcjJbJ2RlZmF1bHQnXSwgeyBsZXZlbDogX3RoaXMyLnN0YXRlLnByaW9yaXRpZXNbZmlsZS5pbmRleF0sXG4gICAgICAgICAgICAgIGZpbGVJbmRleDogZmlsZS5pbmRleCwgb25DaGFuZ2U6IF90aGlzMi5oYW5kbGVQcmlvcml0eUNoYW5nZSxcbiAgICAgICAgICAgICAga2V5OiBmaWxlLmluZGV4ICsgJy0nICsgZmlsZS5maWxlbmFtZSB9KVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdkaXYnLFxuICAgICAgICB7IGNsYXNzTmFtZTogJ2RpcmVjdG9yeS10cmVlX19ub2RlIGRpcmVjdG9yeS10cmVlX19ub2RlLS1maWxlLWxpc3QnIH0sXG4gICAgICAgIGZpbGVzXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEaXJlY3RvcnlGaWxlcztcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEaXJlY3RvcnlGaWxlcztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeUZpbGVMaXN0LmpzXG4gKiogbW9kdWxlIGlkID0gMjQzXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
/***/ },
/* 244 */
@@ -1520,7 +1520,7 @@
/* 246 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _iconsFolderClosedSolid = __webpack_require__(247);\n\nvar _iconsFolderClosedSolid2 = _interopRequireDefault(_iconsFolderClosedSolid);\n\nvar _iconsFolderOpenSolid = __webpack_require__(248);\n\nvar _iconsFolderOpenSolid2 = _interopRequireDefault(_iconsFolderOpenSolid);\n\nvar _DirectoryTree = __webpack_require__(242);\n\nvar _DirectoryTree2 = _interopRequireDefault(_DirectoryTree);\n\nvar METHODS_TO_BIND = ['handleDirectoryClick'];\n\nvar DirectoryTreeNode = (function (_React$Component) {\n _inherits(DirectoryTreeNode, _React$Component);\n\n function DirectoryTreeNode() {\n var _this = this;\n\n _classCallCheck(this, DirectoryTreeNode);\n\n _get(Object.getPrototypeOf(DirectoryTreeNode.prototype), 'constructor', this).call(this);\n\n this.state = {\n expanded: false\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryTreeNode, [{\n key: 'getSubTree',\n value: function getSubTree() {\n if (this.state.expanded) {\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--group' },\n _react2['default'].createElement(_DirectoryTree2['default'], { tree: this.props.subTree, depth: this.props.depth,\n hash: this.props.hash })\n );\n } else {\n return null;\n }\n }\n }, {\n key: 'handleDirectoryClick',\n value: function handleDirectoryClick() {\n this.setState({\n expanded: !this.state.expanded\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var branchClasses = 'directory-tree__branch directory-tree__branch--depth-' + this.props.depth;\n var directoryClasses = (0, _classnames2['default'])('directory-tree__node', 'directory-tree__node--directory', { 'is-expanded': this.state.expanded });\n\n var icon = _react2['default'].createElement(_iconsFolderClosedSolid2['default'], null);\n\n if (this.state.expanded) {\n icon = _react2['default'].createElement(_iconsFolderOpenSolid2['default'], null);\n }\n\n return _react2['default'].createElement(\n 'div',\n { className: branchClasses },\n _react2['default'].createElement(\n 'div',\n { className: directoryClasses,\n onClick: this.handleDirectoryClick, title: this.props.directoryName },\n icon,\n this.props.directoryName\n ),\n this.getSubTree()\n );\n }\n }]);\n\n return DirectoryTreeNode;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryTreeNode;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWVOb2RlLmpzP2YzZDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SiwwQ0FBMEMsK0RBQStELHFHQUFxRyxFQUFFLHlFQUF5RSxlQUFlLHlFQUF5RSxFQUFFLEVBQUUsdUhBQXVIOztBQUU1ZTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxnRUFBZ0U7QUFDM0Usd0VBQXdFO0FBQ3hFLG1DQUFtQztBQUNuQztBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0Esc0hBQXNILHFDQUFxQzs7QUFFM0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTLDJCQUEyQjtBQUNwQztBQUNBO0FBQ0EsV0FBVztBQUNYLGlGQUFpRjtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBIiwiZmlsZSI6IjI0Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbnZhciBfZ2V0ID0gZnVuY3Rpb24gZ2V0KF94LCBfeDIsIF94MykgeyB2YXIgX2FnYWluID0gdHJ1ZTsgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7IHZhciBvYmplY3QgPSBfeCwgcHJvcGVydHkgPSBfeDIsIHJlY2VpdmVyID0gX3gzOyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94ID0gcGFyZW50OyBfeDIgPSBwcm9wZXJ0eTsgX3gzID0gcmVjZWl2ZXI7IF9hZ2FpbiA9IHRydWU7IGRlc2MgPSBwYXJlbnQgPSB1bmRlZmluZWQ7IGNvbnRpbnVlIF9mdW5jdGlvbjsgfSB9IGVsc2UgaWYgKCd2YWx1ZScgaW4gZGVzYykgeyByZXR1cm4gZGVzYy52YWx1ZTsgfSBlbHNlIHsgdmFyIGdldHRlciA9IGRlc2MuZ2V0OyBpZiAoZ2V0dGVyID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSByZXR1cm4gZ2V0dGVyLmNhbGwocmVjZWl2ZXIpOyB9IH0gfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9jbGFzc25hbWVzID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lcyk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkID0gcmVxdWlyZSgnLi4vaWNvbnMvRm9sZGVyQ2xvc2VkU29saWQnKTtcblxudmFyIF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ljb25zRm9sZGVyQ2xvc2VkU29saWQpO1xuXG52YXIgX2ljb25zRm9sZGVyT3BlblNvbGlkID0gcmVxdWlyZSgnLi4vaWNvbnMvRm9sZGVyT3BlblNvbGlkJyk7XG5cbnZhciBfaWNvbnNGb2xkZXJPcGVuU29saWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaWNvbnNGb2xkZXJPcGVuU29saWQpO1xuXG52YXIgX0RpcmVjdG9yeVRyZWUgPSByZXF1aXJlKCcuL0RpcmVjdG9yeVRyZWUnKTtcblxudmFyIF9EaXJlY3RvcnlUcmVlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0RpcmVjdG9yeVRyZWUpO1xuXG52YXIgTUVUSE9EU19UT19CSU5EID0gWydoYW5kbGVEaXJlY3RvcnlDbGljayddO1xuXG52YXIgRGlyZWN0b3J5VHJlZU5vZGUgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERpcmVjdG9yeVRyZWVOb2RlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBEaXJlY3RvcnlUcmVlTm9kZSgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERpcmVjdG9yeVRyZWVOb2RlKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKERpcmVjdG9yeVRyZWVOb2RlLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmNhbGwodGhpcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXhwYW5kZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERpcmVjdG9yeVRyZWVOb2RlLCBbe1xuICAgIGtleTogJ2dldFN1YlRyZWUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTdWJUcmVlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICdkaXYnLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZGlyZWN0b3J5LXRyZWVfX25vZGUgZGlyZWN0b3J5LXRyZWVfX25vZGUtLWdyb3VwJyB9LFxuICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9EaXJlY3RvcnlUcmVlMlsnZGVmYXVsdCddLCB7IHRyZWU6IHRoaXMucHJvcHMuc3ViVHJlZSwgZGVwdGg6IHRoaXMucHJvcHMuZGVwdGgsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLnByb3BzLmhhc2ggfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZURpcmVjdG9yeUNsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlRGlyZWN0b3J5Q2xpY2soKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZXhwYW5kZWQ6ICF0aGlzLnN0YXRlLmV4cGFuZGVkXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgYnJhbmNoQ2xhc3NlcyA9ICdkaXJlY3RvcnktdHJlZV9fYnJhbmNoIGRpcmVjdG9yeS10cmVlX19icmFuY2gtLWRlcHRoLScgKyB0aGlzLnByb3BzLmRlcHRoO1xuICAgICAgdmFyIGRpcmVjdG9yeUNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXMyWydkZWZhdWx0J10pKCdkaXJlY3RvcnktdHJlZV9fbm9kZScsICdkaXJlY3RvcnktdHJlZV9fbm9kZS0tZGlyZWN0b3J5JywgeyAnaXMtZXhwYW5kZWQnOiB0aGlzLnN0YXRlLmV4cGFuZGVkIH0pO1xuXG4gICAgICB2YXIgaWNvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkMlsnZGVmYXVsdCddLCBudWxsKTtcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuZXhwYW5kZWQpIHtcbiAgICAgICAgaWNvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9pY29uc0ZvbGRlck9wZW5Tb2xpZDJbJ2RlZmF1bHQnXSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBicmFuY2hDbGFzc2VzIH0sXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICdkaXYnLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBkaXJlY3RvcnlDbGFzc2VzLFxuICAgICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVEaXJlY3RvcnlDbGljaywgdGl0bGU6IHRoaXMucHJvcHMuZGlyZWN0b3J5TmFtZSB9LFxuICAgICAgICAgIGljb24sXG4gICAgICAgICAgdGhpcy5wcm9wcy5kaXJlY3RvcnlOYW1lXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuZ2V0U3ViVHJlZSgpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEaXJlY3RvcnlUcmVlTm9kZTtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEaXJlY3RvcnlUcmVlTm9kZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWVOb2RlLmpzXG4gKiogbW9kdWxlIGlkID0gMjQ2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _iconsFolderClosedSolid = __webpack_require__(247);\n\nvar _iconsFolderClosedSolid2 = _interopRequireDefault(_iconsFolderClosedSolid);\n\nvar _iconsFolderOpenSolid = __webpack_require__(248);\n\nvar _iconsFolderOpenSolid2 = _interopRequireDefault(_iconsFolderOpenSolid);\n\nvar _DirectoryTree = __webpack_require__(242);\n\nvar _DirectoryTree2 = _interopRequireDefault(_DirectoryTree);\n\nvar METHODS_TO_BIND = ['handleDirectoryClick'];\n\nvar DirectoryTreeNode = (function (_React$Component) {\n _inherits(DirectoryTreeNode, _React$Component);\n\n function DirectoryTreeNode() {\n var _this = this;\n\n _classCallCheck(this, DirectoryTreeNode);\n\n _get(Object.getPrototypeOf(DirectoryTreeNode.prototype), 'constructor', this).call(this);\n\n this.state = {\n expanded: false\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n }\n\n _createClass(DirectoryTreeNode, [{\n key: 'getSubTree',\n value: function getSubTree() {\n if (this.state.expanded) {\n return _react2['default'].createElement(\n 'div',\n { className: 'directory-tree__node directory-tree__node--group' },\n _react2['default'].createElement(_DirectoryTree2['default'], { tree: this.props.subTree, depth: this.props.depth,\n hash: this.props.hash, key: this.state.expanded + '-' + this.props.depth })\n );\n } else {\n return null;\n }\n }\n }, {\n key: 'handleDirectoryClick',\n value: function handleDirectoryClick() {\n this.setState({\n expanded: !this.state.expanded\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var branchClasses = 'directory-tree__branch directory-tree__branch--depth-' + this.props.depth;\n var directoryClasses = (0, _classnames2['default'])('directory-tree__node', 'directory-tree__node--directory', { 'is-expanded': this.state.expanded });\n\n var icon = _react2['default'].createElement(_iconsFolderClosedSolid2['default'], null);\n\n if (this.state.expanded) {\n icon = _react2['default'].createElement(_iconsFolderOpenSolid2['default'], null);\n }\n\n return _react2['default'].createElement(\n 'div',\n { className: branchClasses },\n _react2['default'].createElement(\n 'div',\n { className: directoryClasses,\n onClick: this.handleDirectoryClick, title: this.props.directoryName },\n icon,\n this.props.directoryName\n ),\n this.getSubTree()\n );\n }\n }]);\n\n return DirectoryTreeNode;\n})(_react2['default'].Component);\n\nexports['default'] = DirectoryTreeNode;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWVOb2RlLmpzP2YzZDAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SiwwQ0FBMEMsK0RBQStELHFHQUFxRyxFQUFFLHlFQUF5RSxlQUFlLHlFQUF5RSxFQUFFLEVBQUUsdUhBQXVIOztBQUU1ZTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxnRUFBZ0U7QUFDM0Usd0VBQXdFO0FBQ3hFLHNGQUFzRjtBQUN0RjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0Esc0hBQXNILHFDQUFxQzs7QUFFM0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTLDJCQUEyQjtBQUNwQztBQUNBO0FBQ0EsV0FBVztBQUNYLGlGQUFpRjtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBIiwiZmlsZSI6IjI0Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbnZhciBfZ2V0ID0gZnVuY3Rpb24gZ2V0KF94LCBfeDIsIF94MykgeyB2YXIgX2FnYWluID0gdHJ1ZTsgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7IHZhciBvYmplY3QgPSBfeCwgcHJvcGVydHkgPSBfeDIsIHJlY2VpdmVyID0gX3gzOyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94ID0gcGFyZW50OyBfeDIgPSBwcm9wZXJ0eTsgX3gzID0gcmVjZWl2ZXI7IF9hZ2FpbiA9IHRydWU7IGRlc2MgPSBwYXJlbnQgPSB1bmRlZmluZWQ7IGNvbnRpbnVlIF9mdW5jdGlvbjsgfSB9IGVsc2UgaWYgKCd2YWx1ZScgaW4gZGVzYykgeyByZXR1cm4gZGVzYy52YWx1ZTsgfSBlbHNlIHsgdmFyIGdldHRlciA9IGRlc2MuZ2V0OyBpZiAoZ2V0dGVyID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSByZXR1cm4gZ2V0dGVyLmNhbGwocmVjZWl2ZXIpOyB9IH0gfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9jbGFzc25hbWVzID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lcyk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkID0gcmVxdWlyZSgnLi4vaWNvbnMvRm9sZGVyQ2xvc2VkU29saWQnKTtcblxudmFyIF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ljb25zRm9sZGVyQ2xvc2VkU29saWQpO1xuXG52YXIgX2ljb25zRm9sZGVyT3BlblNvbGlkID0gcmVxdWlyZSgnLi4vaWNvbnMvRm9sZGVyT3BlblNvbGlkJyk7XG5cbnZhciBfaWNvbnNGb2xkZXJPcGVuU29saWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaWNvbnNGb2xkZXJPcGVuU29saWQpO1xuXG52YXIgX0RpcmVjdG9yeVRyZWUgPSByZXF1aXJlKCcuL0RpcmVjdG9yeVRyZWUnKTtcblxudmFyIF9EaXJlY3RvcnlUcmVlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0RpcmVjdG9yeVRyZWUpO1xuXG52YXIgTUVUSE9EU19UT19CSU5EID0gWydoYW5kbGVEaXJlY3RvcnlDbGljayddO1xuXG52YXIgRGlyZWN0b3J5VHJlZU5vZGUgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERpcmVjdG9yeVRyZWVOb2RlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBEaXJlY3RvcnlUcmVlTm9kZSgpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERpcmVjdG9yeVRyZWVOb2RlKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKERpcmVjdG9yeVRyZWVOb2RlLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmNhbGwodGhpcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZXhwYW5kZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKERpcmVjdG9yeVRyZWVOb2RlLCBbe1xuICAgIGtleTogJ2dldFN1YlRyZWUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTdWJUcmVlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZXhwYW5kZWQpIHtcbiAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICdkaXYnLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiAnZGlyZWN0b3J5LXRyZWVfX25vZGUgZGlyZWN0b3J5LXRyZWVfX25vZGUtLWdyb3VwJyB9LFxuICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9EaXJlY3RvcnlUcmVlMlsnZGVmYXVsdCddLCB7IHRyZWU6IHRoaXMucHJvcHMuc3ViVHJlZSwgZGVwdGg6IHRoaXMucHJvcHMuZGVwdGgsXG4gICAgICAgICAgICBoYXNoOiB0aGlzLnByb3BzLmhhc2gsIGtleTogdGhpcy5zdGF0ZS5leHBhbmRlZCArICctJyArIHRoaXMucHJvcHMuZGVwdGggfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZURpcmVjdG9yeUNsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlRGlyZWN0b3J5Q2xpY2soKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZXhwYW5kZWQ6ICF0aGlzLnN0YXRlLmV4cGFuZGVkXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgYnJhbmNoQ2xhc3NlcyA9ICdkaXJlY3RvcnktdHJlZV9fYnJhbmNoIGRpcmVjdG9yeS10cmVlX19icmFuY2gtLWRlcHRoLScgKyB0aGlzLnByb3BzLmRlcHRoO1xuICAgICAgdmFyIGRpcmVjdG9yeUNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXMyWydkZWZhdWx0J10pKCdkaXJlY3RvcnktdHJlZV9fbm9kZScsICdkaXJlY3RvcnktdHJlZV9fbm9kZS0tZGlyZWN0b3J5JywgeyAnaXMtZXhwYW5kZWQnOiB0aGlzLnN0YXRlLmV4cGFuZGVkIH0pO1xuXG4gICAgICB2YXIgaWNvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9pY29uc0ZvbGRlckNsb3NlZFNvbGlkMlsnZGVmYXVsdCddLCBudWxsKTtcblxuICAgICAgaWYgKHRoaXMuc3RhdGUuZXhwYW5kZWQpIHtcbiAgICAgICAgaWNvbiA9IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9pY29uc0ZvbGRlck9wZW5Tb2xpZDJbJ2RlZmF1bHQnXSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ2RpdicsXG4gICAgICAgIHsgY2xhc3NOYW1lOiBicmFuY2hDbGFzc2VzIH0sXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICdkaXYnLFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiBkaXJlY3RvcnlDbGFzc2VzLFxuICAgICAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVEaXJlY3RvcnlDbGljaywgdGl0bGU6IHRoaXMucHJvcHMuZGlyZWN0b3J5TmFtZSB9LFxuICAgICAgICAgIGljb24sXG4gICAgICAgICAgdGhpcy5wcm9wcy5kaXJlY3RvcnlOYW1lXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuZ2V0U3ViVHJlZSgpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBEaXJlY3RvcnlUcmVlTm9kZTtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEaXJlY3RvcnlUcmVlTm9kZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9maWxlc3lzdGVtL0RpcmVjdG9yeVRyZWVOb2RlLmpzXG4gKiogbW9kdWxlIGlkID0gMjQ2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
/***/ },
/* 247 */
diff --git a/server/models/HistoryEra.js b/server/models/HistoryEra.js
index 33202618..261db2b0 100644
--- a/server/models/HistoryEra.js
+++ b/server/models/HistoryEra.js
@@ -56,8 +56,6 @@ class HistoryEra {
let currentTime = Date.now();
if (currentTime - this.lastUpdate >= this.opts.interval - CUMULATIVE_DATA_BUFFER) {
- console.log(`creating new record in ${this.opts.name}`);
-
this.lastUpdate = currentTime;
this.db.insert({
@@ -76,7 +74,13 @@ class HistoryEra {
let downAvg = ((currentDownAvg * numUpdates + Number(data.download)) / (numUpdates + 1)).toFixed(1);
let upAvg = ((currentUpAvg * numUpdates + Number(data.upload)) / (numUpdates + 1)).toFixed(1);
- console.log(`updating, old avg: ${doc.dn}, new number: ${data.download}, new avg: ${downAvg}`);
+ if (downAvg == null || upAvg == null) {
+ console.log('\n\n');
+ console.log('Warning: null values set in database!');
+ console.log(`DB: ${this.opts.name}`);
+ console.log(`numUpdates: ${numUpdates}\ncurrentDownAvg: ${currentDownAvg}\ncurrentUpAvg: ${currentUpAvg}\ndownAvg: ${downAvg}\nupAvg: ${upAvg}`);
+ console.log('\n\n');
+ }
this.db.update({ts: this.lastUpdate}, {ts: this.lastUpdate, up: Number(upAvg), dn: Number(downAvg), num: numUpdates + 1});
}
diff --git a/server/models/rtorrent.js b/server/models/rtorrent.js
index c3c88ba6..2efd2557 100644
--- a/server/models/rtorrent.js
+++ b/server/models/rtorrent.js
@@ -1,5 +1,7 @@
var Q = require('q');
var net = require('net');
+
+var config = require('../../config');
var Deserializer = require('../util/deserializer');
var Serializer = require('../util/serializer');
@@ -8,8 +10,8 @@ var rtorrent = {
get: function(api, array) {
var stream = net.connect({
- port: 5000,
- host: 'localhost'
+ port: config.hostPort,
+ host: config.host
});
var deferred = Q.defer();