<commit_before>import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ReactTooltip from 'react-tooltip';
import { push } from 'react-router-redux';
import { Link } from 'react-router-dom';

import { ApiDownError, CorruptResponseError, JsonParseError, LogNotFoundError } from 'common/fetchWcl';
import fetchEvents from 'common/fetchEvents';
import { captureException } from 'common/errorLogger';
import Wrapper from 'common/Wrapper';
import AVAILABLE_CONFIGS from 'Parser/AVAILABLE_CONFIGS';
import getFightName from 'common/getFightName';
import { fetchReport } from 'actions/report';
import { appendReportHistory } from 'actions/reportHistory';
import { fetchCombatants } from 'actions/combatants';
import { getFightId, getPlayerId, getPlayerName, getReportCode } from 'selectors/url/report';
import { getArticleId } from 'selectors/url/news';
import { getContributorId } from 'selectors/url/contributors';
import { getReport } from 'selectors/report';
import { getFightById } from 'selectors/fight';
import { getCombatants } from 'selectors/combatants';
import { API_DOWN, apiDownError, clearError, INTERNET_EXPLORER, internetExplorerError, REPORT_NOT_FOUND, reportNotFoundError, UNKNOWN_NETWORK_ISSUE, unknownError, unknownNetworkIssueError } from 'actions/error';
import { getError } from 'selectors/error';

import 'react-toggle/style.css';
import './App.css';

import ApiDownBackground from './Images/api-down-background.gif';
import ThunderSoundEffect from './Audio/Thunder Sound effect.mp3';

import Home from './Home';
import FightSelecter from './FightSelecter';
import PlayerSelecter from './PlayerSelecter';
import Results from './Results';
import ReportSelecter from './ReportSelecter';
import FullscreenError from './FullscreenError';
import NavigationBar from './Layout/NavigationBar';
import DocumentTitleUpdater from './Layout/DocumentTitleUpdater';
import Footer from './Layout/Footer';
import NewsView from './News/View';
import makeNewsUrl from './News/makeUrl';
import ContributorDetails from './Contributors/ContributorDetails';
import makeContributorUrl from './Contributors/makeUrl';
import { title as AboutArticleTitle } from './News/Articles/2017-01-31-About';
import { title as UnlistedLogsTitle } from './News/Articles/2017-01-31-UnlistedLogs';
import makeAnalyzerUrl from './makeAnalyzerUrl';
import ServiceStatus from './ServiceStatus';
import ActivityIndicator from './ActivityIndicator';

const timeAvailable = console.time && console.timeEnd;

const PROGRESS_STEP1_INITIALIZATION = 0.02;
const PROGRESS_STEP2_FETCH_EVENTS = 0.13;
const PROGRESS_STEP3_PARSE_EVENTS = 0.99;

/* eslint-disable no-alert */

function isIE() {
  const myNav = navigator.userAgent.toLowerCase();
  return myNav.indexOf('msie') !== -1 || myNav.indexOf('trident') !== -1;
}

class App extends Component {
  static propTypes = {
    reportCode: PropTypes.string,<commit_msg>removed unnesseary import<commit_after>import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ReactTooltip from 'react-tooltip';
import { push } from 'react-router-redux';
import { Link } from 'react-router-dom';

import { ApiDownError, CorruptResponseError, JsonParseError, LogNotFoundError } from 'common/fetchWcl';
import fetchEvents from 'common/fetchEvents';
import { captureException } from 'common/errorLogger';
import Wrapper from 'common/Wrapper';
import AVAILABLE_CONFIGS from 'Parser/AVAILABLE_CONFIGS';
import getFightName from 'common/getFightName';
import { fetchReport } from 'actions/report';
import { appendReportHistory } from 'actions/reportHistory';
import { fetchCombatants } from 'actions/combatants';
import { getFightId, getPlayerId, getPlayerName, getReportCode } from 'selectors/url/report';
import { getArticleId } from 'selectors/url/news';
import { getContributorId } from 'selectors/url/contributors';
import { getReport } from 'selectors/report';
import { getFightById } from 'selectors/fight';
import { getCombatants } from 'selectors/combatants';
import { API_DOWN, apiDownError, clearError, INTERNET_EXPLORER, internetExplorerError, REPORT_NOT_FOUND, reportNotFoundError, UNKNOWN_NETWORK_ISSUE, unknownError, unknownNetworkIssueError } from 'actions/error';
import { getError } from 'selectors/error';

import 'react-toggle/style.css';
import './App.css';

import ApiDownBackground from './Images/api-down-background.gif';
import ThunderSoundEffect from './Audio/Thunder Sound effect.mp3';

import Home from './Home';
import FightSelecter from './FightSelecter';
import PlayerSelecter from './PlayerSelecter';
import Results from './Results';
import ReportSelecter from './ReportSelecter';
import FullscreenError from './FullscreenError';
import NavigationBar from './Layout/NavigationBar';
import DocumentTitleUpdater from './Layout/DocumentTitleUpdater';
import Footer from './Layout/Footer';
import NewsView from './News/View';
import makeNewsUrl from './News/makeUrl';
import ContributorDetails from './Contributors/ContributorDetails';
import { title as AboutArticleTitle } from './News/Articles/2017-01-31-About';
import { title as UnlistedLogsTitle } from './News/Articles/2017-01-31-UnlistedLogs';
import makeAnalyzerUrl from './makeAnalyzerUrl';
import ServiceStatus from './ServiceStatus';
import ActivityIndicator from './ActivityIndicator';

const timeAvailable = console.time && console.timeEnd;

const PROGRESS_STEP1_INITIALIZATION = 0.02;
const PROGRESS_STEP2_FETCH_EVENTS = 0.13;
const PROGRESS_STEP3_PARSE_EVENTS = 0.99;

/* eslint-disable no-alert */

function isIE() {
  const myNav = navigator.userAgent.toLowerCase();
  return myNav.indexOf('msie') !== -1 || myNav.indexOf('trident') !== -1;
}

class App extends Component {
  static propTypes = {
    reportCode: PropTypes.string,
{'fraction_non_alphanumeric': 0.11716481639624253, 'fraction_numerical': 0.01058923996584116, 'mean_word_length': 6.089588377723971, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4844245', 'n_tokens_mistral': 1740, 'n_tokens_neox': 1698, 'n_words': 459}