[
  {
    "path": ".cargo/audit.toml",
    "content": "# See https://github.com/rustsec/rustsec/blob/main/cargo-audit/audit.toml.example\n\n[advisories]\nignore = [\"RUSTSEC-2020-0159\", \"RUSTSEC-2020-0071\"]\n"
  },
  {
    "path": ".gitattributes",
    "content": "*.Makefile linguist-language=Makefile\netc/performance/* linguist-vendored\n*.rs whitespace=tab-in-indent,trailing-space,-space-before-tab eol=lf\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug.md",
    "content": "---\nname: Bug\nabout: Create a bug report\ntitle: \"\\U0001F41B \"\nlabels: ''\nassignees: ''\n\n---\n\n- [ ] Please include the raw text output from git, so that we can reproduce the problem.\n      (You can use `git --no-pager` to produce the raw text output.)\n- [ ] A screenshot of Delta's output is often helpful also.\n\nThanks for filing a Delta bug report!\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature.md",
    "content": "---\nname: Feature\nabout: Propose an improvement\ntitle: \"\\U0001F680 \"\nlabels: ''\nassignees: ''\n\n---\n\nHi, thanks for contributing to Delta, please go ahead and describe your proposal!\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n- package-ecosystem: cargo\n  directory: \"/\"\n  schedule:\n    interval: daily\n  open-pull-requests-limit: 10\n  ignore:\n  - dependency-name: regex\n    versions:\n    - 1.4.4\n- package-ecosystem: \"github-actions\"\n  directory: \"/\"\n  schedule:\n    interval: \"daily\"\n"
  },
  {
    "path": ".github/workflows/audit.yml",
    "content": "name: Security audit\n\non:\n  schedule:\n    # Runs at 00:00 UTC everyday\n    - cron: '0 0 * * *'\n  push:\n    paths:\n      - '**/Cargo.toml'\n      - '**/Cargo.lock'\n      - '**/audit.toml'\n\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - uses: actions-rs/audit-check@v1\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n\n"
  },
  {
    "path": ".github/workflows/cd.yml",
    "content": "name: Continuous Deployment\n\non:\n  push:\n    tags:\n      - '[0-9]+.[0-9]+.[0-9]+'\n\njobs:\n  publish:\n    name: Publishing for ${{ matrix.job.os }}\n    runs-on: ${{ matrix.job.os }}\n    strategy:\n      matrix:\n        job:\n          - os: macos-latest\n            target: aarch64-apple-darwin\n            use-cross: false\n          - os: windows-latest\n            target: x86_64-pc-windows-msvc\n            use-cross: false\n          - os: ubuntu-20.04\n            target: x86_64-unknown-linux-gnu\n            use-cross: false\n          - os: ubuntu-latest\n            target: x86_64-unknown-linux-musl\n            use-cross: true\n          - os: ubuntu-20.04\n            target: i686-unknown-linux-gnu\n            use-cross: true\n          - os: ubuntu-20.04\n            target: arm-unknown-linux-gnueabihf\n            use-cross: true\n          - os: ubuntu-20.04\n            target: aarch64-unknown-linux-gnu\n            use-cross: true\n\n    steps:\n      - name: Installing Rust toolchain\n        uses: dtolnay/rust-toolchain@stable\n        with:\n          targets: ${{ matrix.job.target }}\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install cross\n        if: matrix.job.use-cross\n        uses: taiki-e/install-action@v2\n        with:\n          tool: cross\n      - name: Cargo build\n        env:\n          MACOSX_DEPLOYMENT_TARGET: 10.7\n        shell: bash\n        run: |\n          if [[ \"${{ matrix.job.use-cross }}\" == \"true\" ]]; then\n            cross build --release --target ${{ matrix.job.target }}\n          else\n            cargo build --release --target ${{ matrix.job.target }}\n          fi\n\n      - name: Install required dependencies\n        shell: bash\n        run: |\n          if [[ ${{ matrix.job.target }} == arm-unknown-linux-gnueabihf ]]; then\n              sudo apt update\n              sudo apt-get install -y binutils-arm-linux-gnueabihf\n          fi\n          if [[ ${{ matrix.job.target }} == aarch64-unknown-linux-gnu ]]; then\n              sudo apt update\n              sudo apt-get install -y binutils-aarch64-linux-gnu\n          fi\n\n      - name: Packaging final binary\n        shell: bash\n        env:\n          TARGET: ${{ matrix.job.target }}\n          PROJECT_NAME: delta\n          PACKAGE_NAME: git-delta\n          OS_NAME: ${{ matrix.job.os }}\n        run: ./etc/ci/before_deploy.sh\n\n      - name: Releasing assets\n        uses: softprops/action-gh-release@v1\n        with:\n          files: |\n            delta-*-${{ matrix.job.target }}.*\n            git-delta*.deb\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n  publish-to-cargo:\n    name: Publishing to Cargo\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: dtolnay/rust-toolchain@stable\n      - run: cargo publish --token ${{ secrets.CARGO_API_KEY }} --allow-dirty\n\n  publish-to-winget:\n    name: Publish to WinGet\n    runs-on: ubuntu-latest\n    needs: publish\n    steps:\n      - uses: vedantmgoyal2009/winget-releaser@v2\n        with:\n          identifier: dandavison.delta\n          version: ${{ github.ref_name }}\n          installers-regex: '-pc-windows-msvc\\.zip$'\n          token: ${{ secrets.WINGET_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n\njobs:\n  unit_tests:\n    name: Unit tests\n    runs-on: ${{ matrix.job.os }}\n    strategy:\n      matrix:\n        job:\n          - os: macos-latest\n            target: aarch64-apple-darwin\n            use-cross: false\n          - os: windows-latest\n            target: x86_64-pc-windows-msvc\n            use-cross: false\n          - os: ubuntu-latest\n            target: x86_64-unknown-linux-gnu\n            use-cross: false\n          - os: ubuntu-latest\n            target: x86_64-unknown-linux-musl\n            use-cross: true\n          - os: ubuntu-latest\n            target: i686-unknown-linux-gnu\n            use-cross: true\n          - os: ubuntu-latest\n            target: arm-unknown-linux-gnueabihf\n            use-cross: true\n          - os: ubuntu-latest\n            target: aarch64-unknown-linux-gnu\n            use-cross: true\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install Rust\n        uses: dtolnay/rust-toolchain@stable\n        with:\n          targets: ${{ matrix.job.target }}\n      - name: Install cross\n        if: matrix.job.use-cross\n        uses: taiki-e/install-action@v2\n        with:\n          tool: cross\n      - name: Unit tests\n        shell: bash\n        run: |\n          if [[ \"${{ matrix.job.use-cross }}\" == \"true\" ]]; then\n            cross test --target ${{ matrix.job.target }} --verbose -- --nocapture\n          else\n            cargo test --target ${{ matrix.job.target }} --verbose -- --nocapture\n          fi\n\n  integration_tests:\n    name: Integration tests\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [macos-latest, ubuntu-latest]\n        include:\n          - os: macos-latest\n            target: aarch64-apple-darwin\n          - os: ubuntu-latest\n            target: x86_64-unknown-linux-gnu\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install Rust\n        uses: dtolnay/rust-toolchain@stable\n      - name: Build for release\n        run: cargo build --target ${{ matrix.target }} --release\n      - name: End to end tests\n        run: |\n          DELTA_BIN=target/${{ matrix.target }}/release/delta\n          ./tests/test_raw_output_matches_git_on_full_repo_history $DELTA_BIN\n          ./tests/test_deprecated_options $DELTA_BIN > /dev/null\n      - name: Run executable\n        run: cargo run --release --target ${{ matrix.target }} -- < /dev/null\n\n  rustfmt:\n    name: Rustfmt\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install Rust\n        uses: dtolnay/rust-toolchain@stable\n        with:\n          components: rustfmt\n      - name: Check formatting\n        run: cargo fmt --all --check\n\n  clippy:\n    name: Clippy\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install Rust\n        uses: dtolnay/rust-toolchain@stable\n        with:\n          components: clippy\n      - name: Clippy Check\n        run: cargo clippy -- -D warnings\n\n  coverage:\n    name: Code coverage\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v3\n      - name: Install stable toolchain\n        uses: dtolnay/rust-toolchain@stable\n      - name: Install cargo-tarpaulin\n        uses: taiki-e/install-action@v2\n        with:\n          tool: cargo-tarpaulin\n      - name: Run cargo-tarpaulin\n        run: cargo tarpaulin --ignore-tests --out Lcov --output-dir target/tarpaulin\n      - name: Upload to Coveralls\n        # upload only if push\n        if: ${{ github.event_name == 'push' }}\n        uses: coverallsapp/github-action@master\n        with:\n          github-token: ${{ secrets.GITHUB_TOKEN }}\n          path-to-lcov: './target/tarpaulin/lcov.info'\n"
  },
  {
    "path": ".github/workflows/manual.yml",
    "content": "name: Deploy Manual\n\non:\n  push:\n    branches:\n      - main\n    paths:\n      - \"manual/**\"\n  workflow_dispatch:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ github.ref }}\n\njobs:\n  build:\n    permissions:\n      contents: read\n\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: dtolnay/rust-toolchain@stable\n\n      - run: cargo doc --no-deps\n\n      - name: Setup mdBook\n        uses: taiki-e/install-action@v2\n        with:\n          tool: mdbook@0.4.14\n\n      - name: Build manual\n        run: mdbook build\n        working-directory: manual\n\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v3\n        with:\n          path: manual/book\n\n  deploy:\n    needs: build\n\n    permissions:\n      pages: write\n      id-token: write\n\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n\n    runs-on: ubuntu-latest\n    steps:\n      - name: Configure GitHub Pages\n        uses: actions/configure-pages@v5\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v4\n"
  },
  {
    "path": ".gitignore",
    "content": ".ignore\n.make-sentinels\nperformance/all-benchmarks.json\nperformance/index.html\nsrc/junk.rs\n**/*.rs.bk\n/target\n\n# insta: unreviewed inline data, and separate snapshot files\n*.pending-snap\n**/snapshots/*.snap.new\n\n# task automation\nAGENTS.md\nCLAUDE.md\n.task/\n"
  },
  {
    "path": "ARCHITECTURE.md",
    "content": "The purpose of delta is to transform input received from git, diff, git blame, grep, etc to produce visually appealing output, including by syntax highlighting code.\n\n### Initialization\n\nDelta [reads](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/main.rs#L83) user options from `[delta]` sections in [`.gitconfig`](https://git-scm.com/docs/git-config), and from the command line.\n\n### Input\n\nDelta [reads from stdin](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/main.rs#L138), hence one can do e.g. `git diff | delta`.\nNote that when git's stdout is sent to a pipe, (a) git does not emit [ANSI color escape sequences](https://en.wikipedia.org/wiki/ANSI_escape_code) unless `--color=always`, and (b) git does not start its own pager process.\n\nUsers typically configure git to use delta as its pager.\nIn that case, git sends its stdout to delta behind the scenes (_with_ ANSI color escape sequences), without the user needing to pipe it explicitly.\n\n### Parsing the input\n\nDelta [parses input](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/delta.rs#L81) using a state machine in which\nthe states correspond to semantically distinct sections of the input (e.g. `HunkMinus` means that we are in a removed line in a diff hunk).\nThe core dispatching loop is [here](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/delta.rs#L115-L129).\n\n```rust\npub fn delta<I>(lines: ByteLines<I>, writer: &mut dyn Write, config: &Config) -> std::io::Result<()>\nwhere\n    I: BufRead,\n{\n    StateMachine::new(writer, config).consume(lines)\n}\n\npub enum State {\n    DiffHeader(DiffType),\n    HunkHeader(DiffType, ParsedHunkHeader, String, String),\n    HunkZero(DiffType, Option<String>),\n    HunkMinus(DiffType, Option<String>),\n    HunkPlus(DiffType, Option<String>),\n    Unknown,\n}\n\n\nimpl<'a> StateMachine<'a> {\n    fn consume<I>(&mut self, mut lines: ByteLines<I>) -> std::io::Result<()>\n    where\n        I: BufRead,\n    {\n        while let Some(Ok(raw_line_bytes)) = lines.next() {\n            self.ingest_line(raw_line_bytes);\n\n            // Every method named handle_* must return std::io::Result<bool>.\n            // The bool indicates whether the line has been handled by that\n            // method (in which case no subsequent handlers are permitted to\n            // handle it).\n            let _ = self.handle_commit_meta_header_line()?\n                || self.handle_diff_stat_line()?\n                || self.handle_hunk_header_line()?\n                || self.handle_hunk_line()?\n                || self.emit_line_unchanged()?;\n        }\n        self.painter.paint_buffered_minus_and_plus_lines();\n        Ok(())\n    }\n}\n```\n\n### Output\n\nDelta [creates](https://github.com/dandavison/delta/blob/114ae670223520657208501a3245a3b4261c1093/src/main.rs#L125) a child pager process (`less`) and writes its output to the stdin of the pager process.\nDelta's `navigate` feature is implemented by constructing an appropriate regex and passing it as an argument to `less`.\n\n## Core utility data structures\n\n- [`config::Config`](https://github.com/dandavison/delta/blob/5dc0d6ef7e37a565b06d794b50fcc763079f9ed7/src/config.rs#L59-L143)\n  This is a struct with many fields corresponding to all user options and miscellaneous other useful things.\n  It might be possible to store it globally, but currently the code passes references to it around the call stack.\n\n- [`paint::Painter`](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/paint.rs#L24-L36)\n  This struct holds the syntax highlighter, and a writable output stream (connected to the stdin of the child `less` process).\n  It also holds two line buffers: one to store all the removed (\"minus\") lines encountered in a single diff hunk, and one to hold the added (\"plus\") lines.\n\n## Handling diff hunk lines\n\nHere we will follow one code path in detail: [handling diff hunk lines](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/handlers/hunk.rs#L27) (removed/unchanged/added).\nThis is the most important, and most complex, code path.\n\nRecall that git diff output contains multiple diff \"hunks\".\nA hunk is a sequence of diff lines describing the changes among some lines of code that are close together in the same file.\nA git diff may have many hunks, from multiple files (and therefore multiple languages).\nWithin a hunk, there are sequences of consecutive removed and/or added lines (\"subhunks\"), separated by unchanged lines.\n(The term \"hunk\" is standard; the term \"subhunk\" is specific to delta.)\n\nThe handler function that is called when delta process a hunk line is [`handle_hunk_line`](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/handlers/hunk.rs#L27).\nThis function [stores the line in a buffer](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/handlers/hunk.rs#L60-L62) (one buffer for minus lines and one for plus lines): the processing work is not done until we get to the end of the subhunk.\n\nNow, we are at the end of a subhunk, and we have a sequence of minus lines, and a sequence of plus lines.\n\n<table><tr><td><img width=1000px src=\"https://user-images.githubusercontent.com/52205/143171872-64f41fe1-9968-48c7-86e8-dba9303a54e2.png\" alt=\"image\" /></td></tr></table>\n\nDelta [processes a subhunk](https://github.com/dandavison/delta/blob/d92c3ead769326461ea082632e3aa15ca7700d4e/src/paint.rs#L598) (`paint_minus_and_plus_lines`) as follows:\n\n<table><tr><td>\n<img width=\"1709\" alt=\"image\" src=\"https://github.com/dandavison/delta/assets/52205/06e868c2-c113-4946-827f-d7a78534d2ba\">\n</td></tr></table>\n\n1. **Compute syntax (foreground) styles for the subhunk**\n\n   We [call](https://github.com/dandavison/delta/blob/d92c3ead769326461ea082632e3aa15ca7700d4e/src/paint.rs#L605-L608) the [syntect](https://github.com/trishume/syntect) library to compute syntax highlighting styles for each of the minus lines, and each of the plus lines, if the minus/plus styles specify syntax highlighting.\n   The language used for syntax-highlighting is determined by the filename in the diff.\n   For a single line, the result is an array of `(style, substring)` pairs. Each pair specifies the foreground (text) color to be applied to a substring of the line (for example, a language keyword, or a string literal).\n\n2. **Compute diff (background) styles for the subhunk**\n\n   Again, the [call](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/paint.rs#L174-L175) yields, for each line, an array of `(style, substring)` pairs.\n   Each pair represents foreground and background colors to be applied to a substring of the line, as specified by delta's `*-style` options.\n\n   In order to compute the array of style sections, the call has to (1) infer the correct alignment of minus and plus lines, and (2) for each such \"homologous pair\", infer the edit operations that transformed the minus line into the plus line (see [within-line-diff-algorithm](#within-line-diff-algorithm)).\n\n   For example, for a minus line, we may have inferred that the line has a homologous plus line, and that a word has been deleted.\n   By default, delta applies a bright red background color to such a word and lets the foreground color be determined by the terminal emulator default foreground color (`minus-emph-style = normal \"#901011\"`).\n   On the other hand, for an added word, delta by default applies a bright green background color, and specifies that the foreground color should come from the syntax highlighting styles (`plus-emph-style = syntax \"#006000\"`).\n\n3. **Process subhunk lines for side-by-side or unified output**\n\n   At this point we have a collection of lines corresponding to a subhunk and, for each line, a specification of how syntax styles and diff styles are applied to substrings of the line. These data structures are [processed differently](https://github.com/dandavison/delta/blob/main/src/paint.rs#L635-L674) according to whether unified or side-by-side diff display has been requested.\n\n4. **Superimpose syntax and diff styles for a line**\n\n   Before we can output a line of code we need to take the two arrays of `(style, substring)` pairs and compute a single output array of `(style, substring)` pairs, such that the output array represents the diff styles, but with foreground colors taken from the syntax highlighting, where appropriate.\n   The call is [here](https://github.com/dandavison/delta/blob/1e1bd6b6b96a3515fd7c70d6b252a25eb9807dc7/src/paint.rs#L490-L495) (`superimpose_style_sections`).\n\n5. **Output a line with styles converted to ANSI color escape sequences**\n\n   The `style` structs that delta uses are implemented by the [`ansi_term`](https://github.com/ogham/rust-ansi-term) library.\n   Individual substrings are [painted](https://github.com/dandavison/delta/blob/3e21f00765794f7a4e955826a1612b49f1723bfd/src/paint.rs#L507) with their assigned style, and [concatenated](https://github.com/dandavison/delta/blob/3e21f00765794f7a4e955826a1612b49f1723bfd/src/paint.rs#L514) to form a utf-8 string containing ANSI color escape sequences.\n\n## Within-line diff algorithm\n\nThere is currently only one within-line diff algorithm implemented.\nThis [considers](https://github.com/dandavison/delta/blob/3e21f00765794f7a4e955826a1612b49f1723bfd/src/edits.rs#L41-L43) all possible pairings for a given line and for each one, [computes](https://github.com/dandavison/delta/blob/3e21f00765794f7a4e955826a1612b49f1723bfd/src/edits.rs#L48-L56) the minimum number of edit operations between the candidate pair.\nThe inferred pairing is the one with the smallest edit distance.\n(The number of comparisons is constrained by the possible interleavings, and furthermore a greedy heuristic is used, so that the number of comparisons is not quadratic).\n\n## Features\n\nDelta features such as `line-numbers`, `side-by-side`, `diff-so-fancy`, etc can be considered to consist of (a) some feature-specific implementation code, and (b) a collection of key-value pairs specifying the values that certain delta options should take if that feature is enabled.\nAccordingly, each such \"feature\" is implemented by a separate module under [`src/features/`](https://github.com/dandavison/delta/tree/main/src/features).\nEach of these modules must export a function named `make_feature` whose job is to return key-value pairs for updating the user options.\n\n## Common terms used in the code\n\n|                  |                                                                                                                              |\n| ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| `minus`          | a removed line in a diff hunk (i.e. the lines starting with `-`)                                                             |\n| `zero`           | an unchanged line in a diff hunk                                                                                             |\n| `plus`           | an added line in a diff hunk (i.e. the lines starting with `+`)                                                              |\n| `style`          | a struct specifying foreground colors, background colors, and other attributes such as boldness, derived from ANSI sequences |\n| `style_sections` | an array of `(style, section)` tuples                                                                                        |\n| `paint`          | to take a string without ANSI color sequences and return a new one with ANSI color sequences                                 |\n| `hunk`           | a [diff hunk](https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html)                                 |\n| `subhunk`        | a consecutive sequence of minus and/or plus lines, without any zero line                                                     |\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Notes on contributing to delta\n\nFirst off, thank you for considering contributing to delta.\n\nIf your contribution is not straightforward, please first discuss the change you\nwish to make by creating a new issue before making the change.\n\n## The codebase\n\nTake a look at [ARCHITECTURE.md](./ARCHITECTURE.md).\n\n## Set up\n\nThis is no different than other Rust projects.\n\n```shell\ngit clone https://github.com/dandavison/delta/\ncd delta\ncargo build --release\n```\n\nThe executable is then at `./target/release/delta`.\n\n## Useful Commands\n\n- Run all tests:\n\n  ```shell\n  make test\n  ```\n\n- Run Clippy:\n\n  ```shell\n  cargo clippy\n  ```\n\n- Check to see if there are code formatting issues\n\n  ```shell\n  cargo fmt -- --check\n  ```\n\n- Format the code in the project\n\n  ```shell\n  cargo fmt\n  ```\n\n- Debug build\n\nA \"debug\" build can be built using `cargo build` and\n`./target/debug/delta`. This is faster to compile, but has much worse\nperformance than the release build.\n"
  },
  {
    "path": "Cargo.toml",
    "content": "[package]\nname = \"git-delta\"\nauthors = [\"Dan Davison <dandavison7@gmail.com>\"]\ncategories = [\"command-line-utilities\", \"development-tools\"]\ndescription = \"A syntax-highlighting pager for git\"\ndocumentation = \"https://github.com/dandavison/delta\"\nedition = \"2018\"\nhomepage = \"https://github.com/dandavison/delta\"\nlicense = \"MIT\"\nrepository = \"https://github.com/dandavison/delta\"\nversion = \"0.19.0\"\n\n[[bin]]\nname = \"delta\"\npath = \"src/main.rs\"\n\n[dependencies]\nansi_colours = \"1.2.1\"\nansi_term = \"0.12.1\"\nanstyle-parse = \"0.2.3\"\nanyhow = \"1.0.70\"\nbat = { version = \"0.26.0\", default-features = false, features = [\n    \"minimal-application\",\n    \"paging\",\n    \"regex-onig\",\n] }\nbitflags = \"2.2.1\"\nbox_drawing = \"0.1.2\"\nbytelines = { version = \"2.5.0\", default-features = false }\nchrono = \"0.4.26\"\nchrono-humanize = \"0.2.2\"\nclap_complete = \"4.4.4\"\nclap = { version = \"4.3.14\", features = [\n    \"derive\",\n    \"help\",\n    \"usage\",\n    \"error-context\",\n] }\nconsole = \"0.15.0\"\nctrlc = \"3.2.5\"\ndirs = \"6.0.0\"\ngit2 = { version = \"0.20.0\", default-features = false, features = [] }\ngrep-cli = \"0.1.8\"\nitertools = \"0.10.5\"\nlazy_static = \"1.4\"\npalette = \"0.7.2\"\npathdiff = \"0.2.1\"\nregex = \"1.7.1\"\nserde_json = \"1.0.96\"\nserde = { version = \"1.0.163\", features = [\"derive\"] }\nshell-words = \"1.0.0\"\nsmol_str = \"0.1.24\"\nsyntect = \"5.0.0\"\n# sysinfo: no default features to disable the use of threads\nsysinfo = { version = \"0.29.0\", default-features = false, features = [] }\nterminal-colorsaurus = \"0.4.8\"\nunicode-segmentation = \"1.10.1\"\n# 0.2.0 (and 0.1.13) treats \\n as width 1. Lines processed by delta have, lose,\n# and re-gain \\n in various stages, which complicates upgrading.\nunicode-width = \">=0.1.14, <0.2.0\"\nxdg = \"2.4.1\"\n\n[lints.rust]\nunexpected_cfgs = { level = \"warn\", check-cfg = ['cfg(tarpaulin_include)'] }\n\n[dev-dependencies]\ninsta = { version = \"1.*\", features = [\"colors\", \"filters\"] }\nrstest = \"0.21.0\"\npretty_assertions = \"1.4\"\n\n[profile.test]\nopt-level = 2\n\n[profile.dev.package.insta]\nopt-level = 3\n\n[profile.dev.package.similar]\nopt-level = 3\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2020 Dan Davison\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "build:\n\tcargo build --release\n\nformat:\n\tgit ls-files | grep '\\.rs$$' | xargs -P 0 rustfmt\n\nlint:\n\tcargo clippy\n\ntest: unit-test end-to-end-test\n\nunit-test:\n\tcargo test\n\nend-to-end-test: build\n\t./tests/test_raw_output_matches_git_on_full_repo_history\n\t./tests/test_deprecated_options > /dev/null\n\t./tests/test_navigate_less_history_file\n\nshell-completion:\n\tfor shell in bash fish zsh; do ./target/release/delta --generate-completion $$shell > etc/completion/completion.$$shell; done\n\nrelease:\n\t@make -f release.Makefile release\n\nversion:\n\t@grep version Cargo.toml | head -n1 | sed -E 's,.*version = \"([^\"]+)\",\\1,'\n\nBENCHMARK_INPUT_FILE = /tmp/delta-benchmark-input.gitdiff\nBENCHMARK_COMMAND = git log -p 23c292d3f25c67082a2ba315a187268be1a9b0ab\nbenchmark: build\n\t$(BENCHMARK_COMMAND) > $(BENCHMARK_INPUT_FILE)\n\thyperfine --warmup 10 --min-runs 20 \\\n\t\t'target/release/delta --no-gitconfig < $(BENCHMARK_INPUT_FILE) > /dev/null'\n\n# https://github.com/brendangregg/FlameGraph\nflamegraph: build\n\t$(BENCHMARK_COMMAND) | target/release/delta > /dev/null &\n\tsample delta | stackcollapse-sample | flamegraph > etc/performance/flamegraph.svg\n\nchronologer:\n\tchronologer etc/performance/chronologer.yaml\n\n.PHONY: build format lint test unit-test end-to-end-test release shell-completion version benchmark flamegraph chronologer\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n  <img width=400px src=\"https://user-images.githubusercontent.com/52205/147996902-9829bd3f-cd33-466e-833e-49a6f3ebd623.png\" alt=\"image\" />\n</p>\n<p align=\"center\">\n  <a href=\"https://github.com/dandavison/delta/actions\">\n    <img src=\"https://github.com/dandavison/delta/workflows/Continuous%20Integration/badge.svg\" alt=\"CI\">\n  </a>\n  <a href=\"https://coveralls.io/github/dandavison/delta?branch=main\">\n    <img src=\"https://coveralls.io/repos/github/dandavison/delta/badge.svg?branch=main\" alt=\"Coverage Status\">\n  </a>\n  <a href=\"https://gitter.im/dandavison-delta/community?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge\">\n    <img src=\"https://badges.gitter.im/dandavison-delta/community.svg\" alt=\"Gitter\">\n  </a>\n</p>\n\n## Get Started\n\n[Install it](https://dandavison.github.io/delta/installation.html) (the package is called \"git-delta\" in most package managers, but the executable is just `delta`) and add this to your `~/.gitconfig`:\n\n```gitconfig\n[core]\n    pager = delta\n\n[interactive]\n    diffFilter = delta --color-only\n\n[delta]\n    navigate = true  # use n and N to move between diff sections\n    dark = true      # or light = true, or omit for auto-detection\n\n[merge]\n    conflictStyle = zdiff3\n```\n\nOr run:\n\n```sh\ngit config --global core.pager delta\ngit config --global interactive.diffFilter 'delta --color-only'\ngit config --global delta.navigate true\ngit config --global delta.dark true  # or `delta.light true`, or omit for auto-detection\ngit config --global merge.conflictStyle zdiff3\n```\n\nDelta has many features and is very customizable; please see `delta -h` (short help) or `delta --help` (full manual), or the [online user manual](https://dandavison.github.io/delta/).\n\n## Features\n\n- Language syntax highlighting with the same syntax-highlighting themes as [bat](https://github.com/sharkdp/bat#readme)\n- Word-level diff highlighting using a Levenshtein edit inference algorithm\n- Side-by-side view with line-wrapping\n- Line numbering\n- `n` and `N` keybindings to move between files in large diffs, and between diffs in `log -p` views (`--navigate`)\n- Improved merge conflict display\n- Improved `git blame` display (syntax highlighting; `--hyperlinks` formats commits as links to hosting provider etc. Supported hosting providers are: GitHub, GitLab, SourceHut, Codeberg)\n- Syntax-highlights grep output from `rg`, `git grep`, `grep`, etc\n- Support for Git's `--color-moved` feature.\n- Code can be copied directly from the diff (`-/+` markers are removed by default).\n- `diff-highlight` and `diff-so-fancy` emulation modes\n- Commit hashes can be formatted as terminal [hyperlinks](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda) to the hosting provider page (`--hyperlinks`).\n  File paths can also be formatted as hyperlinks for opening in your OS.\n- Stylable box/line decorations to draw attention to commit, file and hunk header sections.\n- Style strings (foreground color, background color, font attributes) are supported for >20 stylable elements, using the same color/style language as git\n- Handles traditional unified diff output in addition to git output\n- Automatic detection of light/dark terminal background\n\n## A syntax-highlighting pager for git, diff, and grep output\n\nCode evolves, and we all spend time studying diffs. Delta aims to make this both efficient and enjoyable: it allows you to make extensive changes to the layout and styling of diffs, as well as allowing you to stay arbitrarily close to the default git/diff output.\n\n<table align=\"center\">\n  <tr>\n    <td>\n      <img width=400px src=\"https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png\" alt=\"image\" />\n      <br>\n      <p align=\"center\"><sub>delta with <code>line-numbers</code> activated</sub></p>\n    </td>\n  </tr>\n</table>\n\n<table align=\"center\">\n  <tr>\n    <td>\n      <img width=800px src=\"https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png\" alt=\"image\" />\n      <br>\n      <p align=\"center\"><sub>delta with <code>side-by-side</code> and <code>line-numbers</code> activated</sub></p>\n    </td>\n  </tr>\n</table>\n\nHere's what `git show` can look like with git configured to use delta:\n\n<br>\n\n<table align=\"center\">\n  <tr>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/81058545-a5725f80-8e9c-11ea-912e-d21954586a44.png\"\n           alt=\"image\" />\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/81058911-6abcf700-8e9d-11ea-93be-e212824ec03d.png\"\n           alt=\"image\" />\n    </td>\n  </tr>\n  <tr>\n    <td>\n      \"Dracula\" theme\n    </td>\n    <td>\n      \"GitHub\" theme\n    </td>\n  </tr>\n</table>\n\n<br>\n<br>\n\n### Syntax-highlighting themes\n\n**All the syntax-highlighting color themes that are available with [bat](https://github.com/sharkdp/bat/) are available with delta:**\n\n<br>\n<table>\n  <tr>\n    <td>\n      <img width=400px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/149431273-e3ad049d-771e-4186-869d-0e57967958a6.png\"\n           alt=\"image\" />\n    </td>\n    <td>\n      <img width=400px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/149431419-48836001-2afc-4fd0-97ad-561a69b71db7.png\"\n           alt=\"image\" />\n    </td>\n  </tr>\n  <tr>\n    <td>\n      <code>delta --show-syntax-themes --dark</code>\n    </td>\n    <td>\n      <code>delta --show-syntax-themes --light</code>\n    </td>\n  </tr>\n</table>\n\n<br>\n\n### Side-by-side view\n\n[[User manual](https://dandavison.github.io/delta/side-by-side-view.html)]\n\n```gitconfig\n[delta]\n    side-by-side = true\n```\n\nBy default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [[config](#side-by-side-view-1)]\n\n<table><tr><td><img width=800px src=\"https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png\" alt=\"image\" /></td></tr></table>\n\nSide-by-side view wraps long lines automatically:\n\n<table><tr><td><img width=600px src=\"https://user-images.githubusercontent.com/52205/139064537-f8479504-16d3-429a-b4f6-d0122438adaa.png\" alt=\"image\" /></td></tr></table>\n\n### Line numbers\n\n[[User manual](https://dandavison.github.io/delta/line-numbers.html)]\n\n```gitconfig\n[delta]\n    line-numbers = true\n```\n\n<table><tr><td><img width=400px src=\"https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png\" alt=\"image\" /></td></tr></table>\n\n### Merge conflicts\n\n[[User manual](https://dandavison.github.io/delta/merge-conflicts.html)]\n\n<table><tr><td><img width=500px src=\"https://user-images.githubusercontent.com/52205/144783121-bb549100-69d8-41b8-ac62-1704f1f7b43e.png\" alt=\"image\" /></td></tr></table>\n\n### Git blame\n\n[[User manual](https://dandavison.github.io/delta/git-blame.html)]\n\n<table><tr><td><img width=600px src=\"https://user-images.githubusercontent.com/52205/141891376-1fdb87dc-1d9c-4ad6-9d72-eeb19a8aeb0b.png\" alt=\"image\" /></td></tr></table>\n\n### Ripgrep, git grep\n\n[[User manual](https://dandavison.github.io/delta/grep.html)]\n\n<table><tr><td>\n<img width=\"600px\" alt=\"image\" src=\"https://github.com/dandavison/open-in-editor/assets/52205/d203d380-5acb-4296-aeb9-e38c73d6c27f\">\n</td></tr></table>\n\n### Installation and usage\n\nPlease see the [user manual](https://dandavison.github.io/delta/) and `delta --help`.\n\n### Maintainers\n\n- [@dandavison](https://github.com/dandavison)\n- [@th1000s](https://github.com/th1000s)\n"
  },
  {
    "path": "etc/bin/ansifilter",
    "content": "perl -pe 's/\\e\\[[0-9;]*[mK]//g'"
  },
  {
    "path": "etc/bin/check-show-config-options",
    "content": "#!/bin/bash\nDIR=$(dirname ${BASH_SOURCE[0]})\n\ndelta <($DIR/list-options) <(delta --show-config | awk '{print $1}' | sort)\n"
  },
  {
    "path": "etc/bin/diagnostics",
    "content": "#!/bin/bash\n\ncommands=(\n    \"delta --version\"\n    \"less --version | head -n1\"\n    \"env | grep -iE '(less|pager|bat|delta)'\"\n    \"printf '\\e[34m\\e[43mtext\\e[m\\n'\"\n    \"printf '\\e[38;5;19m\\e[48;5;226mtext\\e[m\\n'\"\n    \"printf '\\e[38;2;0;0;255m\\e[48;2;255;255;0mtext\\e[m\\n'\"\n    \"printf '⋮│─'\"\n    \"delta --no-gitconfig <(echo a) <(echo b) | cat -A\"\n    \"delta  --no-gitconfig <(echo a) <(echo b)\"\n)\n\nfor cmd in \"${commands[@]}\"; do\n    echo \"> $cmd\"\n    eval \"$cmd\"\n    echo\ndone\n"
  },
  {
    "path": "etc/bin/list-options",
    "content": "#!/bin/bash\n\nDIR=$(dirname ${BASH_SOURCE[0]})\n\ndelta --help | \\\n    $DIR/ansifilter | \\\n    rg ' --[^-].+ <' | \\\n    rg -v 'deprecated' | \\\n    awk 'BEGIN{FS=\"--\"}; {print $2}' | \\\n    awk '{print $1}' | \\\n    sort\n"
  },
  {
    "path": "etc/ci/.gitattributes",
    "content": "* linguist-vendored\n"
  },
  {
    "path": "etc/ci/before_deploy.sh",
    "content": "#!/usr/bin/env bash\n# Building and packaging for release\n\nset -ex\n\npack() {\n    local tempdir\n    local out_dir\n    local package_name\n    local gcc_prefix\n\n    tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t tmp)\n    out_dir=$(pwd)\n    package_name=\"$PROJECT_NAME-${GITHUB_REF/refs\\/tags\\//}-$TARGET\"\n\n    if [[ $TARGET == \"arm-unknown-linux-gnueabihf\" ]]; then\n        gcc_prefix=\"arm-linux-gnueabihf-\"\n    elif [[ $TARGET == \"aarch64-unknown-linux-gnu\" ]]; then\n        gcc_prefix=\"aarch64-linux-gnu-\"\n    else\n        gcc_prefix=\"\"\n    fi\n\n    # create a \"staging\" directory\n    mkdir \"$tempdir/$package_name\"\n\n    # copying the main binary\n    cp \"target/$TARGET/release/$PROJECT_NAME\" \"$tempdir/$package_name/\"\n    if [ \"$OS_NAME\" != windows-latest ]; then\n        \"${gcc_prefix}\"strip \"$tempdir/$package_name/$PROJECT_NAME\"\n    fi\n\n    # manpage, readme and license\n    cp README.md \"$tempdir/$package_name\"\n    cp LICENSE \"$tempdir/$package_name\"\n\n    # archiving\n    pushd \"$tempdir\"\n    if [ \"$OS_NAME\" = windows-latest ]; then\n        7z a \"$out_dir/$package_name.zip\" \"$package_name\"/*\n    else\n        tar czf \"$out_dir/$package_name.tar.gz\" \"$package_name\"/*\n    fi\n    popd\n    rm -r \"$tempdir\"\n}\n\nmake_deb() {\n    local tempdir\n    local architecture\n    local version\n    local dpkgname\n    local conflictname\n    local gcc_prefix\n    local homepage\n    local maintainer\n\n    homepage=\"https://github.com/dandavison/delta\"\n    maintainer=\"Dan Davison <dandavison7@gmail.com>\"\n    copyright_years=\"2019 - \"$(date \"+%Y\")\n\n    case $TARGET in\n        x86_64*)\n            architecture=amd64\n            gcc_prefix=\"\"\n            library_dir=\"\"\n            ;;\n        i686*)\n            architecture=i386\n            gcc_prefix=\"\"\n            library_dir=\"\"\n            ;;\n        aarch64*)\n            architecture=arm64\n            gcc_prefix=\"aarch64-linux-gnu-\"\n            library_dir=\"-l/usr/aarch64-linux-gnu/lib\"\n            ;;\n        arm*hf)\n            architecture=armhf\n            gcc_prefix=\"arm-linux-gnueabihf-\"\n            library_dir=\"-l/usr/arm-linux-gnueabihf/lib\"\n            ;;\n        *)\n            echo \"make_deb: skipping target '${TARGET}'\" >&2\n            return 0\n            ;;\n    esac\n    version=${GITHUB_REF/refs\\/tags\\//}\n\n    if [[ $TARGET = *musl* ]]; then\n      dpkgname=$PACKAGE_NAME-musl\n      conflictname=$PROJECT_NAME\n    else\n      dpkgname=$PACKAGE_NAME\n      conflictname=$PROJECT_NAME-musl\n    fi\n\n    tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t tmp)\n\n    # copy the main binary\n    install -Dm755 \"target/$TARGET/release/$PROJECT_NAME\" \"$tempdir/usr/bin/$PROJECT_NAME\"\n    \"${gcc_prefix}\"strip \"$tempdir/usr/bin/$PROJECT_NAME\"\n\n    # Work out shared library dependencies\n    # dpkg-shlibdeps requires debian/control file. Dummy it and clean up\n    mkdir \"./debian\"\n    touch \"./debian/control\"\n    depends=\"$(dpkg-shlibdeps $library_dir -O \"$tempdir/usr/bin/$PROJECT_NAME\" 2> /dev/null | sed 's/^shlibs:Depends=//')\"\n    rm -rf \"./debian\"\n\n    # readme and license\n    install -Dm644 README.md \"$tempdir/usr/share/doc/$dpkgname/README.md\"\n    cat > \"$tempdir/usr/share/doc/$dpkgname/copyright\" <<EOF\nFormat: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\nUpstream-Name: $PROJECT_NAME\nSource: $homepage\n\nFiles: *\nCopyright: $copyright_years $maintainer\nLicense: MIT\n\nLicense: MIT\n Permission is hereby granted, free of charge, to any\n person obtaining a copy of this software and associated\n documentation files (the \"Software\"), to deal in the\n Software without restriction, including without\n limitation the rights to use, copy, modify, merge,\n publish, distribute, sublicense, and/or sell copies of\n the Software, and to permit persons to whom the Software\n is furnished to do so, subject to the following\n conditions:\n .\n The above copyright notice and this permission notice\n shall be included in all copies or substantial portions\n of the Software.\n .\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF\n ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\n TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT\n SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR\n IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n DEALINGS IN THE SOFTWARE.\nEOF\n    chmod 644 \"$tempdir/usr/share/doc/$dpkgname/copyright\"\n\n    # Control file\n    mkdir \"$tempdir/DEBIAN\"\n    cat > \"$tempdir/DEBIAN/control\" <<EOF\nPackage: $dpkgname\nVersion: $version\nSection: utils\nPriority: optional\nMaintainer: Dan Davison <dandavison7@gmail.com>\nArchitecture: $architecture\nDepends: $depends\nConflicts: $conflictname\nDescription: Syntax highlighter for git\n Delta provides language syntax-highlighting, within-line insertion/deletion\n detection, and restructured diff output for git on the command line.\nEOF\n\n    fakeroot dpkg-deb -Zxz --build \"$tempdir\" \"${dpkgname}_${version}_${architecture}.deb\"\n}\n\n\nmain() {\n    pack\n    if [[ $TARGET = *linux* ]]; then\n      make_deb\n    fi\n}\n\nmain\n"
  },
  {
    "path": "etc/completion/completion.bash",
    "content": "_delta() {\n    local i cur prev opts cmd\n    COMPREPLY=()\n    cur=\"${COMP_WORDS[COMP_CWORD]}\"\n    prev=\"${COMP_WORDS[COMP_CWORD-1]}\"\n    cmd=\"\"\n    opts=\"\"\n\n    for i in ${COMP_WORDS[@]}\n    do\n        case \"${cmd},${i}\" in\n            \",$1\")\n                cmd=\"delta\"\n                ;;\n            *)\n                ;;\n        esac\n    done\n\n    case \"${cmd}\" in\n        delta)\n            opts=\"-n -s -w -h -V --blame-code-style --blame-format --blame-palette --blame-separator-format --blame-separator-style --blame-timestamp-format --blame-timestamp-output-format --color-only --config --commit-decoration-style --commit-regex --commit-style --dark --default-language --diff-highlight --diff-so-fancy --diff-stat-align-width --features --file-added-label --file-copied-label --file-decoration-style --file-modified-label --file-removed-label --file-renamed-label --file-style --file-transformation --generate-completion --grep-context-line-style --grep-file-style --grep-header-decoration-style --grep-header-file-style --grep-line-number-style --grep-output-type --grep-match-line-style --grep-match-word-style --grep-separator-symbol --hunk-header-decoration-style --hunk-header-file-style --hunk-header-line-number-style --hunk-header-style --hunk-label --hyperlinks --hyperlinks-commit-link-format --hyperlinks-file-link-format --inline-hint-style --inspect-raw-lines --keep-plus-minus-markers --light --line-buffer-size --line-fill-method --line-numbers --line-numbers-left-format --line-numbers-left-style --line-numbers-minus-style --line-numbers-plus-style --line-numbers-right-format --line-numbers-right-style --line-numbers-zero-style --list-languages --list-syntax-themes --map-styles --max-line-distance --max-line-length --merge-conflict-begin-symbol --merge-conflict-end-symbol --merge-conflict-ours-diff-header-decoration-style --merge-conflict-ours-diff-header-style --merge-conflict-theirs-diff-header-decoration-style --merge-conflict-theirs-diff-header-style --minus-empty-line-marker-style --minus-emph-style --minus-non-emph-style --minus-style --navigate --navigate-regex --no-gitconfig --pager --paging --parse-ansi --plus-emph-style --plus-empty-line-marker-style --plus-non-emph-style --plus-style --raw --relative-paths --right-arrow --show-colors --show-config --show-syntax-themes --show-themes --side-by-side --syntax-theme --tabs --true-color --whitespace-error-style --width --word-diff-regex --wrap-left-symbol --wrap-max-lines --wrap-right-percent --wrap-right-prefix-symbol --wrap-right-symbol --zero-style --24-bit-color --help --version [MINUS_FILE] [PLUS_FILE]\"\n            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then\n                COMPREPLY=( $(compgen -W \"${opts}\" -- \"${cur}\") )\n                return 0\n            fi\n            case \"${prev}\" in\n                --blame-code-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-palette)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-separator-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-separator-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-timestamp-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --blame-timestamp-output-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --config)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --commit-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --commit-regex)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --commit-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --default-language)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --diff-stat-align-width)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --features)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-added-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-copied-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-modified-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-removed-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-renamed-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --file-transformation)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --generate-completion)\n                    COMPREPLY=($(compgen -W \"bash elvish fish powershell zsh\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-context-line-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-file-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-header-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-header-file-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-line-number-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-output-type)\n                    COMPREPLY=($(compgen -W \"ripgrep classic\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-match-line-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-match-word-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --grep-separator-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hunk-header-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hunk-header-file-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hunk-header-line-number-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hunk-header-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hunk-label)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hyperlinks-commit-link-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --hyperlinks-file-link-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --inline-hint-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --inspect-raw-lines)\n                    COMPREPLY=($(compgen -W \"true false\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --line-buffer-size)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-fill-method)\n                    COMPREPLY=($(compgen -W \"ansi spaces\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-left-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-left-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-minus-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-plus-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-right-format)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-right-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --line-numbers-zero-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --map-styles)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --max-line-distance)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --max-line-length)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-begin-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-end-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-ours-diff-header-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-ours-diff-header-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-theirs-diff-header-decoration-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --merge-conflict-theirs-diff-header-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --minus-empty-line-marker-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --minus-emph-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --minus-non-emph-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --minus-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --navigate-regex)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --pager)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --paging)\n                    COMPREPLY=($(compgen -W \"auto always never\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --plus-emph-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --plus-empty-line-marker-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --plus-non-emph-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --plus-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --right-arrow)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --syntax-theme)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --tabs)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --true-color)\n                    COMPREPLY=($(compgen -W \"auto always never\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                --whitespace-error-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --width)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                -w)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --word-diff-regex)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --wrap-left-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --wrap-max-lines)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --wrap-right-percent)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --wrap-right-prefix-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --wrap-right-symbol)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --zero-style)\n                    COMPREPLY=($(compgen -f \"${cur}\"))\n                    return 0\n                    ;;\n                --24-bit-color)\n                    COMPREPLY=($(compgen -W \"auto always never\" -- \"${cur}\"))\n                    return 0\n                    ;;\n                *)\n                    COMPREPLY=()\n                    ;;\n            esac\n            COMPREPLY=( $(compgen -W \"${opts}\" -- \"${cur}\") )\n            return 0\n            ;;\n    esac\n}\n\n# nosort isn't supported for bash less than < 4.4\nif [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then\n    complete -F _delta -o bashdefault -o default delta\nelse\n    complete -F _delta -o bashdefault -o default -o nosort delta \nfi\n"
  },
  {
    "path": "etc/completion/completion.fish",
    "content": "complete -c delta -l blame-code-style -d 'Style string for the code section of a git blame line' -r\ncomplete -c delta -l blame-format -d 'Format string for git blame commit metadata' -r\ncomplete -c delta -l blame-palette -d 'Background colors used for git blame lines (space-separated string)' -r\ncomplete -c delta -l blame-separator-format -d 'Separator between the blame format and the code section of a git blame line' -r\ncomplete -c delta -l blame-separator-style -d 'Style string for the blame-separator-format' -r\ncomplete -c delta -l blame-timestamp-format -d 'Format of `git blame` timestamp in raw git output received by delta' -r\ncomplete -c delta -l blame-timestamp-output-format -d 'Format string for git blame timestamp output' -r\ncomplete -c delta -l config -d 'Load the config file at PATH instead of ~/.gitconfig' -r -F\ncomplete -c delta -l commit-decoration-style -d 'Style string for the commit hash decoration' -r\ncomplete -c delta -l commit-regex -d 'Regular expression used to identify the commit line when parsing git output' -r\ncomplete -c delta -l commit-style -d 'Style string for the commit hash line' -r\ncomplete -c delta -l default-language -d 'Default language used for syntax highlighting' -r\ncomplete -c delta -l diff-stat-align-width -d 'Width allocated for file paths in a diff stat section' -r\ncomplete -c delta -l features -d 'Names of delta features to activate (space-separated)' -r\ncomplete -c delta -l file-added-label -d 'Text to display before an added file path' -r\ncomplete -c delta -l file-copied-label -d 'Text to display before a copied file path' -r\ncomplete -c delta -l file-decoration-style -d 'Style string for the file decoration' -r\ncomplete -c delta -l file-modified-label -d 'Text to display before a modified file path' -r\ncomplete -c delta -l file-removed-label -d 'Text to display before a removed file path' -r\ncomplete -c delta -l file-renamed-label -d 'Text to display before a renamed file path' -r\ncomplete -c delta -l file-style -d 'Style string for the file section' -r\ncomplete -c delta -l file-transformation -d 'Sed-style command transforming file paths for display' -r\ncomplete -c delta -l generate-completion -d 'Print completion file for the given shell' -r -f -a \"{bash\t'',elvish\t'',fish\t'',powershell\t'',zsh\t''}\"\ncomplete -c delta -l grep-context-line-style -d 'Style string for non-matching lines of grep output' -r\ncomplete -c delta -l grep-file-style -d 'Style string for file paths in grep output' -r\ncomplete -c delta -l grep-header-decoration-style -d 'Style string for the header decoration in grep output' -r\ncomplete -c delta -l grep-header-file-style -d 'Style string for the file path part of the header in grep output' -r\ncomplete -c delta -l grep-line-number-style -d 'Style string for line numbers in grep output' -r\ncomplete -c delta -l grep-output-type -d 'Grep output format. Possible values: \"ripgrep\" - file name printed once, followed by matching lines within that file, each preceded by a line number. \"classic\" - file name:line number, followed by matching line. Default is \"ripgrep\" if `rg --json` format is detected, otherwise \"classic\"' -r -f -a \"{ripgrep\t'',classic\t''}\"\ncomplete -c delta -l grep-match-line-style -d 'Style string for matching lines of grep output' -r\ncomplete -c delta -l grep-match-word-style -d 'Style string for the matching substrings within a matching line of grep output' -r\ncomplete -c delta -l grep-separator-symbol -d 'Separator symbol printed after the file path and line number in grep output' -r\ncomplete -c delta -l hunk-header-decoration-style -d 'Style string for the hunk-header decoration' -r\ncomplete -c delta -l hunk-header-file-style -d 'Style string for the file path part of the hunk-header' -r\ncomplete -c delta -l hunk-header-line-number-style -d 'Style string for the line number part of the hunk-header' -r\ncomplete -c delta -l hunk-header-style -d 'Style string for the hunk-header' -r\ncomplete -c delta -l hunk-label -d 'Text to display before a hunk header' -r\ncomplete -c delta -l hyperlinks-commit-link-format -d 'Format string for commit hyperlinks (requires --hyperlinks)' -r\ncomplete -c delta -l hyperlinks-file-link-format -d 'Format string for file hyperlinks (requires --hyperlinks)' -r\ncomplete -c delta -l inline-hint-style -d 'Style string for short inline hint text' -r\ncomplete -c delta -l inspect-raw-lines -d 'Kill-switch for --color-moved support' -r -f -a \"{true\t'',false\t''}\"\ncomplete -c delta -l line-buffer-size -d 'Size of internal line buffer' -r\ncomplete -c delta -l line-fill-method -d 'Line-fill method in side-by-side mode' -r -f -a \"{ansi spaces\t''}\"\ncomplete -c delta -l line-numbers-left-format -d 'Format string for the left column of line numbers' -r\ncomplete -c delta -l line-numbers-left-style -d 'Style string for the left column of line numbers' -r\ncomplete -c delta -l line-numbers-minus-style -d 'Style string for line numbers in the old (minus) version of the file' -r\ncomplete -c delta -l line-numbers-plus-style -d 'Style string for line numbers in the new (plus) version of the file' -r\ncomplete -c delta -l line-numbers-right-format -d 'Format string for the right column of line numbers' -r\ncomplete -c delta -l line-numbers-right-style -d 'Style string for the right column of line numbers' -r\ncomplete -c delta -l line-numbers-zero-style -d 'Style string for line numbers in unchanged (zero) lines' -r\ncomplete -c delta -l map-styles -d 'Map styles encountered in raw input to desired output styles' -r\ncomplete -c delta -l max-line-distance -d 'Maximum line pair distance parameter in within-line diff algorithm' -r\ncomplete -c delta -l max-line-length -d 'Truncate lines longer than this' -r\ncomplete -c delta -l merge-conflict-begin-symbol -d 'String marking the beginning of a merge conflict region' -r\ncomplete -c delta -l merge-conflict-end-symbol -d 'String marking the end of a merge conflict region' -r\ncomplete -c delta -l merge-conflict-ours-diff-header-decoration-style -d 'Style string for the decoration of the header above the \\'ours\\' merge conflict diff' -r\ncomplete -c delta -l merge-conflict-ours-diff-header-style -d 'Style string for the header above the \\'ours\\' branch merge conflict diff' -r\ncomplete -c delta -l merge-conflict-theirs-diff-header-decoration-style -d 'Style string for the decoration of the header above the \\'theirs\\' merge conflict diff' -r\ncomplete -c delta -l merge-conflict-theirs-diff-header-style -d 'Style string for the header above the \\'theirs\\' branch merge conflict diff' -r\ncomplete -c delta -l minus-empty-line-marker-style -d 'Style string for removed empty line marker' -r\ncomplete -c delta -l minus-emph-style -d 'Style string for emphasized sections of removed lines' -r\ncomplete -c delta -l minus-non-emph-style -d 'Style string for non-emphasized sections of removed lines that have an emphasized section' -r\ncomplete -c delta -l minus-style -d 'Style string for removed lines' -r\ncomplete -c delta -l navigate-regex -d 'Regular expression defining navigation stop points' -r\ncomplete -c delta -l pager -d 'Which pager to use' -r\ncomplete -c delta -l paging -d 'Whether to use a pager when displaying output' -r -f -a \"{auto\t'',always\t'',never\t''}\"\ncomplete -c delta -l plus-emph-style -d 'Style string for emphasized sections of added lines' -r\ncomplete -c delta -l plus-empty-line-marker-style -d 'Style string for added empty line marker' -r\ncomplete -c delta -l plus-non-emph-style -d 'Style string for non-emphasized sections of added lines that have an emphasized section' -r\ncomplete -c delta -l plus-style -d 'Style string for added lines' -r\ncomplete -c delta -l right-arrow -d 'Text to display with a changed file path' -r\ncomplete -c delta -l syntax-theme -d 'The syntax-highlighting theme to use' -r\ncomplete -c delta -l tabs -d 'The number of spaces to replace tab characters with' -r\ncomplete -c delta -l true-color -d 'Whether to emit 24-bit (\"true color\") RGB color codes' -r -f -a \"{auto\t'',always\t'',never\t''}\"\ncomplete -c delta -l whitespace-error-style -d 'Style string for whitespace errors' -r\ncomplete -c delta -s w -l width -d 'The width of underline/overline decorations' -r\ncomplete -c delta -l word-diff-regex -d 'Regular expression defining a \\'word\\' in within-line diff algorithm' -r\ncomplete -c delta -l wrap-left-symbol -d 'End-of-line wrapped content symbol (left-aligned)' -r\ncomplete -c delta -l wrap-max-lines -d 'How often a line should be wrapped if it does not fit' -r\ncomplete -c delta -l wrap-right-percent -d 'Threshold for right-aligning wrapped content' -r\ncomplete -c delta -l wrap-right-prefix-symbol -d 'Pre-wrapped content symbol (right-aligned)' -r\ncomplete -c delta -l wrap-right-symbol -d 'End-of-line wrapped content symbol (right-aligned)' -r\ncomplete -c delta -l zero-style -d 'Style string for unchanged lines' -r\ncomplete -c delta -l 24-bit-color -d 'Deprecated: use --true-color' -r -f -a \"{auto\t'',always\t'',never\t''}\"\ncomplete -c delta -l color-only -d 'Do not alter the input structurally in any way'\ncomplete -c delta -l dark -d 'Use default colors appropriate for a dark terminal background'\ncomplete -c delta -l diff-highlight -d 'Emulate diff-highlight'\ncomplete -c delta -l diff-so-fancy -d 'Emulate diff-so-fancy'\ncomplete -c delta -l hyperlinks -d 'Render commit hashes, file names, and line numbers as hyperlinks'\ncomplete -c delta -l keep-plus-minus-markers -d 'Prefix added/removed lines with a +/- character, as git does'\ncomplete -c delta -l light -d 'Use default colors appropriate for a light terminal background'\ncomplete -c delta -s n -l line-numbers -d 'Display line numbers next to the diff'\ncomplete -c delta -l list-languages -d 'List supported languages and associated file extensions'\ncomplete -c delta -l list-syntax-themes -d 'List available syntax-highlighting color themes'\ncomplete -c delta -l navigate -d 'Activate diff navigation'\ncomplete -c delta -l no-gitconfig -d 'Do not read any settings from git config'\ncomplete -c delta -l parse-ansi -d 'Display ANSI color escape sequences in human-readable form'\ncomplete -c delta -l raw -d 'Do not alter the input in any way'\ncomplete -c delta -l relative-paths -d 'Output all file paths relative to the current directory'\ncomplete -c delta -l show-colors -d 'Show available named colors'\ncomplete -c delta -l show-config -d 'Display the active values for all Delta options'\ncomplete -c delta -l show-syntax-themes -d 'Show example diff for available syntax-highlighting themes'\ncomplete -c delta -l show-themes -d 'Show example diff for available delta themes'\ncomplete -c delta -s s -l side-by-side -d 'Display diffs in side-by-side layout'\ncomplete -c delta -s h -l help -d 'Print help (see more with \\'--help\\')'\ncomplete -c delta -s V -l version -d 'Print version'\n"
  },
  {
    "path": "etc/completion/completion.zsh",
    "content": "#compdef delta\n\nautoload -U is-at-least\n\n_delta() {\n    typeset -A opt_args\n    typeset -a _arguments_options\n    local ret=1\n\n    if is-at-least 5.2; then\n        _arguments_options=(-s -S -C)\n    else\n        _arguments_options=(-s -C)\n    fi\n\n    local context curcontext=\"$curcontext\" state line\n    _arguments \"${_arguments_options[@]}\" \\\n'--blame-code-style=[Style string for the code section of a git blame line]:STYLE: ' \\\n'--blame-format=[Format string for git blame commit metadata]:FMT: ' \\\n'--blame-palette=[Background colors used for git blame lines (space-separated string)]:COLORS: ' \\\n'--blame-separator-format=[Separator between the blame format and the code section of a git blame line]:FMT: ' \\\n'--blame-separator-style=[Style string for the blame-separator-format]:STYLE: ' \\\n'--blame-timestamp-format=[Format of \\`git blame\\` timestamp in raw git output received by delta]:FMT: ' \\\n'--blame-timestamp-output-format=[Format string for git blame timestamp output]:FMT: ' \\\n'--config=[Load the config file at PATH instead of ~/.gitconfig]:PATH:_files' \\\n'--commit-decoration-style=[Style string for the commit hash decoration]:STYLE: ' \\\n'--commit-regex=[Regular expression used to identify the commit line when parsing git output]:REGEX: ' \\\n'--commit-style=[Style string for the commit hash line]:STYLE: ' \\\n'--default-language=[Default language used for syntax highlighting]:LANG: ' \\\n'--diff-stat-align-width=[Width allocated for file paths in a diff stat section]:N: ' \\\n'--features=[Names of delta features to activate (space-separated)]:FEATURES: ' \\\n'--file-added-label=[Text to display before an added file path]:STRING: ' \\\n'--file-copied-label=[Text to display before a copied file path]:STRING: ' \\\n'--file-decoration-style=[Style string for the file decoration]:STYLE: ' \\\n'--file-modified-label=[Text to display before a modified file path]:STRING: ' \\\n'--file-removed-label=[Text to display before a removed file path]:STRING: ' \\\n'--file-renamed-label=[Text to display before a renamed file path]:STRING: ' \\\n'--file-style=[Style string for the file section]:STYLE: ' \\\n'--file-transformation=[Sed-style command transforming file paths for display]:SED_CMD: ' \\\n'--generate-completion=[Print completion file for the given shell]:GENERATE_COMPLETION:(bash elvish fish powershell zsh)' \\\n'--grep-context-line-style=[Style string for non-matching lines of grep output]:STYLE: ' \\\n'--grep-file-style=[Style string for file paths in grep output]:STYLE: ' \\\n'--grep-header-decoration-style=[Style string for the header decoration in grep output]:STYLE: ' \\\n'--grep-header-file-style=[Style string for the file path part of the header in grep output]:STYLE: ' \\\n'--grep-line-number-style=[Style string for line numbers in grep output]:STYLE: ' \\\n'--grep-output-type=[Grep output format. Possible values\\: \"ripgrep\" - file name printed once, followed by matching lines within that file, each preceded by a line number. \"classic\" - file name\\:line number, followed by matching line. Default is \"ripgrep\" if \\`rg --json\\` format is detected, otherwise \"classic\"]:OUTPUT_TYPE:(ripgrep classic)' \\\n'--grep-match-line-style=[Style string for matching lines of grep output]:STYLE: ' \\\n'--grep-match-word-style=[Style string for the matching substrings within a matching line of grep output]:STYLE: ' \\\n'--grep-separator-symbol=[Separator symbol printed after the file path and line number in grep output]:STRING: ' \\\n'--hunk-header-decoration-style=[Style string for the hunk-header decoration]:STYLE: ' \\\n'--hunk-header-file-style=[Style string for the file path part of the hunk-header]:STYLE: ' \\\n'--hunk-header-line-number-style=[Style string for the line number part of the hunk-header]:STYLE: ' \\\n'--hunk-header-style=[Style string for the hunk-header]:STYLE: ' \\\n'--hunk-label=[Text to display before a hunk header]:STRING: ' \\\n'--hyperlinks-commit-link-format=[Format string for commit hyperlinks (requires --hyperlinks)]:FMT: ' \\\n'--hyperlinks-file-link-format=[Format string for file hyperlinks (requires --hyperlinks)]:FMT: ' \\\n'--inline-hint-style=[Style string for short inline hint text]:STYLE: ' \\\n'--inspect-raw-lines=[Kill-switch for --color-moved support]:true|false:(true false)' \\\n'--line-buffer-size=[Size of internal line buffer]:N: ' \\\n'--line-fill-method=[Line-fill method in side-by-side mode]:STRING:(ansi spaces)' \\\n'--line-numbers-left-format=[Format string for the left column of line numbers]:FMT: ' \\\n'--line-numbers-left-style=[Style string for the left column of line numbers]:STYLE: ' \\\n'--line-numbers-minus-style=[Style string for line numbers in the old (minus) version of the file]:STYLE: ' \\\n'--line-numbers-plus-style=[Style string for line numbers in the new (plus) version of the file]:STYLE: ' \\\n'--line-numbers-right-format=[Format string for the right column of line numbers]:FMT: ' \\\n'--line-numbers-right-style=[Style string for the right column of line numbers]:STYLE: ' \\\n'--line-numbers-zero-style=[Style string for line numbers in unchanged (zero) lines]:STYLE: ' \\\n'--map-styles=[Map styles encountered in raw input to desired output styles]:STYLES_MAP: ' \\\n'--max-line-distance=[Maximum line pair distance parameter in within-line diff algorithm]:DIST: ' \\\n'--max-line-length=[Truncate lines longer than this]:N: ' \\\n'--merge-conflict-begin-symbol=[String marking the beginning of a merge conflict region]:STRING: ' \\\n'--merge-conflict-end-symbol=[String marking the end of a merge conflict region]:STRING: ' \\\n'--merge-conflict-ours-diff-header-decoration-style=[Style string for the decoration of the header above the '\\''ours'\\'' merge conflict diff]:STYLE: ' \\\n'--merge-conflict-ours-diff-header-style=[Style string for the header above the '\\''ours'\\'' branch merge conflict diff]:STYLE: ' \\\n'--merge-conflict-theirs-diff-header-decoration-style=[Style string for the decoration of the header above the '\\''theirs'\\'' merge conflict diff]:STYLE: ' \\\n'--merge-conflict-theirs-diff-header-style=[Style string for the header above the '\\''theirs'\\'' branch merge conflict diff]:STYLE: ' \\\n'--minus-empty-line-marker-style=[Style string for removed empty line marker]:STYLE: ' \\\n'--minus-emph-style=[Style string for emphasized sections of removed lines]:STYLE: ' \\\n'--minus-non-emph-style=[Style string for non-emphasized sections of removed lines that have an emphasized section]:STYLE: ' \\\n'--minus-style=[Style string for removed lines]:STYLE: ' \\\n'--navigate-regex=[Regular expression defining navigation stop points]:REGEX: ' \\\n'--pager=[Which pager to use]:CMD: ' \\\n'--paging=[Whether to use a pager when displaying output]:auto|always|never:(auto always never)' \\\n'--plus-emph-style=[Style string for emphasized sections of added lines]:STYLE: ' \\\n'--plus-empty-line-marker-style=[Style string for added empty line marker]:STYLE: ' \\\n'--plus-non-emph-style=[Style string for non-emphasized sections of added lines that have an emphasized section]:STYLE: ' \\\n'--plus-style=[Style string for added lines]:STYLE: ' \\\n'--right-arrow=[Text to display with a changed file path]:STRING: ' \\\n'--syntax-theme=[The syntax-highlighting theme to use]:SYNTAX_THEME: ' \\\n'--tabs=[The number of spaces to replace tab characters with]:N: ' \\\n'--true-color=[Whether to emit 24-bit (\"true color\") RGB color codes]:auto|always|never:(auto always never)' \\\n'--whitespace-error-style=[Style string for whitespace errors]:STYLE: ' \\\n'-w+[The width of underline/overline decorations]:N: ' \\\n'--width=[The width of underline/overline decorations]:N: ' \\\n'--word-diff-regex=[Regular expression defining a '\\''word'\\'' in within-line diff algorithm]:REGEX: ' \\\n'--wrap-left-symbol=[End-of-line wrapped content symbol (left-aligned)]:STRING: ' \\\n'--wrap-max-lines=[How often a line should be wrapped if it does not fit]:N: ' \\\n'--wrap-right-percent=[Threshold for right-aligning wrapped content]:PERCENT: ' \\\n'--wrap-right-prefix-symbol=[Pre-wrapped content symbol (right-aligned)]:STRING: ' \\\n'--wrap-right-symbol=[End-of-line wrapped content symbol (right-aligned)]:STRING: ' \\\n'--zero-style=[Style string for unchanged lines]:STYLE: ' \\\n'--24-bit-color=[Deprecated\\: use --true-color]:auto|always|never:(auto always never)' \\\n'--color-only[Do not alter the input structurally in any way]' \\\n'--dark[Use default colors appropriate for a dark terminal background]' \\\n'--diff-highlight[Emulate diff-highlight]' \\\n'--diff-so-fancy[Emulate diff-so-fancy]' \\\n'--hyperlinks[Render commit hashes, file names, and line numbers as hyperlinks]' \\\n'--keep-plus-minus-markers[Prefix added/removed lines with a +/- character, as git does]' \\\n'--light[Use default colors appropriate for a light terminal background]' \\\n'-n[Display line numbers next to the diff]' \\\n'--line-numbers[Display line numbers next to the diff]' \\\n'--list-languages[List supported languages and associated file extensions]' \\\n'--list-syntax-themes[List available syntax-highlighting color themes]' \\\n'--navigate[Activate diff navigation]' \\\n'--no-gitconfig[Do not read any settings from git config]' \\\n'--parse-ansi[Display ANSI color escape sequences in human-readable form]' \\\n'--raw[Do not alter the input in any way]' \\\n'--relative-paths[Output all file paths relative to the current directory]' \\\n'--show-colors[Show available named colors]' \\\n'--show-config[Display the active values for all Delta options]' \\\n'--show-syntax-themes[Show example diff for available syntax-highlighting themes]' \\\n'--show-themes[Show example diff for available delta themes]' \\\n'-s[Display diffs in side-by-side layout]' \\\n'--side-by-side[Display diffs in side-by-side layout]' \\\n'-h[Print help (see more with '\\''--help'\\'')]' \\\n'--help[Print help (see more with '\\''--help'\\'')]' \\\n'-V[Print version]' \\\n'--version[Print version]' \\\n'::minus_file -- First file to be compared when delta is being used in diff mode:_files' \\\n'::plus_file -- Second file to be compared when delta is being used in diff mode:_files' \\\n&& ret=0\n}\n\n(( $+functions[_delta_commands] )) ||\n_delta_commands() {\n    local commands; commands=()\n    _describe -t commands 'delta commands' commands \"$@\"\n}\n\nif [ \"$funcstack[1]\" = \"_delta\" ]; then\n    _delta \"$@\"\nelse\n    compdef _delta delta\nfi\n"
  },
  {
    "path": "etc/docker/Makefile",
    "content": ".PHONY: delta-ubuntu\ndelta-ubuntu:\n\tdocker build -f ubuntu.Dockerfile -t delta-ubuntu .\n"
  },
  {
    "path": "etc/docker/README.md",
    "content": "The docker image built here is intended for investigating delta issues, for example when they are OS-dependent.\n"
  },
  {
    "path": "etc/docker/delta-ubuntu",
    "content": "docker run -i delta-ubuntu delta $@"
  },
  {
    "path": "etc/docker/ubuntu.Dockerfile",
    "content": "FROM ubuntu:latest\n\nRUN apt-get update && \\\n    apt-get install -y curl git less gcc\n\nRUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\n\nRUN git clone https://github.com/dandavison/delta.git\nWORKDIR delta\nRUN /root/.cargo/bin/cargo build --release\n\nENV PATH=\"${PWD}/target/release:${PATH}\"\n\nCMD delta\n"
  },
  {
    "path": "etc/examples/119-within-line-edits",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\n\ncat > file1.js <<EOF\n{\n    if(g_themeController == nullptr)\n    {\nEOF\n\ncat > file2.js <<EOF\nmyColor = color === control.palette.window ? themeController.themePalette.buttonColor\n                                           : themeController.themePalette.windowColor\nEOF\n\ngit add file1.js file2.js\ngit commit -m \"Base commit\"\n\ncat > file1.js <<EOF\n{\n    if(g_themeViewModel == nullptr)\n    {\nEOF\n\ncat > file2.js <<EOF\nmyColor = color === control.palette.window ? themeViewModel.themePalette.basicBase\n                                           : themeViewModel.themePalette.windowColor\nEOF\n\ngit add file1.js file2.js\ngit commit -m \"Changes\"\n\ngit log --patch\n"
  },
  {
    "path": "etc/examples/121-unrecognized-content-before-diff-1",
    "content": "#!/bin/bash\ngit show -p --cc --format=  --numstat --stat\n"
  },
  {
    "path": "etc/examples/121-unrecognized-content-before-diff-2",
    "content": "#!/bin/bash\ngit stash show --stat --patch\n"
  },
  {
    "path": "etc/examples/125-merge-conflict-1.diff",
    "content": "diff --cc src/config.rs\nindex e35d2e4,fad673e..0000000\n--- a/src/config.rs\n+++ b/src/config.rs\n@@@ -1,4 -1,5 +1,10 @@@\n++<<<<<<< Updated upstream\n +use std::process;\n++||||||| constructed merge base\n++=======\n+ use std::process;\n+ \n++>>>>>>> Stashed changes\n  use std::str::FromStr;\n  \n  use syntect::highlighting::{Color, Style, StyleModifier, Theme, ThemeSet};\n@@@ -78,7 -40,9 +84,15 @@@ pub fn get_config<'a>\n          theme_set,\n      );\n  \n++<<<<<<< Updated upstream\n +    let theme = if style::is_no_syntax_highlighting_theme_name(&theme_name) {\n++||||||| constructed merge base\n++    let theme = if is_no_syntax_highlighting_theme_name(&theme_name) {\n++=======\n+     println!(\"theme_name: {}\", theme_name);\n+ \n+     let theme = if is_no_syntax_highlighting_theme_name(&theme_name) {\n++>>>>>>> Stashed changes\n          None\n      } else {\n          Some(&theme_set.themes[&theme_name])\n@@@ -190,10 -128,14 +204,14 @@@ fn get_is_light_mode_and_theme_name\n  ) -> (bool, String) {\n      let theme_arg = valid_theme_name_or_none(theme_arg, theme_set);\n      let bat_theme_env_var = valid_theme_name_or_none(bat_theme_env_var, theme_set);\n+ \n+     println!(\"theme_arg: {:?}\", theme_arg);\n+     println!(\"bat_theme_env_var: {:?}\", bat_theme_env_var);\n+ \n      match (theme_arg, bat_theme_env_var, light_mode_arg) {\n          (None, None, false) => (false, style::DEFAULT_DARK_THEME.to_string()),\n -        (Some(theme_name), _, false) => (is_light_theme(&theme_name), theme_name),\n -        (None, Some(theme_name), false) => (is_light_theme(&theme_name), theme_name),\n +        (Some(theme_name), _, false) => (style::is_light_theme(&theme_name), theme_name),\n +        (None, Some(theme_name), false) => (style::is_light_theme(&theme_name), theme_name),\n          (None, None, true) => (true, style::DEFAULT_LIGHT_THEME.to_string()),\n          (Some(theme_name), _, is_light_mode) => (is_light_mode, theme_name),\n          (None, Some(theme_name), is_light_mode) => (is_light_mode, theme_name),\n"
  },
  {
    "path": "etc/examples/125-merge-conflict-2.diff",
    "content": "diff --cc Makefile\nindex 759070d,3daf9eb..0000000\n--- a/Makefile\n+++ b/Makefile\n@@@ -4,13 -4,16 +4,37 @@@ build\n  lint:\n  \tcargo clippy\n  \n++<<<<<<< Updated upstream\n +test: unit-test end-to-end-test\n +\n +unit-test:\n +\tcargo test\n +\n +end-to-end-test: build\n +\tbash -c \"diff -u <(git log -p) <(git log -p | target/release/delta --color-only | perl -pe 's/\\e\\[[0-9;]*m//g')\"\n++||||||| constructed merge base\n++test:\n++\tcargo test\n++\tbash -c \"diff -u <(git log -p) \\\n++                     <(git log -p | delta --width variable \\\n++                                          --tabs 0 \\\n++\t                                      --retain-plus-minus-markers \\\n++                                          --commit-style plain \\\n++                                          --file-style plain \\\n++                                          --hunk-style plain \\\n++                                  | ansifilter)\"\n++=======\n+ test:\n+ \tcargo test --release\n+ \tbash -c \"diff -u <(git log -p) \\\n+                      <(git log -p | target/release/delta --width variable \\\n+                                           --tabs 0 \\\n+ \t                                      --retain-plus-minus-markers \\\n+                                           --commit-style plain \\\n+                                           --file-style plain \\\n+                                           --hunk-style plain \\\n+                                   | ansifilter)\" > /dev/null\n++>>>>>>> Stashed changes\n  \n  release:\n  \t@make -f release.Makefile release\n"
  },
  {
    "path": "etc/examples/127-paths-with-spaces--added",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\nmkdir \"with space\"\necho \"file1 contents\" > \"with space/file1\"\n\nmkdir \"nospace\"\necho \"file2 contents\" >  \"nospace/file2\"\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\ngit add .\ngit commit -m \"Initial commit\"\n\ngit show\n"
  },
  {
    "path": "etc/examples/127-paths-with-spaces--renamed",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\nmkdir \"with space\"\necho \"file1 contents\" > \"with space/file1\"\n\nmkdir \"nospace\"\necho \"file2 contents\" >  \"nospace/file2\"\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\ngit add .\ngit commit -m \"Initial commit\"\n\ngit mv \"with space/file1\" \"with space/file1-renamed\"\ngit mv \"nospace/file2\" \"nospace/file2-renamed\"\ngit commit -m \"Rename\"\n\ngit show\n"
  },
  {
    "path": "etc/examples/128-empty-file",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\n\ntouch file\n\ngit add file\ngit commit -m \"Initial commit\"\n\ngit show\n"
  },
  {
    "path": "etc/examples/139-file-with-space-delimited-dash.diff",
    "content": "diff --git a/strange - file.txt b/strange - file.txt\nnew file mode 100644\nindex 0000000..9daeafb\n--- /dev/null\n+++ b/strange - file.txt        \n@@ -0,0 +1,1 @@\n+test\n"
  },
  {
    "path": "etc/examples/140-within-line-edits",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\n\necho \"did_emsg = FALSE;\" > file.R\n\ngit add file.R\ngit commit -m \"Base commit\"\n\necho \"did_emsg == FALSE;\" > file.R\n\ngit add file.R\ngit commit -m \"Short change\"\n\ngit revert --no-edit HEAD\n\necho \"did_emsg = TRUE;\" > file.R\ngit add file.R\ngit commit -m \"Long change\"\n\ngit log --patch\n"
  },
  {
    "path": "etc/examples/140-within-line-edits-counter-example",
    "content": "#!/bin/bash\n\n\nrepo=$(mktemp -d)\ncd $repo\n\ngit init\ngit commit --allow-empty -m \"Initial commit\"\n\ncat > file <<EOF\naaaa a aaa\nbbbb b bbb\ncccc c ccc\nEOF\n\ngit add file\ngit commit -m \"Base commit\"\n\ncat > file <<EOF\nbbbb ! bbb\ndddd d ddd\ncccc ! ccc\nEOF\n\ngit add file\ngit commit -m \"Changes\"\n\ngit log --patch\n"
  },
  {
    "path": "etc/examples/189-merge-conflict.1.diff",
    "content": "diff --cc src/handlers/merge_conflict.rs\nindex 8fc4116b,eb115dde..00000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -88,8 -88,10 +88,20 @@@ fn paint_buffered_merge_conflict_lines\n          .map(|s| (s.to_string(), State::HunkMinus(None, None)))\n          .collect();\n      for plus_lines in &[&lines[Ours], &lines[Theirs]] {\n++<<<<<<< HEAD\n +        let plus_lines = plus_lines.iter().collect();\n +        let a = 1;\n++||||||| cf306705\n++        let plus_lines = plus_lines\n++            .iter()\n++            .map(|s| (s.to_string(), State::HunkMinus(None, None)))\n++            .collect();\n++=======\n+         let plus_lines = plus_lines\n+             .iter()\n+             .map(|s| (s.to_string(), State::HunkMinus(None, Some(7))))\n+             .collect();\n++>>>>>>> z-189-combined-diff-and-conflicts-merge-conflict-branch-2\n          paint::paint_minus_and_plus_lines(\n              MinusPlus::new(&minus_lines, &plus_lines),\n              line_numbers_data,\n@@@ -97,7 -99,7 +109,12 @@@\n              output_buffer,\n              config,\n          );\n++<<<<<<< HEAD\n +        let b = 2;\n++||||||| cf306705\n++=======\n+         let b = 9;\n++>>>>>>> z-189-combined-diff-and-conflicts-merge-conflict-branch-2\n          output_buffer.push_str(\"\\n\\n\");\n      }\n      Ok(())\n"
  },
  {
    "path": "etc/examples/189-merge-conflict.2.diff",
    "content": "\u001b[1mdiff --cc src/paint.rs\u001b[m\n\u001b[1mindex 79b44db1,0f429d5c..00000000\u001b[m\n\u001b[1m--- a/src/paint.rs\u001b[m\n\u001b[1m+++ b/src/paint.rs\u001b[m\n\u001b[36m@@@ -387,30 -457,36 +387,88 @@@\u001b[m \u001b[mimpl<'p> Painter<'p> \u001b[m\n      ) -> (Option<BgFillMethod>, Style) {\u001b[m\n          // style:          for right fill if line contains no emph sections\u001b[m\n          // non_emph_style: for right fill if line contains emph sections\u001b[m\n\u001b[32m++<<<<<<< HEAD\u001b[m\n\u001b[32m +        let (style, non_emph_style) = match state {\u001b[m\n\u001b[32m +            State::HunkMinus(None) | State::HunkMinusWrapped => {\u001b[m\n\u001b[32m +                (config.minus_style, config.minus_non_emph_style)\u001b[m\n\u001b[32m +            }\u001b[m\n\u001b[32m +            State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),\u001b[m\n\u001b[32m +            State::HunkPlus(None) | State::HunkPlusWrapped => {\u001b[m\n\u001b[32m +                (config.plus_style, config.plus_non_emph_style)\u001b[m\n\u001b[32m +            }\u001b[m\n\u001b[32m +            State::HunkMinus(Some(_)) | State::HunkPlus(Some(_)) => {\u001b[m\n\u001b[32m +                let style = if !diff_sections.is_empty() {\u001b[m\n\u001b[32m +                    diff_sections[diff_sections.len() - 1].0\u001b[m\n\u001b[32m++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)\u001b[m\n\u001b[32m++        let (style, non_emph_style) = match state {\u001b[m\n\u001b[32m++            State::HunkMinus(None) | State::HunkMinusWrapped => {\u001b[m\n\u001b[32m++                (config.minus_style, config.minus_non_emph_style)\u001b[m\n\u001b[32m++            }\u001b[m\n\u001b[32m++            State::HunkMinus(Some(raw_line)) => {\u001b[m\n\u001b[32m++                // TODO: This is the second time we are parsing the ANSI sequences\u001b[m\n\u001b[32m++                if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {\u001b[m\n\u001b[32m++                    let style = Style {\u001b[m\n\u001b[32m++                        ansi_term_style,\u001b[m\n\u001b[32m++                        ..Style::new()\u001b[m\n\u001b[32m++                    };\u001b[m\n\u001b[32m++                    (style, style)\u001b[m\n\u001b[32m++                } else {\u001b[m\n\u001b[32m++                    (config.minus_style, config.minus_non_emph_style)\u001b[m\n\u001b[32m++                }\u001b[m\n\u001b[32m++            }\u001b[m\n\u001b[32m++            State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),\u001b[m\n\u001b[32m++            State::HunkPlus(None) | State::HunkPlusWrapped => {\u001b[m\n\u001b[32m++                (config.plus_style, config.plus_non_emph_style)\u001b[m\n\u001b[32m++            }\u001b[m\n\u001b[32m++            State::HunkPlus(Some(raw_line)) => {\u001b[m\n\u001b[32m++                // TODO: This is the second time we are parsing the ANSI sequences\u001b[m\n\u001b[32m++                if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {\u001b[m\n\u001b[32m++                    let style = Style {\u001b[m\n\u001b[32m++                        ansi_term_style,\u001b[m\n\u001b[32m++                        ..Style::new()\u001b[m\n\u001b[32m++                    };\u001b[m\n\u001b[32m++                    (style, style)\u001b[m\n\u001b[32m++=======\u001b[m\n\u001b[32m+         let non_emph_style = match state {\u001b[m\n\u001b[32m+             State::HunkMinus(None) | State::HunkMinusWrapped => config.minus_non_emph_style,\u001b[m\n\u001b[32m+             State::HunkMinus(Some(raw_line)) => {\u001b[m\n\u001b[32m+                 // TODO: This is the second time we are parsing the ANSI sequences\u001b[m\n\u001b[32m+                 if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {\u001b[m\n\u001b[32m+                     Style {\u001b[m\n\u001b[32m+                         ansi_term_style,\u001b[m\n\u001b[32m+                         ..Style::new()\u001b[m\n\u001b[32m+                     }\u001b[m\n\u001b[32m+                 } else {\u001b[m\n\u001b[32m+                     config.minus_non_emph_style\u001b[m\n\u001b[32m+                 }\u001b[m\n\u001b[32m+             }\u001b[m\n\u001b[32m+             State::HunkZero | State::HunkZeroWrapped => config.zero_style,\u001b[m\n\u001b[32m+             State::HunkPlus(None) | State::HunkPlusWrapped => config.plus_non_emph_style,\u001b[m\n\u001b[32m+             State::HunkPlus(Some(raw_line)) => {\u001b[m\n\u001b[32m+                 // TODO: This is the second time we are parsing the ANSI sequences\u001b[m\n\u001b[32m+                 if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {\u001b[m\n\u001b[32m+                     Style {\u001b[m\n\u001b[32m+                         ansi_term_style,\u001b[m\n\u001b[32m+                         ..Style::new()\u001b[m\n\u001b[32m+                     }\u001b[m\n\u001b[32m++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)\u001b[m\n                  } else {\u001b[m\n\u001b[32m++<<<<<<< HEAD\u001b[m\n\u001b[32m +                    config.null_style\u001b[m\n\u001b[32m +                };\u001b[m\n\u001b[32m +                (style, style)\u001b[m\n\u001b[32m++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)\u001b[m\n\u001b[32m++                    (config.plus_style, config.plus_non_emph_style)\u001b[m\n\u001b[32m++                }\u001b[m\n\u001b[32m++=======\u001b[m\n\u001b[32m+                     config.plus_non_emph_style\u001b[m\n\u001b[32m+                 }\u001b[m\n\u001b[32m++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)\u001b[m\n              }\u001b[m\n\u001b[31m-             State::Blame(_, _) => (diff_sections[0].0, diff_sections[0].0),\u001b[m\n\u001b[31m-             _ => (config.null_style, config.null_style),\u001b[m\n\u001b[31m-         };\u001b[m\n\u001b[31m-         let fill_style = if style_sections_contain_more_than_one_style(diff_sections) {\u001b[m\n\u001b[31m-             non_emph_style // line contains an emph section\u001b[m\n\u001b[31m-         } else {\u001b[m\n\u001b[31m-             style\u001b[m\n\u001b[32m+             State::Blame(_, _) => diff_sections[0].0,\u001b[m\n\u001b[32m+             _ => config.null_style,\u001b[m\n          };\u001b[m\n\u001b[32m+         let fill_style = non_emph_style;\u001b[m\n  \u001b[m\n          match (\u001b[m\n              fill_style.get_background_color().is_some(),\u001b[m\n"
  },
  {
    "path": "etc/examples/189-merge-conflict.3.diff",
    "content": "diff --cc Makefile\nindex 759070d,3daf9eb..0000000\n--- a/Makefile\n+++ b/Makefile\n@@@ -4,13 -4,16 +4,37 @@@ build\n  lint:\n  \tcargo clippy\n  \n++<<<<<<< Updated upstream\n +test: unit-test end-to-end-test\n +\n +unit-test:\n +\tcargo test\n +\n +end-to-end-test: build\n +\tbash -c \"diff -u <(git log -p) <(git log -p | target/release/delta --color-only | perl -pe 's/\\e\\[[0-9;]*m//g')\"\n++||||||| constructed merge base\n++test:\n++\tcargo test\n++\tbash -c \"diff -u <(git log -p) \\\n++                     <(git log -p | delta --width variable \\\n++                                          --tabs 0 \\\n++\t                                      --retain-plus-minus-markers \\\n++                                          --commit-style plain \\\n++                                          --file-style plain \\\n++                                          --hunk-style plain \\\n++                                  | ansifilter)\" ++=======\n+ test:\n+ \tcargo test --release\n+ \tbash -c \"diff -u <(git log -p) \\\n+                      <(git log -p | target/release/delta --width variable \\\n+                                           --tabs 0 \\\n+ \t                                      --retain-plus-minus-markers \\\n+                                           --commit-style plain \\\n+                                           --file-style plain \\\n+                                           --hunk-style plain \\\n+                                   | ansifilter)\"> /dev/null\n++>>>>>>> Stashed changes\n\n  release:\n  \t@make -f release.Makefile release\n"
  },
  {
    "path": "etc/examples/189-merge-conflict.4.diff",
    "content": "diff --cc src/handlers/merge_conflict.rs\nindex 888eee8b,7ea2e9d3..00000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -5,7 -5,7 +5,11 @@@ use crate::utils::process\n  impl<'a> StateMachine<'a> {\n      pub fn handle_merge_conflict_line(&mut self) -> std::io::Result<bool> {\n          self.painter.emit()?;\n++<<<<<<< HEAD\n +        // hello\n++=======\n+         // bye\n++>>>>>>> b\n          let mut handled_line = false;\n          if matches!(self.state, State::Unknown) {\n              if let Some(process::CallingProcess::GitShow(_, extension)) =\n"
  },
  {
    "path": "etc/examples/189-merge-conflict.5.diff",
    "content": "diff --cc src/handlers/merge_conflict.rs\nindex 888eee8b,7ea2e9d3..00000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -5,7 -5,7 +5,12 @@@ use crate::utils::process\n  impl<'a> StateMachine<'a> {\n      pub fn handle_merge_conflict_line(&mut self) -> std::io::Result<bool> {\n          self.painter.emit()?;\n++<<<<<<< HEAD\n +        // hello\n++||||||| e641341d\n++=======\n+         // bye\n++>>>>>>> b\n          let mut handled_line = false;\n          if matches!(self.state, State::Unknown) {\n              if let Some(process::CallingProcess::GitShow(_, extension)) =\n"
  },
  {
    "path": "etc/examples/205-highlight-bug-1.diff",
    "content": "diff --git a/b b/b\nindex 1b647ff..b6467a2 100644\n--- a/b\n+++ b/b\n@@ -1 +1 @@\n-return parent_names\n+parent_names\n"
  },
  {
    "path": "etc/examples/205-highlight-bug-2.diff",
    "content": "diff --git i/diff-test.txt w/diff-test.txt\nindex 5fd0037..3f0bbd0 100644\n--- i/diff-test.txt\n+++ w/diff-test.txt\n@@ -1,1 +1,1 @@\n- [\n+= (\n"
  },
  {
    "path": "etc/examples/205-highlight-bug.diff",
    "content": "diff --git i/diff-test.txt w/diff-test.txt\nindex 5fd0037..3f0bbd0 100644\n--- i/diff-test.txt\n+++ w/diff-test.txt\n@@ -1,6 +1,10 @@\n-foo\n+foo yeah\n \tbar\n-return parent_names + [self.tree_name.value]\n+parent_names += (self.tree_name.value,)\n+if include_module_names:\n+\tskdjfh\n+\tkjlkfjs\n+return parent_names\n\n-foo\n-bar\n+foo-one\n+bar-two\n"
  },
  {
    "path": "etc/examples/308-side-by-side-tabs.diff",
    "content": "diff --git .config/git/config .config/git/config\nindex bc4ae2e..b058f99 100644\n--- .config/git/config\n+++ .config/git/config\n@@ -26,7 +21,6 @@\n \t# Show summary of changes to submodules. See also:\n \t# https://git-scm.com/book/en/v2/Git-Tools-Submodules\n \tsubmoduleSummary = true\n-\tshowStash = true\n\n [diff]\n \ttool = vimdiff\n"
  },
  {
    "path": "etc/examples/345-keep-plus-minus-markers.diff",
    "content": "commit f6086641f4cfe7c28559db99c27a964b3af31dab (HEAD -> master, origin/master)\nAuthor: Eric Nielsen <eric@amalgamar.com.br>\nDate:   Thu Oct 8 10:10:45 2020 -0500\n\n    Add class Name\n\ndiff --git a/Person.java b/Person.java\nindex 971edb4..ef67116 100644\n--- a/Person.java\n+++ b/Person.java\n@@ -3,6 +3,11 @@ import lombok.NonNull;\n\n @Data\n public class Person {\n-           private Long id;\n-  @NonNull private String name;\n+  private Long id;\n+  @Data\n+  public class Name {\n+    @NonNull private String first;\n+    @NonNull private String last;\n+  }\n+  @NonNull private Name name;\n }\n\ncommit f94abd9a5d883bcf2bdee4ff735f1c3a62cc9346\nAuthor: Eric Nielsen <eric@amalgamar.com.br>\nDate:   Thu Oct 8 10:03:54 2020 -0500\n\n    Replace \"@NonNull\" by spaces\n\ndiff --git a/Person.java b/Person.java\nindex 07255bf..971edb4 100644\n--- a/Person.java\n+++ b/Person.java\n@@ -3,6 +3,6 @@ import lombok.NonNull;\n\n @Data\n public class Person {\n-  @NonNull private Long id;\n+           private Long id;\n   @NonNull private String name;\n }\n\ncommit 4b3c2a712bef024228a95db7a318de3ebc23e11d\nAuthor: Eric Nielsen <eric@amalgamar.com.br>\nDate:   Wed Oct 7 18:28:30 2020 -0500\n\n    Add \"@NonNull \"\n\ndiff --git a/Person.java b/Person.java\nindex c6c830c..07255bf 100644\n--- a/Person.java\n+++ b/Person.java\n@@ -1,7 +1,8 @@\n import lombok.Data;\n+import lombok.NonNull;\n\n @Data\n public class Person {\n-  private Long id;\n-  private String name;\n+  @NonNull private Long id;\n+  @NonNull private String name;\n }\n\ncommit 27866afcea30970731ac032b108661fd0c247f2b\nAuthor: Eric Nielsen <eric@amalgamar.com.br>\nDate:   Wed Oct 7 18:27:28 2020 -0500\n\n    First commit\n\ndiff --git a/Person.java b/Person.java\nnew file mode 100644\nindex 0000000..c6c830c\n--- /dev/null\n+++ b/Person.java\n@@ -0,0 +1,7 @@\n+import lombok.Data;\n+\n+@Data\n+public class Person {\n+  private Long id;\n+  private String name;\n+}\n"
  },
  {
    "path": "etc/examples/345-keep-plus-minus-markers.gitconfig",
    "content": "[core]\n\tpager = delta\n[color \"diff-highlight\"]\n\toldNormal = red bold\n\toldHighlight = red bold 52\n\tnewNormal = green bold\n\tnewHighlight = green bold 22\n[color \"diff\"]\n\tmeta = yellow bold\n\tfrag = magenta bold\n\tcommit = yellow bold\n\told = red bold\n\tnew = green bold\n\twhitespace = red reverse\n[delta]\n\tcommit-decoration-style = yellow ol ul\n\tfile-style = bold yellow\n\tfile-decoration-style = yellow box\n\thunk-header-style = bold 146\n\thunk-header-decoration-style =\n\tminus-style = bold red\n\tminus-non-emph-style = bold red\n\tminus-emph-style = bold red 52\n\tminus-empty-line-marker-style = normal\n\tzero-style = normal\n\tplus-style = bold green\n\tplus-non-emph-style = bold green\n\tplus-emph-style = bold green 22\n\tplus-empty-line-marker-style = normal\n\tkeep-plus-minus-markers = true\n\tline-numbers = false\n\tside-by-side = true\n[diff-so-fancy]\n\tmarkEmptyLines = false\n\tstripLeadingSymbols = false\n\trulerWidth = 50\n"
  },
  {
    "path": "etc/examples/388-whitespace_error_keep_plus_minus_marker",
    "content": "diff --git a/Cargo.toml b/Cargo.toml\nindex 93f58aea..2f945245 100644\n--- a/Cargo.toml\n+++ b/Cargo.toml\n@@ -11,6 +11,7 @@ readme = \"README.md\"\n+\n"
  },
  {
    "path": "etc/examples/55-unicode-width.diff",
    "content": "diff --git a/test.txt b/test.txt\nindex 66a5cb0..0e8c1b9 100644\n--- a/test.txt\n+++ b/test.txt\n@@ -1,1 +1,1 @@\n-This is an English sentence. This is an English sentence. This is an English sentence. This is an English sentence. This is an English sentence.\n+This is an English sentence. This is an English sentence. This is an English sentence. This is an English sentence. This is an English sentence. some more words\n\n-这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。\n+这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。这是一个汉语句子。多点字\n+\n+Another line of English\n+更多一行汉语\n+Another line of English\n+更多一行汉语\n+Another line of English\n+更多一行汉语\n"
  },
  {
    "path": "etc/examples/56-unified-directory-diff",
    "content": "#!/bin/bash\nd1=$(mktemp -d)\nd2=$(mktemp -d)\nmkdir $d1 $d2\ngit show HEAD~10:./src/delta.rs > $d1/a.rs\ngit show HEAD:./src/delta.rs > $d2/a.rs\ntouch $d2/b.rs\ngit show HEAD~10:./src/paint.rs > $d1/c.rs\ngit show HEAD:./src/paint.rs > $d2/c.rs\ndiff -u $d1 $d2\n"
  },
  {
    "path": "etc/examples/60-submodule",
    "content": "#!/bin/bash\n\nsubmodule=$(mktemp -d)\nrepo=$(mktemp -d)\ncd $submodule\ngit init\ngit commit --allow-empty -m \"Initial commit\"\ncd $repo\ngit init\ngit submodule add $submodule submodule\ngit commit --allow-empty -m \"Initial commit\"\ntouch submodule/a\ncat >> .git/config <<EOF\n[diff]\n    submodule = log\nEOF\ngit diff | cat\n"
  },
  {
    "path": "etc/examples/662-submodules",
    "content": "#!/bin/bash\nREPO_ROOT=/tmp/submodule-diff-example\nREPO_DATE_FMT=%H:%M:%S.%N\nmkdir ${REPO_ROOT} && git -C ${REPO_ROOT} init && cd ${REPO_ROOT}\ndate +${REPO_DATE_FMT} >> baserepo && git add baserepo && git commit -m \"Base repo commit 1\"\n\nfor sub in A B C; do\n    git init submodule${sub}\n    for iter in $(seq 1 4); do\n        date +${REPO_DATE_FMT} >> submodule${sub}/subcontent\n        git -C submodule${sub} add subcontent && git -C submodule${sub} commit -m \"Submodule ${sub} initial commit $iter\"\n    done\n    # Add initial submodule, message of \"Submodule submoduleX 0000000...xxxxxxx (new submodule)\", no individual commits\n    git submodule add ../bogus-url-${sub} submodule${sub} && \\\n        git commit -m \"Add submodule${sub}\" # the diff handling for this is correct in delta\n\n    # Create additional submodule commits\n    for iter in $(seq 1 2); do\n        date +${REPO_DATE_FMT} >> submodule${sub}/subcontent\n        git -C submodule${sub} add subcontent && git -C submodule${sub} commit -m \"Submodule ${sub} extra change ${iter}\"\n    done\n    git add submodule${sub} && git commit -m \"Update submodule${sub}\"\ndone\n\ngit -C submoduleA reset --hard HEAD~4\ngit -C submoduleC reset --hard HEAD~2\n\nfor sub in B C; do\n    for iter in $(seq 1 3); do\n        date +${REPO_DATE_FMT} >> submodule${sub}/subcontent\n        git -C submodule${sub} add subcontent && git -C submodule${sub} commit -m \"Submodule ${sub} stage change ${iter}\"\n    done\ndone\n\n# Add all submodule updates in single commit to test multiple submodule updates in single commit\ngit add submodule[A-C] && git commit -m \"Update all submodules\"\n\n# submoduleA end state is only removed commits\n# submoduleB end state is only added commits\n# submoduleC is a mixture of removed and added commits (e.g. different branch)\n\n# Manual, inspect superproject history via:\n#    \"git -c diff.submodule=short log -p | delta --no-gitconfig\"\n#    \"git -c diff.submodule=log log -p | delta --no-gitconfig\"\n#    \"git -c diff.submodule=diff log -p | delta --no-gitconfig\"\n"
  },
  {
    "path": "etc/examples/72-color-moved-2.diff",
    "content": "\u001b[1mdiff --git a/file.py b/file.py\u001b[m\n\u001b[1mindex f07db74..3cb162d 100644\u001b[m\n\u001b[1m--- a/file.py\u001b[m\n\u001b[1m+++ b/file.py\u001b[m\n\u001b[36m@@ -1,2 +1,2 @@\u001b[m\n\u001b[1;35m-class X: pass\u001b[m\n class Y: pass\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36mclass X: pass\u001b[m\n"
  },
  {
    "path": "etc/examples/72-color-moved-3.diff",
    "content": "\u001b[33mcommit fffb6bf94087c432b6e2e29cab97bf1f8987c641\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Tue Nov 23 14:51:46 2021 -0500\n\n    DEBUG\n\n\u001b[1mdiff --git a/src/config.rs b/src/config.rs\u001b[m\n\u001b[1mindex efe6adb..9762222 100644\u001b[m\n\u001b[1m--- a/src/config.rs\u001b[m\n\u001b[1m+++ b/src/config.rs\u001b[m\n\u001b[36m@@ -400,6 +400,7 @@\u001b[m \u001b[mfn make_blame_palette(blame_palette: Option<String>, is_light_mode: bool) -> Vec\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36mpub fn user_supplied_option(option: &str, arg_matches: &clap::ArgMatches) -> bool {\u001b[m\n\u001b[36m@@ -416,29 +433,30 @@\u001b[m \u001b[mfn make_styles_map(opt: &cli::Opt) -> Option<HashMap<style::AnsiTermStyleEqualit\u001b[m\n\u001b[1;35m-pub fn user_supplied_option(option: &str, arg_matches: &clap::ArgMatches) -> bool {\u001b[m\n"
  },
  {
    "path": "etc/examples/72-color-moved-4.diff",
    "content": "\u001b[1mdiff --git a/file.py b/file.py\u001b[m\n\u001b[1mindex f2f1f5e..9735c3a 100644\u001b[m\n\u001b[1m--- a/file.py\u001b[m\n\u001b[1m+++ b/file.py\u001b[m\n\u001b[36m@@ -1,2 +1,2 @@\u001b[m\n\u001b[1;35m-class X: pass  # • unicode\u001b[m\n class Y: pass  # • unicode\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36mclass X: pass  # • unicode\u001b[m\n"
  },
  {
    "path": "etc/examples/72-color-moved.diff",
    "content": "\u001b[1mdiff --git a/a b/a\u001b[m\n\u001b[1mindex 283ba4ce..2c9304d5 100644\u001b[m\n\u001b[1m--- a/a\u001b[m\n\u001b[1m+++ b/a\u001b[m\n\u001b[36m@@ -3,12 +3,12 @@\u001b[m\n 1111 1111 1111 1111\u001b[m\n 1111 1111 1111 1111\u001b[m\n \u001b[m\n\u001b[1;35m-2222 2222 2222 2222\u001b[m\n\u001b[1;35m-2222 2222 2222 2222\u001b[m\n\u001b[1;35m-2222 2222 2222 2222\u001b[m\n\u001b[1;35m-2222 2222 2222 2222\u001b[m\n\u001b[31m-\u001b[m\n 3333 3333 3333 3333\u001b[m\n 3333 3333 3333 3333\u001b[m\n 3333 3333 3333 3333\u001b[m\n 3333 3333 3333 3333\u001b[m\n\u001b[32m+\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36m2222 2222 2222 2222\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36m2222 2222 2222 2222\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36m2222 2222 2222 2222\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36m2222 2222 2222 2222\u001b[m\n"
  },
  {
    "path": "etc/examples/802-color-moved.diff",
    "content": "\u001b[33mcommit 57e5082\u001b[m\nAuthor: Caleb Maclennan <caleb@alerque.com>\nDate:   Sat Nov 27 01:08:54 2021 +0300\n\n    Move verses to correct week file\n\n\u001b[33mdiff --git a/foo.md b/foo.md\u001b[m\n\u001b[33mindex ba489f0..0ad8245 100644\u001b[m\n\u001b[33m--- a/foo.md\u001b[m\n\u001b[33m+++ b/foo.md\u001b[m\n\u001b[35m@@ -20,3 +20,99 @@\u001b[m \u001b[mfoo bar\u001b[m\n\u001b[1;36m+\u001b[m\u001b[1;36mAs I swore in my wrath, 'They shall not enter my rest.'\"\u001b[m\n"
  },
  {
    "path": "etc/examples/813-cthulhu.diff",
    "content": "commit 2cde51fbd0f310c8a2c5f977e665c0ac3945b46d\nMerge: 7471c5c9f58e c097d5fdf3b5 74c375cb85d7 04c3a852f51f 5095f55d7cc3 4f534777c130 2f54d2a1cf7e 56d37d85438d 192043cf6089 f467a0f513ad bbe580302d33 3990c516de66 d754fa9ad18d 516ea4b58433 69ae8489076f 25c1a63f43ca f52c91921553 111bd7b18e13 aafa85e71a75 dd407a324323 71467e46414d 0f7f3d1f17c2 8778ac6be25a 0406a40a095c 308a0f3f24db 2650bc4f6d0c 8cb7a36eb3a8 323702b4e06d ef749400434c 3cec159cfb3f 72aa62bed3ea 328089a47112 11db0da831b1 e1771bcf99b0 f60e5473e678 a010ff628c09 5e8154332f48 58381da68774 626bcacb89f9 38136bde7691 06b2bd23057f 8c5178fca4ce 8e6ad35a31e7 008ef947d0c5 f58c4fc4a3bf 2309d6757900 5c1537163ce7 b65ab73e5d62 26090a834b49 9ea6fbc66d15 2c4864334c4d 1769267bb013 f3f9a60f7947 f25cf3496982 3f3002692ce8 fbbf7fea8e80 c3e8494c001c e40e0b5da87b 50c969732043 63587116811b 0112b62b12e1 a0a05916cf67 b888edbc68fb d44008b35858 9a199b8e9933 784cbf8ab464\nAuthor: Mark Brown <broonie@linaro.org>\nDate:   Thu Jan 2 13:01:55 2014 +0000\n\n    Merge remote-tracking branches 'asoc/topic/ad1836', 'asoc/topic/ad193x', 'asoc/topic/adav80x', 'asoc/topic/adsp', 'asoc/topic/ak4641', 'asoc/topic/ak4642', 'asoc/topic/arizona', 'asoc/topic/atmel', 'asoc/topic/au1x', 'asoc/topic/axi', 'asoc/topic/bcm2835', 'asoc/topic/blackfin', 'asoc/topic/cs4271', 'asoc/topic/cs42l52', 'asoc/topic/da7210', 'asoc/topic/davinci', 'asoc/topic/ep93xx', 'asoc/topic/fsl', 'asoc/topic/fsl-mxs', 'asoc/topic/generic', 'asoc/topic/hdmi', 'asoc/topic/jack', 'asoc/topic/jz4740', 'asoc/topic/max98090', 'asoc/topic/mxs', 'asoc/topic/omap', 'asoc/topic/pxa', 'asoc/topic/rcar', 'asoc/topic/s6000', 'asoc/topic/sai', 'asoc/topic/samsung', 'asoc/topic/sgtl5000', 'asoc/topic/spear', 'asoc/topic/ssm2518', 'asoc/topic/ssm2602', 'asoc/topic/tegra', 'asoc/topic/tlv320aic3x', 'asoc/topic/twl6040', 'asoc/topic/txx9', 'asoc/topic/uda1380', 'asoc/topic/width', 'asoc/topic/wm8510', 'asoc/topic/wm8523', 'asoc/topic/wm8580', 'asoc/topic/wm8711', 'asoc/topic/wm8728', 'asoc/topic/wm8731', 'asoc/topic/wm8741', 'asoc/topic/wm8750', 'asoc/topic/wm8753', 'asoc/topic/wm8776', 'asoc/topic/wm8804', 'asoc/topic/wm8900', 'asoc/topic/wm8901', 'asoc/topic/wm8940', 'asoc/topic/wm8962', 'asoc/topic/wm8974', 'asoc/topic/wm8985', 'asoc/topic/wm8988', 'asoc/topic/wm8990', 'asoc/topic/wm8991', 'asoc/topic/wm8994', 'asoc/topic/wm8995', 'asoc/topic/wm9081' and 'asoc/topic/x86' into asoc-next\n\ndiff --cc include/sound/soc.h\nindex 1cda7d343d16,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1cda7d343d16,1f741cb24f33,1f741cb24f33,1f741cb24f33,f7e1fac51bba,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1cda7d343d16,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33,1f741cb24f33..5a049d969c59\n--- a/include/sound/soc.h\n+++ b/include/sound/soc.h\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -444,17 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 +444,17 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int snd_soc_jack_add_gpios(struct snd_s\n  ++                                                              \t\t\tstruct snd_soc_jack_gpio *gpios);\n  ++                                                              void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,\n  ++                                                              \t\t\tstruct snd_soc_jack_gpio *gpios);\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  #else\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  static inline int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t struct snd_soc_jack_gpio *gpios)\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  \treturn 0;\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  static inline void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t   struct snd_soc_jack_gpio *gpios)\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++  }\n  +                                                               #endif\n  +                                                               \n  +                                                               /* codec register bit access */\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -879,8 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,8 -879,6 -879,6 -879,6 -886,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,8 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 -879,6 +886,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ struct snd_soc_dai_link \n  ++                                                              \n  ++                                                              \t/* Symmetry requirements */\n  ++                                                              \tunsigned int symmetric_rates:1;\n++++++++++++++++++ ++++++++++++++++ ++++++++++++++++++++++++++++  \tunsigned int symmetric_channels:1;\n++++++++++++++++++ ++++++++++++++++ ++++++++++++++++++++++++++++  \tunsigned int symmetric_samplebits:1;\n  +                                                               \n  +                                                               \t/* Do not create a PCM for this DAI link (Backend link) */\n  +                                                               \tunsigned int no_pcm:1;\ndiff --cc sound/soc/Kconfig\nindex 5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,866dfec4b6b5,a5e3a70c0d3d,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,5138b8493051,463a9e25e04f..d62ce483a443\n--- a/sound/soc/Kconfig\n+++ b/sound/soc/Kconfig\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,9 -31,9 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 -31,8 +31,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ config SND_SOC_GENERIC_DMAENGINE_PC\n  ++                                                              \tselect SND_DMAENGINE_PCM\n  ++                                                              \n  ++                                                              # All the supported SoCs\n++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++  source \"sound/soc/adi/Kconfig\"\n  +                                                               source \"sound/soc/atmel/Kconfig\"\n  +                                                               source \"sound/soc/au1x/Kconfig\"\n+++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++  source \"sound/soc/bcm/Kconfig\"\n  +                                                               source \"sound/soc/blackfin/Kconfig\"\n  +                                                               source \"sound/soc/cirrus/Kconfig\"\n  +                                                               source \"sound/soc/davinci/Kconfig\"\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -43,7 -43,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 -42,7 +44,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ source \"sound/soc/jz4740/Kconfig\n  ++                                                              source \"sound/soc/nuc900/Kconfig\"\n  ++                                                              source \"sound/soc/omap/Kconfig\"\n  ++                                                              source \"sound/soc/kirkwood/Kconfig\"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  source \"sound/soc/intel/Kconfig\"\n  +                                                               source \"sound/soc/mxs/Kconfig\"\n  +                                                               source \"sound/soc/pxa/Kconfig\"\n  +                                                               source \"sound/soc/samsung/Kconfig\"\ndiff --cc sound/soc/Makefile\nindex 8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,c70c7f76d2df,b52d4aad0716,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,8b9e70105dd2,ff291d3e60af..62a1822e77bf\n--- a/sound/soc/Makefile\n+++ b/sound/soc/Makefile\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,16 -8,16 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 -8,15 +8,17 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ endi\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= snd-soc-core.o\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= codecs/\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= generic/\n++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++  obj-$(CONFIG_SND_SOC)\t+= adi/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= atmel/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= au1x/\n+++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++  obj-$(CONFIG_SND_SOC)\t+= bcm/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= blackfin/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= cirrus/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= davinci/\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= dwc/\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= fsl/\n  ++                                                              obj-$(CONFIG_SND_SOC)\t+= jz4740/\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  obj-$(CONFIG_SND_SOC)\t+= intel/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= mxs/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= nuc900/\n  +                                                               obj-$(CONFIG_SND_SOC)\t+= omap/\ndiff --cc sound/soc/atmel/sam9x5_wm8731.c\nindex 7d6a9055874b,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,6f4e812d6e61,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15,992ae38d5a15..3188036a18f0\n--- a/sound/soc/atmel/sam9x5_wm8731.c\n+++ b/sound/soc/atmel/sam9x5_wm8731.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -97,8 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 -97,6 +97,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int sam9x5_wm8731_driver_probe(s\n  ++                                                              \t\tgoto out;\n  ++                                                              \t}\n  ++                                                              \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tsnd_soc_card_set_drvdata(card, priv);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tcard->dev = &pdev->dev;\n  +                                                               \tcard->owner = THIS_MODULE;\n  +                                                               \tcard->dai_link = dai;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -109,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 -107,7 +109,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tdai->stream_name = \"WM8731 PCM\";\n  ++                                                              \tdai->codec_dai_name = \"wm8731-hifi\";\n  ++                                                              \tdai->init = sam9x5_wm8731_init;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdai->dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_NB_NF\n  +                                                               \t\t| SND_SOC_DAIFMT_CBM_CFM;\n  +                                                               \n  +                                                               \tret = snd_soc_of_parse_card_name(card, \"atmel,model\");\ndiff --cc sound/soc/codecs/wm5110.c\nindex 0ab2dc296474,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,f3d96eae031a,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,bbd64384ca1c,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181,c3c7396a6181..22bd7dd80bba\n--- a/sound/soc/codecs/wm5110.c\n+++ b/sound/soc/codecs/wm5110.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,51 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,10 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 -30,13 +30,51 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              #include <linux/mfd/arizona/registers.h>\n  ++                                                              \n  ++                                                              #include \"arizona.h\"\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  #include \"wm_adsp.h\"\n  +                                                               #include \"wm5110.h\"\n  +                                                               \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  #define WM5110_NUM_ADSP 4\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               struct wm5110_priv {\n  +                                                               \tstruct arizona_priv core;\n  +                                                               \tstruct arizona_fll fll[2];\n  ++                                                              };\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  static const struct wm_adsp_region wm5110_dsp1_regions[] = {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_PM, .base = 0x100000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_ZM, .base = 0x180000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_XM, .base = 0x190000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_YM, .base = 0x1a8000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  };\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  static const struct wm_adsp_region wm5110_dsp2_regions[] = {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_PM, .base = 0x200000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_ZM, .base = 0x280000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_XM, .base = 0x290000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_YM, .base = 0x2a8000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  };\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  static const struct wm_adsp_region wm5110_dsp3_regions[] = {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_PM, .base = 0x300000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_ZM, .base = 0x380000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_XM, .base = 0x390000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_YM, .base = 0x3a8000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  };\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  static const struct wm_adsp_region wm5110_dsp4_regions[] = {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_PM, .base = 0x400000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_ZM, .base = 0x480000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_XM, .base = 0x490000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ .type = WMFW_ADSP2_YM, .base = 0x4a8000 },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  };\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  static const struct wm_adsp_region *wm5110_dsp_regions[] = {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \twm5110_dsp1_regions,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \twm5110_dsp2_regions,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \twm5110_dsp3_regions,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \twm5110_dsp4_regions,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  };\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                         +                                     static const struct reg_default wm5110_sysclk_revd_patch[] = {\n  +                         +                                     \t{ 0x3093, 0x1001 },\n  +                         +                                     \t{ 0x30E3, 0x1301 },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -105,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -40,0 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 -67,8 +105,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm5110_sysclk_ev(struct snd_\n  ++                        +                                     \tcase SND_SOC_DAPM_POST_PMU:\n  ++                        +                                     \t\tif (patch)\n  ++                        +                                     \t\t\tfor (i = 0; i < patch_size; i++)\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\tregmap_write_async(regmap, patch[i].reg,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t   patch[i].def);\n  +                         +                                     \t\tbreak;\n  +                         +                                     \n  +                         +                                     \tdefault:\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -155,25 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -76,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 -117,6 +155,25 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SOC_SINGLE_RANGE_TLV(\"IN3L Volume\", ARI\n  ++                                                              SOC_SINGLE_RANGE_TLV(\"IN3R Volume\", ARIZONA_IN3R_CONTROL,\n  ++                                                              \t\t     ARIZONA_IN3R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, ana_tlv),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_ENUM(\"IN HPF Cutoff Frequency\", arizona_in_hpf_cut_enum),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN1L HPF Switch\", ARIZONA_IN1L_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN1L_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN1R HPF Switch\", ARIZONA_IN1R_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN1R_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN2L HPF Switch\", ARIZONA_IN2L_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN2L_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN2R HPF Switch\", ARIZONA_IN2R_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN2R_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN3L HPF Switch\", ARIZONA_IN3L_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN3L_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN3R HPF Switch\", ARIZONA_IN3R_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN3R_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN4L HPF Switch\", ARIZONA_IN4L_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN4L_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_SINGLE(\"IN4R HPF Switch\", ARIZONA_IN4R_CONTROL,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_IN4R_HPF_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               SOC_SINGLE_TLV(\"IN1L Digital Volume\", ARIZONA_ADC_DIGITAL_VOLUME_1L,\n  +                                                               \t       ARIZONA_IN1L_DIG_VOL_SHIFT, 0xbf, 0, digital_tlv),\n  +                                                               SOC_SINGLE_TLV(\"IN1R Digital Volume\", ARIZONA_ADC_DIGITAL_VOLUME_1R,\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -277,14 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -179,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 -220,6 +277,14 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SOC_ENUM(\"LHPF2 Mode\", arizona_lhpf2_mo\n  ++                                                              SOC_ENUM(\"LHPF3 Mode\", arizona_lhpf3_mode),\n  ++                                                              SOC_ENUM(\"LHPF4 Mode\", arizona_lhpf4_mode),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC1 FSL\", arizona_isrc_fsl[0]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC2 FSL\", arizona_isrc_fsl[1]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC3 FSL\", arizona_isrc_fsl[2]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC1 FSH\", arizona_isrc_fsh[0]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC2 FSH\", arizona_isrc_fsh[1]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ISRC3 FSH\", arizona_isrc_fsh[2]),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_VALUE_ENUM(\"ASRC RATE 1\", arizona_asrc_rate1),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               ARIZONA_MIXER_CONTROLS(\"DSP1L\", ARIZONA_DSP1LMIX_INPUT_1_SOURCE),\n  +                                                               ARIZONA_MIXER_CONTROLS(\"DSP1R\", ARIZONA_DSP1RMIX_INPUT_1_SOURCE),\n  +                                                               ARIZONA_MIXER_CONTROLS(\"DSP2L\", ARIZONA_DSP2LMIX_INPUT_1_SOURCE),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -285,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -375,13 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -269,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 -310,6 +350,13 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SOC_DOUBLE(\"SPKDAT1 Switch\", ARIZONA_PD\n  ++                                                              SOC_DOUBLE(\"SPKDAT2 Switch\", ARIZONA_PDM_SPK2_CTRL_1, ARIZONA_SPK2L_MUTE_SHIFT,\n  ++                                                              \t   ARIZONA_SPK2R_MUTE_SHIFT, 1, 1),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_DOUBLE(\"HPOUT1 DRE Switch\", ARIZONA_DRE_ENABLE,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_DRE1L_ENA_SHIFT, ARIZONA_DRE1R_ENA_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_DOUBLE(\"HPOUT2 DRE Switch\", ARIZONA_DRE_ENABLE,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_DRE2L_ENA_SHIFT, ARIZONA_DRE2R_ENA_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SOC_DOUBLE(\"HPOUT3 DRE Switch\", ARIZONA_DRE_ENABLE,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t   ARIZONA_DRE3L_ENA_SHIFT, ARIZONA_DRE3R_ENA_SHIFT, 1, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               SOC_ENUM(\"Output Ramp Up\", arizona_out_vi_ramp),\n  +                                                               SOC_ENUM(\"Output Ramp Down\", arizona_out_vd_ramp),\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -318,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -415,10 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -302,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 -343,6 +390,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MIXER_CONTROLS(\"AIF1TX8\", ARIZO\n  ++                                                              \n  ++                                                              ARIZONA_MIXER_CONTROLS(\"AIF2TX1\", ARIZONA_AIF2TX1MIX_INPUT_1_SOURCE),\n  ++                                                              ARIZONA_MIXER_CONTROLS(\"AIF2TX2\", ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_CONTROLS(\"AIF2TX3\", ARIZONA_AIF2TX3MIX_INPUT_1_SOURCE),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_CONTROLS(\"AIF2TX4\", ARIZONA_AIF2TX4MIX_INPUT_1_SOURCE),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_CONTROLS(\"AIF2TX5\", ARIZONA_AIF2TX5MIX_INPUT_1_SOURCE),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_CONTROLS(\"AIF2TX6\", ARIZONA_AIF2TX6MIX_INPUT_1_SOURCE),\n  +                                                               \n  +                                                               ARIZONA_MIXER_CONTROLS(\"AIF3TX1\", ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE),\n  +                                                               ARIZONA_MIXER_CONTROLS(\"AIF3TX2\", ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -347,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -448,22 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -331,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 -372,6 +423,22 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MIXER_ENUMS(LHPF2, ARIZONA_HPLP\n  ++                                                              ARIZONA_MIXER_ENUMS(LHPF3, ARIZONA_HPLP3MIX_INPUT_1_SOURCE);\n  ++                                                              ARIZONA_MIXER_ENUMS(LHPF4, ARIZONA_HPLP4MIX_INPUT_1_SOURCE);\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP1L, ARIZONA_DSP1LMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP1R, ARIZONA_DSP1RMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_AUX_ENUMS(DSP1, ARIZONA_DSP1AUX1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP2L, ARIZONA_DSP2LMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP2R, ARIZONA_DSP2RMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_AUX_ENUMS(DSP2, ARIZONA_DSP2AUX1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP3L, ARIZONA_DSP3LMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP3R, ARIZONA_DSP3RMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_AUX_ENUMS(DSP3, ARIZONA_DSP3AUX1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP4L, ARIZONA_DSP4LMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(DSP4R, ARIZONA_DSP4RMIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_AUX_ENUMS(DSP4, ARIZONA_DSP4AUX1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               ARIZONA_MIXER_ENUMS(Mic, ARIZONA_MICMIX_INPUT_1_SOURCE);\n  +                                                               ARIZONA_MIXER_ENUMS(Noise, ARIZONA_NOISEMIX_INPUT_1_SOURCE);\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -377,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -494,10 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -361,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 -402,6 +469,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MIXER_ENUMS(AIF1TX8, ARIZONA_AI\n  ++                                                              \n  ++                                                              ARIZONA_MIXER_ENUMS(AIF2TX1, ARIZONA_AIF2TX1MIX_INPUT_1_SOURCE);\n  ++                                                              ARIZONA_MIXER_ENUMS(AIF2TX2, ARIZONA_AIF2TX2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(AIF2TX3, ARIZONA_AIF2TX3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(AIF2TX4, ARIZONA_AIF2TX4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(AIF2TX5, ARIZONA_AIF2TX5MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_ENUMS(AIF2TX6, ARIZONA_AIF2TX6MIX_INPUT_1_SOURCE);\n  +                                                               \n  +                                                               ARIZONA_MIXER_ENUMS(AIF3TX1, ARIZONA_AIF3TX1MIX_INPUT_1_SOURCE);\n  +                                                               ARIZONA_MIXER_ENUMS(AIF3TX2, ARIZONA_AIF3TX2MIX_INPUT_1_SOURCE);\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -395,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -516,36 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -379,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 -420,6 +491,36 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MUX_ENUMS(ASRC1R, ARIZONA_ASRC1\n  ++                                                              ARIZONA_MUX_ENUMS(ASRC2L, ARIZONA_ASRC2LMIX_INPUT_1_SOURCE);\n  ++                                                              ARIZONA_MUX_ENUMS(ASRC2R, ARIZONA_ASRC2RMIX_INPUT_1_SOURCE);\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1INT1, ARIZONA_ISRC1INT1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1INT2, ARIZONA_ISRC1INT2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1INT3, ARIZONA_ISRC1INT3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1INT4, ARIZONA_ISRC1INT4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1DEC1, ARIZONA_ISRC1DEC1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1DEC2, ARIZONA_ISRC1DEC2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1DEC3, ARIZONA_ISRC1DEC3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC1DEC4, ARIZONA_ISRC1DEC4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2INT1, ARIZONA_ISRC2INT1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2INT2, ARIZONA_ISRC2INT2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2INT3, ARIZONA_ISRC2INT3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2INT4, ARIZONA_ISRC2INT4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2DEC1, ARIZONA_ISRC2DEC1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2DEC2, ARIZONA_ISRC2DEC2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2DEC3, ARIZONA_ISRC2DEC3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC2DEC4, ARIZONA_ISRC2DEC4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3INT1, ARIZONA_ISRC3INT1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3INT2, ARIZONA_ISRC3INT2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3INT3, ARIZONA_ISRC3INT3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3INT4, ARIZONA_ISRC3INT4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3DEC1, ARIZONA_ISRC3DEC1MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3DEC2, ARIZONA_ISRC3DEC2MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3DEC3, ARIZONA_ISRC3DEC3MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_ENUMS(ISRC3DEC4, ARIZONA_ISRC3DEC4MIX_INPUT_1_SOURCE);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               static const char *wm5110_aec_loopback_texts[] = {\n  +                                                               \t\"HPOUT1L\", \"HPOUT1R\", \"HPOUT2L\", \"HPOUT2R\", \"HPOUT3L\", \"HPOUT3R\",\n  +                                                               \t\"SPKOUTL\", \"SPKOUTR\", \"SPKDAT1L\", \"SPKDAT1R\", \"SPKDAT2L\", \"SPKDAT2R\",\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -535,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -686,65 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -519,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 -560,6 +661,65 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SND_SOC_DAPM_PGA(\"ASRC2L\", ARIZONA_ASRC\n  ++                                                              SND_SOC_DAPM_PGA(\"ASRC2R\", ARIZONA_ASRC_ENABLE, ARIZONA_ASRC2R_ENA_SHIFT, 0,\n  ++                                                              \t\t NULL, 0),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  WM_ADSP2(\"DSP1\", 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  WM_ADSP2(\"DSP2\", 1),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  WM_ADSP2(\"DSP3\", 2),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  WM_ADSP2(\"DSP4\", 3),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1INT1\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_INT0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1INT2\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_INT1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1INT3\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_INT2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1INT4\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_INT3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1DEC1\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_DEC0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1DEC2\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_DEC1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1DEC3\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_DEC2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC1DEC4\", ARIZONA_ISRC_1_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC1_DEC3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2INT1\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_INT0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2INT2\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_INT1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2INT3\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_INT2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2INT4\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_INT3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2DEC1\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_DEC0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2DEC2\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_DEC1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2DEC3\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_DEC2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC2DEC4\", ARIZONA_ISRC_2_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC2_DEC3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3INT1\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_INT0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3INT2\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_INT1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3INT3\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_INT2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3INT4\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_INT3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3DEC1\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_DEC0_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3DEC2\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_DEC1_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3DEC3\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_DEC2_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_PGA(\"ISRC3DEC4\", ARIZONA_ISRC_3_CTRL_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t ARIZONA_ISRC3_DEC3_ENA_SHIFT, 0, NULL, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               SND_SOC_DAPM_VALUE_MUX(\"AEC Loopback\", ARIZONA_DAC_AEC_CONTROL_1,\n  +                                                               \t\t       ARIZONA_AEC_LOOPBACK_ENA_SHIFT, 0,\n  +                                                               \t\t       &wm5110_aec_loopback_mux),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -577,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -787,27 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -561,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 -602,11 +762,27 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SND_SOC_DAPM_AIF_OUT(\"AIF2TX1\", NULL, 0\n  ++                                                              \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX1_ENA_SHIFT, 0),\n  ++                                                              SND_SOC_DAPM_AIF_OUT(\"AIF2TX2\", NULL, 0,\n  ++                                                              \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_OUT(\"AIF2TX3\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX3_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_OUT(\"AIF2TX4\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX4_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_OUT(\"AIF2TX5\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX5_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_OUT(\"AIF2TX6\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t     ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX6_ENA_SHIFT, 0),\n  +                                                               \n  +                                                               SND_SOC_DAPM_AIF_IN(\"AIF2RX1\", NULL, 0,\n  +                                                               \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX1_ENA_SHIFT, 0),\n  ++                                                              SND_SOC_DAPM_AIF_IN(\"AIF2RX2\", NULL, 0,\n  ++                                                              \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_IN(\"AIF2RX3\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX3_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_IN(\"AIF2RX4\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX4_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_IN(\"AIF2RX5\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX5_ENA_SHIFT, 0),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  SND_SOC_DAPM_AIF_IN(\"AIF2RX6\", NULL, 0,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t    ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX6_ENA_SHIFT, 0),\n  +                                                               \n  +                                                               SND_SOC_DAPM_AIF_IN(\"SLIMRX1\", NULL, 0,\n  +                                                               \t\t    ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -719,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -945,10 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -703,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 -744,6 +920,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MIXER_WIDGETS(AIF1TX8, \"AIF1TX8\n  ++                                                              \n  ++                                                              ARIZONA_MIXER_WIDGETS(AIF2TX1, \"AIF2TX1\"),\n  ++                                                              ARIZONA_MIXER_WIDGETS(AIF2TX2, \"AIF2TX2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_WIDGETS(AIF2TX3, \"AIF2TX3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_WIDGETS(AIF2TX4, \"AIF2TX4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_WIDGETS(AIF2TX5, \"AIF2TX5\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MIXER_WIDGETS(AIF2TX6, \"AIF2TX6\"),\n  +                                                               \n  +                                                               ARIZONA_MIXER_WIDGETS(AIF3TX1, \"AIF3TX1\"),\n  +                                                               ARIZONA_MIXER_WIDGETS(AIF3TX2, \"AIF3TX2\"),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -737,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -967,41 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -721,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 -762,6 +942,41 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARIZONA_MUX_WIDGETS(ASRC1R, \"ASRC1R\")\n  ++                                                              ARIZONA_MUX_WIDGETS(ASRC2L, \"ASRC2L\"),\n  ++                                                              ARIZONA_MUX_WIDGETS(ASRC2R, \"ASRC2R\"),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_WIDGETS(DSP1, \"DSP1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_WIDGETS(DSP2, \"DSP2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_WIDGETS(DSP3, \"DSP3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_DSP_WIDGETS(DSP4, \"DSP4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1DEC1, \"ISRC1DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1DEC2, \"ISRC1DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1DEC3, \"ISRC1DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1DEC4, \"ISRC1DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1INT1, \"ISRC1INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1INT2, \"ISRC1INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1INT3, \"ISRC1INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC1INT4, \"ISRC1INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2DEC1, \"ISRC2DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2DEC2, \"ISRC2DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2DEC3, \"ISRC2DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2DEC4, \"ISRC2DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2INT1, \"ISRC2INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2INT2, \"ISRC2INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2INT3, \"ISRC2INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC2INT4, \"ISRC2INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3DEC1, \"ISRC3DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3DEC2, \"ISRC3DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3DEC3, \"ISRC3DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3DEC4, \"ISRC3DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3INT1, \"ISRC3INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3INT2, \"ISRC3INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3INT3, \"ISRC3INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  ARIZONA_MUX_WIDGETS(ISRC3INT4, \"ISRC3INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               SND_SOC_DAPM_OUTPUT(\"HPOUT1L\"),\n  +                                                               SND_SOC_DAPM_OUTPUT(\"HPOUT1R\"),\n  +                                                               SND_SOC_DAPM_OUTPUT(\"HPOUT2L\"),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -780,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -1045,10 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -764,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 -805,6 +1020,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SND_SOC_DAPM_OUTPUT(\"MICSUPP\")\n  ++                                                              \t{ name, \"AIF1RX8\", \"AIF1RX8\" }, \\\n  ++                                                              \t{ name, \"AIF2RX1\", \"AIF2RX1\" }, \\\n  ++                                                              \t{ name, \"AIF2RX2\", \"AIF2RX2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"AIF2RX3\", \"AIF2RX3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"AIF2RX4\", \"AIF2RX4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"AIF2RX5\", \"AIF2RX5\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"AIF2RX6\", \"AIF2RX6\" }, \\\n  +                                                               \t{ name, \"AIF3RX1\", \"AIF3RX1\" }, \\\n  +                                                               \t{ name, \"AIF3RX2\", \"AIF3RX2\" }, \\\n  +                                                               \t{ name, \"SLIMRX1\", \"SLIMRX1\" }, \\\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -805,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -1074,55 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -789,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 -830,7 +1049,55 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t{ name, \"ASRC1L\", \"ASRC1L\" }, \\\n  ++                                                              \t{ name, \"ASRC1R\", \"ASRC1R\" }, \\\n  ++                                                              \t{ name, \"ASRC2L\", \"ASRC2L\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ASRC2R\", \"ASRC2R\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1DEC1\", \"ISRC1DEC1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1DEC2\", \"ISRC1DEC2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1DEC3\", \"ISRC1DEC3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1DEC4\", \"ISRC1DEC4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1INT1\", \"ISRC1INT1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1INT2\", \"ISRC1INT2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1INT3\", \"ISRC1INT3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC1INT4\", \"ISRC1INT4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2DEC1\", \"ISRC2DEC1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2DEC2\", \"ISRC2DEC2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2DEC3\", \"ISRC2DEC3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2DEC4\", \"ISRC2DEC4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2INT1\", \"ISRC2INT1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2INT2\", \"ISRC2INT2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2INT3\", \"ISRC2INT3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC2INT4\", \"ISRC2INT4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3DEC1\", \"ISRC3DEC1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3DEC2\", \"ISRC3DEC2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3DEC3\", \"ISRC3DEC3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3DEC4\", \"ISRC3DEC4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3INT1\", \"ISRC3INT1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3INT2\", \"ISRC3INT2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3INT3\", \"ISRC3INT3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"ISRC3INT4\", \"ISRC3INT4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.1\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.2\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.3\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.4\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.5\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP1.6\", \"DSP1\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.1\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.2\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.3\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.4\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.5\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP2.6\", \"DSP2\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.1\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.2\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.3\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.4\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.5\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP3.6\", \"DSP3\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.1\", \"DSP4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.2\", \"DSP4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.3\", \"DSP4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.4\", \"DSP4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.5\", \"DSP4\" }, \\\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ name, \"DSP4.6\", \"DSP4\" }\n  +                                                               \n  +                                                               static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {\n  +                                                               \t{ \"AIF2 Capture\", NULL, \"DBVDD2\" },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -877,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -1194,17 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -861,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 -902,9 +1169,17 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \n  ++                                                              \t{ \"AIF2 Capture\", NULL, \"AIF2TX1\" },\n  ++                                                              \t{ \"AIF2 Capture\", NULL, \"AIF2TX2\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2 Capture\", NULL, \"AIF2TX3\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2 Capture\", NULL, \"AIF2TX4\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2 Capture\", NULL, \"AIF2TX5\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2 Capture\", NULL, \"AIF2TX6\" },\n  +                                                               \n  +                                                               \t{ \"AIF2RX1\", NULL, \"AIF2 Playback\" },\n  +                                                               \t{ \"AIF2RX2\", NULL, \"AIF2 Playback\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2RX3\", NULL, \"AIF2 Playback\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2RX4\", NULL, \"AIF2 Playback\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2RX5\", NULL, \"AIF2 Playback\" },\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"AIF2RX6\", NULL, \"AIF2 Playback\" },\n  +                                                               \n  +                                                               \t{ \"AIF3 Capture\", NULL, \"AIF3TX1\" },\n  +                                                               \t{ \"AIF3 Capture\", NULL, \"AIF3TX2\" },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -963,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -1288,10 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -947,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 -988,6 +1263,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \n  ++                                                              \tARIZONA_MIXER_ROUTES(\"AIF2TX1\", \"AIF2TX1\"),\n  ++                                                              \tARIZONA_MIXER_ROUTES(\"AIF2TX2\", \"AIF2TX2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MIXER_ROUTES(\"AIF2TX3\", \"AIF2TX3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MIXER_ROUTES(\"AIF2TX4\", \"AIF2TX4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MIXER_ROUTES(\"AIF2TX5\", \"AIF2TX5\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MIXER_ROUTES(\"AIF2TX6\", \"AIF2TX6\"),\n  +                                                               \n  +                                                               \tARIZONA_MIXER_ROUTES(\"AIF3TX1\", \"AIF3TX1\"),\n  +                                                               \tARIZONA_MIXER_ROUTES(\"AIF3TX2\", \"AIF3TX2\"),\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -999,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1328,41 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -983,4 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 -1024,6 +1303,41 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tARIZONA_MUX_ROUTES(\"ASRC2L\", \"ASRC2L\"),\n  ++                                                              \tARIZONA_MUX_ROUTES(\"ASRC2R\", \"ASRC2R\"),\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_DSP_ROUTES(\"DSP1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_DSP_ROUTES(\"DSP2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_DSP_ROUTES(\"DSP3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_DSP_ROUTES(\"DSP4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1INT1\", \"ISRC1INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1INT2\", \"ISRC1INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1INT3\", \"ISRC1INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1INT4\", \"ISRC1INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1DEC1\", \"ISRC1DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1DEC2\", \"ISRC1DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1DEC3\", \"ISRC1DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC1DEC4\", \"ISRC1DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2INT1\", \"ISRC2INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2INT2\", \"ISRC2INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2INT3\", \"ISRC2INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2INT4\", \"ISRC2INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2DEC1\", \"ISRC2DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2DEC2\", \"ISRC2DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2DEC3\", \"ISRC2DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC2DEC4\", \"ISRC2DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3INT1\", \"ISRC3INT1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3INT2\", \"ISRC3INT2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3INT3\", \"ISRC3INT3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3INT4\", \"ISRC3INT4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3DEC1\", \"ISRC3DEC1\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3DEC2\", \"ISRC3DEC2\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3DEC3\", \"ISRC3DEC3\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tARIZONA_MUX_ROUTES(\"ISRC3DEC4\", \"ISRC3DEC4\"),\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                         +                                     \t{ \"AEC Loopback\", \"HPOUT1L\", \"OUT1L\" },\n  +                         +                                     \t{ \"AEC Loopback\", \"HPOUT1R\", \"OUT1R\" },\n  +                                                               \t{ \"HPOUT1L\", NULL, \"OUT1L\" },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1012,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1376,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -992,4 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 -1037,7 +1351,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                        +                                     \t{ \"AEC Loopback\", \"HPOUT3L\", \"OUT3L\" },\n  ++                        +                                     \t{ \"AEC Loopback\", \"HPOUT3R\", \"OUT3R\" },\n  ++                                                              \t{ \"HPOUT3L\", NULL, \"OUT3L\" },\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t{ \"HPOUT3R\", NULL, \"OUT3R\" },\n  +                                                               \n  +                         +                                     \t{ \"AEC Loopback\", \"SPKOUTL\", \"OUT4L\" },\n  +                                                               \t{ \"SPKOUTLN\", NULL, \"OUT4L\" },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1095,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1459,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1067,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 -1120,14 +1434,14 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static struct snd_soc_dai_driver wm5110\n  ++                                                              \t\t.playback = {\n  ++                                                              \t\t\t.stream_name = \"AIF2 Playback\",\n  ++                                                              \t\t\t.channels_min = 1,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t.channels_max = 6,\n  +                                                               \t\t\t.rates = WM5110_RATES,\n  +                                                               \t\t\t.formats = WM5110_FORMATS,\n  +                                                               \t\t},\n  ++                                                              \t\t.capture = {\n  ++                                                              \t\t\t .stream_name = \"AIF2 Capture\",\n  ++                                                              \t\t\t .channels_min = 1,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t .channels_max = 6,\n  +                                                               \t\t\t .rates = WM5110_RATES,\n  +                                                               \t\t\t .formats = WM5110_FORMATS,\n  +                                                               \t\t },\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1204,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1568,10 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1176,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 -1229,6 +1543,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm5110_codec_probe(struct sn\n  ++                                                              \tarizona_init_spk(codec);\n  ++                                                              \tarizona_init_gpio(codec);\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tret = snd_soc_add_codec_controls(codec, wm_adsp2_fw_controls, 8);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (ret != 0)\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\treturn ret;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tsnd_soc_dapm_disable_pin(&codec->dapm, \"HAPTICS\");\n  +                                                               \n  +                                                               \tpriv->core.arizona->dapm = &codec->dapm;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1258,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1626,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1230,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 -1283,7 +1601,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm5110_probe(struct platform\n  ++                                                              {\n  ++                                                              \tstruct arizona *arizona = dev_get_drvdata(pdev->dev.parent);\n  ++                                                              \tstruct wm5110_priv *wm5110;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tint i, ret;\n  +                                                               \n  +                                                               \twm5110 = devm_kzalloc(&pdev->dev, sizeof(struct wm5110_priv),\n  +                                                               \t\t\t      GFP_KERNEL);\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1269,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1637,24 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1241,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 -1294,6 +1612,24 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \twm5110->core.arizona = arizona;\n  ++                                                              \twm5110->core.num_inputs = 8;\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tfor (i = 0; i < WM5110_NUM_ADSP; i++) {\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].part = \"wm5110\";\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].num = i + 1;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].type = WMFW_ADSP2;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].dev = arizona->dev;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].regmap = arizona->regmap;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].base = ARIZONA_DSP1_CONTROL_1\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t+ (0x100 * i);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].mem = wm5110_dsp_regions[i];\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\twm5110->core.adsp[i].num_mems\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t= ARRAY_SIZE(wm5110_dsp1_regions);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tret = wm_adsp2_init(&wm5110->core.adsp[i], false);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tif (ret != 0)\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\treturn ret;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t}\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tfor (i = 0; i < ARRAY_SIZE(wm5110->fll); i++)\n  +                                                               \t\twm5110->fll[i].vco_mult = 3;\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1279,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1665,12 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1251,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 -1304,6 +1640,12 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\t\t ARIZONA_IRQ_FLL2_LOCK, ARIZONA_IRQ_FLL2_CLOCK_OK,\n  ++                                                              \t\t\t &wm5110->fll[1]);\n  ++                                                              \n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t/* SR2 fixed at 8kHz, SR3 fixed at 16kHz */\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tregmap_update_bits(arizona->regmap, ARIZONA_SAMPLE_RATE_2,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t   ARIZONA_SAMPLE_RATE_2_MASK, 0x11);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tregmap_update_bits(arizona->regmap, ARIZONA_SAMPLE_RATE_3,\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t   ARIZONA_SAMPLE_RATE_3_MASK, 0x12);\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tfor (i = 0; i < ARRAY_SIZE(wm5110_dai); i++)\n  +                                                               \t\tarizona_init_dai(&wm5110->core, i);\n  +                                                               \ndiff --cc sound/soc/codecs/wm8731.c\nindex bc7472c968e3,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,6117107ea560,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759,456bb8c6d759..029720366ff8\n--- a/sound/soc/codecs/wm8731.c\n+++ b/sound/soc/codecs/wm8731.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,8 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 -447,10 +447,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm8731_set_dai_fmt(struct sn\n  ++                                                              \t\tiface |= 0x0001;\n  ++                                                              \t\tbreak;\n  ++                                                              \tcase SND_SOC_DAIFMT_DSP_A:\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tiface |= 0x0013;\n  +                                                               \t\tbreak;\n  +                                                               \tcase SND_SOC_DAIFMT_DSP_B:\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tiface |= 0x0003;\n  +                                                               \t\tbreak;\n  +                                                               \tdefault:\n  +                                                               \t\treturn -EINVAL;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -730,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 -732,7 +732,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static struct spi_driver wm8731_spi_dri\n  ++                                                              };\n  ++                                                              #endif /* CONFIG_SPI_MASTER */\n  ++                                                              \n+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++  #if IS_ENABLED(CONFIG_I2C)\n  +                                                               static int wm8731_i2c_probe(struct i2c_client *i2c,\n  +                                                               \t\t\t    const struct i2c_device_id *id)\n  +                                                               {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -789,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 -791,7 +791,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static struct i2c_driver wm8731_i2c_dri\n  ++                                                              static int __init wm8731_modinit(void)\n  ++                                                              {\n  ++                                                              \tint ret = 0;\n+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++  #if IS_ENABLED(CONFIG_I2C)\n  +                                                               \tret = i2c_add_driver(&wm8731_i2c_driver);\n  +                                                               \tif (ret != 0) {\n  +                                                               \t\tprintk(KERN_ERR \"Failed to register WM8731 I2C driver: %d\\n\",\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -809,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 -811,7 +811,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ module_init(wm8731_modinit)\n  ++                                                              \n  ++                                                              static void __exit wm8731_exit(void)\n  ++                                                              {\n+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++  #if IS_ENABLED(CONFIG_I2C)\n  +                                                               \ti2c_del_driver(&wm8731_i2c_driver);\n  +                                                               #endif\n  +                                                               #if defined(CONFIG_SPI_MASTER)\ndiff --cc sound/soc/codecs/wm8962.c\nindex 0f17ed3e29f4,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,2bf9ee7c5407,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,07da601f8343,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6,543c5c2631b6..97db3b45b411\n--- a/sound/soc/codecs/wm8962.c\n+++ b/sound/soc/codecs/wm8962.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 -74,7 +74,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ struct wm8962_priv \n  ++                                                              \tstruct regulator_bulk_data supplies[WM8962_NUM_SUPPLIES];\n  ++                                                              \tstruct notifier_block disable_nb[WM8962_NUM_SUPPLIES];\n  ++                                                              \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++  #if IS_ENABLED(CONFIG_INPUT)\n  +                                                               \tstruct input_dev *beep;\n  +                                                               \tstruct work_struct beep_work;\n  +                                                               \tint beep_rate;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -2439,20 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2431,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 -2439,7 +2439,20 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static void wm8962_configure_bclk(struc\n  ++                                                              \tsnd_soc_update_bits(codec, WM8962_CLOCKING_4,\n  ++                                                              \t\t\t    WM8962_SYSCLK_RATE_MASK, clocking4);\n  ++                                                              \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t/* DSPCLK_DIV can be only generated correctly after enabling SYSCLK.\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t * So we here provisionally enable it and then disable it afterward\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t * if current bias_level hasn't reached SND_SOC_BIAS_ON.\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (codec->dapm.bias_level != SND_SOC_BIAS_ON)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tsnd_soc_update_bits(codec, WM8962_CLOCKING2,\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\tWM8962_SYSCLK_ENA_MASK, WM8962_SYSCLK_ENA);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tdspclk = snd_soc_read(codec, WM8962_CLOCKING1);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (codec->dapm.bias_level != SND_SOC_BIAS_ON)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tsnd_soc_update_bits(codec, WM8962_CLOCKING2,\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\tWM8962_SYSCLK_ENA_MASK, 0);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tif (dspclk < 0) {\n  +                                                               \t\tdev_err(codec->dev, \"Failed to read DSPCLK: %d\\n\", dspclk);\n  +                                                               \t\treturn;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -3121,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3100,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 -3108,7 +3121,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int wm8962_mic_detect(struct snd_soc_co\n  ++                                                              }\n  ++                                                              EXPORT_SYMBOL_GPL(wm8962_mic_detect);\n  ++                                                              \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++  #if IS_ENABLED(CONFIG_INPUT)\n  +                                                               static int beep_rates[] = {\n  +                                                               \t500, 1000, 2000, 4000,\n  +                                                               };\ndiff --cc sound/soc/codecs/wm_adsp.c\nindex 4fbcab63e61f,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,8f720ded27c4,46ec0e9744d4,46ec0e9744d4,b42f9af163c8,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,b38f3506418f,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4,46ec0e9744d4..fb0c678939bf\n--- a/sound/soc/codecs/wm_adsp.c\n+++ b/sound/soc/codecs/wm_adsp.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,7 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1282,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 -1286,6 +1286,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm_adsp_load_coeff(struct wm\n  ++                                                              \t\t\t\t\treg = wm_adsp_region_to_reg(mem,\n  ++                                                              \t\t\t\t\t\t\t\t    reg);\n  ++                                                              \t\t\t\t\treg += offset;\n+++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\tbreak;\n  +                                                               \t\t\t\t}\n  +                                                               \t\t\t}\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1468,23 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1469,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1455,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 -1468,19 +1469,23 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int wm_adsp2_ena(struct wm_adsp \n  ++                                                              \tunsigned int val;\n  ++                                                              \tint ret, count;\n  ++                                                              \n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tret = regmap_update_bits_async(dsp->regmap, dsp->base + ADSP2_CONTROL,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t       ADSP2_SYS_ENA, ADSP2_SYS_ENA);\n  +                                                               \tif (ret != 0)\n  +                                                               \t\treturn ret;\n  +                                                               \n  ++                                                              \t/* Wait for the RAM to start, should be near instantaneous */\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tfor (count = 0; count < 10; ++count) {\n  +                                                               \t\tret = regmap_read(dsp->regmap, dsp->base + ADSP2_STATUS1,\n  +                                                               \t\t\t\t  &val);\n  +                                                               \t\tif (ret != 0)\n  ++                                                              \t\t\treturn ret;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tif (val & ADSP2_RAM_RDY)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\tbreak;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tmsleep(1);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t}\n  +                                                               \n  +                                                               \tif (!(val & ADSP2_RAM_RDY)) {\n  +                                                               \t\tadsp_err(dsp, \"Failed to start DSP RAM\\n\");\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1525,9 -1521,9 -1521,9 -1521,9 -1520,9 -1521,9 -1521,9 -1522,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1508,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 -1521,9 +1525,9 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int wm_adsp2_event(struct snd_soc_dapm_\n  ++                                                              \t\tval = (val & ARIZONA_SYSCLK_FREQ_MASK)\n  ++                                                              \t\t\t>> ARIZONA_SYSCLK_FREQ_SHIFT;\n  ++                                                              \n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tret = regmap_update_bits_async(dsp->regmap,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t       dsp->base + ADSP2_CLOCKING,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t       ADSP2_CLK_SEL_MASK, val);\n  +                                                               \t\tif (ret != 0) {\n  +                                                               \t\t\tadsp_err(dsp, \"Failed to set clock rate: %d\\n\",\n  +                                                               \t\t\t\t ret);\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1590,10 -1586,10 -1586,10 -1586,10 -1585,10 -1586,10 -1586,10 -1587,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1573,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 -1586,10 +1590,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\tif (ret != 0)\n  ++                                                              \t\t\tgoto err;\n  ++                                                              \n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tret = regmap_update_bits_async(dsp->regmap,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t       dsp->base + ADSP2_CONTROL,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t       ADSP2_CORE_ENA | ADSP2_START,\n++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t       ADSP2_CORE_ENA | ADSP2_START);\n  +                                                               \t\tif (ret != 0)\n  +                                                               \t\t\tgoto err;\n  +                                                               \ndiff --cc sound/soc/fsl/Kconfig\nindex 8c10b8f80ace,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,ac4fe4ea15a9,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1,b7ab71f2ccc1..514c275c6108\n--- a/sound/soc/fsl/Kconfig\n+++ b/sound/soc/fsl/Kconfig\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,7 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 -1,3 +1,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++  config SND_SOC_FSL_SAI\n++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++  \ttristate\n++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++  \tselect SND_SOC_GENERIC_DMAENGINE_PCM\n++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++  \n  +                                                               config SND_SOC_FSL_SSI\n  +                                                               \ttristate\n  +                                                               \ndiff --cc sound/soc/fsl/imx-spdif.c\nindex e656245d24c9,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,980dd1fc9113,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08,8499d5292f08..e1dc40143600\n--- a/sound/soc/fsl/imx-spdif.c\n+++ b/sound/soc/fsl/imx-spdif.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -14,15 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 -14,17 +14,15 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              #include <sound/soc.h>\n  ++                                                              \n  ++                                                              struct imx_spdif_data {\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tstruct snd_soc_dai_link dai;\n  +                                                               \tstruct snd_soc_card card;\n------------------------------------------------------------------\tstruct platform_device *txdev;\n------------------------------------------------------------------\tstruct platform_device *rxdev;\n  +                                                               };\n  +                                                               \n  +                                                               static int imx_spdif_audio_probe(struct platform_device *pdev)\n  ++                                                              {\n  ++                                                              \tstruct device_node *spdif_np, *np = pdev->dev.of_node;\n  ++                                                              \tstruct imx_spdif_data *data;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tint ret = 0;\n  +                                                               \n  +                                                               \tspdif_np = of_parse_phandle(np, \"spdif-controller\", 0);\n  +                                                               \tif (!spdif_np) {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -38,38 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -39,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 -40,57 +37,38 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\tgoto end;\n  ++                                                              \t}\n  ++                                                              \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.name = \"S/PDIF PCM\";\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.stream_name = \"S/PDIF PCM\";\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.codec_dai_name = \"snd-soc-dummy-dai\";\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.codec_name = \"snd-soc-dummy\";\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.cpu_of_node = spdif_np;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.platform_of_node = spdif_np;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.playback_only = true;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->dai.capture_only = true;\n  +                                                               \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (of_property_read_bool(np, \"spdif-out\"))\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tdata->dai.capture_only = false;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (of_property_read_bool(np, \"spdif-in\"))\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tdata->dai.playback_only = false;\n  +                                                               \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (data->dai.playback_only && data->dai.capture_only) {\n  +                                                               \t\tdev_err(&pdev->dev, \"no enabled S/PDIF DAI link\\n\");\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tgoto end;\n  +                                                               \t}\n  +                                                               \n  +                                                               \tdata->card.dev = &pdev->dev;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->card.dai_link = &data->dai;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tdata->card.num_links = 1;\n  +                                                               \n  +                                                               \tret = snd_soc_of_parse_card_name(&data->card, \"model\");\n  +                                                               \tif (ret)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tgoto end;\n  +                                                               \n  +                                                               \tret = devm_snd_soc_register_card(&pdev->dev, &data->card);\n  +                                                               \tif (ret) {\n  ++                                                              \t\tdev_err(&pdev->dev, \"snd_soc_register_card failed: %d\\n\", ret);\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\tgoto end;\n  +                                                               \t}\n  +                                                               \n  +                                                               \tplatform_set_drvdata(pdev, data);\ndiff --cc sound/soc/generic/simple-card.c\nindex be7c1db5388f,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,58c217e403ae,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c,b2fbb7075a6c..c0d928138c88\n--- a/sound/soc/generic/simple-card.c\n+++ b/sound/soc/generic/simple-card.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -8,8 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,8 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 -8,7 +8,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                               * it under the terms of the GNU General Public License version 2 as\n  ++                                                               * published by the Free Software Foundation.\n  ++                                                               */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  #include <linux/clk.h>\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  #include <linux/of.h>\n  +                                                               #include <linux/platform_device.h>\n  +                                                               #include <linux/module.h>\n  +                                                               #include <sound/simple_card.h>\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -25,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -25,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 -24,7 +25,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int __asoc_simple_card_dai_init(\n  ++                                                              \n  ++                                                              \tdaifmt |= set->fmt;\n  ++                                                              \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (daifmt)\n  +                                                               \t\tret = snd_soc_dai_set_fmt(dai, daifmt);\n  +                                                               \n  +                                                               \tif (ret == -ENOTSUPP) {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -58,147 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -58,167 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 -57,11 +58,170 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int asoc_simple_card_dai_init(st\n  ++                                                              \treturn 0;\n  ++                                                              }\n  ++                                                              \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  static int\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  asoc_simple_card_sub_parse_of(struct device_node *np,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t      struct asoc_simple_dai *dai,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t      struct device_node **node)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tstruct clk *clk;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tint ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/*\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * get node via \"sound-dai = <&phandle port>\"\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * it will be used as xxx_of_node on soc_bind_dai_link()\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t*node = of_parse_phandle(np, \"sound-dai\", 0);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (!*node)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\treturn -ENODEV;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* get dai->name */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tret = snd_soc_of_get_dai_name(np, &dai->name);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (ret < 0)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tgoto parse_error;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/*\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * bitclock-inversion, frame-inversion\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * bitclock-master,    frame-master\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * and specific \"format\" if it has\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tdai->fmt = snd_soc_of_parse_daifmt(np, NULL);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/*\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t * dai->sysclk come from\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t *  \"clocks = <&xxx>\" (if system has common clock)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t *  or \"system-clock-frequency = <xxx>\"\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t *  or device's module clock.\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (of_property_read_bool(np, \"clocks\")) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tclk = of_clk_get(np, 0);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tif (IS_ERR(clk)) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tret = PTR_ERR(clk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tgoto parse_error;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tdai->sysclk = clk_get_rate(clk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t} else if (of_property_read_bool(np, \"system-clock-frequency\")) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tof_property_read_u32(np,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     \"system-clock-frequency\",\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     &dai->sysclk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t} else {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tclk = of_clk_get(*node, 0);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tif (IS_ERR(clk)) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tret = PTR_ERR(clk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tgoto parse_error;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tdai->sysclk = clk_get_rate(clk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tret = 0;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  parse_error:\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tof_node_put(*node);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \treturn ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  static int asoc_simple_card_parse_of(struct device_node *node,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     struct asoc_simple_card_info *info,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     struct device *dev,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     struct device_node **of_cpu,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     struct device_node **of_codec,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t     struct device_node **of_platform)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tstruct device_node *np;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tchar *name;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tint ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* get CPU/CODEC common format via simple-audio-card,format */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tinfo->daifmt = snd_soc_of_parse_daifmt(node, \"simple-audio-card,\") &\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t(SND_SOC_DAIFMT_FORMAT_MASK | SND_SOC_DAIFMT_INV_MASK);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* DAPM routes */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tret = snd_soc_of_parse_audio_routing(&info->snd_card,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\"simple-audio-routing\");\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (ret)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\treturn ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* CPU sub-node */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tret = -EINVAL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tnp = of_get_child_by_name(node, \"simple-audio-card,cpu\");\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (np)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tret = asoc_simple_card_sub_parse_of(np,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t  &info->cpu_dai,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t  of_cpu);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (ret < 0)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\treturn ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* CODEC sub-node */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tret = -EINVAL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tnp = of_get_child_by_name(node, \"simple-audio-card,codec\");\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (np)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tret = asoc_simple_card_sub_parse_of(np,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t  &info->codec_dai,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t  of_codec);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (ret < 0)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\treturn ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \tif (!info->cpu_dai.name || !info->codec_dai.name)\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \t\treturn -EINVAL;\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* card name is created from CPU/CODEC dai name */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tname = devm_kzalloc(dev,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t    strlen(info->cpu_dai.name)   +\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t    strlen(info->codec_dai.name) + 2,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t    GFP_KERNEL);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tsprintf(name, \"%s-%s\", info->cpu_dai.name, info->codec_dai.name);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tinfo->name = info->card = name;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t/* simple-card assumes platform == cpu */\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t*of_platform = *of_cpu;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tdev_dbg(dev, \"card-name : %s\\n\", info->card);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tdev_dbg(dev, \"platform : %04x\\n\", info->daifmt);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tdev_dbg(dev, \"cpu : %s / %04x / %d\\n\",\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->cpu_dai.name,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->cpu_dai.fmt,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->cpu_dai.sysclk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tdev_dbg(dev, \"codec : %s / %04x / %d\\n\",\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->codec_dai.name,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->codec_dai.fmt,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tinfo->codec_dai.sysclk);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \treturn 0;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               static int asoc_simple_card_probe(struct platform_device *pdev)\n  +                                                               {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tstruct asoc_simple_card_info *cinfo;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tstruct device_node *np = pdev->dev.of_node;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tstruct device_node *of_cpu, *of_codec, *of_platform;\n  +                                                               \tstruct device *dev = &pdev->dev;\n  +                                                               \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tcinfo\t\t= NULL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tof_cpu\t\t= NULL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tof_codec\t= NULL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tof_platform\t= NULL;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tif (np && of_device_is_available(np)) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tcinfo = devm_kzalloc(dev, sizeof(*cinfo), GFP_KERNEL);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tif (cinfo) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tint ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tcinfo->snd_card.dev = &pdev->dev;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tret = asoc_simple_card_parse_of(np, cinfo, dev,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t\t&of_cpu,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t\t&of_codec,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\t\t\t&of_platform);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\tif (ret < 0) {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\tif (ret != -EPROBE_DEFER)\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\t\tdev_err(dev, \"parse error %d\\n\", ret);\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t\treturn ret;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t\t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t} else {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tcinfo->snd_card.dev = &pdev->dev;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\tcinfo = pdev->dev.platform_data;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t}\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \n  +                                                               \tif (!cinfo) {\n  +                                                               \t\tdev_err(dev, \"no info for asoc-simple-card\\n\");\n  +                                                               \t\treturn -EINVAL;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -206,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -226,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 -69,10 +229,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \n  ++                                                              \tif (!cinfo->name\t||\n  ++                                                              \t    !cinfo->card\t||\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t    !cinfo->codec_dai.name\t||\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t    !(cinfo->codec\t\t|| of_codec)\t||\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t    !(cinfo->platform\t\t|| of_platform)\t||\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t    !(cinfo->cpu_dai.name\t|| of_cpu)) {\n  +                                                               \t\tdev_err(dev, \"insufficient asoc_simple_card_info settings\\n\");\n  +                                                               \t\treturn -EINVAL;\n  +                                                               \t}\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -223,9 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -243,9 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 -86,6 +246,9 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tcinfo->snd_link.platform_name\t= cinfo->platform;\n  ++                                                              \tcinfo->snd_link.codec_name\t= cinfo->codec;\n  ++                                                              \tcinfo->snd_link.codec_dai_name\t= cinfo->codec_dai.name;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tcinfo->snd_link.cpu_of_node\t= of_cpu;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tcinfo->snd_link.codec_of_node\t= of_codec;\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \tcinfo->snd_link.platform_of_node = of_platform;\n  +                                                               \tcinfo->snd_link.init\t\t= asoc_simple_card_dai_init;\n  +                                                               \n  +                                                               \t/*\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -235,32 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -255,23 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 -95,25 +258,23 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tcinfo->snd_card.owner\t\t= THIS_MODULE;\n  ++                                                              \tcinfo->snd_card.dai_link\t= &cinfo->snd_link;\n  ++                                                              \tcinfo->snd_card.num_links\t= 1;\n-------------------- ---------------------------------------------\tcinfo->snd_card.dev\t\t= &pdev->dev;\n-                                                               - \n-                                                               - \treturn snd_soc_register_card(&cinfo->snd_card);\n-                                                               - }\n-                                                               - \n-                                                               - static int asoc_simple_card_remove(struct platform_device *pdev)\n-                                                               - {\n-                                                               - \tstruct asoc_simple_card_info *cinfo = pdev->dev.platform_data;\n  +                                                               \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \treturn devm_snd_soc_register_card(&pdev->dev, &cinfo->snd_card);\n  +                                                               }\n  +                                                               \n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  static const struct of_device_id asoc_simple_of_match[] = {\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t{ .compatible = \"simple-audio-card\", },\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t{},\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  };\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  MODULE_DEVICE_TABLE(of, asoc_simple_of_match);\n  +                                                               \n  +                                                               static struct platform_driver asoc_simple_card = {\n  +                                                               \t.driver = {\n  ++                                                              \t\t.name\t= \"asoc-simple-card\",\n  ++                                                              \t\t.owner = THIS_MODULE,\n++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++  \t\t.of_match_table = asoc_simple_of_match,\n  +                                                               \t},\n  +                                                               \t.probe\t\t= asoc_simple_card_probe,\n-------------------- ---------------------------------------------\t.remove\t\t= asoc_simple_card_remove,\n  +                                                               };\n  +                                                               \n  +                                                               module_platform_driver(asoc_simple_card);\ndiff --cc sound/soc/mxs/mxs-saif.c\nindex 54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,d6cb9a51dd57,d6cb9a51dd57,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,92db74dc3177,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33,54e622acac33..231d7e7b0711\n--- a/sound/soc/mxs/mxs-saif.c\n+++ b/sound/soc/mxs/mxs-saif.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 -50,9 +50,9 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static struct mxs_saif *mxs_saif[2]\n  ++                                                               * This also means that both SAIFs must operate at the same sample rate.\n  ++                                                               *\n  ++                                                               * We abstract this as each saif has a master, the master could be\n++++++++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++   * itself or other saifs. In the generic saif driver, saif does not need\n++++++++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++   * to know the different clkmux. Saif only needs to know who is its master\n++++++++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++   * and operating its master to generate the proper clock rate for it.\n  +                                                                * The master id is provided in mach-specific layer according to different\n  +                                                                * clkmux setting.\n  +                                                                */\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 -76,7 +76,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int mxs_saif_set_dai_sysclk(stru\n  ++                                                               * Since SAIF may work on EXTMASTER mode, IOW, it's working BITCLK&LRCLK\n  ++                                                               * is provided by other SAIF, we provide a interface here to get its master\n  ++                                                               * from its master_id.\n++++++++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++   * Note that the master could be itself.\n  +                                                                */\n  +                                                               static inline struct mxs_saif *mxs_saif_get_master(struct mxs_saif * saif)\n  +                                                               {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 -516,7 +516,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int mxs_saif_trigger(struct snd_\n  ++                                                              \t\t}\n  ++                                                              \n  ++                                                              \t\t/*\n++++++++++++++++++  ++++++++++++++++++++++++++++++++++++++++++++  \t\t * If the saif's master is not itself, we also need to enable\n  +                                                               \t\t * itself clk for its internal basic logic to work.\n  +                                                               \t\t */\n  +                                                               \t\tif (saif != master_saif) {\ndiff --cc sound/soc/sh/rcar/scu.c\nindex fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,1406dd8d9ed2,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9,fa8fa15860b9..9bb08bb1d455\n--- a/sound/soc/sh/rcar/scu.c\n+++ b/sound/soc/sh/rcar/scu.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,13 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 -13,9 +13,13 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              struct rsnd_scu {\n  ++                                                              \tstruct rsnd_scu_platform_info *info; /* rcar_snd.h */\n  ++                                                              \tstruct rsnd_mod mod;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct clk *clk;\n  +                                                               };\n  +                                                               \n  +                                                               #define rsnd_scu_mode_flags(p) ((p)->info->flags)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  #define rsnd_scu_convert_rate(p) ((p)->info->convert_rate)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  #define RSND_SCU_NAME_SIZE 16\n  +                                                               \n  +                                                               /*\n  +                                                                * ADINR\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -30,15 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 -26,6 +30,15 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              #define OTBL_18\t\t(6 << 16)\n  ++                                                              #define OTBL_16\t\t(8 << 16)\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  /*\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   *\t\timage of SRC (Sampling Rate Converter)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   *\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   * 96kHz   <-> +-----+\t48kHz\t+-----+\t 48kHz\t+-------+\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   * 48kHz   <-> | SRC | <------>\t| SSI |\t<----->\t| codec |\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   * 44.1kHz <-> +-----+\t\t+-----+\t\t+-------+\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   * ...\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   *\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++   */\n  +                                                               \n  +                                                               #define rsnd_mod_to_scu(_mod)\t\\\n  +                                                               \tcontainer_of((_mod), struct rsnd_scu, mod)\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -49,8 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 -36,7 +49,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\t     ((pos) = (struct rsnd_scu *)(priv)->scu + i);\t\\\n  ++                                                              \t     i++)\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  /* Gen1 only */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  static int rsnd_src_set_route_if_gen1(struct rsnd_priv *priv,\n  +                                                               \t\t\t      struct rsnd_mod *mod,\n  +                                                               \t\t\t      struct rsnd_dai *rdai,\n  +                                                               \t\t\t      struct rsnd_dai_stream *io)\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -69,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 -55,7 +69,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\t{ 0x3, 28, }, /* 7 */\n  ++                                                              \t\t{ 0x3, 30, }, /* 8 */\n  ++                                                              \t};\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n  +                                                               \tu32 mask;\n  +                                                               \tu32 val;\n  +                                                               \tint shift;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -99,18 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 -85,9 +99,18 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t */\n  ++                                                              \tshift\t= (id % 4) * 8;\n  ++                                                              \tmask\t= 0x1F << shift;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/*\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * ADG is used as source clock if SRC was used,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * then, SSI WS is used as destination clock.\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * SSI WS is used as source clock if SRC is not used\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * (when playback, source/destination become reverse when capture)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_scu_convert_rate(scu))\t/* use ADG */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tval = 0;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \telse if (8 == id)\t\t/* use SSI WS, but SRU8 is special */\n  +                                                               \t\tval = id << shift;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \telse\t\t\t\t/* use SSI WS */\n  +                                                               \t\tval = (id + 1) << shift;\n  +                                                               \n  +                                                               \tswitch (id / 4) {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -128,45 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 -105,30 +128,45 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \treturn 0;\n  ++                                                              }\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  unsigned int rsnd_scu_get_ssi_rate(struct rsnd_priv *priv,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t   struct rsnd_mod *ssi_mod,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t   struct snd_pcm_runtime *runtime)\n  +                                                               {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tunsigned int rate;\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* this function is assuming SSI id = SCU id here */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tscu = rsnd_mod_to_scu(rsnd_scu_mod_get(priv, rsnd_mod_id(ssi_mod)));\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/*\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * return convert rate if SRC is used,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t * otherwise, return runtime->rate as usual\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trate = rsnd_scu_convert_rate(scu);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (!rate)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trate = runtime->rate;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \treturn rate;\n  +                                                               }\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  static int rsnd_scu_convert_rate_ctrl(struct rsnd_priv *priv,\n  +                                                               \t\t\t      struct rsnd_mod *mod,\n  +                                                               \t\t\t      struct rsnd_dai *rdai,\n  +                                                               \t\t\t      struct rsnd_dai_stream *io)\n  ++                                                              {\n  ++                                                              \tstruct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tu32 convert_rate = rsnd_scu_convert_rate(scu);\n  +                                                               \tu32 adinr = runtime->channels;\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* set/clear soft reset */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_mod_write(mod, SRC_SWRSR, 0);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_mod_write(mod, SRC_SWRSR, 1);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* Initialize the operation of the SRC internal circuits */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_mod_write(mod, SRC_SRCIR, 1);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* Set channel number and output bit length */\n  +                                                               \tswitch (runtime->sample_bits) {\n  +                                                               \tcase 16:\n  +                                                               \t\tadinr |= OTBL_16;\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -177,81 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 -139,9 +177,81 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tdefault:\n  ++                                                              \t\treturn -EIO;\n  ++                                                              \t}\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_mod_write(mod, SRC_ADINR, adinr);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (convert_rate) {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tu32 fsrate = 0x0400000 / convert_rate * runtime->rate;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tint ret;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t/* Enable the initial value of IFS */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_IFSCR, 1);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t/* Set initial value of IFS */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_IFSVR, fsrate);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t/* Select SRC mode (fixed value) */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_SRCCR, 0x00010110);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t/* Set the restriction value of the FS ratio (98%) */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_MNFSR, fsrate / 100 * 98);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tif (rsnd_is_gen1(priv)) {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t/* no SRC_BFSSR settings, since SRC_SRCCR::BUFMD is 0 */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t}\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t/* set convert clock */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tret = rsnd_adg_set_convert_clk(priv, mod,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t\t       runtime->rate,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t\t       convert_rate);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tif (ret < 0)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\treturn ret;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t}\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* Cancel the initialization and operate the SRC function */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_mod_write(mod, SRC_SRCIR, 0);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* use DMA transfer */\n  +                                                               \trsnd_mod_write(mod, BUSIF_MODE, 1);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \treturn 0;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  static int rsnd_scu_transfer_start(struct rsnd_priv *priv,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t   struct rsnd_mod *mod,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t   struct rsnd_dai *rdai,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t   struct rsnd_dai_stream *io)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tint id = rsnd_mod_id(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tu32 val;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_is_gen1(priv)) {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tval = (1 << id);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_bset(mod, SRC_ROUTE_CTRL, val, val);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t}\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_scu_convert_rate(scu))\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_ROUTE_MODE0, 1);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \treturn 0;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  static int rsnd_scu_transfer_stop(struct rsnd_priv *priv,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t  struct rsnd_mod *mod,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t  struct rsnd_dai *rdai,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t  struct rsnd_dai_stream *io)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tint id = rsnd_mod_id(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tu32 mask;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_is_gen1(priv)) {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tmask = (1 << id);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_bset(mod, SRC_ROUTE_CTRL, mask, 0);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t}\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_scu_convert_rate(scu))\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(mod, SRC_ROUTE_MODE0, 0);\n  +                                                               \n  +                                                               \treturn 0;\n  +                                                               }\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -269,7 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 -159,6 +269,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int rsnd_scu_start(struct rsnd_m\n  ++                                                              \t\t\t  struct rsnd_dai_stream *io)\n  ++                                                              {\n  ++                                                              \tstruct rsnd_priv *priv = rsnd_mod_to_priv(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n  +                                                               \tstruct device *dev = rsnd_priv_to_dev(priv);\n  +                                                               \tint ret;\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -284,19 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 -173,16 +284,19 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\treturn 0;\n  ++                                                              \t}\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tclk_enable(scu->clk);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n  +                                                               \t/* it use DMA transter */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tret = rsnd_src_set_route_if_gen1(priv, mod, rdai, io);\n  +                                                               \tif (ret < 0)\n  +                                                               \t\treturn ret;\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tret = rsnd_scu_convert_rate_ctrl(priv, mod, rdai, io);\n  +                                                               \tif (ret < 0)\n  +                                                               \t\treturn ret;\n  +                                                               \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tret = rsnd_scu_transfer_start(priv, mod, rdai, io);\n  +                                                               \tif (ret < 0)\n  +                                                               \t\treturn ret;\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -305,27 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 -191,9 +305,27 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \treturn 0;\n  ++                                                              }\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  static int rsnd_scu_stop(struct rsnd_mod *mod,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t  struct rsnd_dai *rdai,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t  struct rsnd_dai_stream *io)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_priv *priv = rsnd_mod_to_priv(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct rsnd_scu *scu = rsnd_mod_to_scu(mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (!rsnd_scu_hpbif_is_enable(mod))\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\treturn 0;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \trsnd_scu_transfer_stop(priv, mod, rdai, io);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tclk_disable(scu->clk);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \treturn 0;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  }\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n  +                                                               static struct rsnd_mod_ops rsnd_scu_ops = {\n  +                                                               \t.name\t= \"scu\",\n  +                                                               \t.start\t= rsnd_scu_start,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t.stop\t= rsnd_scu_stop,\n  +                                                               };\n  +                                                               \n  +                                                               struct rsnd_mod *rsnd_scu_mod_get(struct rsnd_priv *priv, int id)\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -341,8 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 -210,6 +342,8 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int rsnd_scu_probe(struct platform_devi\n  ++                                                              {\n  ++                                                              \tstruct device *dev = rsnd_priv_to_dev(priv);\n  ++                                                              \tstruct rsnd_scu *scu;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct clk *clk;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tchar name[RSND_SCU_NAME_SIZE];\n  +                                                               \tint i, nr;\n  +                                                               \n  +                                                               \t/*\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -359,16 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 -226,9 +360,16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \tpriv->scu\t= scu;\n  ++                                                              \n  ++                                                              \tfor_each_rsnd_scu(scu, priv, i) {\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tsnprintf(name, RSND_SCU_NAME_SIZE, \"scu.%d\", i);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tclk = devm_clk_get(dev, name);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tif (IS_ERR(clk))\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\treturn PTR_ERR(clk);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n  +                                                               \t\trsnd_mod_init(priv, &scu->mod,\n  +                                                               \t\t\t      &rsnd_scu_ops, i);\n  +                                                               \t\tscu->info = &info->scu_info[i];\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tscu->clk = clk;\n  +                                                               \n  +                                                               \t\tdev_dbg(dev, \"SCU%d probed\\n\", i);\n  +                                                               \t}\ndiff --cc sound/soc/sh/rcar/ssi.c\nindex 5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,b7cd06be9436,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006,5ac20cd5e006..4b8cf7ca9d19\n--- a/sound/soc/sh/rcar/ssi.c\n+++ b/sound/soc/sh/rcar/ssi.c\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,10 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 -187,9 +187,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static void rsnd_ssi_status_check(struc\n  ++                                                              }\n  ++                                                              \n  ++                                                              static int rsnd_ssi_master_clk_start(struct rsnd_ssi *ssi,\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\t     struct rsnd_dai_stream *io)\n  +                                                               {\n  +                                                               \tstruct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tstruct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);\n  +                                                               \tstruct device *dev = rsnd_priv_to_dev(priv);\n  +                                                               \tint i, j, ret;\n  +                                                               \tint adg_clk_div_table[] = {\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -200,7 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 -199,6 +200,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\t1, 2, 4, 8, 16, 6, 12,\n  ++                                                              \t};\n  ++                                                              \tunsigned int main_rate;\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tunsigned int rate = rsnd_scu_get_ssi_rate(priv, &ssi->mod, runtime);\n  +                                                               \n  +                                                               \t/*\n  +                                                               \t * Find best clock, and try to start ADG\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -211,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 -209,7 +211,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n  ++                                                              \t\t\t/*\n  ++                                                              \t\t\t * this driver is assuming that\n  ++                                                              \t\t\t * system word is 64fs (= 2 x 32bit)\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t * see rsnd_ssi_init()\n  +                                                               \t\t\t */\n  +                                                               \t\t\tmain_rate = rate / adg_clk_div_table[i]\n  +                                                               \t\t\t\t* 32 * 2 * ssi_clk_mul_table[j];\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -256,7 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 -254,11 +256,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static void rsnd_ssi_hw_start(struct rs\n  ++                                                              \t\t\tif (rsnd_ssi_clk_from_parent(ssi))\n  ++                                                              \t\t\t\trsnd_ssi_hw_start(ssi->parent, rdai, io);\n  ++                                                              \t\t\telse\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\t\t\trsnd_ssi_master_clk_start(ssi, io);\n  +                                                               \t\t}\n  +                                                               \t}\n  +                                                               \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -455,10 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 -457,6 +455,10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ static int rsnd_ssi_pio_start(struct rs\n  ++                                                              \t/* enable PIO IRQ */\n  ++                                                              \tssi->cr_etc = UIEN | OIEN | DIEN;\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t/* enable PIO interrupt if gen2 */\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \tif (rsnd_is_gen2(priv))\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\trsnd_mod_write(&ssi->mod, INT_ENABLE, 0x0f000000);\n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \n  +                                                               \trsnd_ssi_hw_start(ssi, rdai, io);\n  +                                                               \n  +                                                               \tdev_dbg(dev, \"%s.%d start\\n\", rsnd_mod_name(mod), rsnd_mod_id(mod));\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -651,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 -650,7 +652,7 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int rsnd_ssi_probe(struct platform_devi\n  ++                                                              \n  ++                                                              \t\tsnprintf(name, RSND_SSI_NAME_SIZE, \"ssi.%d\", i);\n  ++                                                              \n++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++  \t\tclk = devm_clk_get(dev, name);\n  +                                                               \t\tif (IS_ERR(clk))\n  +                                                               \t\t\treturn PTR_ERR(clk);\n  +                                                               \n"
  },
  {
    "path": "etc/examples/822-hunk-header-within-merge-conflict.diff",
    "content": "diff --cc src/delta.rs\nindex 9a65aaa,ab08d84..0000000\n--- a/src/delta.rs\n+++ b/src/delta.rs\n@@@ -21,7 -21,7 +21,13 @@@ pub enum State \n      HunkZero(DiffType),   // In hunk; unchanged line (prefix)\n      HunkMinus(DiffType, Option<String>), // In hunk; removed line (diff_type, raw_line)\n      HunkPlus(DiffType, Option<String>), // In hunk; added line (diff_type, raw_line)\n++<<<<<<< HEAD\n +    MergeConflict(MergeParents, merge_conflict::MergeConflictCommit),\n++||||||| parent of b2b28c8... Display merge conflict branches\n++    MergeConflict(merge_conflict::Source),\n++=======\n+     MergeConflict(merge_conflict::MergeConflictCommit),\n++>>>>>>> b2b28c8... Display merge conflict branches\n      SubmoduleLog, // In a submodule section, with gitconfig diff.submodule = log\n      SubmoduleShort(String), // In a submodule section, with gitconfig diff.submodule = short\n      Blame(String, Option<String>), // In a line of `git blame` output (commit, repeat_blame_line).\ndiff --cc src/handlers/hunk.rs\nindex 26cb288,7df74ae..0000000\n--- a/src/handlers/hunk.rs\n+++ b/src/handlers/hunk.rs\n@@@ -141,28 -141,19 +141,45 @@@ fn new_line_state(new_line: &str, prev_\n          | HunkZero(Unified)\n          | HunkPlus(Unified, _)\n          | HunkHeader(Unified, _, _) => Unified,\n++<<<<<<< HEAD\n +        HunkHeader(Combined(Number(n), InMergeConflict::No), _, _) => {\n +            Combined(Number(*n), InMergeConflict::No)\n +        }\n +        // The prefixes are specific to the previous line, but the number of merge parents remains\n +        // equal to the prefix length.\n +        HunkHeader(Combined(Prefix(prefix), InMergeConflict::No), _, _) => {\n +            Combined(Number(prefix.len()), InMergeConflict::No)\n +        }\n +        HunkMinus(Combined(Prefix(prefix), in_merge_conflict), _)\n +        | HunkZero(Combined(Prefix(prefix), in_merge_conflict))\n +        | HunkPlus(Combined(Prefix(prefix), in_merge_conflict), _) => {\n +            Combined(Number(prefix.len()), in_merge_conflict.clone())\n +        }\n +        _ => delta_unreachable(&format!(\n +            \"Unexpected state in new_line_state: {:?}\",\n +            prev_state\n +        )),\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        HunkHeader(Combined(Number(n)), _, _) => Combined(Number(*n)),\n++        HunkMinus(Combined(Prefix(prefix)), _)\n++        | HunkZero(Combined(Prefix(prefix)))\n++        | HunkPlus(Combined(Prefix(prefix)), _) => Combined(Number(prefix.len())),\n++        _ => delta_unreachable(&format!(\"diff_type: unexpected state: {:?}\", prev_state)),\n++=======\n+         HunkHeader(Combined(Number(n)), _, _) => Combined(Number(*n)),\n+         // The prefixes are specific to the previous line, but the number of merge parents remains\n+         // equal to the prefix length.\n+         HunkHeader(Combined(Prefix(prefix)), _, _)\n+         | HunkMinus(Combined(Prefix(prefix)), _)\n+         | HunkZero(Combined(Prefix(prefix)))\n+         | HunkPlus(Combined(Prefix(prefix)), _) => Combined(Number(prefix.len())),\n+         _ => delta_unreachable(&format!(\"diff_type: unexpected state: {:?}\", prev_state)),\n++>>>>>>> b2b28c8... Display merge conflict branches\n      };\n  \n -    let (prefix_char, prefix) = match diff_type {\n -        Unified => (new_line.chars().next(), None),\n -        Combined(Number(n_parents)) => {\n +    let (prefix_char, prefix, in_merge_conflict) = match diff_type {\n +        Unified => (new_line.chars().next(), None, None),\n +        Combined(Number(n_parents), in_merge_conflict) => {\n              let prefix = &new_line[..min(n_parents, new_line.len())];\n              let prefix_char = match prefix.chars().find(|c| c == &'-' || c == &'+') {\n                  Some(c) => Some(c),\ndiff --cc src/handlers/merge_conflict.rs\nindex a956f2e,3a7e7b9..0000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -1,9 -1,10 +1,18 @@@\n -use std::cmp::min;\n  use std::ops::{Index, IndexMut};\n  \n++<<<<<<< HEAD\n  use super::draw;\n  use crate::cli;\n  use crate::config::{self, delta_unreachable};\n +use crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\n++||||||| parent of b2b28c8... Display merge conflict branches\n+ use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++=======\n++use super::draw;\n++use crate::cli;\n++use crate::config::{self, delta_unreachable};\n++use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++>>>>>>> b2b28c8... Display merge conflict branches\n  use crate::minusplus::MinusPlus;\n  use crate::paint;\n  use crate::style::DecorationStyle;\n@@@ -28,7 -29,8 +37,15 @@@ pub type MergeConflictCommitNames = Mer\n  impl<'a> StateMachine<'a> {\n      pub fn handle_merge_conflict_line(&mut self) -> std::io::Result<bool> {\n          use DiffType::*;\n++<<<<<<< HEAD\n +        use MergeConflictCommit::*;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        use MergeParents::*;\n++        use Source::*;\n++=======\n+         use MergeConflictCommit::*;\n+         use MergeParents::*;\n++>>>>>>> b2b28c8... Display merge conflict branches\n          use State::*;\n  \n          let mut handled_line = false;\n@@@ -36,36 -38,28 +53,113 @@@\n              return Ok(handled_line);\n          }\n  \n++<<<<<<< HEAD\n +        match self.state.clone() {\n +            HunkHeader(Combined(merge_parents, InMergeConflict::No), _, _)\n +            | HunkMinus(Combined(merge_parents, InMergeConflict::No), _)\n +            | HunkZero(Combined(merge_parents, InMergeConflict::No))\n +            | HunkPlus(Combined(merge_parents, InMergeConflict::No), _) => {\n +                handled_line = self.enter_merge_conflict(&merge_parents)\n +            }\n +            MergeConflict(merge_parents, Ours) => {\n +                handled_line = self.enter_ancestral(&merge_parents)\n +                    || self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ours,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        // TODO: don't allocate on heap at this point\n++        let prefix = self.line[..min(self.line.len(), 2)].to_string();\n++        let diff_type = Combined(Prefix(prefix));\n++\n++        match self.state {\n++            // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n++            // TODO: shouldn't this be HunkZero(Some(_))?\n++            HunkZero(_) => {\n++                if self.line.starts_with(\"++<<<<<<<\") {\n++                    self.state = MergeConflict(Ours);\n++                    handled_line = true\n++                }\n +            }\n++            MergeConflict(Ours) => {\n++                if self.line.starts_with(\"++|||||||\") {\n++                    self.state = MergeConflict(Ancestral);\n++                } else if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ours].push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+         // TODO: don't allocate on heap at this point\n+         let prefix = self.line[..min(self.line.len(), 2)].to_string();\n+         let diff_type = Combined(Prefix(prefix));\n+ \n+         match self.state {\n+             // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n+             // TODO: shouldn't this be HunkZero(Some(_))?\n+             HunkZero(_) => handled_line = self.enter_merge_conflict(),\n+             MergeConflict(Ours) => {\n+                 handled_line = self.enter_ancestral()\n+                     || self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ours, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n+             }\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Ancestral) => {\n +                handled_line = self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ancestral,\n +                        HunkMinus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Ancestral) => {\n++                if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ancestral]\n++                        .push((line, HunkMinus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Ancestral) => {\n+                 handled_line = self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ancestral, HunkMinus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n              }\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Theirs) => {\n +                handled_line = self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Theirs,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Theirs) => {\n++                if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Theirs]\n++                        .push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Theirs) => {\n+                 handled_line = self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Theirs, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n              }\n              _ => {}\n          }\n@@@ -73,65 -67,60 +167,124 @@@\n          Ok(handled_line)\n      }\n  \n++<<<<<<< HEAD\n +    fn enter_merge_conflict(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ours);\n +            self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_ancestral(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ancestral);\n +            self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_theirs(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if self.line.starts_with(\"++=======\") {\n +            self.state = MergeConflict(merge_parents.clone(), Theirs);\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn exit_merge_conflict(&mut self, merge_parents: &MergeParents) -> std::io::Result<bool> {\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n +            self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n +            self.paint_buffered_merge_conflict_lines(merge_parents)?;\n +            Ok(true)\n +        } else {\n +            Ok(false)\n +        }\n +    }\n +\n +    fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n +        use State::*;\n +        if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n +            let line = self.painter.prepare(&self.line, diff_type.n_parents());\n +            self.painter.merge_conflict_lines[commit].push((line, state));\n +            true\n +        } else {\n +            delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n +        }\n +    }\n +\n +    fn paint_buffered_merge_conflict_lines(\n +        &mut self,\n +        merge_parents: &MergeParents,\n +    ) -> std::io::Result<()> {\n +        use DiffType::*;\n +        use State::*;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++    fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++=======\n+     fn enter_merge_conflict(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n+             self.state = MergeConflict(Ours);\n+             self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_ancestral(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n+             self.state = MergeConflict(Ancestral);\n+             self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_theirs(&mut self) -> bool {\n+         use State::*;\n+         if self.line.starts_with(\"++=======\") {\n+             self.state = MergeConflict(Theirs);\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn exit_merge_conflict(&mut self, diff_type: DiffType) -> std::io::Result<bool> {\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n+             self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n+             self.paint_buffered_merge_conflict_lines(diff_type)?;\n+             Ok(true)\n+         } else {\n+             Ok(false)\n+         }\n+     }\n+ \n+     fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n+         use State::*;\n+         if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n+             let line = self.painter.prepare(&self.line, diff_type.n_parents());\n+             self.painter.merge_conflict_lines[commit].push((line, state));\n+             true\n+         } else {\n+             delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n+         }\n+     }\n+ \n+     fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++>>>>>>> b2b28c8... Display merge conflict branches\n          self.painter.emit()?;\n  \n          write_merge_conflict_bar(\"▼\", &mut self.painter, self.config)?;\n@@@ -163,6 -152,6 +316,7 @@@\n      }\n  }\n  \n++<<<<<<< HEAD\n  fn write_subhunk_header(\n      derived_commit_type: &MergeConflictCommit,\n      decoration_style: &str,\n@@@ -197,63 -186,63 +351,170 @@@\n      Ok(())\n  }\n  \n+ #[allow(unused)]\n+ fn write_merge_conflict_line(\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     let (mut draw_fn, _pad, decoration_ansi_term_style) = draw::get_draw_function(\n+         DecorationStyle::from_str(\"bold ol\", config.true_color, config.git_config.as_ref()),\n+     );\n+     draw_fn(\n+         painter.writer,\n+         \"\",\n+         \"\",\n+         &config.decorations_width,\n+         config.hunk_header_style,\n+         decoration_ansi_term_style,\n+     )?;\n+     Ok(())\n+ }\n++||||||| parent of b2b28c8... Display merge conflict branches\n++pub use Source::*;\n++=======\n++fn write_subhunk_header(\n++    derived_commit_type: &MergeConflictCommit,\n++    decoration_style: &str,\n++    painter: &mut paint::Painter,\n++    config: &config::Config,\n++) -> std::io::Result<()> {\n++    let (mut draw_fn, pad, decoration_ansi_term_style) =\n++        draw::get_draw_function(DecorationStyle::from_str(\n++            decoration_style,\n++            config.true_color,\n++            config.git_config.as_ref(),\n++        ));\n++    let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n++    let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n++        format!(\n++            \"ancestor {} {}{}\",\n++            config.right_arrow,\n++            derived_commit_name.as_deref().unwrap_or(\"?\"),\n++            if pad { \" \" } else { \"\" }\n++        )\n++    } else {\n++        derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n++    };\n++    draw_fn(\n++        painter.writer,\n++        &text,\n++        &text,\n++        &config.decorations_width,\n++        config.hunk_header_style,\n++        decoration_ansi_term_style,\n++    )?;\n++    Ok(())\n++}\n++>>>>>>> b2b28c8... Display merge conflict branches\n+ \n++<<<<<<< HEAD\n+ fn write_merge_conflict_bar(\n+     s: &str,\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     if let cli::Width::Fixed(width) = config.decorations_width {\n+         writeln!(painter.writer, \"{}\", s.repeat(width))?;\n+     }\n+     Ok(())\n+ }\n+ \n+ fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n+     match line.strip_prefix(marker) {\n+         Some(suffix) => {\n+             let suffix = suffix.trim();\n+             if !suffix.is_empty() {\n+                 Some(suffix)\n+             } else {\n+                 None\n+             }\n+         }\n+         None => None,\n+     }\n+ }\n+ \n+ pub use MergeConflictCommit::*;\n+ \n+ impl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n+     type Output = T;\n+     fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n+         match commit {\n++||||||| parent of b2b28c8... Display merge conflict branches\n++impl Index<Source> for MergeConflictLines {\n++    type Output = Vec<(String, State)>;\n++    fn index(&self, source: Source) -> &Self::Output {\n++        match source {\n++=======\n +#[allow(unused)]\n +fn write_merge_conflict_line(\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    let (mut draw_fn, _pad, decoration_ansi_term_style) = draw::get_draw_function(\n +        DecorationStyle::from_str(\"bold ol\", config.true_color, config.git_config.as_ref()),\n +    );\n +    draw_fn(\n +        painter.writer,\n +        \"\",\n +        \"\",\n +        &config.decorations_width,\n +        config.hunk_header_style,\n +        decoration_ansi_term_style,\n +    )?;\n +    Ok(())\n +}\n +\n +fn write_merge_conflict_bar(\n +    s: &str,\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    if let cli::Width::Fixed(width) = config.decorations_width {\n +        writeln!(painter.writer, \"{}\", s.repeat(width))?;\n +    }\n +    Ok(())\n +}\n +\n +fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n +    match line.strip_prefix(marker) {\n +        Some(suffix) => {\n +            let suffix = suffix.trim();\n +            if !suffix.is_empty() {\n +                Some(suffix)\n +            } else {\n +                None\n +            }\n +        }\n +        None => None,\n +    }\n +}\n +\n +pub use MergeConflictCommit::*;\n +\n +impl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n +    type Output = T;\n +    fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n +        match commit {\n +            Ours => &self.ours,\n +            Ancestral => &self.ancestral,\n +            Theirs => &self.theirs,\n +        }\n +    }\n +}\n +\n++impl<T> Index<&MergeConflictCommit> for MergeConflictCommits<T> {\n++    type Output = T;\n++    fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n++        match commit {\n++>>>>>>> b2b28c8... Display merge conflict branches\n+             Ours => &self.ours,\n+             Ancestral => &self.ancestral,\n+             Theirs => &self.theirs,\n+         }\n+     }\n+ }\n+ \n++<<<<<<< HEAD\n  impl<T> Index<&MergeConflictCommit> for MergeConflictCommits<T> {\n      type Output = T;\n      fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n@@@ -268,6 -257,6 +529,15 @@@\n  impl<T> IndexMut<MergeConflictCommit> for MergeConflictCommits<T> {\n      fn index_mut(&mut self, commit: MergeConflictCommit) -> &mut Self::Output {\n          match commit {\n++||||||| parent of b2b28c8... Display merge conflict branches\n++impl IndexMut<Source> for MergeConflictLines {\n++    fn index_mut(&mut self, source: Source) -> &mut Self::Output {\n++        match source {\n++=======\n++impl<T> IndexMut<MergeConflictCommit> for MergeConflictCommits<T> {\n++    fn index_mut(&mut self, commit: MergeConflictCommit) -> &mut Self::Output {\n++        match commit {\n++>>>>>>> b2b28c8... Display merge conflict branches\n              Ours => &mut self.ours,\n              Ancestral => &mut self.ancestral,\n              Theirs => &mut self.theirs,\n"
  },
  {
    "path": "etc/examples/93-binary",
    "content": "# Test script written by @gibfahn in https://github.com/dandavison/delta/issues/93\ndir=/tmp/tst\nrm -fr $dir && mkdir -p $dir && cd $dir\ngit init\necho hello > bar\ngit add bar && git commit -m \"added text file bar\"\necho -n -e \\\\x48\\\\x00\\\\x49\\\\x00 > foo\ngit add foo\nGIT_PAGER=\"delta --theme=TwoDark\" git diff --staged\nGIT_PAGER=less git diff --staged\ngit commit -m \"added binary file foo\"\necho -n -e \\\\x49\\\\x00\\\\x48\\\\x00 > foo\ngit add foo\ngit commit -m \"changed binary file foo\"\nGIT_PAGER=\"delta --theme=TwoDark\" git log -p\nGIT_PAGER=less git log -p\n"
  },
  {
    "path": "etc/examples/styles.py",
    "content": "# avocet avocet avocet avocet\n# bee-eater bee-eater bee-eater bee-eater\n# chaffinch chaffinch chaffinch\n# dodo dodo dodo dodo dodo\n"
  },
  {
    "path": "etc/performance/README.md",
    "content": "<img src=\"./visualization.svg\">\n"
  },
  {
    "path": "etc/performance/all-benchmarks.json",
    "content": "[\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"max\": 0.013288195465,\n    \"mean\": 0.006001176865,\n    \"median\": 0.004928057465000001,\n    \"message\": \"cargo new delta\\n\",\n    \"min\": 0.003220796465,\n    \"stddev\": 0.004157057519168492,\n    \"system\": 0.0016010150000000001,\n    \"time\": 0.013288195465,\n    \"user\": 0.0013687749999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"max\": 0.013288195465,\n    \"mean\": 0.006001176865,\n    \"median\": 0.004928057465000001,\n    \"message\": \"cargo new delta\\n\",\n    \"min\": 0.003220796465,\n    \"stddev\": 0.004157057519168492,\n    \"system\": 0.0016010150000000001,\n    \"time\": 0.0050741144650000005,\n    \"user\": 0.0013687749999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"max\": 0.013288195465,\n    \"mean\": 0.006001176865,\n    \"median\": 0.004928057465000001,\n    \"message\": \"cargo new delta\\n\",\n    \"min\": 0.003220796465,\n    \"stddev\": 0.004157057519168492,\n    \"system\": 0.0016010150000000001,\n    \"time\": 0.003494720465,\n    \"user\": 0.0013687749999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"max\": 0.013288195465,\n    \"mean\": 0.006001176865,\n    \"median\": 0.004928057465000001,\n    \"message\": \"cargo new delta\\n\",\n    \"min\": 0.003220796465,\n    \"stddev\": 0.004157057519168492,\n    \"system\": 0.0016010150000000001,\n    \"time\": 0.003220796465,\n    \"user\": 0.0013687749999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"max\": 0.013288195465,\n    \"mean\": 0.006001176865,\n    \"median\": 0.004928057465000001,\n    \"message\": \"cargo new delta\\n\",\n    \"min\": 0.003220796465,\n    \"stddev\": 0.004157057519168492,\n    \"system\": 0.0016010150000000001,\n    \"time\": 0.004928057465000001,\n    \"user\": 0.0013687749999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"max\": 0.007402604130000001,\n    \"mean\": 0.005181866930000002,\n    \"median\": 0.003981811130000001,\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"min\": 0.003600826130000001,\n    \"stddev\": 0.001971755776176325,\n    \"system\": 0.0016420699999999996,\n    \"time\": 0.007267979130000002,\n    \"user\": 0.001356285\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"max\": 0.007402604130000001,\n    \"mean\": 0.005181866930000002,\n    \"median\": 0.003981811130000001,\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"min\": 0.003600826130000001,\n    \"stddev\": 0.001971755776176325,\n    \"system\": 0.0016420699999999996,\n    \"time\": 0.003981811130000001,\n    \"user\": 0.001356285\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"max\": 0.007402604130000001,\n    \"mean\": 0.005181866930000002,\n    \"median\": 0.003981811130000001,\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"min\": 0.003600826130000001,\n    \"stddev\": 0.001971755776176325,\n    \"system\": 0.0016420699999999996,\n    \"time\": 0.003600826130000001,\n    \"user\": 0.001356285\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"max\": 0.007402604130000001,\n    \"mean\": 0.005181866930000002,\n    \"median\": 0.003981811130000001,\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"min\": 0.003600826130000001,\n    \"stddev\": 0.001971755776176325,\n    \"system\": 0.0016420699999999996,\n    \"time\": 0.0036561141300000006,\n    \"user\": 0.001356285\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"max\": 0.007402604130000001,\n    \"mean\": 0.005181866930000002,\n    \"median\": 0.003981811130000001,\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"min\": 0.003600826130000001,\n    \"stddev\": 0.001971755776176325,\n    \"system\": 0.0016420699999999996,\n    \"time\": 0.007402604130000001,\n    \"user\": 0.001356285\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"max\": 1.231345354705,\n    \"mean\": 1.200578412105,\n    \"median\": 1.196810656705,\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"min\": 1.183300461705,\n    \"stddev\": 0.01951776441841003,\n    \"system\": 0.013284755,\n    \"time\": 1.231345354705,\n    \"user\": 1.1792355799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"max\": 1.231345354705,\n    \"mean\": 1.200578412105,\n    \"median\": 1.196810656705,\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"min\": 1.183300461705,\n    \"stddev\": 0.01951776441841003,\n    \"system\": 0.013284755,\n    \"time\": 1.183300461705,\n    \"user\": 1.1792355799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"max\": 1.231345354705,\n    \"mean\": 1.200578412105,\n    \"median\": 1.196810656705,\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"min\": 1.183300461705,\n    \"stddev\": 0.01951776441841003,\n    \"system\": 0.013284755,\n    \"time\": 1.185296829705,\n    \"user\": 1.1792355799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"max\": 1.231345354705,\n    \"mean\": 1.200578412105,\n    \"median\": 1.196810656705,\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"min\": 1.183300461705,\n    \"stddev\": 0.01951776441841003,\n    \"system\": 0.013284755,\n    \"time\": 1.196810656705,\n    \"user\": 1.1792355799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"max\": 1.231345354705,\n    \"mean\": 1.200578412105,\n    \"median\": 1.196810656705,\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"min\": 1.183300461705,\n    \"stddev\": 0.01951776441841003,\n    \"system\": 0.013284755,\n    \"time\": 1.206138757705,\n    \"user\": 1.1792355799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"max\": 1.3078658624650001,\n    \"mean\": 1.283300375665,\n    \"median\": 1.282167388465,\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"min\": 1.2680449394650002,\n    \"stddev\": 0.01586539302076975,\n    \"system\": 0.013374965000000003,\n    \"time\": 1.3078658624650001,\n    \"user\": 1.2625939699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"max\": 1.3078658624650001,\n    \"mean\": 1.283300375665,\n    \"median\": 1.282167388465,\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"min\": 1.2680449394650002,\n    \"stddev\": 0.01586539302076975,\n    \"system\": 0.013374965000000003,\n    \"time\": 1.270967589465,\n    \"user\": 1.2625939699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"max\": 1.3078658624650001,\n    \"mean\": 1.283300375665,\n    \"median\": 1.282167388465,\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"min\": 1.2680449394650002,\n    \"stddev\": 0.01586539302076975,\n    \"system\": 0.013374965000000003,\n    \"time\": 1.2680449394650002,\n    \"user\": 1.2625939699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"max\": 1.3078658624650001,\n    \"mean\": 1.283300375665,\n    \"median\": 1.282167388465,\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"min\": 1.2680449394650002,\n    \"stddev\": 0.01586539302076975,\n    \"system\": 0.013374965000000003,\n    \"time\": 1.287456098465,\n    \"user\": 1.2625939699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"max\": 1.3078658624650001,\n    \"mean\": 1.283300375665,\n    \"median\": 1.282167388465,\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"min\": 1.2680449394650002,\n    \"stddev\": 0.01586539302076975,\n    \"system\": 0.013374965000000003,\n    \"time\": 1.282167388465,\n    \"user\": 1.2625939699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"max\": 1.306779272585,\n    \"mean\": 1.281321168185,\n    \"median\": 1.279478721585,\n    \"message\": \"Output all input lines\\n\",\n    \"min\": 1.263003205585,\n    \"stddev\": 0.015890256363835502,\n    \"system\": 0.013057825,\n    \"time\": 1.306779272585,\n    \"user\": 1.261532095\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"max\": 1.306779272585,\n    \"mean\": 1.281321168185,\n    \"median\": 1.279478721585,\n    \"message\": \"Output all input lines\\n\",\n    \"min\": 1.263003205585,\n    \"stddev\": 0.015890256363835502,\n    \"system\": 0.013057825,\n    \"time\": 1.280783097585,\n    \"user\": 1.261532095\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"max\": 1.306779272585,\n    \"mean\": 1.281321168185,\n    \"median\": 1.279478721585,\n    \"message\": \"Output all input lines\\n\",\n    \"min\": 1.263003205585,\n    \"stddev\": 0.015890256363835502,\n    \"system\": 0.013057825,\n    \"time\": 1.279478721585,\n    \"user\": 1.261532095\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"max\": 1.306779272585,\n    \"mean\": 1.281321168185,\n    \"median\": 1.279478721585,\n    \"message\": \"Output all input lines\\n\",\n    \"min\": 1.263003205585,\n    \"stddev\": 0.015890256363835502,\n    \"system\": 0.013057825,\n    \"time\": 1.263003205585,\n    \"user\": 1.261532095\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"max\": 1.306779272585,\n    \"mean\": 1.281321168185,\n    \"median\": 1.279478721585,\n    \"message\": \"Output all input lines\\n\",\n    \"min\": 1.263003205585,\n    \"stddev\": 0.015890256363835502,\n    \"system\": 0.013057825,\n    \"time\": 1.2765615435850002,\n    \"user\": 1.261532095\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"max\": 1.3170821103950001,\n    \"mean\": 1.2875588453950002,\n    \"median\": 1.279567914395,\n    \"message\": \"Parse file names and extensions\\n\",\n    \"min\": 1.2679314053950002,\n    \"stddev\": 0.019607706847450848,\n    \"system\": 0.012664169999999999,\n    \"time\": 1.3170821103950001,\n    \"user\": 1.2671468399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"max\": 1.3170821103950001,\n    \"mean\": 1.2875588453950002,\n    \"median\": 1.279567914395,\n    \"message\": \"Parse file names and extensions\\n\",\n    \"min\": 1.2679314053950002,\n    \"stddev\": 0.019607706847450848,\n    \"system\": 0.012664169999999999,\n    \"time\": 1.279567914395,\n    \"user\": 1.2671468399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"max\": 1.3170821103950001,\n    \"mean\": 1.2875588453950002,\n    \"median\": 1.279567914395,\n    \"message\": \"Parse file names and extensions\\n\",\n    \"min\": 1.2679314053950002,\n    \"stddev\": 0.019607706847450848,\n    \"system\": 0.012664169999999999,\n    \"time\": 1.2762304693950002,\n    \"user\": 1.2671468399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"max\": 1.3170821103950001,\n    \"mean\": 1.2875588453950002,\n    \"median\": 1.279567914395,\n    \"message\": \"Parse file names and extensions\\n\",\n    \"min\": 1.2679314053950002,\n    \"stddev\": 0.019607706847450848,\n    \"system\": 0.012664169999999999,\n    \"time\": 1.2679314053950002,\n    \"user\": 1.2671468399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"max\": 1.3170821103950001,\n    \"mean\": 1.2875588453950002,\n    \"median\": 1.279567914395,\n    \"message\": \"Parse file names and extensions\\n\",\n    \"min\": 1.2679314053950002,\n    \"stddev\": 0.019607706847450848,\n    \"system\": 0.012664169999999999,\n    \"time\": 1.296982327395,\n    \"user\": 1.2671468399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"max\": 1.337927386085,\n    \"mean\": 1.2936735486850002,\n    \"median\": 1.285242003085,\n    \"message\": \"Refactor colorizing\\n\",\n    \"min\": 1.268432733085,\n    \"stddev\": 0.02733443283849715,\n    \"system\": 0.01306481,\n    \"time\": 1.2999177400850002,\n    \"user\": 1.27318684\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"max\": 1.337927386085,\n    \"mean\": 1.2936735486850002,\n    \"median\": 1.285242003085,\n    \"message\": \"Refactor colorizing\\n\",\n    \"min\": 1.268432733085,\n    \"stddev\": 0.02733443283849715,\n    \"system\": 0.01306481,\n    \"time\": 1.337927386085,\n    \"user\": 1.27318684\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"max\": 1.337927386085,\n    \"mean\": 1.2936735486850002,\n    \"median\": 1.285242003085,\n    \"message\": \"Refactor colorizing\\n\",\n    \"min\": 1.268432733085,\n    \"stddev\": 0.02733443283849715,\n    \"system\": 0.01306481,\n    \"time\": 1.268432733085,\n    \"user\": 1.27318684\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"max\": 1.337927386085,\n    \"mean\": 1.2936735486850002,\n    \"median\": 1.285242003085,\n    \"message\": \"Refactor colorizing\\n\",\n    \"min\": 1.268432733085,\n    \"stddev\": 0.02733443283849715,\n    \"system\": 0.01306481,\n    \"time\": 1.2768478810850001,\n    \"user\": 1.27318684\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"max\": 1.337927386085,\n    \"mean\": 1.2936735486850002,\n    \"median\": 1.285242003085,\n    \"message\": \"Refactor colorizing\\n\",\n    \"min\": 1.268432733085,\n    \"stddev\": 0.02733443283849715,\n    \"system\": 0.01306481,\n    \"time\": 1.285242003085,\n    \"user\": 1.27318684\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"max\": 1.3504896123,\n    \"mean\": 1.2965328481,\n    \"median\": 1.2871109893,\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"min\": 1.2725778293,\n    \"stddev\": 0.03119221013734713,\n    \"system\": 0.013726579999999999,\n    \"time\": 1.3504896123,\n    \"user\": 1.2743089250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"max\": 1.3504896123,\n    \"mean\": 1.2965328481,\n    \"median\": 1.2871109893,\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"min\": 1.2725778293,\n    \"stddev\": 0.03119221013734713,\n    \"system\": 0.013726579999999999,\n    \"time\": 1.2871109893,\n    \"user\": 1.2743089250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"max\": 1.3504896123,\n    \"mean\": 1.2965328481,\n    \"median\": 1.2871109893,\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"min\": 1.2725778293,\n    \"stddev\": 0.03119221013734713,\n    \"system\": 0.013726579999999999,\n    \"time\": 1.2725778293,\n    \"user\": 1.2743089250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"max\": 1.3504896123,\n    \"mean\": 1.2965328481,\n    \"median\": 1.2871109893,\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"min\": 1.2725778293,\n    \"stddev\": 0.03119221013734713,\n    \"system\": 0.013726579999999999,\n    \"time\": 1.2935265603000001,\n    \"user\": 1.2743089250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"max\": 1.3504896123,\n    \"mean\": 1.2965328481,\n    \"median\": 1.2871109893,\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"min\": 1.2725778293,\n    \"stddev\": 0.03119221013734713,\n    \"system\": 0.013726579999999999,\n    \"time\": 1.2789592493000002,\n    \"user\": 1.2743089250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"max\": 0.07290294816000001,\n    \"mean\": 0.05615010436000001,\n    \"median\": 0.05160438316,\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"min\": 0.05028951316000001,\n    \"stddev\": 0.009612273891511088,\n    \"system\": 0.00856352,\n    \"time\": 0.07290294816000001,\n    \"user\": 0.04225882999999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"max\": 0.07290294816000001,\n    \"mean\": 0.05615010436000001,\n    \"median\": 0.05160438316,\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"min\": 0.05028951316000001,\n    \"stddev\": 0.009612273891511088,\n    \"system\": 0.00856352,\n    \"time\": 0.05028951316000001,\n    \"user\": 0.04225882999999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"max\": 0.07290294816000001,\n    \"mean\": 0.05615010436000001,\n    \"median\": 0.05160438316,\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"min\": 0.05028951316000001,\n    \"stddev\": 0.009612273891511088,\n    \"system\": 0.00856352,\n    \"time\": 0.05035232716000001,\n    \"user\": 0.04225882999999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"max\": 0.07290294816000001,\n    \"mean\": 0.05615010436000001,\n    \"median\": 0.05160438316,\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"min\": 0.05028951316000001,\n    \"stddev\": 0.009612273891511088,\n    \"system\": 0.00856352,\n    \"time\": 0.05560135016000001,\n    \"user\": 0.04225882999999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"max\": 0.07290294816000001,\n    \"mean\": 0.05615010436000001,\n    \"median\": 0.05160438316,\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"min\": 0.05028951316000001,\n    \"stddev\": 0.009612273891511088,\n    \"system\": 0.00856352,\n    \"time\": 0.05160438316,\n    \"user\": 0.04225882999999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"max\": 0.90688154825,\n    \"mean\": 0.8898036314500001,\n    \"median\": 0.89191407325,\n    \"message\": \"Propagate unexpected error\\n\",\n    \"min\": 0.86352095825,\n    \"stddev\": 0.01758747299300613,\n    \"system\": 0.01220984,\n    \"time\": 0.90688154825,\n    \"user\": 0.8695821799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"max\": 0.90688154825,\n    \"mean\": 0.8898036314500001,\n    \"median\": 0.89191407325,\n    \"message\": \"Propagate unexpected error\\n\",\n    \"min\": 0.86352095825,\n    \"stddev\": 0.01758747299300613,\n    \"system\": 0.01220984,\n    \"time\": 0.88273890725,\n    \"user\": 0.8695821799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"max\": 0.90688154825,\n    \"mean\": 0.8898036314500001,\n    \"median\": 0.89191407325,\n    \"message\": \"Propagate unexpected error\\n\",\n    \"min\": 0.86352095825,\n    \"stddev\": 0.01758747299300613,\n    \"system\": 0.01220984,\n    \"time\": 0.86352095825,\n    \"user\": 0.8695821799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"max\": 0.90688154825,\n    \"mean\": 0.8898036314500001,\n    \"median\": 0.89191407325,\n    \"message\": \"Propagate unexpected error\\n\",\n    \"min\": 0.86352095825,\n    \"stddev\": 0.01758747299300613,\n    \"system\": 0.01220984,\n    \"time\": 0.90396267025,\n    \"user\": 0.8695821799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"max\": 0.90688154825,\n    \"mean\": 0.8898036314500001,\n    \"median\": 0.89191407325,\n    \"message\": \"Propagate unexpected error\\n\",\n    \"min\": 0.86352095825,\n    \"stddev\": 0.01758747299300613,\n    \"system\": 0.01220984,\n    \"time\": 0.89191407325,\n    \"user\": 0.8695821799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"max\": 0.9140197943300001,\n    \"mean\": 0.8720106193300001,\n    \"median\": 0.8633942953300001,\n    \"message\": \"Change variable name\\n\",\n    \"min\": 0.85137515233,\n    \"stddev\": 0.02492324659284292,\n    \"system\": 0.012058609999999999,\n    \"time\": 0.9140197943300001,\n    \"user\": 0.85166689\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"max\": 0.9140197943300001,\n    \"mean\": 0.8720106193300001,\n    \"median\": 0.8633942953300001,\n    \"message\": \"Change variable name\\n\",\n    \"min\": 0.85137515233,\n    \"stddev\": 0.02492324659284292,\n    \"system\": 0.012058609999999999,\n    \"time\": 0.8633942953300001,\n    \"user\": 0.85166689\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"max\": 0.9140197943300001,\n    \"mean\": 0.8720106193300001,\n    \"median\": 0.8633942953300001,\n    \"message\": \"Change variable name\\n\",\n    \"min\": 0.85137515233,\n    \"stddev\": 0.02492324659284292,\n    \"system\": 0.012058609999999999,\n    \"time\": 0.85137515233,\n    \"user\": 0.85166689\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"max\": 0.9140197943300001,\n    \"mean\": 0.8720106193300001,\n    \"median\": 0.8633942953300001,\n    \"message\": \"Change variable name\\n\",\n    \"min\": 0.85137515233,\n    \"stddev\": 0.02492324659284292,\n    \"system\": 0.012058609999999999,\n    \"time\": 0.8573113763300001,\n    \"user\": 0.85166689\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"max\": 0.9140197943300001,\n    \"mean\": 0.8720106193300001,\n    \"median\": 0.8633942953300001,\n    \"message\": \"Change variable name\\n\",\n    \"min\": 0.85137515233,\n    \"stddev\": 0.02492324659284292,\n    \"system\": 0.012058609999999999,\n    \"time\": 0.8739524783300001,\n    \"user\": 0.85166689\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"max\": 1.1736815141999999,\n    \"mean\": 1.14287729,\n    \"median\": 1.1343865582,\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"min\": 1.1333326322,\n    \"stddev\": 0.017353996285769453,\n    \"system\": 0.013226374999999999,\n    \"time\": 1.1736815141999999,\n    \"user\": 1.12190921\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"max\": 1.1736815141999999,\n    \"mean\": 1.14287729,\n    \"median\": 1.1343865582,\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"min\": 1.1333326322,\n    \"stddev\": 0.017353996285769453,\n    \"system\": 0.013226374999999999,\n    \"time\": 1.1388412691999998,\n    \"user\": 1.12190921\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"max\": 1.1736815141999999,\n    \"mean\": 1.14287729,\n    \"median\": 1.1343865582,\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"min\": 1.1333326322,\n    \"stddev\": 0.017353996285769453,\n    \"system\": 0.013226374999999999,\n    \"time\": 1.1341444762,\n    \"user\": 1.12190921\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"max\": 1.1736815141999999,\n    \"mean\": 1.14287729,\n    \"median\": 1.1343865582,\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"min\": 1.1333326322,\n    \"stddev\": 0.017353996285769453,\n    \"system\": 0.013226374999999999,\n    \"time\": 1.1333326322,\n    \"user\": 1.12190921\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"max\": 1.1736815141999999,\n    \"mean\": 1.14287729,\n    \"median\": 1.1343865582,\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"min\": 1.1333326322,\n    \"stddev\": 0.017353996285769453,\n    \"system\": 0.013226374999999999,\n    \"time\": 1.1343865582,\n    \"user\": 1.12190921\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"max\": 1.229544771405,\n    \"mean\": 1.1897444654049998,\n    \"median\": 1.178834927405,\n    \"message\": \"Change names\\n\",\n    \"min\": 1.169623287405,\n    \"stddev\": 0.024081288435104632,\n    \"system\": 0.01159385,\n    \"time\": 1.176052770405,\n    \"user\": 1.174339325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"max\": 1.229544771405,\n    \"mean\": 1.1897444654049998,\n    \"median\": 1.178834927405,\n    \"message\": \"Change names\\n\",\n    \"min\": 1.169623287405,\n    \"stddev\": 0.024081288435104632,\n    \"system\": 0.01159385,\n    \"time\": 1.229544771405,\n    \"user\": 1.174339325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"max\": 1.229544771405,\n    \"mean\": 1.1897444654049998,\n    \"median\": 1.178834927405,\n    \"message\": \"Change names\\n\",\n    \"min\": 1.169623287405,\n    \"stddev\": 0.024081288435104632,\n    \"system\": 0.01159385,\n    \"time\": 1.178834927405,\n    \"user\": 1.174339325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"max\": 1.229544771405,\n    \"mean\": 1.1897444654049998,\n    \"median\": 1.178834927405,\n    \"message\": \"Change names\\n\",\n    \"min\": 1.169623287405,\n    \"stddev\": 0.024081288435104632,\n    \"system\": 0.01159385,\n    \"time\": 1.169623287405,\n    \"user\": 1.174339325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"max\": 1.229544771405,\n    \"mean\": 1.1897444654049998,\n    \"median\": 1.178834927405,\n    \"message\": \"Change names\\n\",\n    \"min\": 1.169623287405,\n    \"stddev\": 0.024081288435104632,\n    \"system\": 0.01159385,\n    \"time\": 1.194666570405,\n    \"user\": 1.174339325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"max\": 0.9181808724050001,\n    \"mean\": 0.8896215520050001,\n    \"median\": 0.8926811844050001,\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"min\": 0.8688448094050001,\n    \"stddev\": 0.0203802270974175,\n    \"system\": 0.014323454999999999,\n    \"time\": 0.9181808724050001,\n    \"user\": 0.8675435049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"max\": 0.9181808724050001,\n    \"mean\": 0.8896215520050001,\n    \"median\": 0.8926811844050001,\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"min\": 0.8688448094050001,\n    \"stddev\": 0.0203802270974175,\n    \"system\": 0.014323454999999999,\n    \"time\": 0.8710480954050001,\n    \"user\": 0.8675435049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"max\": 0.9181808724050001,\n    \"mean\": 0.8896215520050001,\n    \"median\": 0.8926811844050001,\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"min\": 0.8688448094050001,\n    \"stddev\": 0.0203802270974175,\n    \"system\": 0.014323454999999999,\n    \"time\": 0.8688448094050001,\n    \"user\": 0.8675435049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"max\": 0.9181808724050001,\n    \"mean\": 0.8896215520050001,\n    \"median\": 0.8926811844050001,\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"min\": 0.8688448094050001,\n    \"stddev\": 0.0203802270974175,\n    \"system\": 0.014323454999999999,\n    \"time\": 0.8973527984050002,\n    \"user\": 0.8675435049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"max\": 0.9181808724050001,\n    \"mean\": 0.8896215520050001,\n    \"median\": 0.8926811844050001,\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"min\": 0.8688448094050001,\n    \"stddev\": 0.0203802270974175,\n    \"system\": 0.014323454999999999,\n    \"time\": 0.8926811844050001,\n    \"user\": 0.8675435049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"max\": 0.8790327780350001,\n    \"mean\": 0.868378139435,\n    \"median\": 0.8654903110350001,\n    \"message\": \"Handle broken pipe\\n\",\n    \"min\": 0.861418168035,\n    \"stddev\": 0.006924769788771303,\n    \"system\": 0.012166674999999998,\n    \"time\": 0.8790327780350001,\n    \"user\": 0.84826893\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"max\": 0.8790327780350001,\n    \"mean\": 0.868378139435,\n    \"median\": 0.8654903110350001,\n    \"message\": \"Handle broken pipe\\n\",\n    \"min\": 0.861418168035,\n    \"stddev\": 0.006924769788771303,\n    \"system\": 0.012166674999999998,\n    \"time\": 0.8712291150350001,\n    \"user\": 0.84826893\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"max\": 0.8790327780350001,\n    \"mean\": 0.868378139435,\n    \"median\": 0.8654903110350001,\n    \"message\": \"Handle broken pipe\\n\",\n    \"min\": 0.861418168035,\n    \"stddev\": 0.006924769788771303,\n    \"system\": 0.012166674999999998,\n    \"time\": 0.8647203250350001,\n    \"user\": 0.84826893\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"max\": 0.8790327780350001,\n    \"mean\": 0.868378139435,\n    \"median\": 0.8654903110350001,\n    \"message\": \"Handle broken pipe\\n\",\n    \"min\": 0.861418168035,\n    \"stddev\": 0.006924769788771303,\n    \"system\": 0.012166674999999998,\n    \"time\": 0.8654903110350001,\n    \"user\": 0.84826893\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"max\": 0.8790327780350001,\n    \"mean\": 0.868378139435,\n    \"median\": 0.8654903110350001,\n    \"message\": \"Handle broken pipe\\n\",\n    \"min\": 0.861418168035,\n    \"stddev\": 0.006924769788771303,\n    \"system\": 0.012166674999999998,\n    \"time\": 0.861418168035,\n    \"user\": 0.84826893\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"max\": 1.205067971315,\n    \"mean\": 1.184838782315,\n    \"median\": 1.182129461315,\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"min\": 1.168574356315,\n    \"stddev\": 0.016895709478940566,\n    \"system\": 0.012825675,\n    \"time\": 1.199376480315,\n    \"user\": 1.1645645100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"max\": 1.205067971315,\n    \"mean\": 1.184838782315,\n    \"median\": 1.182129461315,\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"min\": 1.168574356315,\n    \"stddev\": 0.016895709478940566,\n    \"system\": 0.012825675,\n    \"time\": 1.168574356315,\n    \"user\": 1.1645645100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"max\": 1.205067971315,\n    \"mean\": 1.184838782315,\n    \"median\": 1.182129461315,\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"min\": 1.168574356315,\n    \"stddev\": 0.016895709478940566,\n    \"system\": 0.012825675,\n    \"time\": 1.182129461315,\n    \"user\": 1.1645645100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"max\": 1.205067971315,\n    \"mean\": 1.184838782315,\n    \"median\": 1.182129461315,\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"min\": 1.168574356315,\n    \"stddev\": 0.016895709478940566,\n    \"system\": 0.012825675,\n    \"time\": 1.205067971315,\n    \"user\": 1.1645645100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"max\": 1.205067971315,\n    \"mean\": 1.184838782315,\n    \"median\": 1.182129461315,\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"min\": 1.168574356315,\n    \"stddev\": 0.016895709478940566,\n    \"system\": 0.012825675,\n    \"time\": 1.169045642315,\n    \"user\": 1.1645645100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"max\": 0.895909015965,\n    \"mean\": 0.8755587809650001,\n    \"median\": 0.876428335965,\n    \"message\": \"Dark theme\\n\",\n    \"min\": 0.8591795519650001,\n    \"stddev\": 0.014795556298685706,\n    \"system\": 0.011857234999999999,\n    \"time\": 0.895909015965,\n    \"user\": 0.8577141349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"max\": 0.895909015965,\n    \"mean\": 0.8755587809650001,\n    \"median\": 0.876428335965,\n    \"message\": \"Dark theme\\n\",\n    \"min\": 0.8591795519650001,\n    \"stddev\": 0.014795556298685706,\n    \"system\": 0.011857234999999999,\n    \"time\": 0.8826451059650001,\n    \"user\": 0.8577141349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"max\": 0.895909015965,\n    \"mean\": 0.8755587809650001,\n    \"median\": 0.876428335965,\n    \"message\": \"Dark theme\\n\",\n    \"min\": 0.8591795519650001,\n    \"stddev\": 0.014795556298685706,\n    \"system\": 0.011857234999999999,\n    \"time\": 0.863631894965,\n    \"user\": 0.8577141349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"max\": 0.895909015965,\n    \"mean\": 0.8755587809650001,\n    \"median\": 0.876428335965,\n    \"message\": \"Dark theme\\n\",\n    \"min\": 0.8591795519650001,\n    \"stddev\": 0.014795556298685706,\n    \"system\": 0.011857234999999999,\n    \"time\": 0.8591795519650001,\n    \"user\": 0.8577141349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"max\": 0.895909015965,\n    \"mean\": 0.8755587809650001,\n    \"median\": 0.876428335965,\n    \"message\": \"Dark theme\\n\",\n    \"min\": 0.8591795519650001,\n    \"stddev\": 0.014795556298685706,\n    \"system\": 0.011857234999999999,\n    \"time\": 0.876428335965,\n    \"user\": 0.8577141349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"max\": 1.201042077215,\n    \"mean\": 1.184312489815,\n    \"median\": 1.188260371215,\n    \"message\": \"README\\n\",\n    \"min\": 1.168236235215,\n    \"stddev\": 0.013068179488921826,\n    \"system\": 0.012302219999999999,\n    \"time\": 1.188260371215,\n    \"user\": 1.1646742749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"max\": 1.201042077215,\n    \"mean\": 1.184312489815,\n    \"median\": 1.188260371215,\n    \"message\": \"README\\n\",\n    \"min\": 1.168236235215,\n    \"stddev\": 0.013068179488921826,\n    \"system\": 0.012302219999999999,\n    \"time\": 1.189712949215,\n    \"user\": 1.1646742749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"max\": 1.201042077215,\n    \"mean\": 1.184312489815,\n    \"median\": 1.188260371215,\n    \"message\": \"README\\n\",\n    \"min\": 1.168236235215,\n    \"stddev\": 0.013068179488921826,\n    \"system\": 0.012302219999999999,\n    \"time\": 1.174310816215,\n    \"user\": 1.1646742749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"max\": 1.201042077215,\n    \"mean\": 1.184312489815,\n    \"median\": 1.188260371215,\n    \"message\": \"README\\n\",\n    \"min\": 1.168236235215,\n    \"stddev\": 0.013068179488921826,\n    \"system\": 0.012302219999999999,\n    \"time\": 1.168236235215,\n    \"user\": 1.1646742749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"max\": 1.201042077215,\n    \"mean\": 1.184312489815,\n    \"median\": 1.188260371215,\n    \"message\": \"README\\n\",\n    \"min\": 1.168236235215,\n    \"stddev\": 0.013068179488921826,\n    \"system\": 0.012302219999999999,\n    \"time\": 1.201042077215,\n    \"user\": 1.1646742749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"max\": 1.23961324446,\n    \"mean\": 1.22164833106,\n    \"median\": 1.21899107246,\n    \"message\": \"Fix doc comment\\n\",\n    \"min\": 1.1971438484599999,\n    \"stddev\": 0.016466663613139105,\n    \"system\": 0.014570989999999997,\n    \"time\": 1.23373154346,\n    \"user\": 1.2017125699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"max\": 1.23961324446,\n    \"mean\": 1.22164833106,\n    \"median\": 1.21899107246,\n    \"message\": \"Fix doc comment\\n\",\n    \"min\": 1.1971438484599999,\n    \"stddev\": 0.016466663613139105,\n    \"system\": 0.014570989999999997,\n    \"time\": 1.1971438484599999,\n    \"user\": 1.2017125699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"max\": 1.23961324446,\n    \"mean\": 1.22164833106,\n    \"median\": 1.21899107246,\n    \"message\": \"Fix doc comment\\n\",\n    \"min\": 1.1971438484599999,\n    \"stddev\": 0.016466663613139105,\n    \"system\": 0.014570989999999997,\n    \"time\": 1.21876194646,\n    \"user\": 1.2017125699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"max\": 1.23961324446,\n    \"mean\": 1.22164833106,\n    \"median\": 1.21899107246,\n    \"message\": \"Fix doc comment\\n\",\n    \"min\": 1.1971438484599999,\n    \"stddev\": 0.016466663613139105,\n    \"system\": 0.014570989999999997,\n    \"time\": 1.21899107246,\n    \"user\": 1.2017125699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"max\": 1.23961324446,\n    \"mean\": 1.22164833106,\n    \"median\": 1.21899107246,\n    \"message\": \"Fix doc comment\\n\",\n    \"min\": 1.1971438484599999,\n    \"stddev\": 0.016466663613139105,\n    \"system\": 0.014570989999999997,\n    \"time\": 1.23961324446,\n    \"user\": 1.2017125699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"max\": 1.220338428945,\n    \"mean\": 1.204832619345,\n    \"median\": 1.197841363945,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.192773073945,\n    \"stddev\": 0.012500842510422796,\n    \"system\": 0.013097684999999998,\n    \"time\": 1.192773073945,\n    \"user\": 1.1867291349999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"max\": 1.220338428945,\n    \"mean\": 1.204832619345,\n    \"median\": 1.197841363945,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.192773073945,\n    \"stddev\": 0.012500842510422796,\n    \"system\": 0.013097684999999998,\n    \"time\": 1.216198350945,\n    \"user\": 1.1867291349999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"max\": 1.220338428945,\n    \"mean\": 1.204832619345,\n    \"median\": 1.197841363945,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.192773073945,\n    \"stddev\": 0.012500842510422796,\n    \"system\": 0.013097684999999998,\n    \"time\": 1.197841363945,\n    \"user\": 1.1867291349999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"max\": 1.220338428945,\n    \"mean\": 1.204832619345,\n    \"median\": 1.197841363945,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.192773073945,\n    \"stddev\": 0.012500842510422796,\n    \"system\": 0.013097684999999998,\n    \"time\": 1.1970118789450002,\n    \"user\": 1.1867291349999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"max\": 1.220338428945,\n    \"mean\": 1.204832619345,\n    \"median\": 1.197841363945,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.192773073945,\n    \"stddev\": 0.012500842510422796,\n    \"system\": 0.013097684999999998,\n    \"time\": 1.220338428945,\n    \"user\": 1.1867291349999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"max\": 1.4923686688900002,\n    \"mean\": 1.26565116889,\n    \"median\": 1.20893110889,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.1772592298900002,\n    \"stddev\": 0.12950223502070457,\n    \"system\": 0.02012179,\n    \"time\": 1.4923686688900002,\n    \"user\": 1.2303254250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"max\": 1.4923686688900002,\n    \"mean\": 1.26565116889,\n    \"median\": 1.20893110889,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.1772592298900002,\n    \"stddev\": 0.12950223502070457,\n    \"system\": 0.02012179,\n    \"time\": 1.25056282789,\n    \"user\": 1.2303254250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"max\": 1.4923686688900002,\n    \"mean\": 1.26565116889,\n    \"median\": 1.20893110889,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.1772592298900002,\n    \"stddev\": 0.12950223502070457,\n    \"system\": 0.02012179,\n    \"time\": 1.20893110889,\n    \"user\": 1.2303254250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"max\": 1.4923686688900002,\n    \"mean\": 1.26565116889,\n    \"median\": 1.20893110889,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.1772592298900002,\n    \"stddev\": 0.12950223502070457,\n    \"system\": 0.02012179,\n    \"time\": 1.1991340088900002,\n    \"user\": 1.2303254250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"max\": 1.4923686688900002,\n    \"mean\": 1.26565116889,\n    \"median\": 1.20893110889,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.1772592298900002,\n    \"stddev\": 0.12950223502070457,\n    \"system\": 0.02012179,\n    \"time\": 1.1772592298900002,\n    \"user\": 1.2303254250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"max\": 1.3562416357350002,\n    \"mean\": 1.2580677129350002,\n    \"median\": 1.245651887735,\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"min\": 1.201443681735,\n    \"stddev\": 0.057959422884599696,\n    \"system\": 0.01796481,\n    \"time\": 1.246167995735,\n    \"user\": 1.2262239949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"max\": 1.3562416357350002,\n    \"mean\": 1.2580677129350002,\n    \"median\": 1.245651887735,\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"min\": 1.201443681735,\n    \"stddev\": 0.057959422884599696,\n    \"system\": 0.01796481,\n    \"time\": 1.245651887735,\n    \"user\": 1.2262239949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"max\": 1.3562416357350002,\n    \"mean\": 1.2580677129350002,\n    \"median\": 1.245651887735,\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"min\": 1.201443681735,\n    \"stddev\": 0.057959422884599696,\n    \"system\": 0.01796481,\n    \"time\": 1.201443681735,\n    \"user\": 1.2262239949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"max\": 1.3562416357350002,\n    \"mean\": 1.2580677129350002,\n    \"median\": 1.245651887735,\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"min\": 1.201443681735,\n    \"stddev\": 0.057959422884599696,\n    \"system\": 0.01796481,\n    \"time\": 1.2408333637350002,\n    \"user\": 1.2262239949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"max\": 1.3562416357350002,\n    \"mean\": 1.2580677129350002,\n    \"median\": 1.245651887735,\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"min\": 1.201443681735,\n    \"stddev\": 0.057959422884599696,\n    \"system\": 0.01796481,\n    \"time\": 1.3562416357350002,\n    \"user\": 1.2262239949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"max\": 1.158901983775,\n    \"mean\": 1.152601096175,\n    \"median\": 1.156263073775,\n    \"message\": \"CLI\\n\",\n    \"min\": 1.134536608775,\n    \"stddev\": 0.010190948752626806,\n    \"system\": 0.014195734999999998,\n    \"time\": 1.158901983775,\n    \"user\": 1.1299437300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"max\": 1.158901983775,\n    \"mean\": 1.152601096175,\n    \"median\": 1.156263073775,\n    \"message\": \"CLI\\n\",\n    \"min\": 1.134536608775,\n    \"stddev\": 0.010190948752626806,\n    \"system\": 0.014195734999999998,\n    \"time\": 1.157910206775,\n    \"user\": 1.1299437300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"max\": 1.158901983775,\n    \"mean\": 1.152601096175,\n    \"median\": 1.156263073775,\n    \"message\": \"CLI\\n\",\n    \"min\": 1.134536608775,\n    \"stddev\": 0.010190948752626806,\n    \"system\": 0.014195734999999998,\n    \"time\": 1.134536608775,\n    \"user\": 1.1299437300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"max\": 1.158901983775,\n    \"mean\": 1.152601096175,\n    \"median\": 1.156263073775,\n    \"message\": \"CLI\\n\",\n    \"min\": 1.134536608775,\n    \"stddev\": 0.010190948752626806,\n    \"system\": 0.014195734999999998,\n    \"time\": 1.155393607775,\n    \"user\": 1.1299437300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"max\": 1.158901983775,\n    \"mean\": 1.152601096175,\n    \"median\": 1.156263073775,\n    \"message\": \"CLI\\n\",\n    \"min\": 1.134536608775,\n    \"stddev\": 0.010190948752626806,\n    \"system\": 0.014195734999999998,\n    \"time\": 1.156263073775,\n    \"user\": 1.1299437300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"max\": 1.1554587647199999,\n    \"mean\": 1.13272000292,\n    \"median\": 1.12928589172,\n    \"message\": \"Factor out parse module\\n\",\n    \"min\": 1.11619804772,\n    \"stddev\": 0.014418784240754311,\n    \"system\": 0.012736765,\n    \"time\": 1.1554587647199999,\n    \"user\": 1.11215996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"max\": 1.1554587647199999,\n    \"mean\": 1.13272000292,\n    \"median\": 1.12928589172,\n    \"message\": \"Factor out parse module\\n\",\n    \"min\": 1.11619804772,\n    \"stddev\": 0.014418784240754311,\n    \"system\": 0.012736765,\n    \"time\": 1.1277290547199998,\n    \"user\": 1.11215996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"max\": 1.1554587647199999,\n    \"mean\": 1.13272000292,\n    \"median\": 1.12928589172,\n    \"message\": \"Factor out parse module\\n\",\n    \"min\": 1.11619804772,\n    \"stddev\": 0.014418784240754311,\n    \"system\": 0.012736765,\n    \"time\": 1.13492825572,\n    \"user\": 1.11215996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"max\": 1.1554587647199999,\n    \"mean\": 1.13272000292,\n    \"median\": 1.12928589172,\n    \"message\": \"Factor out parse module\\n\",\n    \"min\": 1.11619804772,\n    \"stddev\": 0.014418784240754311,\n    \"system\": 0.012736765,\n    \"time\": 1.11619804772,\n    \"user\": 1.11215996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"max\": 1.1554587647199999,\n    \"mean\": 1.13272000292,\n    \"median\": 1.12928589172,\n    \"message\": \"Factor out parse module\\n\",\n    \"min\": 1.11619804772,\n    \"stddev\": 0.014418784240754311,\n    \"system\": 0.012736765,\n    \"time\": 1.12928589172,\n    \"user\": 1.11215996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"max\": 1.16790207545,\n    \"mean\": 1.15049565465,\n    \"median\": 1.14960930745,\n    \"message\": \"Factor out paint module\\n\",\n    \"min\": 1.14025151645,\n    \"stddev\": 0.01102713685067341,\n    \"system\": 0.012165144999999999,\n    \"time\": 1.15274219445,\n    \"user\": 1.130922795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"max\": 1.16790207545,\n    \"mean\": 1.15049565465,\n    \"median\": 1.14960930745,\n    \"message\": \"Factor out paint module\\n\",\n    \"min\": 1.14025151645,\n    \"stddev\": 0.01102713685067341,\n    \"system\": 0.012165144999999999,\n    \"time\": 1.14197317945,\n    \"user\": 1.130922795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"max\": 1.16790207545,\n    \"mean\": 1.15049565465,\n    \"median\": 1.14960930745,\n    \"message\": \"Factor out paint module\\n\",\n    \"min\": 1.14025151645,\n    \"stddev\": 0.01102713685067341,\n    \"system\": 0.012165144999999999,\n    \"time\": 1.14960930745,\n    \"user\": 1.130922795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"max\": 1.16790207545,\n    \"mean\": 1.15049565465,\n    \"median\": 1.14960930745,\n    \"message\": \"Factor out paint module\\n\",\n    \"min\": 1.14025151645,\n    \"stddev\": 0.01102713685067341,\n    \"system\": 0.012165144999999999,\n    \"time\": 1.16790207545,\n    \"user\": 1.130922795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"max\": 1.16790207545,\n    \"mean\": 1.15049565465,\n    \"median\": 1.14960930745,\n    \"message\": \"Factor out paint module\\n\",\n    \"min\": 1.14025151645,\n    \"stddev\": 0.01102713685067341,\n    \"system\": 0.012165144999999999,\n    \"time\": 1.14025151645,\n    \"user\": 1.130922795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"max\": 1.225632805095,\n    \"mean\": 1.155840738895,\n    \"median\": 1.133623357095,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.129389469095,\n    \"stddev\": 0.04057032526969006,\n    \"system\": 0.01243827,\n    \"time\": 1.225632805095,\n    \"user\": 1.13618304\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"max\": 1.225632805095,\n    \"mean\": 1.155840738895,\n    \"median\": 1.133623357095,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.129389469095,\n    \"stddev\": 0.04057032526969006,\n    \"system\": 0.01243827,\n    \"time\": 1.157454655095,\n    \"user\": 1.13618304\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"max\": 1.225632805095,\n    \"mean\": 1.155840738895,\n    \"median\": 1.133623357095,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.129389469095,\n    \"stddev\": 0.04057032526969006,\n    \"system\": 0.01243827,\n    \"time\": 1.133103408095,\n    \"user\": 1.13618304\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"max\": 1.225632805095,\n    \"mean\": 1.155840738895,\n    \"median\": 1.133623357095,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.129389469095,\n    \"stddev\": 0.04057032526969006,\n    \"system\": 0.01243827,\n    \"time\": 1.129389469095,\n    \"user\": 1.13618304\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"max\": 1.225632805095,\n    \"mean\": 1.155840738895,\n    \"median\": 1.133623357095,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.129389469095,\n    \"stddev\": 0.04057032526969006,\n    \"system\": 0.01243827,\n    \"time\": 1.133623357095,\n    \"user\": 1.13618304\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"max\": 1.5935502567550002,\n    \"mean\": 1.528340965755,\n    \"median\": 1.5285057617550002,\n    \"message\": \"CLI (Hack)\\n\",\n    \"min\": 1.466762328755,\n    \"stddev\": 0.05314946921369519,\n    \"system\": 0.01590001,\n    \"time\": 1.5285057617550002,\n    \"user\": 1.5037501450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"max\": 1.5935502567550002,\n    \"mean\": 1.528340965755,\n    \"median\": 1.5285057617550002,\n    \"message\": \"CLI (Hack)\\n\",\n    \"min\": 1.466762328755,\n    \"stddev\": 0.05314946921369519,\n    \"system\": 0.01590001,\n    \"time\": 1.466762328755,\n    \"user\": 1.5037501450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"max\": 1.5935502567550002,\n    \"mean\": 1.528340965755,\n    \"median\": 1.5285057617550002,\n    \"message\": \"CLI (Hack)\\n\",\n    \"min\": 1.466762328755,\n    \"stddev\": 0.05314946921369519,\n    \"system\": 0.01590001,\n    \"time\": 1.486144020755,\n    \"user\": 1.5037501450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"max\": 1.5935502567550002,\n    \"mean\": 1.528340965755,\n    \"median\": 1.5285057617550002,\n    \"message\": \"CLI (Hack)\\n\",\n    \"min\": 1.466762328755,\n    \"stddev\": 0.05314946921369519,\n    \"system\": 0.01590001,\n    \"time\": 1.5935502567550002,\n    \"user\": 1.5037501450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"max\": 1.5935502567550002,\n    \"mean\": 1.528340965755,\n    \"median\": 1.5285057617550002,\n    \"message\": \"CLI (Hack)\\n\",\n    \"min\": 1.466762328755,\n    \"stddev\": 0.05314946921369519,\n    \"system\": 0.01590001,\n    \"time\": 1.566742460755,\n    \"user\": 1.5037501450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"max\": 1.6203238392100001,\n    \"mean\": 1.5900129658100002,\n    \"median\": 1.5784853492100002,\n    \"message\": \"Tweak default colors\\n\",\n    \"min\": 1.5713652712100001,\n    \"stddev\": 0.021367589701250453,\n    \"system\": 0.01968358,\n    \"time\": 1.6203238392100001,\n    \"user\": 1.560370795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"max\": 1.6203238392100001,\n    \"mean\": 1.5900129658100002,\n    \"median\": 1.5784853492100002,\n    \"message\": \"Tweak default colors\\n\",\n    \"min\": 1.5713652712100001,\n    \"stddev\": 0.021367589701250453,\n    \"system\": 0.01968358,\n    \"time\": 1.5713652712100001,\n    \"user\": 1.560370795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"max\": 1.6203238392100001,\n    \"mean\": 1.5900129658100002,\n    \"median\": 1.5784853492100002,\n    \"message\": \"Tweak default colors\\n\",\n    \"min\": 1.5713652712100001,\n    \"stddev\": 0.021367589701250453,\n    \"system\": 0.01968358,\n    \"time\": 1.5753350022100001,\n    \"user\": 1.560370795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"max\": 1.6203238392100001,\n    \"mean\": 1.5900129658100002,\n    \"median\": 1.5784853492100002,\n    \"message\": \"Tweak default colors\\n\",\n    \"min\": 1.5713652712100001,\n    \"stddev\": 0.021367589701250453,\n    \"system\": 0.01968358,\n    \"time\": 1.6045553672100001,\n    \"user\": 1.560370795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"max\": 1.6203238392100001,\n    \"mean\": 1.5900129658100002,\n    \"median\": 1.5784853492100002,\n    \"message\": \"Tweak default colors\\n\",\n    \"min\": 1.5713652712100001,\n    \"stddev\": 0.021367589701250453,\n    \"system\": 0.01968358,\n    \"time\": 1.5784853492100002,\n    \"user\": 1.560370795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"max\": 1.305461515505,\n    \"mean\": 1.285040883905,\n    \"median\": 1.290718452505,\n    \"message\": \"Homor --width argument\\n\",\n    \"min\": 1.253247793505,\n    \"stddev\": 0.019796134506459468,\n    \"system\": 0.016471575,\n    \"time\": 1.305461515505,\n    \"user\": 1.260764665\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"max\": 1.305461515505,\n    \"mean\": 1.285040883905,\n    \"median\": 1.290718452505,\n    \"message\": \"Homor --width argument\\n\",\n    \"min\": 1.253247793505,\n    \"stddev\": 0.019796134506459468,\n    \"system\": 0.016471575,\n    \"time\": 1.281132061505,\n    \"user\": 1.260764665\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"max\": 1.305461515505,\n    \"mean\": 1.285040883905,\n    \"median\": 1.290718452505,\n    \"message\": \"Homor --width argument\\n\",\n    \"min\": 1.253247793505,\n    \"stddev\": 0.019796134506459468,\n    \"system\": 0.016471575,\n    \"time\": 1.290718452505,\n    \"user\": 1.260764665\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"max\": 1.305461515505,\n    \"mean\": 1.285040883905,\n    \"median\": 1.290718452505,\n    \"message\": \"Homor --width argument\\n\",\n    \"min\": 1.253247793505,\n    \"stddev\": 0.019796134506459468,\n    \"system\": 0.016471575,\n    \"time\": 1.294644596505,\n    \"user\": 1.260764665\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"max\": 1.305461515505,\n    \"mean\": 1.285040883905,\n    \"median\": 1.290718452505,\n    \"message\": \"Homor --width argument\\n\",\n    \"min\": 1.253247793505,\n    \"stddev\": 0.019796134506459468,\n    \"system\": 0.016471575,\n    \"time\": 1.253247793505,\n    \"user\": 1.260764665\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"max\": 1.612212336845,\n    \"mean\": 1.5747616346450002,\n    \"median\": 1.5811417658450002,\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"min\": 1.513014643845,\n    \"stddev\": 0.03928807715934216,\n    \"system\": 0.01923357,\n    \"time\": 1.612212336845,\n    \"user\": 1.54502618\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"max\": 1.612212336845,\n    \"mean\": 1.5747616346450002,\n    \"median\": 1.5811417658450002,\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"min\": 1.513014643845,\n    \"stddev\": 0.03928807715934216,\n    \"system\": 0.01923357,\n    \"time\": 1.6031846258450002,\n    \"user\": 1.54502618\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"max\": 1.612212336845,\n    \"mean\": 1.5747616346450002,\n    \"median\": 1.5811417658450002,\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"min\": 1.513014643845,\n    \"stddev\": 0.03928807715934216,\n    \"system\": 0.01923357,\n    \"time\": 1.5642548008450001,\n    \"user\": 1.54502618\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"max\": 1.612212336845,\n    \"mean\": 1.5747616346450002,\n    \"median\": 1.5811417658450002,\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"min\": 1.513014643845,\n    \"stddev\": 0.03928807715934216,\n    \"system\": 0.01923357,\n    \"time\": 1.513014643845,\n    \"user\": 1.54502618\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"max\": 1.612212336845,\n    \"mean\": 1.5747616346450002,\n    \"median\": 1.5811417658450002,\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"min\": 1.513014643845,\n    \"stddev\": 0.03928807715934216,\n    \"system\": 0.01923357,\n    \"time\": 1.5811417658450002,\n    \"user\": 1.54502618\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"max\": 1.80189388135,\n    \"mean\": 1.65032888555,\n    \"median\": 1.62032018535,\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"min\": 1.59262242235,\n    \"stddev\": 0.08576499014911297,\n    \"system\": 0.02411945,\n    \"time\": 1.62032018535,\n    \"user\": 1.60673563\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"max\": 1.80189388135,\n    \"mean\": 1.65032888555,\n    \"median\": 1.62032018535,\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"min\": 1.59262242235,\n    \"stddev\": 0.08576499014911297,\n    \"system\": 0.02411945,\n    \"time\": 1.62793359835,\n    \"user\": 1.60673563\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"max\": 1.80189388135,\n    \"mean\": 1.65032888555,\n    \"median\": 1.62032018535,\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"min\": 1.59262242235,\n    \"stddev\": 0.08576499014911297,\n    \"system\": 0.02411945,\n    \"time\": 1.80189388135,\n    \"user\": 1.60673563\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"max\": 1.80189388135,\n    \"mean\": 1.65032888555,\n    \"median\": 1.62032018535,\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"min\": 1.59262242235,\n    \"stddev\": 0.08576499014911297,\n    \"system\": 0.02411945,\n    \"time\": 1.59262242235,\n    \"user\": 1.60673563\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"max\": 1.80189388135,\n    \"mean\": 1.65032888555,\n    \"median\": 1.62032018535,\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"min\": 1.59262242235,\n    \"stddev\": 0.08576499014911297,\n    \"system\": 0.02411945,\n    \"time\": 1.60887434035,\n    \"user\": 1.60673563\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"max\": 1.60165905216,\n    \"mean\": 1.54501278096,\n    \"median\": 1.53205015416,\n    \"message\": \"Parse color arguments\\n\",\n    \"min\": 1.49818612816,\n    \"stddev\": 0.04532971353533284,\n    \"system\": 0.017451574999999997,\n    \"time\": 1.58294791616,\n    \"user\": 1.51949468\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"max\": 1.60165905216,\n    \"mean\": 1.54501278096,\n    \"median\": 1.53205015416,\n    \"message\": \"Parse color arguments\\n\",\n    \"min\": 1.49818612816,\n    \"stddev\": 0.04532971353533284,\n    \"system\": 0.017451574999999997,\n    \"time\": 1.49818612816,\n    \"user\": 1.51949468\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"max\": 1.60165905216,\n    \"mean\": 1.54501278096,\n    \"median\": 1.53205015416,\n    \"message\": \"Parse color arguments\\n\",\n    \"min\": 1.49818612816,\n    \"stddev\": 0.04532971353533284,\n    \"system\": 0.017451574999999997,\n    \"time\": 1.53205015416,\n    \"user\": 1.51949468\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"max\": 1.60165905216,\n    \"mean\": 1.54501278096,\n    \"median\": 1.53205015416,\n    \"message\": \"Parse color arguments\\n\",\n    \"min\": 1.49818612816,\n    \"stddev\": 0.04532971353533284,\n    \"system\": 0.017451574999999997,\n    \"time\": 1.5102206541599998,\n    \"user\": 1.51949468\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"max\": 1.60165905216,\n    \"mean\": 1.54501278096,\n    \"median\": 1.53205015416,\n    \"message\": \"Parse color arguments\\n\",\n    \"min\": 1.49818612816,\n    \"stddev\": 0.04532971353533284,\n    \"system\": 0.017451574999999997,\n    \"time\": 1.60165905216,\n    \"user\": 1.51949468\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"max\": 1.3426381814100001,\n    \"mean\": 1.31205006881,\n    \"median\": 1.30963073141,\n    \"message\": \"Help text and README\\n\",\n    \"min\": 1.2845426854100002,\n    \"stddev\": 0.02067991013278509,\n    \"system\": 0.0178275,\n    \"time\": 1.3092420714100002,\n    \"user\": 1.287438375\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"max\": 1.3426381814100001,\n    \"mean\": 1.31205006881,\n    \"median\": 1.30963073141,\n    \"message\": \"Help text and README\\n\",\n    \"min\": 1.2845426854100002,\n    \"stddev\": 0.02067991013278509,\n    \"system\": 0.0178275,\n    \"time\": 1.3426381814100001,\n    \"user\": 1.287438375\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"max\": 1.3426381814100001,\n    \"mean\": 1.31205006881,\n    \"median\": 1.30963073141,\n    \"message\": \"Help text and README\\n\",\n    \"min\": 1.2845426854100002,\n    \"stddev\": 0.02067991013278509,\n    \"system\": 0.0178275,\n    \"time\": 1.2845426854100002,\n    \"user\": 1.287438375\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"max\": 1.3426381814100001,\n    \"mean\": 1.31205006881,\n    \"median\": 1.30963073141,\n    \"message\": \"Help text and README\\n\",\n    \"min\": 1.2845426854100002,\n    \"stddev\": 0.02067991013278509,\n    \"system\": 0.0178275,\n    \"time\": 1.30963073141,\n    \"user\": 1.287438375\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"max\": 1.3426381814100001,\n    \"mean\": 1.31205006881,\n    \"median\": 1.30963073141,\n    \"message\": \"Help text and README\\n\",\n    \"min\": 1.2845426854100002,\n    \"stddev\": 0.02067991013278509,\n    \"system\": 0.0178275,\n    \"time\": 1.3141966744100002,\n    \"user\": 1.287438375\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"max\": 1.3863121131,\n    \"mean\": 1.3296589065,\n    \"median\": 1.3250017791,\n    \"message\": \"README\\n\",\n    \"min\": 1.2945990211,\n    \"stddev\": 0.034577927968874766,\n    \"system\": 0.01982588,\n    \"time\": 1.3863121131,\n    \"user\": 1.2990884950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"max\": 1.3863121131,\n    \"mean\": 1.3296589065,\n    \"median\": 1.3250017791,\n    \"message\": \"README\\n\",\n    \"min\": 1.2945990211,\n    \"stddev\": 0.034577927968874766,\n    \"system\": 0.01982588,\n    \"time\": 1.3250017791,\n    \"user\": 1.2990884950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"max\": 1.3863121131,\n    \"mean\": 1.3296589065,\n    \"median\": 1.3250017791,\n    \"message\": \"README\\n\",\n    \"min\": 1.2945990211,\n    \"stddev\": 0.034577927968874766,\n    \"system\": 0.01982588,\n    \"time\": 1.3117397551,\n    \"user\": 1.2990884950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"max\": 1.3863121131,\n    \"mean\": 1.3296589065,\n    \"median\": 1.3250017791,\n    \"message\": \"README\\n\",\n    \"min\": 1.2945990211,\n    \"stddev\": 0.034577927968874766,\n    \"system\": 0.01982588,\n    \"time\": 1.3306418641,\n    \"user\": 1.2990884950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"max\": 1.3863121131,\n    \"mean\": 1.3296589065,\n    \"median\": 1.3250017791,\n    \"message\": \"README\\n\",\n    \"min\": 1.2945990211,\n    \"stddev\": 0.034577927968874766,\n    \"system\": 0.01982588,\n    \"time\": 1.2945990211,\n    \"user\": 1.2990884950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"max\": 1.6808073530999998,\n    \"mean\": 1.3749284774999997,\n    \"median\": 1.2821008410999999,\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"min\": 1.2786900431,\n    \"stddev\": 0.17396015650403934,\n    \"system\": 0.02072697,\n    \"time\": 1.2786900431,\n    \"user\": 1.333761345\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"max\": 1.6808073530999998,\n    \"mean\": 1.3749284774999997,\n    \"median\": 1.2821008410999999,\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"min\": 1.2786900431,\n    \"stddev\": 0.17396015650403934,\n    \"system\": 0.02072697,\n    \"time\": 1.2821008410999999,\n    \"user\": 1.333761345\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"max\": 1.6808073530999998,\n    \"mean\": 1.3749284774999997,\n    \"median\": 1.2821008410999999,\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"min\": 1.2786900431,\n    \"stddev\": 0.17396015650403934,\n    \"system\": 0.02072697,\n    \"time\": 1.2792042800999999,\n    \"user\": 1.333761345\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"max\": 1.6808073530999998,\n    \"mean\": 1.3749284774999997,\n    \"median\": 1.2821008410999999,\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"min\": 1.2786900431,\n    \"stddev\": 0.17396015650403934,\n    \"system\": 0.02072697,\n    \"time\": 1.3538398701,\n    \"user\": 1.333761345\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"max\": 1.6808073530999998,\n    \"mean\": 1.3749284774999997,\n    \"median\": 1.2821008410999999,\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"min\": 1.2786900431,\n    \"stddev\": 0.17396015650403934,\n    \"system\": 0.02072697,\n    \"time\": 1.6808073530999998,\n    \"user\": 1.333761345\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"max\": 1.2866685717800002,\n    \"mean\": 1.2779332081800003,\n    \"median\": 1.2784649567800002,\n    \"message\": \"Add image\\n\",\n    \"min\": 1.27174087978,\n    \"stddev\": 0.005786918041309367,\n    \"system\": 0.01474634,\n    \"time\": 1.27174087978,\n    \"user\": 1.2585459049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"max\": 1.2866685717800002,\n    \"mean\": 1.2779332081800003,\n    \"median\": 1.2784649567800002,\n    \"message\": \"Add image\\n\",\n    \"min\": 1.27174087978,\n    \"stddev\": 0.005786918041309367,\n    \"system\": 0.01474634,\n    \"time\": 1.2866685717800002,\n    \"user\": 1.2585459049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"max\": 1.2866685717800002,\n    \"mean\": 1.2779332081800003,\n    \"median\": 1.2784649567800002,\n    \"message\": \"Add image\\n\",\n    \"min\": 1.27174087978,\n    \"stddev\": 0.005786918041309367,\n    \"system\": 0.01474634,\n    \"time\": 1.27372259078,\n    \"user\": 1.2585459049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"max\": 1.2866685717800002,\n    \"mean\": 1.2779332081800003,\n    \"median\": 1.2784649567800002,\n    \"message\": \"Add image\\n\",\n    \"min\": 1.27174087978,\n    \"stddev\": 0.005786918041309367,\n    \"system\": 0.01474634,\n    \"time\": 1.2790690417800001,\n    \"user\": 1.2585459049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"max\": 1.2866685717800002,\n    \"mean\": 1.2779332081800003,\n    \"median\": 1.2784649567800002,\n    \"message\": \"Add image\\n\",\n    \"min\": 1.27174087978,\n    \"stddev\": 0.005786918041309367,\n    \"system\": 0.01474634,\n    \"time\": 1.2784649567800002,\n    \"user\": 1.2585459049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"max\": 1.297424234495,\n    \"mean\": 1.280315403695,\n    \"median\": 1.282443284495,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.267497346495,\n    \"stddev\": 0.011644475123727821,\n    \"system\": 0.014894545,\n    \"time\": 1.297424234495,\n    \"user\": 1.26065747\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"max\": 1.297424234495,\n    \"mean\": 1.280315403695,\n    \"median\": 1.282443284495,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.267497346495,\n    \"stddev\": 0.011644475123727821,\n    \"system\": 0.014894545,\n    \"time\": 1.267497346495,\n    \"user\": 1.26065747\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"max\": 1.297424234495,\n    \"mean\": 1.280315403695,\n    \"median\": 1.282443284495,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.267497346495,\n    \"stddev\": 0.011644475123727821,\n    \"system\": 0.014894545,\n    \"time\": 1.282443284495,\n    \"user\": 1.26065747\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"max\": 1.297424234495,\n    \"mean\": 1.280315403695,\n    \"median\": 1.282443284495,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.267497346495,\n    \"stddev\": 0.011644475123727821,\n    \"system\": 0.014894545,\n    \"time\": 1.271618222495,\n    \"user\": 1.26065747\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"max\": 1.297424234495,\n    \"mean\": 1.280315403695,\n    \"median\": 1.282443284495,\n    \"message\": \"Edit README\\n\",\n    \"min\": 1.267497346495,\n    \"stddev\": 0.011644475123727821,\n    \"system\": 0.014894545,\n    \"time\": 1.2825939304949998,\n    \"user\": 1.26065747\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"max\": 1.29233126235,\n    \"mean\": 1.27775266735,\n    \"median\": 1.27690597735,\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"min\": 1.26311245035,\n    \"stddev\": 0.011070169851415738,\n    \"system\": 0.014903449999999999,\n    \"time\": 1.29233126235,\n    \"user\": 1.25479805\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"max\": 1.29233126235,\n    \"mean\": 1.27775266735,\n    \"median\": 1.27690597735,\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"min\": 1.26311245035,\n    \"stddev\": 0.011070169851415738,\n    \"system\": 0.014903449999999999,\n    \"time\": 1.27690597735,\n    \"user\": 1.25479805\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"max\": 1.29233126235,\n    \"mean\": 1.27775266735,\n    \"median\": 1.27690597735,\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"min\": 1.26311245035,\n    \"stddev\": 0.011070169851415738,\n    \"system\": 0.014903449999999999,\n    \"time\": 1.28378328535,\n    \"user\": 1.25479805\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"max\": 1.29233126235,\n    \"mean\": 1.27775266735,\n    \"median\": 1.27690597735,\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"min\": 1.26311245035,\n    \"stddev\": 0.011070169851415738,\n    \"system\": 0.014903449999999999,\n    \"time\": 1.26311245035,\n    \"user\": 1.25479805\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"max\": 1.29233126235,\n    \"mean\": 1.27775266735,\n    \"median\": 1.27690597735,\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"min\": 1.26311245035,\n    \"stddev\": 0.011070169851415738,\n    \"system\": 0.014903449999999999,\n    \"time\": 1.27263036135,\n    \"user\": 1.25479805\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"max\": 1.29440434944,\n    \"mean\": 1.2771002456399998,\n    \"median\": 1.27169981944,\n    \"message\": \"Tweak usage text\\n\",\n    \"min\": 1.2620485094399998,\n    \"stddev\": 0.013465574453355082,\n    \"system\": 0.01502566,\n    \"time\": 1.28776218644,\n    \"user\": 1.2554261899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"max\": 1.29440434944,\n    \"mean\": 1.2771002456399998,\n    \"median\": 1.27169981944,\n    \"message\": \"Tweak usage text\\n\",\n    \"min\": 1.2620485094399998,\n    \"stddev\": 0.013465574453355082,\n    \"system\": 0.01502566,\n    \"time\": 1.27169981944,\n    \"user\": 1.2554261899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"max\": 1.29440434944,\n    \"mean\": 1.2771002456399998,\n    \"median\": 1.27169981944,\n    \"message\": \"Tweak usage text\\n\",\n    \"min\": 1.2620485094399998,\n    \"stddev\": 0.013465574453355082,\n    \"system\": 0.01502566,\n    \"time\": 1.26958636344,\n    \"user\": 1.2554261899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"max\": 1.29440434944,\n    \"mean\": 1.2771002456399998,\n    \"median\": 1.27169981944,\n    \"message\": \"Tweak usage text\\n\",\n    \"min\": 1.2620485094399998,\n    \"stddev\": 0.013465574453355082,\n    \"system\": 0.01502566,\n    \"time\": 1.29440434944,\n    \"user\": 1.2554261899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"max\": 1.29440434944,\n    \"mean\": 1.2771002456399998,\n    \"median\": 1.27169981944,\n    \"message\": \"Tweak usage text\\n\",\n    \"min\": 1.2620485094399998,\n    \"stddev\": 0.013465574453355082,\n    \"system\": 0.01502566,\n    \"time\": 1.2620485094399998,\n    \"user\": 1.2554261899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"max\": 1.30444091234,\n    \"mean\": 1.2856398071400001,\n    \"median\": 1.28004841034,\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"min\": 1.27125952534,\n    \"stddev\": 0.013120166043817171,\n    \"system\": 0.01518773,\n    \"time\": 1.30444091234,\n    \"user\": 1.2621922749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"max\": 1.30444091234,\n    \"mean\": 1.2856398071400001,\n    \"median\": 1.28004841034,\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"min\": 1.27125952534,\n    \"stddev\": 0.013120166043817171,\n    \"system\": 0.01518773,\n    \"time\": 1.28004841034,\n    \"user\": 1.2621922749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"max\": 1.30444091234,\n    \"mean\": 1.2856398071400001,\n    \"median\": 1.28004841034,\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"min\": 1.27125952534,\n    \"stddev\": 0.013120166043817171,\n    \"system\": 0.01518773,\n    \"time\": 1.27125952534,\n    \"user\": 1.2621922749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"max\": 1.30444091234,\n    \"mean\": 1.2856398071400001,\n    \"median\": 1.28004841034,\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"min\": 1.27125952534,\n    \"stddev\": 0.013120166043817171,\n    \"system\": 0.01518773,\n    \"time\": 1.27928491634,\n    \"user\": 1.2621922749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"max\": 1.30444091234,\n    \"mean\": 1.2856398071400001,\n    \"median\": 1.28004841034,\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"min\": 1.27125952534,\n    \"stddev\": 0.013120166043817171,\n    \"system\": 0.01518773,\n    \"time\": 1.29316527134,\n    \"user\": 1.2621922749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"max\": 1.3936729904,\n    \"mean\": 1.3020501364000001,\n    \"median\": 1.2761507644,\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"min\": 1.2675087224000001,\n    \"stddev\": 0.05255562525589456,\n    \"system\": 0.017037180000000002,\n    \"time\": 1.2987794144,\n    \"user\": 1.274554555\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"max\": 1.3936729904,\n    \"mean\": 1.3020501364000001,\n    \"median\": 1.2761507644,\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"min\": 1.2675087224000001,\n    \"stddev\": 0.05255562525589456,\n    \"system\": 0.017037180000000002,\n    \"time\": 1.2741387904,\n    \"user\": 1.274554555\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"max\": 1.3936729904,\n    \"mean\": 1.3020501364000001,\n    \"median\": 1.2761507644,\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"min\": 1.2675087224000001,\n    \"stddev\": 0.05255562525589456,\n    \"system\": 0.017037180000000002,\n    \"time\": 1.3936729904,\n    \"user\": 1.274554555\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"max\": 1.3936729904,\n    \"mean\": 1.3020501364000001,\n    \"median\": 1.2761507644,\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"min\": 1.2675087224000001,\n    \"stddev\": 0.05255562525589456,\n    \"system\": 0.017037180000000002,\n    \"time\": 1.2761507644,\n    \"user\": 1.274554555\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"max\": 1.3936729904,\n    \"mean\": 1.3020501364000001,\n    \"median\": 1.2761507644,\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"min\": 1.2675087224000001,\n    \"stddev\": 0.05255562525589456,\n    \"system\": 0.017037180000000002,\n    \"time\": 1.2675087224000001,\n    \"user\": 1.274554555\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"max\": 1.293794344645,\n    \"mean\": 1.2747414272450002,\n    \"median\": 1.268885955645,\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"min\": 1.266144561645,\n    \"stddev\": 0.011781751108419874,\n    \"system\": 0.015095309999999997,\n    \"time\": 1.293794344645,\n    \"user\": 1.251573945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"max\": 1.293794344645,\n    \"mean\": 1.2747414272450002,\n    \"median\": 1.268885955645,\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"min\": 1.266144561645,\n    \"stddev\": 0.011781751108419874,\n    \"system\": 0.015095309999999997,\n    \"time\": 1.278501238645,\n    \"user\": 1.251573945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"max\": 1.293794344645,\n    \"mean\": 1.2747414272450002,\n    \"median\": 1.268885955645,\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"min\": 1.266144561645,\n    \"stddev\": 0.011781751108419874,\n    \"system\": 0.015095309999999997,\n    \"time\": 1.266381035645,\n    \"user\": 1.251573945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"max\": 1.293794344645,\n    \"mean\": 1.2747414272450002,\n    \"median\": 1.268885955645,\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"min\": 1.266144561645,\n    \"stddev\": 0.011781751108419874,\n    \"system\": 0.015095309999999997,\n    \"time\": 1.266144561645,\n    \"user\": 1.251573945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"max\": 1.293794344645,\n    \"mean\": 1.2747414272450002,\n    \"median\": 1.268885955645,\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"min\": 1.266144561645,\n    \"stddev\": 0.011781751108419874,\n    \"system\": 0.015095309999999997,\n    \"time\": 1.268885955645,\n    \"user\": 1.251573945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"max\": 1.294440167975,\n    \"mean\": 1.275354452175,\n    \"median\": 1.268429521975,\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"min\": 1.262564169975,\n    \"stddev\": 0.013657124384161433,\n    \"system\": 0.01541032,\n    \"time\": 1.294440167975,\n    \"user\": 1.2522484249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"max\": 1.294440167975,\n    \"mean\": 1.275354452175,\n    \"median\": 1.268429521975,\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"min\": 1.262564169975,\n    \"stddev\": 0.013657124384161433,\n    \"system\": 0.01541032,\n    \"time\": 1.268429521975,\n    \"user\": 1.2522484249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"max\": 1.294440167975,\n    \"mean\": 1.275354452175,\n    \"median\": 1.268429521975,\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"min\": 1.262564169975,\n    \"stddev\": 0.013657124384161433,\n    \"system\": 0.01541032,\n    \"time\": 1.262564169975,\n    \"user\": 1.2522484249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"max\": 1.294440167975,\n    \"mean\": 1.275354452175,\n    \"median\": 1.268429521975,\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"min\": 1.262564169975,\n    \"stddev\": 0.013657124384161433,\n    \"system\": 0.01541032,\n    \"time\": 1.284890358975,\n    \"user\": 1.2522484249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"max\": 1.294440167975,\n    \"mean\": 1.275354452175,\n    \"median\": 1.268429521975,\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"min\": 1.262564169975,\n    \"stddev\": 0.013657124384161433,\n    \"system\": 0.01541032,\n    \"time\": 1.266448041975,\n    \"user\": 1.2522484249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"max\": 1.288220240355,\n    \"mean\": 1.2813152925550002,\n    \"median\": 1.286933240355,\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"min\": 1.268575328355,\n    \"stddev\": 0.00912047523629887,\n    \"system\": 0.01507058,\n    \"time\": 1.286933240355,\n    \"user\": 1.25804174\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"max\": 1.288220240355,\n    \"mean\": 1.2813152925550002,\n    \"median\": 1.286933240355,\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"min\": 1.268575328355,\n    \"stddev\": 0.00912047523629887,\n    \"system\": 0.01507058,\n    \"time\": 1.2881752113550002,\n    \"user\": 1.25804174\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"max\": 1.288220240355,\n    \"mean\": 1.2813152925550002,\n    \"median\": 1.286933240355,\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"min\": 1.268575328355,\n    \"stddev\": 0.00912047523629887,\n    \"system\": 0.01507058,\n    \"time\": 1.2746724423550002,\n    \"user\": 1.25804174\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"max\": 1.288220240355,\n    \"mean\": 1.2813152925550002,\n    \"median\": 1.286933240355,\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"min\": 1.268575328355,\n    \"stddev\": 0.00912047523629887,\n    \"system\": 0.01507058,\n    \"time\": 1.288220240355,\n    \"user\": 1.25804174\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"max\": 1.288220240355,\n    \"mean\": 1.2813152925550002,\n    \"median\": 1.286933240355,\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"min\": 1.268575328355,\n    \"stddev\": 0.00912047523629887,\n    \"system\": 0.01507058,\n    \"time\": 1.268575328355,\n    \"user\": 1.25804174\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"max\": 1.321224358065,\n    \"mean\": 1.2851293200649998,\n    \"median\": 1.275736022065,\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"min\": 1.2675766500649999,\n    \"stddev\": 0.021152038542406774,\n    \"system\": 0.015032614999999996,\n    \"time\": 1.321224358065,\n    \"user\": 1.2620781500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"max\": 1.321224358065,\n    \"mean\": 1.2851293200649998,\n    \"median\": 1.275736022065,\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"min\": 1.2675766500649999,\n    \"stddev\": 0.021152038542406774,\n    \"system\": 0.015032614999999996,\n    \"time\": 1.275736022065,\n    \"user\": 1.2620781500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"max\": 1.321224358065,\n    \"mean\": 1.2851293200649998,\n    \"median\": 1.275736022065,\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"min\": 1.2675766500649999,\n    \"stddev\": 0.021152038542406774,\n    \"system\": 0.015032614999999996,\n    \"time\": 1.2675766500649999,\n    \"user\": 1.2620781500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"max\": 1.321224358065,\n    \"mean\": 1.2851293200649998,\n    \"median\": 1.275736022065,\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"min\": 1.2675766500649999,\n    \"stddev\": 0.021152038542406774,\n    \"system\": 0.015032614999999996,\n    \"time\": 1.285484296065,\n    \"user\": 1.2620781500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"max\": 1.321224358065,\n    \"mean\": 1.2851293200649998,\n    \"median\": 1.275736022065,\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"min\": 1.2675766500649999,\n    \"stddev\": 0.021152038542406774,\n    \"system\": 0.015032614999999996,\n    \"time\": 1.275625274065,\n    \"user\": 1.2620781500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"max\": 1.2891691977950002,\n    \"mean\": 1.274292505595,\n    \"median\": 1.2772552247950002,\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"min\": 1.256388796795,\n    \"stddev\": 0.01248043207451188,\n    \"system\": 0.015243154999999998,\n    \"time\": 1.2891691977950002,\n    \"user\": 1.2524620599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"max\": 1.2891691977950002,\n    \"mean\": 1.274292505595,\n    \"median\": 1.2772552247950002,\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"min\": 1.256388796795,\n    \"stddev\": 0.01248043207451188,\n    \"system\": 0.015243154999999998,\n    \"time\": 1.2772552247950002,\n    \"user\": 1.2524620599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"max\": 1.2891691977950002,\n    \"mean\": 1.274292505595,\n    \"median\": 1.2772552247950002,\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"min\": 1.256388796795,\n    \"stddev\": 0.01248043207451188,\n    \"system\": 0.015243154999999998,\n    \"time\": 1.2803415557950002,\n    \"user\": 1.2524620599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"max\": 1.2891691977950002,\n    \"mean\": 1.274292505595,\n    \"median\": 1.2772552247950002,\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"min\": 1.256388796795,\n    \"stddev\": 0.01248043207451188,\n    \"system\": 0.015243154999999998,\n    \"time\": 1.2683077527950002,\n    \"user\": 1.2524620599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"max\": 1.2891691977950002,\n    \"mean\": 1.274292505595,\n    \"median\": 1.2772552247950002,\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"min\": 1.256388796795,\n    \"stddev\": 0.01248043207451188,\n    \"system\": 0.015243154999999998,\n    \"time\": 1.256388796795,\n    \"user\": 1.2524620599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"max\": 1.3096769242550002,\n    \"mean\": 1.2897920202550002,\n    \"median\": 1.301580208255,\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"min\": 1.265331727255,\n    \"stddev\": 0.020631308672577224,\n    \"system\": 0.015528465,\n    \"time\": 1.3096769242550002,\n    \"user\": 1.2673285399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"max\": 1.3096769242550002,\n    \"mean\": 1.2897920202550002,\n    \"median\": 1.301580208255,\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"min\": 1.265331727255,\n    \"stddev\": 0.020631308672577224,\n    \"system\": 0.015528465,\n    \"time\": 1.265331727255,\n    \"user\": 1.2673285399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"max\": 1.3096769242550002,\n    \"mean\": 1.2897920202550002,\n    \"median\": 1.301580208255,\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"min\": 1.265331727255,\n    \"stddev\": 0.020631308672577224,\n    \"system\": 0.015528465,\n    \"time\": 1.3026767492550002,\n    \"user\": 1.2673285399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"max\": 1.3096769242550002,\n    \"mean\": 1.2897920202550002,\n    \"median\": 1.301580208255,\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"min\": 1.265331727255,\n    \"stddev\": 0.020631308672577224,\n    \"system\": 0.015528465,\n    \"time\": 1.2696944922550002,\n    \"user\": 1.2673285399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"max\": 1.3096769242550002,\n    \"mean\": 1.2897920202550002,\n    \"median\": 1.301580208255,\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"min\": 1.265331727255,\n    \"stddev\": 0.020631308672577224,\n    \"system\": 0.015528465,\n    \"time\": 1.301580208255,\n    \"user\": 1.2673285399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"max\": 1.336511504885,\n    \"mean\": 1.291186528285,\n    \"median\": 1.2776847658850001,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.268659789885,\n    \"stddev\": 0.028202179772142375,\n    \"system\": 0.016467515,\n    \"time\": 1.336511504885,\n    \"user\": 1.2665527099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"max\": 1.336511504885,\n    \"mean\": 1.291186528285,\n    \"median\": 1.2776847658850001,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.268659789885,\n    \"stddev\": 0.028202179772142375,\n    \"system\": 0.016467515,\n    \"time\": 1.272500225885,\n    \"user\": 1.2665527099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"max\": 1.336511504885,\n    \"mean\": 1.291186528285,\n    \"median\": 1.2776847658850001,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.268659789885,\n    \"stddev\": 0.028202179772142375,\n    \"system\": 0.016467515,\n    \"time\": 1.2776847658850001,\n    \"user\": 1.2665527099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"max\": 1.336511504885,\n    \"mean\": 1.291186528285,\n    \"median\": 1.2776847658850001,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.268659789885,\n    \"stddev\": 0.028202179772142375,\n    \"system\": 0.016467515,\n    \"time\": 1.268659789885,\n    \"user\": 1.2665527099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"max\": 1.336511504885,\n    \"mean\": 1.291186528285,\n    \"median\": 1.2776847658850001,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.268659789885,\n    \"stddev\": 0.028202179772142375,\n    \"system\": 0.016467515,\n    \"time\": 1.300576354885,\n    \"user\": 1.2665527099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"max\": 1.41159171114,\n    \"mean\": 1.36022685294,\n    \"median\": 1.3533561231400002,\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"min\": 1.3063839941400002,\n    \"stddev\": 0.03918652772560552,\n    \"system\": 0.017165385,\n    \"time\": 1.3809328651400001,\n    \"user\": 1.332834775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"max\": 1.41159171114,\n    \"mean\": 1.36022685294,\n    \"median\": 1.3533561231400002,\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"min\": 1.3063839941400002,\n    \"stddev\": 0.03918652772560552,\n    \"system\": 0.017165385,\n    \"time\": 1.3063839941400002,\n    \"user\": 1.332834775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"max\": 1.41159171114,\n    \"mean\": 1.36022685294,\n    \"median\": 1.3533561231400002,\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"min\": 1.3063839941400002,\n    \"stddev\": 0.03918652772560552,\n    \"system\": 0.017165385,\n    \"time\": 1.3533561231400002,\n    \"user\": 1.332834775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"max\": 1.41159171114,\n    \"mean\": 1.36022685294,\n    \"median\": 1.3533561231400002,\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"min\": 1.3063839941400002,\n    \"stddev\": 0.03918652772560552,\n    \"system\": 0.017165385,\n    \"time\": 1.41159171114,\n    \"user\": 1.332834775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"max\": 1.41159171114,\n    \"mean\": 1.36022685294,\n    \"median\": 1.3533561231400002,\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"min\": 1.3063839941400002,\n    \"stddev\": 0.03918652772560552,\n    \"system\": 0.017165385,\n    \"time\": 1.34886957114,\n    \"user\": 1.332834775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"max\": 1.378153352095,\n    \"mean\": 1.340544501495,\n    \"median\": 1.335233930095,\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"min\": 1.3131449880950001,\n    \"stddev\": 0.023659169418507278,\n    \"system\": 0.016566980000000002,\n    \"time\": 1.335233930095,\n    \"user\": 1.31575625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"max\": 1.378153352095,\n    \"mean\": 1.340544501495,\n    \"median\": 1.335233930095,\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"min\": 1.3131449880950001,\n    \"stddev\": 0.023659169418507278,\n    \"system\": 0.016566980000000002,\n    \"time\": 1.3131449880950001,\n    \"user\": 1.31575625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"max\": 1.378153352095,\n    \"mean\": 1.340544501495,\n    \"median\": 1.335233930095,\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"min\": 1.3131449880950001,\n    \"stddev\": 0.023659169418507278,\n    \"system\": 0.016566980000000002,\n    \"time\": 1.333992370095,\n    \"user\": 1.31575625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"max\": 1.378153352095,\n    \"mean\": 1.340544501495,\n    \"median\": 1.335233930095,\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"min\": 1.3131449880950001,\n    \"stddev\": 0.023659169418507278,\n    \"system\": 0.016566980000000002,\n    \"time\": 1.378153352095,\n    \"user\": 1.31575625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"max\": 1.378153352095,\n    \"mean\": 1.340544501495,\n    \"median\": 1.335233930095,\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"min\": 1.3131449880950001,\n    \"stddev\": 0.023659169418507278,\n    \"system\": 0.016566980000000002,\n    \"time\": 1.342197867095,\n    \"user\": 1.31575625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"max\": 1.36138520799,\n    \"mean\": 1.34820111899,\n    \"median\": 1.35739836799,\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"min\": 1.3247254769899999,\n    \"stddev\": 0.016035569724771985,\n    \"system\": 0.016874325000000003,\n    \"time\": 1.36138520799,\n    \"user\": 1.326389235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"max\": 1.36138520799,\n    \"mean\": 1.34820111899,\n    \"median\": 1.35739836799,\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"min\": 1.3247254769899999,\n    \"stddev\": 0.016035569724771985,\n    \"system\": 0.016874325000000003,\n    \"time\": 1.3247254769899999,\n    \"user\": 1.326389235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"max\": 1.36138520799,\n    \"mean\": 1.34820111899,\n    \"median\": 1.35739836799,\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"min\": 1.3247254769899999,\n    \"stddev\": 0.016035569724771985,\n    \"system\": 0.016874325000000003,\n    \"time\": 1.35739836799,\n    \"user\": 1.326389235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"max\": 1.36138520799,\n    \"mean\": 1.34820111899,\n    \"median\": 1.35739836799,\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"min\": 1.3247254769899999,\n    \"stddev\": 0.016035569724771985,\n    \"system\": 0.016874325000000003,\n    \"time\": 1.3591992009899998,\n    \"user\": 1.326389235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"max\": 1.36138520799,\n    \"mean\": 1.34820111899,\n    \"median\": 1.35739836799,\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"min\": 1.3247254769899999,\n    \"stddev\": 0.016035569724771985,\n    \"system\": 0.016874325000000003,\n    \"time\": 1.3382973409899999,\n    \"user\": 1.326389235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"max\": 1.3641518882299999,\n    \"mean\": 1.34482926343,\n    \"median\": 1.3409564222300001,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.3329867442299999,\n    \"stddev\": 0.011814115035160718,\n    \"system\": 0.017293635,\n    \"time\": 1.3641518882299999,\n    \"user\": 1.319514365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"max\": 1.3641518882299999,\n    \"mean\": 1.34482926343,\n    \"median\": 1.3409564222300001,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.3329867442299999,\n    \"stddev\": 0.011814115035160718,\n    \"system\": 0.017293635,\n    \"time\": 1.34642997323,\n    \"user\": 1.319514365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"max\": 1.3641518882299999,\n    \"mean\": 1.34482926343,\n    \"median\": 1.3409564222300001,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.3329867442299999,\n    \"stddev\": 0.011814115035160718,\n    \"system\": 0.017293635,\n    \"time\": 1.3409564222300001,\n    \"user\": 1.319514365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"max\": 1.3641518882299999,\n    \"mean\": 1.34482926343,\n    \"median\": 1.3409564222300001,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.3329867442299999,\n    \"stddev\": 0.011814115035160718,\n    \"system\": 0.017293635,\n    \"time\": 1.3329867442299999,\n    \"user\": 1.319514365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"max\": 1.3641518882299999,\n    \"mean\": 1.34482926343,\n    \"median\": 1.3409564222300001,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.3329867442299999,\n    \"stddev\": 0.011814115035160718,\n    \"system\": 0.017293635,\n    \"time\": 1.33962128923,\n    \"user\": 1.319514365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"max\": 1.3814411425050002,\n    \"mean\": 1.344765989505,\n    \"median\": 1.339584656505,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.3249829025050002,\n    \"stddev\": 0.02199391621350377,\n    \"system\": 0.016950095,\n    \"time\": 1.3814411425050002,\n    \"user\": 1.3190700400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"max\": 1.3814411425050002,\n    \"mean\": 1.344765989505,\n    \"median\": 1.339584656505,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.3249829025050002,\n    \"stddev\": 0.02199391621350377,\n    \"system\": 0.016950095,\n    \"time\": 1.3249829025050002,\n    \"user\": 1.3190700400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"max\": 1.3814411425050002,\n    \"mean\": 1.344765989505,\n    \"median\": 1.339584656505,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.3249829025050002,\n    \"stddev\": 0.02199391621350377,\n    \"system\": 0.016950095,\n    \"time\": 1.339584656505,\n    \"user\": 1.3190700400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"max\": 1.3814411425050002,\n    \"mean\": 1.344765989505,\n    \"median\": 1.339584656505,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.3249829025050002,\n    \"stddev\": 0.02199391621350377,\n    \"system\": 0.016950095,\n    \"time\": 1.346089591505,\n    \"user\": 1.3190700400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"max\": 1.3814411425050002,\n    \"mean\": 1.344765989505,\n    \"median\": 1.339584656505,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.3249829025050002,\n    \"stddev\": 0.02199391621350377,\n    \"system\": 0.016950095,\n    \"time\": 1.3317316545050002,\n    \"user\": 1.3190700400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"max\": 1.384804539425,\n    \"mean\": 1.3567305332250001,\n    \"median\": 1.3459760624250001,\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"min\": 1.342849604425,\n    \"stddev\": 0.01806638781220703,\n    \"system\": 0.018324915000000004,\n    \"time\": 1.384804539425,\n    \"user\": 1.3296542999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"max\": 1.384804539425,\n    \"mean\": 1.3567305332250001,\n    \"median\": 1.3459760624250001,\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"min\": 1.342849604425,\n    \"stddev\": 0.01806638781220703,\n    \"system\": 0.018324915000000004,\n    \"time\": 1.344932122425,\n    \"user\": 1.3296542999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"max\": 1.384804539425,\n    \"mean\": 1.3567305332250001,\n    \"median\": 1.3459760624250001,\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"min\": 1.342849604425,\n    \"stddev\": 0.01806638781220703,\n    \"system\": 0.018324915000000004,\n    \"time\": 1.342849604425,\n    \"user\": 1.3296542999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"max\": 1.384804539425,\n    \"mean\": 1.3567305332250001,\n    \"median\": 1.3459760624250001,\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"min\": 1.342849604425,\n    \"stddev\": 0.01806638781220703,\n    \"system\": 0.018324915000000004,\n    \"time\": 1.365090337425,\n    \"user\": 1.3296542999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"max\": 1.384804539425,\n    \"mean\": 1.3567305332250001,\n    \"median\": 1.3459760624250001,\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"min\": 1.342849604425,\n    \"stddev\": 0.01806638781220703,\n    \"system\": 0.018324915000000004,\n    \"time\": 1.3459760624250001,\n    \"user\": 1.3296542999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"max\": 1.46529161114,\n    \"mean\": 1.39808501214,\n    \"median\": 1.38217831014,\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"min\": 1.35692647514,\n    \"stddev\": 0.04174295327863644,\n    \"system\": 0.019337765,\n    \"time\": 1.3779362401400002,\n    \"user\": 1.3684139599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"max\": 1.46529161114,\n    \"mean\": 1.39808501214,\n    \"median\": 1.38217831014,\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"min\": 1.35692647514,\n    \"stddev\": 0.04174295327863644,\n    \"system\": 0.019337765,\n    \"time\": 1.35692647514,\n    \"user\": 1.3684139599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"max\": 1.46529161114,\n    \"mean\": 1.39808501214,\n    \"median\": 1.38217831014,\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"min\": 1.35692647514,\n    \"stddev\": 0.04174295327863644,\n    \"system\": 0.019337765,\n    \"time\": 1.46529161114,\n    \"user\": 1.3684139599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"max\": 1.46529161114,\n    \"mean\": 1.39808501214,\n    \"median\": 1.38217831014,\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"min\": 1.35692647514,\n    \"stddev\": 0.04174295327863644,\n    \"system\": 0.019337765,\n    \"time\": 1.4080924241400001,\n    \"user\": 1.3684139599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"max\": 1.46529161114,\n    \"mean\": 1.39808501214,\n    \"median\": 1.38217831014,\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"min\": 1.35692647514,\n    \"stddev\": 0.04174295327863644,\n    \"system\": 0.019337765,\n    \"time\": 1.38217831014,\n    \"user\": 1.3684139599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"max\": 1.224540201345,\n    \"mean\": 1.071872251345,\n    \"median\": 1.030905722345,\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"min\": 1.010265563345,\n    \"stddev\": 0.08812781769100683,\n    \"system\": 0.02306776,\n    \"time\": 1.224540201345,\n    \"user\": 1.03038418\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"max\": 1.224540201345,\n    \"mean\": 1.071872251345,\n    \"median\": 1.030905722345,\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"min\": 1.010265563345,\n    \"stddev\": 0.08812781769100683,\n    \"system\": 0.02306776,\n    \"time\": 1.069520307345,\n    \"user\": 1.03038418\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"max\": 1.224540201345,\n    \"mean\": 1.071872251345,\n    \"median\": 1.030905722345,\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"min\": 1.010265563345,\n    \"stddev\": 0.08812781769100683,\n    \"system\": 0.02306776,\n    \"time\": 1.024129462345,\n    \"user\": 1.03038418\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"max\": 1.224540201345,\n    \"mean\": 1.071872251345,\n    \"median\": 1.030905722345,\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"min\": 1.010265563345,\n    \"stddev\": 0.08812781769100683,\n    \"system\": 0.02306776,\n    \"time\": 1.030905722345,\n    \"user\": 1.03038418\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"max\": 1.224540201345,\n    \"mean\": 1.071872251345,\n    \"median\": 1.030905722345,\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"min\": 1.010265563345,\n    \"stddev\": 0.08812781769100683,\n    \"system\": 0.02306776,\n    \"time\": 1.010265563345,\n    \"user\": 1.03038418\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"max\": 1.0955701889099998,\n    \"mean\": 1.0277467363099997,\n    \"median\": 1.00821994191,\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"min\": 1.00004683091,\n    \"stddev\": 0.04012141387133587,\n    \"system\": 0.019291720000000002,\n    \"time\": 1.00821994191,\n    \"user\": 0.9992601650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"max\": 1.0955701889099998,\n    \"mean\": 1.0277467363099997,\n    \"median\": 1.00821994191,\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"min\": 1.00004683091,\n    \"stddev\": 0.04012141387133587,\n    \"system\": 0.019291720000000002,\n    \"time\": 1.00198554791,\n    \"user\": 0.9992601650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"max\": 1.0955701889099998,\n    \"mean\": 1.0277467363099997,\n    \"median\": 1.00821994191,\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"min\": 1.00004683091,\n    \"stddev\": 0.04012141387133587,\n    \"system\": 0.019291720000000002,\n    \"time\": 1.0955701889099998,\n    \"user\": 0.9992601650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"max\": 1.0955701889099998,\n    \"mean\": 1.0277467363099997,\n    \"median\": 1.00821994191,\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"min\": 1.00004683091,\n    \"stddev\": 0.04012141387133587,\n    \"system\": 0.019291720000000002,\n    \"time\": 1.03291117191,\n    \"user\": 0.9992601650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"max\": 1.0955701889099998,\n    \"mean\": 1.0277467363099997,\n    \"median\": 1.00821994191,\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"min\": 1.00004683091,\n    \"stddev\": 0.04012141387133587,\n    \"system\": 0.019291720000000002,\n    \"time\": 1.00004683091,\n    \"user\": 0.9992601650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"max\": 1.1318666946,\n    \"mean\": 1.0497617706,\n    \"median\": 1.0343527825999999,\n    \"message\": \"Clean up\\n\",\n    \"min\": 0.9842224066,\n    \"stddev\": 0.05945290843343051,\n    \"system\": 0.020789735,\n    \"time\": 1.0870243406,\n    \"user\": 1.01780669\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"max\": 1.1318666946,\n    \"mean\": 1.0497617706,\n    \"median\": 1.0343527825999999,\n    \"message\": \"Clean up\\n\",\n    \"min\": 0.9842224066,\n    \"stddev\": 0.05945290843343051,\n    \"system\": 0.020789735,\n    \"time\": 1.1318666946,\n    \"user\": 1.01780669\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"max\": 1.1318666946,\n    \"mean\": 1.0497617706,\n    \"median\": 1.0343527825999999,\n    \"message\": \"Clean up\\n\",\n    \"min\": 0.9842224066,\n    \"stddev\": 0.05945290843343051,\n    \"system\": 0.020789735,\n    \"time\": 1.0113426285999998,\n    \"user\": 1.01780669\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"max\": 1.1318666946,\n    \"mean\": 1.0497617706,\n    \"median\": 1.0343527825999999,\n    \"message\": \"Clean up\\n\",\n    \"min\": 0.9842224066,\n    \"stddev\": 0.05945290843343051,\n    \"system\": 0.020789735,\n    \"time\": 0.9842224066,\n    \"user\": 1.01780669\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"max\": 1.1318666946,\n    \"mean\": 1.0497617706,\n    \"median\": 1.0343527825999999,\n    \"message\": \"Clean up\\n\",\n    \"min\": 0.9842224066,\n    \"stddev\": 0.05945290843343051,\n    \"system\": 0.020789735,\n    \"time\": 1.0343527825999999,\n    \"user\": 1.01780669\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"max\": 1.157813770805,\n    \"mean\": 1.082803131605,\n    \"median\": 1.059583496805,\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"min\": 1.013420061805,\n    \"stddev\": 0.06034026895219392,\n    \"system\": 0.023439534999999997,\n    \"time\": 1.157813770805,\n    \"user\": 1.0465162749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"max\": 1.157813770805,\n    \"mean\": 1.082803131605,\n    \"median\": 1.059583496805,\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"min\": 1.013420061805,\n    \"stddev\": 0.06034026895219392,\n    \"system\": 0.023439534999999997,\n    \"time\": 1.133007460805,\n    \"user\": 1.0465162749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"max\": 1.157813770805,\n    \"mean\": 1.082803131605,\n    \"median\": 1.059583496805,\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"min\": 1.013420061805,\n    \"stddev\": 0.06034026895219392,\n    \"system\": 0.023439534999999997,\n    \"time\": 1.059583496805,\n    \"user\": 1.0465162749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"max\": 1.157813770805,\n    \"mean\": 1.082803131605,\n    \"median\": 1.059583496805,\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"min\": 1.013420061805,\n    \"stddev\": 0.06034026895219392,\n    \"system\": 0.023439534999999997,\n    \"time\": 1.013420061805,\n    \"user\": 1.0465162749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"max\": 1.157813770805,\n    \"mean\": 1.082803131605,\n    \"median\": 1.059583496805,\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"min\": 1.013420061805,\n    \"stddev\": 0.06034026895219392,\n    \"system\": 0.023439534999999997,\n    \"time\": 1.050190867805,\n    \"user\": 1.0465162749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"max\": 1.870005403135,\n    \"mean\": 1.599498840535,\n    \"median\": 1.494913692135,\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"min\": 1.444273261135,\n    \"stddev\": 0.18335958396591687,\n    \"system\": 0.042778134999999995,\n    \"time\": 1.708647459135,\n    \"user\": 1.502217655\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"max\": 1.870005403135,\n    \"mean\": 1.599498840535,\n    \"median\": 1.494913692135,\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"min\": 1.444273261135,\n    \"stddev\": 0.18335958396591687,\n    \"system\": 0.042778134999999995,\n    \"time\": 1.479654387135,\n    \"user\": 1.502217655\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"max\": 1.870005403135,\n    \"mean\": 1.599498840535,\n    \"median\": 1.494913692135,\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"min\": 1.444273261135,\n    \"stddev\": 0.18335958396591687,\n    \"system\": 0.042778134999999995,\n    \"time\": 1.444273261135,\n    \"user\": 1.502217655\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"max\": 1.870005403135,\n    \"mean\": 1.599498840535,\n    \"median\": 1.494913692135,\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"min\": 1.444273261135,\n    \"stddev\": 0.18335958396591687,\n    \"system\": 0.042778134999999995,\n    \"time\": 1.870005403135,\n    \"user\": 1.502217655\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"max\": 1.870005403135,\n    \"mean\": 1.599498840535,\n    \"median\": 1.494913692135,\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"min\": 1.444273261135,\n    \"stddev\": 0.18335958396591687,\n    \"system\": 0.042778134999999995,\n    \"time\": 1.494913692135,\n    \"user\": 1.502217655\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"max\": 2.06974742686,\n    \"mean\": 1.7396407588599998,\n    \"median\": 1.7983108838600002,\n    \"message\": \"bash completion\\n\",\n    \"min\": 1.47769865486,\n    \"stddev\": 0.23932039292323842,\n    \"system\": 0.044751070000000004,\n    \"time\": 1.8176928828599999,\n    \"user\": 1.5987774549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"max\": 2.06974742686,\n    \"mean\": 1.7396407588599998,\n    \"median\": 1.7983108838600002,\n    \"message\": \"bash completion\\n\",\n    \"min\": 1.47769865486,\n    \"stddev\": 0.23932039292323842,\n    \"system\": 0.044751070000000004,\n    \"time\": 1.53475394586,\n    \"user\": 1.5987774549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"max\": 2.06974742686,\n    \"mean\": 1.7396407588599998,\n    \"median\": 1.7983108838600002,\n    \"message\": \"bash completion\\n\",\n    \"min\": 1.47769865486,\n    \"stddev\": 0.23932039292323842,\n    \"system\": 0.044751070000000004,\n    \"time\": 1.47769865486,\n    \"user\": 1.5987774549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"max\": 2.06974742686,\n    \"mean\": 1.7396407588599998,\n    \"median\": 1.7983108838600002,\n    \"message\": \"bash completion\\n\",\n    \"min\": 1.47769865486,\n    \"stddev\": 0.23932039292323842,\n    \"system\": 0.044751070000000004,\n    \"time\": 2.06974742686,\n    \"user\": 1.5987774549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"max\": 2.06974742686,\n    \"mean\": 1.7396407588599998,\n    \"median\": 1.7983108838600002,\n    \"message\": \"bash completion\\n\",\n    \"min\": 1.47769865486,\n    \"stddev\": 0.23932039292323842,\n    \"system\": 0.044751070000000004,\n    \"time\": 1.7983108838600002,\n    \"user\": 1.5987774549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"max\": 1.8032157191849998,\n    \"mean\": 1.6153133175849999,\n    \"median\": 1.704010901185,\n    \"message\": \"Improve help text\\n\",\n    \"min\": 1.3854920331849998,\n    \"stddev\": 0.17672229690252841,\n    \"system\": 0.037412805,\n    \"time\": 1.704010901185,\n    \"user\": 1.5407192899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"max\": 1.8032157191849998,\n    \"mean\": 1.6153133175849999,\n    \"median\": 1.704010901185,\n    \"message\": \"Improve help text\\n\",\n    \"min\": 1.3854920331849998,\n    \"stddev\": 0.17672229690252841,\n    \"system\": 0.037412805,\n    \"time\": 1.709899729185,\n    \"user\": 1.5407192899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"max\": 1.8032157191849998,\n    \"mean\": 1.6153133175849999,\n    \"median\": 1.704010901185,\n    \"message\": \"Improve help text\\n\",\n    \"min\": 1.3854920331849998,\n    \"stddev\": 0.17672229690252841,\n    \"system\": 0.037412805,\n    \"time\": 1.473948205185,\n    \"user\": 1.5407192899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"max\": 1.8032157191849998,\n    \"mean\": 1.6153133175849999,\n    \"median\": 1.704010901185,\n    \"message\": \"Improve help text\\n\",\n    \"min\": 1.3854920331849998,\n    \"stddev\": 0.17672229690252841,\n    \"system\": 0.037412805,\n    \"time\": 1.3854920331849998,\n    \"user\": 1.5407192899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"max\": 1.8032157191849998,\n    \"mean\": 1.6153133175849999,\n    \"median\": 1.704010901185,\n    \"message\": \"Improve help text\\n\",\n    \"min\": 1.3854920331849998,\n    \"stddev\": 0.17672229690252841,\n    \"system\": 0.037412805,\n    \"time\": 1.8032157191849998,\n    \"user\": 1.5407192899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"max\": 1.487297911915,\n    \"mean\": 1.344600150915,\n    \"median\": 1.308465534915,\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"min\": 1.262997143915,\n    \"stddev\": 0.08792324567711515,\n    \"system\": 0.024282545,\n    \"time\": 1.298333456915,\n    \"user\": 1.3050108\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"max\": 1.487297911915,\n    \"mean\": 1.344600150915,\n    \"median\": 1.308465534915,\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"min\": 1.262997143915,\n    \"stddev\": 0.08792324567711515,\n    \"system\": 0.024282545,\n    \"time\": 1.262997143915,\n    \"user\": 1.3050108\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"max\": 1.487297911915,\n    \"mean\": 1.344600150915,\n    \"median\": 1.308465534915,\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"min\": 1.262997143915,\n    \"stddev\": 0.08792324567711515,\n    \"system\": 0.024282545,\n    \"time\": 1.308465534915,\n    \"user\": 1.3050108\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"max\": 1.487297911915,\n    \"mean\": 1.344600150915,\n    \"median\": 1.308465534915,\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"min\": 1.262997143915,\n    \"stddev\": 0.08792324567711515,\n    \"system\": 0.024282545,\n    \"time\": 1.3659067069150002,\n    \"user\": 1.3050108\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"max\": 1.487297911915,\n    \"mean\": 1.344600150915,\n    \"median\": 1.308465534915,\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"min\": 1.262997143915,\n    \"stddev\": 0.08792324567711515,\n    \"system\": 0.024282545,\n    \"time\": 1.487297911915,\n    \"user\": 1.3050108\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"max\": 1.4362834744200002,\n    \"mean\": 1.33012237822,\n    \"median\": 1.32151593142,\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"min\": 1.2443023664200001,\n    \"stddev\": 0.07110943001116618,\n    \"system\": 0.021026874999999997,\n    \"time\": 1.3511625824200002,\n    \"user\": 1.293557905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"max\": 1.4362834744200002,\n    \"mean\": 1.33012237822,\n    \"median\": 1.32151593142,\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"min\": 1.2443023664200001,\n    \"stddev\": 0.07110943001116618,\n    \"system\": 0.021026874999999997,\n    \"time\": 1.29734753642,\n    \"user\": 1.293557905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"max\": 1.4362834744200002,\n    \"mean\": 1.33012237822,\n    \"median\": 1.32151593142,\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"min\": 1.2443023664200001,\n    \"stddev\": 0.07110943001116618,\n    \"system\": 0.021026874999999997,\n    \"time\": 1.2443023664200001,\n    \"user\": 1.293557905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"max\": 1.4362834744200002,\n    \"mean\": 1.33012237822,\n    \"median\": 1.32151593142,\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"min\": 1.2443023664200001,\n    \"stddev\": 0.07110943001116618,\n    \"system\": 0.021026874999999997,\n    \"time\": 1.4362834744200002,\n    \"user\": 1.293557905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"max\": 1.4362834744200002,\n    \"mean\": 1.33012237822,\n    \"median\": 1.32151593142,\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"min\": 1.2443023664200001,\n    \"stddev\": 0.07110943001116618,\n    \"system\": 0.021026874999999997,\n    \"time\": 1.32151593142,\n    \"user\": 1.293557905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"max\": 1.3937559378900002,\n    \"mean\": 1.3050399270900002,\n    \"median\": 1.28612919089,\n    \"message\": \"Add output.rs from bat\\n\",\n    \"min\": 1.27438674389,\n    \"stddev\": 0.05031280099000327,\n    \"system\": 0.019650149999999998,\n    \"time\": 1.3937559378900002,\n    \"user\": 1.27737005\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"max\": 1.3937559378900002,\n    \"mean\": 1.3050399270900002,\n    \"median\": 1.28612919089,\n    \"message\": \"Add output.rs from bat\\n\",\n    \"min\": 1.27438674389,\n    \"stddev\": 0.05031280099000327,\n    \"system\": 0.019650149999999998,\n    \"time\": 1.29524407789,\n    \"user\": 1.27737005\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"max\": 1.3937559378900002,\n    \"mean\": 1.3050399270900002,\n    \"median\": 1.28612919089,\n    \"message\": \"Add output.rs from bat\\n\",\n    \"min\": 1.27438674389,\n    \"stddev\": 0.05031280099000327,\n    \"system\": 0.019650149999999998,\n    \"time\": 1.27438674389,\n    \"user\": 1.27737005\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"max\": 1.3937559378900002,\n    \"mean\": 1.3050399270900002,\n    \"median\": 1.28612919089,\n    \"message\": \"Add output.rs from bat\\n\",\n    \"min\": 1.27438674389,\n    \"stddev\": 0.05031280099000327,\n    \"system\": 0.019650149999999998,\n    \"time\": 1.28612919089,\n    \"user\": 1.27737005\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"max\": 1.3937559378900002,\n    \"mean\": 1.3050399270900002,\n    \"median\": 1.28612919089,\n    \"message\": \"Add output.rs from bat\\n\",\n    \"min\": 1.27438674389,\n    \"stddev\": 0.05031280099000327,\n    \"system\": 0.019650149999999998,\n    \"time\": 1.27568368489,\n    \"user\": 1.27737005\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"max\": 1.37337965162,\n    \"mean\": 1.33404324422,\n    \"median\": 1.3341241586200001,\n    \"message\": \"rustfmt\\n\",\n    \"min\": 1.2998294196200002,\n    \"stddev\": 0.028023861434964638,\n    \"system\": 0.023075429999999994,\n    \"time\": 1.3341241586200001,\n    \"user\": 1.298595505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"max\": 1.37337965162,\n    \"mean\": 1.33404324422,\n    \"median\": 1.3341241586200001,\n    \"message\": \"rustfmt\\n\",\n    \"min\": 1.2998294196200002,\n    \"stddev\": 0.028023861434964638,\n    \"system\": 0.023075429999999994,\n    \"time\": 1.2998294196200002,\n    \"user\": 1.298595505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"max\": 1.37337965162,\n    \"mean\": 1.33404324422,\n    \"median\": 1.3341241586200001,\n    \"message\": \"rustfmt\\n\",\n    \"min\": 1.2998294196200002,\n    \"stddev\": 0.028023861434964638,\n    \"system\": 0.023075429999999994,\n    \"time\": 1.34575693762,\n    \"user\": 1.298595505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"max\": 1.37337965162,\n    \"mean\": 1.33404324422,\n    \"median\": 1.3341241586200001,\n    \"message\": \"rustfmt\\n\",\n    \"min\": 1.2998294196200002,\n    \"stddev\": 0.028023861434964638,\n    \"system\": 0.023075429999999994,\n    \"time\": 1.31712605362,\n    \"user\": 1.298595505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"max\": 1.37337965162,\n    \"mean\": 1.33404324422,\n    \"median\": 1.3341241586200001,\n    \"message\": \"rustfmt\\n\",\n    \"min\": 1.2998294196200002,\n    \"stddev\": 0.028023861434964638,\n    \"system\": 0.023075429999999994,\n    \"time\": 1.37337965162,\n    \"user\": 1.298595505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"max\": 1.33688594171,\n    \"mean\": 1.33058482211,\n    \"median\": 1.32944679671,\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"min\": 1.32621356871,\n    \"stddev\": 0.00474077586921173,\n    \"system\": 0.086394335,\n    \"time\": 1.33688594171,\n    \"user\": 1.3382191049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"max\": 1.33688594171,\n    \"mean\": 1.33058482211,\n    \"median\": 1.32944679671,\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"min\": 1.32621356871,\n    \"stddev\": 0.00474077586921173,\n    \"system\": 0.086394335,\n    \"time\": 1.32634967971,\n    \"user\": 1.3382191049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"max\": 1.33688594171,\n    \"mean\": 1.33058482211,\n    \"median\": 1.32944679671,\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"min\": 1.32621356871,\n    \"stddev\": 0.00474077586921173,\n    \"system\": 0.086394335,\n    \"time\": 1.32944679671,\n    \"user\": 1.3382191049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"max\": 1.33688594171,\n    \"mean\": 1.33058482211,\n    \"median\": 1.32944679671,\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"min\": 1.32621356871,\n    \"stddev\": 0.00474077586921173,\n    \"system\": 0.086394335,\n    \"time\": 1.32621356871,\n    \"user\": 1.3382191049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"max\": 1.33688594171,\n    \"mean\": 1.33058482211,\n    \"median\": 1.32944679671,\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"min\": 1.32621356871,\n    \"stddev\": 0.00474077586921173,\n    \"system\": 0.086394335,\n    \"time\": 1.33402812371,\n    \"user\": 1.3382191049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"max\": 1.5002876456699998,\n    \"mean\": 1.40522491507,\n    \"median\": 1.36458068567,\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"min\": 1.34005619367,\n    \"stddev\": 0.07472000739230458,\n    \"system\": 0.098622105,\n    \"time\": 1.4711751686699999,\n    \"user\": 1.3992805799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"max\": 1.5002876456699998,\n    \"mean\": 1.40522491507,\n    \"median\": 1.36458068567,\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"min\": 1.34005619367,\n    \"stddev\": 0.07472000739230458,\n    \"system\": 0.098622105,\n    \"time\": 1.34005619367,\n    \"user\": 1.3992805799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"max\": 1.5002876456699998,\n    \"mean\": 1.40522491507,\n    \"median\": 1.36458068567,\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"min\": 1.34005619367,\n    \"stddev\": 0.07472000739230458,\n    \"system\": 0.098622105,\n    \"time\": 1.36458068567,\n    \"user\": 1.3992805799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"max\": 1.5002876456699998,\n    \"mean\": 1.40522491507,\n    \"median\": 1.36458068567,\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"min\": 1.34005619367,\n    \"stddev\": 0.07472000739230458,\n    \"system\": 0.098622105,\n    \"time\": 1.35002488167,\n    \"user\": 1.3992805799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"max\": 1.5002876456699998,\n    \"mean\": 1.40522491507,\n    \"median\": 1.36458068567,\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"min\": 1.34005619367,\n    \"stddev\": 0.07472000739230458,\n    \"system\": 0.098622105,\n    \"time\": 1.5002876456699998,\n    \"user\": 1.3992805799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"max\": 1.3637639804650001,\n    \"mean\": 1.332565455865,\n    \"median\": 1.330581426465,\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"min\": 1.311201868465,\n    \"stddev\": 0.019188042705029437,\n    \"system\": 0.08884063499999999,\n    \"time\": 1.3637639804650001,\n    \"user\": 1.3388748949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"max\": 1.3637639804650001,\n    \"mean\": 1.332565455865,\n    \"median\": 1.330581426465,\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"min\": 1.311201868465,\n    \"stddev\": 0.019188042705029437,\n    \"system\": 0.08884063499999999,\n    \"time\": 1.326612888465,\n    \"user\": 1.3388748949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"max\": 1.3637639804650001,\n    \"mean\": 1.332565455865,\n    \"median\": 1.330581426465,\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"min\": 1.311201868465,\n    \"stddev\": 0.019188042705029437,\n    \"system\": 0.08884063499999999,\n    \"time\": 1.330667115465,\n    \"user\": 1.3388748949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"max\": 1.3637639804650001,\n    \"mean\": 1.332565455865,\n    \"median\": 1.330581426465,\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"min\": 1.311201868465,\n    \"stddev\": 0.019188042705029437,\n    \"system\": 0.08884063499999999,\n    \"time\": 1.311201868465,\n    \"user\": 1.3388748949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"max\": 1.3637639804650001,\n    \"mean\": 1.332565455865,\n    \"median\": 1.330581426465,\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"min\": 1.311201868465,\n    \"stddev\": 0.019188042705029437,\n    \"system\": 0.08884063499999999,\n    \"time\": 1.330581426465,\n    \"user\": 1.3388748949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"max\": 1.611039597465,\n    \"mean\": 1.587545049665,\n    \"median\": 1.583658533465,\n    \"message\": \"Default to full terminal width\\n\",\n    \"min\": 1.574815253465,\n    \"stddev\": 0.0147181896728417,\n    \"system\": 0.09086009999999999,\n    \"time\": 1.611039597465,\n    \"user\": 1.5975800549999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"max\": 1.611039597465,\n    \"mean\": 1.587545049665,\n    \"median\": 1.583658533465,\n    \"message\": \"Default to full terminal width\\n\",\n    \"min\": 1.574815253465,\n    \"stddev\": 0.0147181896728417,\n    \"system\": 0.09086009999999999,\n    \"time\": 1.583658533465,\n    \"user\": 1.5975800549999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"max\": 1.611039597465,\n    \"mean\": 1.587545049665,\n    \"median\": 1.583658533465,\n    \"message\": \"Default to full terminal width\\n\",\n    \"min\": 1.574815253465,\n    \"stddev\": 0.0147181896728417,\n    \"system\": 0.09086009999999999,\n    \"time\": 1.591645788465,\n    \"user\": 1.5975800549999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"max\": 1.611039597465,\n    \"mean\": 1.587545049665,\n    \"median\": 1.583658533465,\n    \"message\": \"Default to full terminal width\\n\",\n    \"min\": 1.574815253465,\n    \"stddev\": 0.0147181896728417,\n    \"system\": 0.09086009999999999,\n    \"time\": 1.574815253465,\n    \"user\": 1.5975800549999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"max\": 1.611039597465,\n    \"mean\": 1.587545049665,\n    \"median\": 1.583658533465,\n    \"message\": \"Default to full terminal width\\n\",\n    \"min\": 1.574815253465,\n    \"stddev\": 0.0147181896728417,\n    \"system\": 0.09086009999999999,\n    \"time\": 1.576566075465,\n    \"user\": 1.5975800549999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"max\": 1.63403958314,\n    \"mean\": 1.5942294579400003,\n    \"median\": 1.5830971531400002,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.58233420514,\n    \"stddev\": 0.022436505163506048,\n    \"system\": 0.092812885,\n    \"time\": 1.63403958314,\n    \"user\": 1.6036191899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"max\": 1.63403958314,\n    \"mean\": 1.5942294579400003,\n    \"median\": 1.5830971531400002,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.58233420514,\n    \"stddev\": 0.022436505163506048,\n    \"system\": 0.092812885,\n    \"time\": 1.58233420514,\n    \"user\": 1.6036191899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"max\": 1.63403958314,\n    \"mean\": 1.5942294579400003,\n    \"median\": 1.5830971531400002,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.58233420514,\n    \"stddev\": 0.022436505163506048,\n    \"system\": 0.092812885,\n    \"time\": 1.58248493314,\n    \"user\": 1.6036191899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"max\": 1.63403958314,\n    \"mean\": 1.5942294579400003,\n    \"median\": 1.5830971531400002,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.58233420514,\n    \"stddev\": 0.022436505163506048,\n    \"system\": 0.092812885,\n    \"time\": 1.5891914151400002,\n    \"user\": 1.6036191899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"max\": 1.63403958314,\n    \"mean\": 1.5942294579400003,\n    \"median\": 1.5830971531400002,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.58233420514,\n    \"stddev\": 0.022436505163506048,\n    \"system\": 0.092812885,\n    \"time\": 1.5830971531400002,\n    \"user\": 1.6036191899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"max\": 1.6011722510500002,\n    \"mean\": 1.59277967985,\n    \"median\": 1.59276639905,\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"min\": 1.58276332305,\n    \"stddev\": 0.00664844292213281,\n    \"system\": 0.091994775,\n    \"time\": 1.6011722510500002,\n    \"user\": 1.6028515300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"max\": 1.6011722510500002,\n    \"mean\": 1.59277967985,\n    \"median\": 1.59276639905,\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"min\": 1.58276332305,\n    \"stddev\": 0.00664844292213281,\n    \"system\": 0.091994775,\n    \"time\": 1.59276639905,\n    \"user\": 1.6028515300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"max\": 1.6011722510500002,\n    \"mean\": 1.59277967985,\n    \"median\": 1.59276639905,\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"min\": 1.58276332305,\n    \"stddev\": 0.00664844292213281,\n    \"system\": 0.091994775,\n    \"time\": 1.59513189305,\n    \"user\": 1.6028515300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"max\": 1.6011722510500002,\n    \"mean\": 1.59277967985,\n    \"median\": 1.59276639905,\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"min\": 1.58276332305,\n    \"stddev\": 0.00664844292213281,\n    \"system\": 0.091994775,\n    \"time\": 1.58276332305,\n    \"user\": 1.6028515300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"max\": 1.6011722510500002,\n    \"mean\": 1.59277967985,\n    \"median\": 1.59276639905,\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"min\": 1.58276332305,\n    \"stddev\": 0.00664844292213281,\n    \"system\": 0.091994775,\n    \"time\": 1.59206453305,\n    \"user\": 1.6028515300000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"max\": 1.604125905625,\n    \"mean\": 1.5893496008249999,\n    \"median\": 1.5912607286249998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.5752177536249998,\n    \"stddev\": 0.011186942209026279,\n    \"system\": 0.09072550999999998,\n    \"time\": 1.604125905625,\n    \"user\": 1.596359065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"max\": 1.604125905625,\n    \"mean\": 1.5893496008249999,\n    \"median\": 1.5912607286249998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.5752177536249998,\n    \"stddev\": 0.011186942209026279,\n    \"system\": 0.09072550999999998,\n    \"time\": 1.5912607286249998,\n    \"user\": 1.596359065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"max\": 1.604125905625,\n    \"mean\": 1.5893496008249999,\n    \"median\": 1.5912607286249998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.5752177536249998,\n    \"stddev\": 0.011186942209026279,\n    \"system\": 0.09072550999999998,\n    \"time\": 1.5752177536249998,\n    \"user\": 1.596359065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"max\": 1.604125905625,\n    \"mean\": 1.5893496008249999,\n    \"median\": 1.5912607286249998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.5752177536249998,\n    \"stddev\": 0.011186942209026279,\n    \"system\": 0.09072550999999998,\n    \"time\": 1.594220974625,\n    \"user\": 1.596359065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"max\": 1.604125905625,\n    \"mean\": 1.5893496008249999,\n    \"median\": 1.5912607286249998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.5752177536249998,\n    \"stddev\": 0.011186942209026279,\n    \"system\": 0.09072550999999998,\n    \"time\": 1.581922641625,\n    \"user\": 1.596359065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"max\": 1.6103412471750003,\n    \"mean\": 1.5937678891750002,\n    \"median\": 1.5967974681750001,\n    \"message\": \"Rename variable\\n\",\n    \"min\": 1.575729289175,\n    \"stddev\": 0.012909746822044139,\n    \"system\": 0.091312735,\n    \"time\": 1.5967974681750001,\n    \"user\": 1.6036585600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"max\": 1.6103412471750003,\n    \"mean\": 1.5937678891750002,\n    \"median\": 1.5967974681750001,\n    \"message\": \"Rename variable\\n\",\n    \"min\": 1.575729289175,\n    \"stddev\": 0.012909746822044139,\n    \"system\": 0.091312735,\n    \"time\": 1.5876858601750001,\n    \"user\": 1.6036585600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"max\": 1.6103412471750003,\n    \"mean\": 1.5937678891750002,\n    \"median\": 1.5967974681750001,\n    \"message\": \"Rename variable\\n\",\n    \"min\": 1.575729289175,\n    \"stddev\": 0.012909746822044139,\n    \"system\": 0.091312735,\n    \"time\": 1.6103412471750003,\n    \"user\": 1.6036585600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"max\": 1.6103412471750003,\n    \"mean\": 1.5937678891750002,\n    \"median\": 1.5967974681750001,\n    \"message\": \"Rename variable\\n\",\n    \"min\": 1.575729289175,\n    \"stddev\": 0.012909746822044139,\n    \"system\": 0.091312735,\n    \"time\": 1.598285581175,\n    \"user\": 1.6036585600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"max\": 1.6103412471750003,\n    \"mean\": 1.5937678891750002,\n    \"median\": 1.5967974681750001,\n    \"message\": \"Rename variable\\n\",\n    \"min\": 1.575729289175,\n    \"stddev\": 0.012909746822044139,\n    \"system\": 0.091312735,\n    \"time\": 1.575729289175,\n    \"user\": 1.6036585600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"max\": 1.598021826685,\n    \"mean\": 1.586532570685,\n    \"median\": 1.5839198956849998,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.578413641685,\n    \"stddev\": 0.007890164918304682,\n    \"system\": 0.09092502,\n    \"time\": 1.581464090685,\n    \"user\": 1.5970097200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"max\": 1.598021826685,\n    \"mean\": 1.586532570685,\n    \"median\": 1.5839198956849998,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.578413641685,\n    \"stddev\": 0.007890164918304682,\n    \"system\": 0.09092502,\n    \"time\": 1.598021826685,\n    \"user\": 1.5970097200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"max\": 1.598021826685,\n    \"mean\": 1.586532570685,\n    \"median\": 1.5839198956849998,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.578413641685,\n    \"stddev\": 0.007890164918304682,\n    \"system\": 0.09092502,\n    \"time\": 1.5839198956849998,\n    \"user\": 1.5970097200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"max\": 1.598021826685,\n    \"mean\": 1.586532570685,\n    \"median\": 1.5839198956849998,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.578413641685,\n    \"stddev\": 0.007890164918304682,\n    \"system\": 0.09092502,\n    \"time\": 1.578413641685,\n    \"user\": 1.5970097200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"max\": 1.598021826685,\n    \"mean\": 1.586532570685,\n    \"median\": 1.5839198956849998,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.578413641685,\n    \"stddev\": 0.007890164918304682,\n    \"system\": 0.09092502,\n    \"time\": 1.590843398685,\n    \"user\": 1.5970097200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"max\": 1.6096077769300001,\n    \"mean\": 1.5940571329300002,\n    \"median\": 1.5881825199300001,\n    \"message\": \"Add a screenshot\\n\",\n    \"min\": 1.58422765793,\n    \"stddev\": 0.011267106395403962,\n    \"system\": 0.091915105,\n    \"time\": 1.6096077769300001,\n    \"user\": 1.6047642249999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"max\": 1.6096077769300001,\n    \"mean\": 1.5940571329300002,\n    \"median\": 1.5881825199300001,\n    \"message\": \"Add a screenshot\\n\",\n    \"min\": 1.58422765793,\n    \"stddev\": 0.011267106395403962,\n    \"system\": 0.091915105,\n    \"time\": 1.58422765793,\n    \"user\": 1.6047642249999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"max\": 1.6096077769300001,\n    \"mean\": 1.5940571329300002,\n    \"median\": 1.5881825199300001,\n    \"message\": \"Add a screenshot\\n\",\n    \"min\": 1.58422765793,\n    \"stddev\": 0.011267106395403962,\n    \"system\": 0.091915105,\n    \"time\": 1.6023444209300002,\n    \"user\": 1.6047642249999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"max\": 1.6096077769300001,\n    \"mean\": 1.5940571329300002,\n    \"median\": 1.5881825199300001,\n    \"message\": \"Add a screenshot\\n\",\n    \"min\": 1.58422765793,\n    \"stddev\": 0.011267106395403962,\n    \"system\": 0.091915105,\n    \"time\": 1.5859232889300001,\n    \"user\": 1.6047642249999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"max\": 1.6096077769300001,\n    \"mean\": 1.5940571329300002,\n    \"median\": 1.5881825199300001,\n    \"message\": \"Add a screenshot\\n\",\n    \"min\": 1.58422765793,\n    \"stddev\": 0.011267106395403962,\n    \"system\": 0.091915105,\n    \"time\": 1.5881825199300001,\n    \"user\": 1.6047642249999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"max\": 1.6019821063000002,\n    \"mean\": 1.5895417693000002,\n    \"median\": 1.5857573283000002,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.5822260763000002,\n    \"stddev\": 0.007834203156371773,\n    \"system\": 0.09174454000000001,\n    \"time\": 1.5855552283000003,\n    \"user\": 1.5995226050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"max\": 1.6019821063000002,\n    \"mean\": 1.5895417693000002,\n    \"median\": 1.5857573283000002,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.5822260763000002,\n    \"stddev\": 0.007834203156371773,\n    \"system\": 0.09174454000000001,\n    \"time\": 1.6019821063000002,\n    \"user\": 1.5995226050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"max\": 1.6019821063000002,\n    \"mean\": 1.5895417693000002,\n    \"median\": 1.5857573283000002,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.5822260763000002,\n    \"stddev\": 0.007834203156371773,\n    \"system\": 0.09174454000000001,\n    \"time\": 1.5822260763000002,\n    \"user\": 1.5995226050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"max\": 1.6019821063000002,\n    \"mean\": 1.5895417693000002,\n    \"median\": 1.5857573283000002,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.5822260763000002,\n    \"stddev\": 0.007834203156371773,\n    \"system\": 0.09174454000000001,\n    \"time\": 1.5857573283000002,\n    \"user\": 1.5995226050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"max\": 1.6019821063000002,\n    \"mean\": 1.5895417693000002,\n    \"median\": 1.5857573283000002,\n    \"message\": \"Clean up README\\n\",\n    \"min\": 1.5822260763000002,\n    \"stddev\": 0.007834203156371773,\n    \"system\": 0.09174454000000001,\n    \"time\": 1.5921881073000002,\n    \"user\": 1.5995226050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"max\": 1.764986535075,\n    \"mean\": 1.630671839075,\n    \"median\": 1.590686167075,\n    \"message\": \"Add license\\n\",\n    \"min\": 1.584046001075,\n    \"stddev\": 0.07672355592146796,\n    \"system\": 0.09588732999999999,\n    \"time\": 1.624067838075,\n    \"user\": 1.628154735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"max\": 1.764986535075,\n    \"mean\": 1.630671839075,\n    \"median\": 1.590686167075,\n    \"message\": \"Add license\\n\",\n    \"min\": 1.584046001075,\n    \"stddev\": 0.07672355592146796,\n    \"system\": 0.09588732999999999,\n    \"time\": 1.764986535075,\n    \"user\": 1.628154735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"max\": 1.764986535075,\n    \"mean\": 1.630671839075,\n    \"median\": 1.590686167075,\n    \"message\": \"Add license\\n\",\n    \"min\": 1.584046001075,\n    \"stddev\": 0.07672355592146796,\n    \"system\": 0.09588732999999999,\n    \"time\": 1.590686167075,\n    \"user\": 1.628154735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"max\": 1.764986535075,\n    \"mean\": 1.630671839075,\n    \"median\": 1.590686167075,\n    \"message\": \"Add license\\n\",\n    \"min\": 1.584046001075,\n    \"stddev\": 0.07672355592146796,\n    \"system\": 0.09588732999999999,\n    \"time\": 1.589572654075,\n    \"user\": 1.628154735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"max\": 1.764986535075,\n    \"mean\": 1.630671839075,\n    \"median\": 1.590686167075,\n    \"message\": \"Add license\\n\",\n    \"min\": 1.584046001075,\n    \"stddev\": 0.07672355592146796,\n    \"system\": 0.09588732999999999,\n    \"time\": 1.584046001075,\n    \"user\": 1.628154735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"max\": 1.549309256475,\n    \"mean\": 1.5303929192749999,\n    \"median\": 1.5318353334750001,\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"min\": 1.5007118734750002,\n    \"stddev\": 0.018154121509936758,\n    \"system\": 0.08105122,\n    \"time\": 1.5007118734750002,\n    \"user\": 1.5390492949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"max\": 1.549309256475,\n    \"mean\": 1.5303929192749999,\n    \"median\": 1.5318353334750001,\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"min\": 1.5007118734750002,\n    \"stddev\": 0.018154121509936758,\n    \"system\": 0.08105122,\n    \"time\": 1.5318353334750001,\n    \"user\": 1.5390492949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"max\": 1.549309256475,\n    \"mean\": 1.5303929192749999,\n    \"median\": 1.5318353334750001,\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"min\": 1.5007118734750002,\n    \"stddev\": 0.018154121509936758,\n    \"system\": 0.08105122,\n    \"time\": 1.549309256475,\n    \"user\": 1.5390492949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"max\": 1.549309256475,\n    \"mean\": 1.5303929192749999,\n    \"median\": 1.5318353334750001,\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"min\": 1.5007118734750002,\n    \"stddev\": 0.018154121509936758,\n    \"system\": 0.08105122,\n    \"time\": 1.539174932475,\n    \"user\": 1.5390492949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"max\": 1.549309256475,\n    \"mean\": 1.5303929192749999,\n    \"median\": 1.5318353334750001,\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"min\": 1.5007118734750002,\n    \"stddev\": 0.018154121509936758,\n    \"system\": 0.08105122,\n    \"time\": 1.530933200475,\n    \"user\": 1.5390492949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"max\": 1.5429852678500002,\n    \"mean\": 1.52001460885,\n    \"median\": 1.51719929085,\n    \"message\": \"Add table headers in README\\n\",\n    \"min\": 1.50413399185,\n    \"stddev\": 0.01446963140720411,\n    \"system\": 0.07778375499999998,\n    \"time\": 1.51337318685,\n    \"user\": 1.53237165\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"max\": 1.5429852678500002,\n    \"mean\": 1.52001460885,\n    \"median\": 1.51719929085,\n    \"message\": \"Add table headers in README\\n\",\n    \"min\": 1.50413399185,\n    \"stddev\": 0.01446963140720411,\n    \"system\": 0.07778375499999998,\n    \"time\": 1.50413399185,\n    \"user\": 1.53237165\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"max\": 1.5429852678500002,\n    \"mean\": 1.52001460885,\n    \"median\": 1.51719929085,\n    \"message\": \"Add table headers in README\\n\",\n    \"min\": 1.50413399185,\n    \"stddev\": 0.01446963140720411,\n    \"system\": 0.07778375499999998,\n    \"time\": 1.51719929085,\n    \"user\": 1.53237165\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"max\": 1.5429852678500002,\n    \"mean\": 1.52001460885,\n    \"median\": 1.51719929085,\n    \"message\": \"Add table headers in README\\n\",\n    \"min\": 1.50413399185,\n    \"stddev\": 0.01446963140720411,\n    \"system\": 0.07778375499999998,\n    \"time\": 1.52238130685,\n    \"user\": 1.53237165\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"max\": 1.5429852678500002,\n    \"mean\": 1.52001460885,\n    \"median\": 1.51719929085,\n    \"message\": \"Add table headers in README\\n\",\n    \"min\": 1.50413399185,\n    \"stddev\": 0.01446963140720411,\n    \"system\": 0.07778375499999998,\n    \"time\": 1.5429852678500002,\n    \"user\": 1.53237165\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"max\": 1.5853797999600001,\n    \"mean\": 1.5323159609600001,\n    \"median\": 1.52621509596,\n    \"message\": \"Makefile\\n\",\n    \"min\": 1.5101597589600002,\n    \"stddev\": 0.03055613805252552,\n    \"system\": 0.079404695,\n    \"time\": 1.5263598019600002,\n    \"user\": 1.5391878049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"max\": 1.5853797999600001,\n    \"mean\": 1.5323159609600001,\n    \"median\": 1.52621509596,\n    \"message\": \"Makefile\\n\",\n    \"min\": 1.5101597589600002,\n    \"stddev\": 0.03055613805252552,\n    \"system\": 0.079404695,\n    \"time\": 1.5101597589600002,\n    \"user\": 1.5391878049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"max\": 1.5853797999600001,\n    \"mean\": 1.5323159609600001,\n    \"median\": 1.52621509596,\n    \"message\": \"Makefile\\n\",\n    \"min\": 1.5101597589600002,\n    \"stddev\": 0.03055613805252552,\n    \"system\": 0.079404695,\n    \"time\": 1.52621509596,\n    \"user\": 1.5391878049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"max\": 1.5853797999600001,\n    \"mean\": 1.5323159609600001,\n    \"median\": 1.52621509596,\n    \"message\": \"Makefile\\n\",\n    \"min\": 1.5101597589600002,\n    \"stddev\": 0.03055613805252552,\n    \"system\": 0.079404695,\n    \"time\": 1.5853797999600001,\n    \"user\": 1.5391878049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"max\": 1.5853797999600001,\n    \"mean\": 1.5323159609600001,\n    \"median\": 1.52621509596,\n    \"message\": \"Makefile\\n\",\n    \"min\": 1.5101597589600002,\n    \"stddev\": 0.03055613805252552,\n    \"system\": 0.079404695,\n    \"time\": 1.5134653479600002,\n    \"user\": 1.5391878049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"max\": 1.535662967915,\n    \"mean\": 1.518967701915,\n    \"median\": 1.518307944915,\n    \"message\": \"rustfmt: new version\\n\",\n    \"min\": 1.5076529989149998,\n    \"stddev\": 0.010697121408997246,\n    \"system\": 0.07834263500000001,\n    \"time\": 1.535662967915,\n    \"user\": 1.5253596649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"max\": 1.535662967915,\n    \"mean\": 1.518967701915,\n    \"median\": 1.518307944915,\n    \"message\": \"rustfmt: new version\\n\",\n    \"min\": 1.5076529989149998,\n    \"stddev\": 0.010697121408997246,\n    \"system\": 0.07834263500000001,\n    \"time\": 1.518307944915,\n    \"user\": 1.5253596649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"max\": 1.535662967915,\n    \"mean\": 1.518967701915,\n    \"median\": 1.518307944915,\n    \"message\": \"rustfmt: new version\\n\",\n    \"min\": 1.5076529989149998,\n    \"stddev\": 0.010697121408997246,\n    \"system\": 0.07834263500000001,\n    \"time\": 1.5076529989149998,\n    \"user\": 1.5253596649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"max\": 1.535662967915,\n    \"mean\": 1.518967701915,\n    \"median\": 1.518307944915,\n    \"message\": \"rustfmt: new version\\n\",\n    \"min\": 1.5076529989149998,\n    \"stddev\": 0.010697121408997246,\n    \"system\": 0.07834263500000001,\n    \"time\": 1.512169904915,\n    \"user\": 1.5253596649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"max\": 1.535662967915,\n    \"mean\": 1.518967701915,\n    \"median\": 1.518307944915,\n    \"message\": \"rustfmt: new version\\n\",\n    \"min\": 1.5076529989149998,\n    \"stddev\": 0.010697121408997246,\n    \"system\": 0.07834263500000001,\n    \"time\": 1.5210446929149999,\n    \"user\": 1.5253596649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"max\": 1.536044737775,\n    \"mean\": 1.514179519175,\n    \"median\": 1.506724039775,\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"min\": 1.5033478737750001,\n    \"stddev\": 0.01395397607193527,\n    \"system\": 0.077746735,\n    \"time\": 1.536044737775,\n    \"user\": 1.5225713699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"max\": 1.536044737775,\n    \"mean\": 1.514179519175,\n    \"median\": 1.506724039775,\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"min\": 1.5033478737750001,\n    \"stddev\": 0.01395397607193527,\n    \"system\": 0.077746735,\n    \"time\": 1.506724039775,\n    \"user\": 1.5225713699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"max\": 1.536044737775,\n    \"mean\": 1.514179519175,\n    \"median\": 1.506724039775,\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"min\": 1.5033478737750001,\n    \"stddev\": 0.01395397607193527,\n    \"system\": 0.077746735,\n    \"time\": 1.520183286775,\n    \"user\": 1.5225713699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"max\": 1.536044737775,\n    \"mean\": 1.514179519175,\n    \"median\": 1.506724039775,\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"min\": 1.5033478737750001,\n    \"stddev\": 0.01395397607193527,\n    \"system\": 0.077746735,\n    \"time\": 1.5033478737750001,\n    \"user\": 1.5225713699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"max\": 1.536044737775,\n    \"mean\": 1.514179519175,\n    \"median\": 1.506724039775,\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"min\": 1.5033478737750001,\n    \"stddev\": 0.01395397607193527,\n    \"system\": 0.077746735,\n    \"time\": 1.504597657775,\n    \"user\": 1.5225713699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"max\": 1.527180472165,\n    \"mean\": 1.506518657165,\n    \"median\": 1.502727766165,\n    \"message\": \"Remove unused dependencies\\n\",\n    \"min\": 1.498178025165,\n    \"stddev\": 0.011750190997873501,\n    \"system\": 0.07766901,\n    \"time\": 1.527180472165,\n    \"user\": 1.5156669849999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"max\": 1.527180472165,\n    \"mean\": 1.506518657165,\n    \"median\": 1.502727766165,\n    \"message\": \"Remove unused dependencies\\n\",\n    \"min\": 1.498178025165,\n    \"stddev\": 0.011750190997873501,\n    \"system\": 0.07766901,\n    \"time\": 1.502727766165,\n    \"user\": 1.5156669849999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"max\": 1.527180472165,\n    \"mean\": 1.506518657165,\n    \"median\": 1.502727766165,\n    \"message\": \"Remove unused dependencies\\n\",\n    \"min\": 1.498178025165,\n    \"stddev\": 0.011750190997873501,\n    \"system\": 0.07766901,\n    \"time\": 1.503840555165,\n    \"user\": 1.5156669849999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"max\": 1.527180472165,\n    \"mean\": 1.506518657165,\n    \"median\": 1.502727766165,\n    \"message\": \"Remove unused dependencies\\n\",\n    \"min\": 1.498178025165,\n    \"stddev\": 0.011750190997873501,\n    \"system\": 0.07766901,\n    \"time\": 1.500666467165,\n    \"user\": 1.5156669849999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"max\": 1.527180472165,\n    \"mean\": 1.506518657165,\n    \"median\": 1.502727766165,\n    \"message\": \"Remove unused dependencies\\n\",\n    \"min\": 1.498178025165,\n    \"stddev\": 0.011750190997873501,\n    \"system\": 0.07766901,\n    \"time\": 1.498178025165,\n    \"user\": 1.5156669849999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"max\": 1.31139714039,\n    \"mean\": 1.20498323659,\n    \"median\": 1.18974540939,\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"min\": 1.15806878739,\n    \"stddev\": 0.061347871560443974,\n    \"system\": 0.05284288,\n    \"time\": 1.18974540939,\n    \"user\": 1.20000825\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"max\": 1.31139714039,\n    \"mean\": 1.20498323659,\n    \"median\": 1.18974540939,\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"min\": 1.15806878739,\n    \"stddev\": 0.061347871560443974,\n    \"system\": 0.05284288,\n    \"time\": 1.15806878739,\n    \"user\": 1.20000825\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"max\": 1.31139714039,\n    \"mean\": 1.20498323659,\n    \"median\": 1.18974540939,\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"min\": 1.15806878739,\n    \"stddev\": 0.061347871560443974,\n    \"system\": 0.05284288,\n    \"time\": 1.19545448039,\n    \"user\": 1.20000825\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"max\": 1.31139714039,\n    \"mean\": 1.20498323659,\n    \"median\": 1.18974540939,\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"min\": 1.15806878739,\n    \"stddev\": 0.061347871560443974,\n    \"system\": 0.05284288,\n    \"time\": 1.31139714039,\n    \"user\": 1.20000825\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"max\": 1.31139714039,\n    \"mean\": 1.20498323659,\n    \"median\": 1.18974540939,\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"min\": 1.15806878739,\n    \"stddev\": 0.061347871560443974,\n    \"system\": 0.05284288,\n    \"time\": 1.17025036539,\n    \"user\": 1.20000825\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"max\": 1.182759587035,\n    \"mean\": 1.152639770035,\n    \"median\": 1.143197382035,\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"min\": 1.1330385650350001,\n    \"stddev\": 0.021230101082298166,\n    \"system\": 0.048318629999999994,\n    \"time\": 1.166622683035,\n    \"user\": 1.15202305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"max\": 1.182759587035,\n    \"mean\": 1.152639770035,\n    \"median\": 1.143197382035,\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"min\": 1.1330385650350001,\n    \"stddev\": 0.021230101082298166,\n    \"system\": 0.048318629999999994,\n    \"time\": 1.137580633035,\n    \"user\": 1.15202305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"max\": 1.182759587035,\n    \"mean\": 1.152639770035,\n    \"median\": 1.143197382035,\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"min\": 1.1330385650350001,\n    \"stddev\": 0.021230101082298166,\n    \"system\": 0.048318629999999994,\n    \"time\": 1.143197382035,\n    \"user\": 1.15202305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"max\": 1.182759587035,\n    \"mean\": 1.152639770035,\n    \"median\": 1.143197382035,\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"min\": 1.1330385650350001,\n    \"stddev\": 0.021230101082298166,\n    \"system\": 0.048318629999999994,\n    \"time\": 1.182759587035,\n    \"user\": 1.15202305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"max\": 1.182759587035,\n    \"mean\": 1.152639770035,\n    \"median\": 1.143197382035,\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"min\": 1.1330385650350001,\n    \"stddev\": 0.021230101082298166,\n    \"system\": 0.048318629999999994,\n    \"time\": 1.1330385650350001,\n    \"user\": 1.15202305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"max\": 1.256581578415,\n    \"mean\": 1.230985267215,\n    \"median\": 1.229811794415,\n    \"message\": \"Superimpose styles\\n\",\n    \"min\": 1.213066468415,\n    \"stddev\": 0.015914450648196223,\n    \"system\": 0.041098514999999995,\n    \"time\": 1.256581578415,\n    \"user\": 1.22063433\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"max\": 1.256581578415,\n    \"mean\": 1.230985267215,\n    \"median\": 1.229811794415,\n    \"message\": \"Superimpose styles\\n\",\n    \"min\": 1.213066468415,\n    \"stddev\": 0.015914450648196223,\n    \"system\": 0.041098514999999995,\n    \"time\": 1.230406836415,\n    \"user\": 1.22063433\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"max\": 1.256581578415,\n    \"mean\": 1.230985267215,\n    \"median\": 1.229811794415,\n    \"message\": \"Superimpose styles\\n\",\n    \"min\": 1.213066468415,\n    \"stddev\": 0.015914450648196223,\n    \"system\": 0.041098514999999995,\n    \"time\": 1.229811794415,\n    \"user\": 1.22063433\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"max\": 1.256581578415,\n    \"mean\": 1.230985267215,\n    \"median\": 1.229811794415,\n    \"message\": \"Superimpose styles\\n\",\n    \"min\": 1.213066468415,\n    \"stddev\": 0.015914450648196223,\n    \"system\": 0.041098514999999995,\n    \"time\": 1.213066468415,\n    \"user\": 1.22063433\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"max\": 1.256581578415,\n    \"mean\": 1.230985267215,\n    \"median\": 1.229811794415,\n    \"message\": \"Superimpose styles\\n\",\n    \"min\": 1.213066468415,\n    \"stddev\": 0.015914450648196223,\n    \"system\": 0.041098514999999995,\n    \"time\": 1.225059658415,\n    \"user\": 1.22063433\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"max\": 1.19902111702,\n    \"mean\": 1.1574194504200002,\n    \"median\": 1.14990907502,\n    \"message\": \"Move painting code into paint module\\n\",\n    \"min\": 1.1409835950200002,\n    \"stddev\": 0.02374449047946239,\n    \"system\": 0.04870753,\n    \"time\": 1.19902111702,\n    \"user\": 1.15572889\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"max\": 1.19902111702,\n    \"mean\": 1.1574194504200002,\n    \"median\": 1.14990907502,\n    \"message\": \"Move painting code into paint module\\n\",\n    \"min\": 1.1409835950200002,\n    \"stddev\": 0.02374449047946239,\n    \"system\": 0.04870753,\n    \"time\": 1.14400346702,\n    \"user\": 1.15572889\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"max\": 1.19902111702,\n    \"mean\": 1.1574194504200002,\n    \"median\": 1.14990907502,\n    \"message\": \"Move painting code into paint module\\n\",\n    \"min\": 1.1409835950200002,\n    \"stddev\": 0.02374449047946239,\n    \"system\": 0.04870753,\n    \"time\": 1.1409835950200002,\n    \"user\": 1.15572889\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"max\": 1.19902111702,\n    \"mean\": 1.1574194504200002,\n    \"median\": 1.14990907502,\n    \"message\": \"Move painting code into paint module\\n\",\n    \"min\": 1.1409835950200002,\n    \"stddev\": 0.02374449047946239,\n    \"system\": 0.04870753,\n    \"time\": 1.14990907502,\n    \"user\": 1.15572889\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"max\": 1.19902111702,\n    \"mean\": 1.1574194504200002,\n    \"median\": 1.14990907502,\n    \"message\": \"Move painting code into paint module\\n\",\n    \"min\": 1.1409835950200002,\n    \"stddev\": 0.02374449047946239,\n    \"system\": 0.04870753,\n    \"time\": 1.1531799980200002,\n    \"user\": 1.15572889\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"max\": 1.18279068139,\n    \"mean\": 1.1607776965899999,\n    \"median\": 1.15403389539,\n    \"message\": \"Don't join lines\\n\",\n    \"min\": 1.14495593939,\n    \"stddev\": 0.015346722126213007,\n    \"system\": 0.04729384999999999,\n    \"time\": 1.18279068139,\n    \"user\": 1.16105758\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"max\": 1.18279068139,\n    \"mean\": 1.1607776965899999,\n    \"median\": 1.15403389539,\n    \"message\": \"Don't join lines\\n\",\n    \"min\": 1.14495593939,\n    \"stddev\": 0.015346722126213007,\n    \"system\": 0.04729384999999999,\n    \"time\": 1.17004165539,\n    \"user\": 1.16105758\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"max\": 1.18279068139,\n    \"mean\": 1.1607776965899999,\n    \"median\": 1.15403389539,\n    \"message\": \"Don't join lines\\n\",\n    \"min\": 1.14495593939,\n    \"stddev\": 0.015346722126213007,\n    \"system\": 0.04729384999999999,\n    \"time\": 1.1520663113899998,\n    \"user\": 1.16105758\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"max\": 1.18279068139,\n    \"mean\": 1.1607776965899999,\n    \"median\": 1.15403389539,\n    \"message\": \"Don't join lines\\n\",\n    \"min\": 1.14495593939,\n    \"stddev\": 0.015346722126213007,\n    \"system\": 0.04729384999999999,\n    \"time\": 1.14495593939,\n    \"user\": 1.16105758\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"max\": 1.18279068139,\n    \"mean\": 1.1607776965899999,\n    \"median\": 1.15403389539,\n    \"message\": \"Don't join lines\\n\",\n    \"min\": 1.14495593939,\n    \"stddev\": 0.015346722126213007,\n    \"system\": 0.04729384999999999,\n    \"time\": 1.15403389539,\n    \"user\": 1.16105758\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"max\": 1.2491679785,\n    \"mean\": 1.2327427200999999,\n    \"median\": 1.2294042475,\n    \"message\": \"Unit tests\\n\",\n    \"min\": 1.2243363295,\n    \"stddev\": 0.009572804077813225,\n    \"system\": 0.040978289999999994,\n    \"time\": 1.2491679785,\n    \"user\": 1.223794935\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"max\": 1.2491679785,\n    \"mean\": 1.2327427200999999,\n    \"median\": 1.2294042475,\n    \"message\": \"Unit tests\\n\",\n    \"min\": 1.2243363295,\n    \"stddev\": 0.009572804077813225,\n    \"system\": 0.040978289999999994,\n    \"time\": 1.2289884245,\n    \"user\": 1.223794935\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"max\": 1.2491679785,\n    \"mean\": 1.2327427200999999,\n    \"median\": 1.2294042475,\n    \"message\": \"Unit tests\\n\",\n    \"min\": 1.2243363295,\n    \"stddev\": 0.009572804077813225,\n    \"system\": 0.040978289999999994,\n    \"time\": 1.2243363295,\n    \"user\": 1.223794935\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"max\": 1.2491679785,\n    \"mean\": 1.2327427200999999,\n    \"median\": 1.2294042475,\n    \"message\": \"Unit tests\\n\",\n    \"min\": 1.2243363295,\n    \"stddev\": 0.009572804077813225,\n    \"system\": 0.040978289999999994,\n    \"time\": 1.2318166205,\n    \"user\": 1.223794935\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"max\": 1.2491679785,\n    \"mean\": 1.2327427200999999,\n    \"median\": 1.2294042475,\n    \"message\": \"Unit tests\\n\",\n    \"min\": 1.2243363295,\n    \"stddev\": 0.009572804077813225,\n    \"system\": 0.040978289999999994,\n    \"time\": 1.2294042475,\n    \"user\": 1.223794935\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"max\": 1.4977872468450002,\n    \"mean\": 1.4662400598450003,\n    \"median\": 1.459294471845,\n    \"message\": \"gitignore\\n\",\n    \"min\": 1.455689714845,\n    \"stddev\": 0.017706651048624678,\n    \"system\": 0.051629804999999994,\n    \"time\": 1.4977872468450002,\n    \"user\": 1.47068039\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"max\": 1.4977872468450002,\n    \"mean\": 1.4662400598450003,\n    \"median\": 1.459294471845,\n    \"message\": \"gitignore\\n\",\n    \"min\": 1.455689714845,\n    \"stddev\": 0.017706651048624678,\n    \"system\": 0.051629804999999994,\n    \"time\": 1.455689714845,\n    \"user\": 1.47068039\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"max\": 1.4977872468450002,\n    \"mean\": 1.4662400598450003,\n    \"median\": 1.459294471845,\n    \"message\": \"gitignore\\n\",\n    \"min\": 1.455689714845,\n    \"stddev\": 0.017706651048624678,\n    \"system\": 0.051629804999999994,\n    \"time\": 1.4597653938450001,\n    \"user\": 1.47068039\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"max\": 1.4977872468450002,\n    \"mean\": 1.4662400598450003,\n    \"median\": 1.459294471845,\n    \"message\": \"gitignore\\n\",\n    \"min\": 1.455689714845,\n    \"stddev\": 0.017706651048624678,\n    \"system\": 0.051629804999999994,\n    \"time\": 1.458663471845,\n    \"user\": 1.47068039\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"max\": 1.4977872468450002,\n    \"mean\": 1.4662400598450003,\n    \"median\": 1.459294471845,\n    \"message\": \"gitignore\\n\",\n    \"min\": 1.455689714845,\n    \"stddev\": 0.017706651048624678,\n    \"system\": 0.051629804999999994,\n    \"time\": 1.459294471845,\n    \"user\": 1.47068039\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"max\": 1.480285197455,\n    \"mean\": 1.461440515855,\n    \"median\": 1.4640092264550002,\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"min\": 1.432379308455,\n    \"stddev\": 0.017935630394473247,\n    \"system\": 0.051843415000000004,\n    \"time\": 1.4640092264550002,\n    \"user\": 1.4640838449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"max\": 1.480285197455,\n    \"mean\": 1.461440515855,\n    \"median\": 1.4640092264550002,\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"min\": 1.432379308455,\n    \"stddev\": 0.017935630394473247,\n    \"system\": 0.051843415000000004,\n    \"time\": 1.432379308455,\n    \"user\": 1.4640838449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"max\": 1.480285197455,\n    \"mean\": 1.461440515855,\n    \"median\": 1.4640092264550002,\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"min\": 1.432379308455,\n    \"stddev\": 0.017935630394473247,\n    \"system\": 0.051843415000000004,\n    \"time\": 1.480285197455,\n    \"user\": 1.4640838449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"max\": 1.480285197455,\n    \"mean\": 1.461440515855,\n    \"median\": 1.4640092264550002,\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"min\": 1.432379308455,\n    \"stddev\": 0.017935630394473247,\n    \"system\": 0.051843415000000004,\n    \"time\": 1.4602033594550001,\n    \"user\": 1.4640838449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"max\": 1.480285197455,\n    \"mean\": 1.461440515855,\n    \"median\": 1.4640092264550002,\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"min\": 1.432379308455,\n    \"stddev\": 0.017935630394473247,\n    \"system\": 0.051843415000000004,\n    \"time\": 1.470325487455,\n    \"user\": 1.4640838449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"max\": 1.243351240645,\n    \"mean\": 1.2016839498449998,\n    \"median\": 1.198345246645,\n    \"message\": \"Impl function for enum\\n\",\n    \"min\": 1.178215910645,\n    \"stddev\": 0.02484727012846121,\n    \"system\": 0.05305982,\n    \"time\": 1.243351240645,\n    \"user\": 1.1973359249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"max\": 1.243351240645,\n    \"mean\": 1.2016839498449998,\n    \"median\": 1.198345246645,\n    \"message\": \"Impl function for enum\\n\",\n    \"min\": 1.178215910645,\n    \"stddev\": 0.02484727012846121,\n    \"system\": 0.05305982,\n    \"time\": 1.198345246645,\n    \"user\": 1.1973359249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"max\": 1.243351240645,\n    \"mean\": 1.2016839498449998,\n    \"median\": 1.198345246645,\n    \"message\": \"Impl function for enum\\n\",\n    \"min\": 1.178215910645,\n    \"stddev\": 0.02484727012846121,\n    \"system\": 0.05305982,\n    \"time\": 1.188727806645,\n    \"user\": 1.1973359249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"max\": 1.243351240645,\n    \"mean\": 1.2016839498449998,\n    \"median\": 1.198345246645,\n    \"message\": \"Impl function for enum\\n\",\n    \"min\": 1.178215910645,\n    \"stddev\": 0.02484727012846121,\n    \"system\": 0.05305982,\n    \"time\": 1.199779544645,\n    \"user\": 1.1973359249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"max\": 1.243351240645,\n    \"mean\": 1.2016839498449998,\n    \"median\": 1.198345246645,\n    \"message\": \"Impl function for enum\\n\",\n    \"min\": 1.178215910645,\n    \"stddev\": 0.02484727012846121,\n    \"system\": 0.05305982,\n    \"time\": 1.178215910645,\n    \"user\": 1.1973359249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"max\": 1.20114159209,\n    \"mean\": 1.17334452129,\n    \"median\": 1.16757307309,\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"min\": 1.1589249160900001,\n    \"stddev\": 0.017714289940625846,\n    \"system\": 0.04069096,\n    \"time\": 1.20114159209,\n    \"user\": 1.1725067\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"max\": 1.20114159209,\n    \"mean\": 1.17334452129,\n    \"median\": 1.16757307309,\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"min\": 1.1589249160900001,\n    \"stddev\": 0.017714289940625846,\n    \"system\": 0.04069096,\n    \"time\": 1.1589249160900001,\n    \"user\": 1.1725067\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"max\": 1.20114159209,\n    \"mean\": 1.17334452129,\n    \"median\": 1.16757307309,\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"min\": 1.1589249160900001,\n    \"stddev\": 0.017714289940625846,\n    \"system\": 0.04069096,\n    \"time\": 1.15923746609,\n    \"user\": 1.1725067\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"max\": 1.20114159209,\n    \"mean\": 1.17334452129,\n    \"median\": 1.16757307309,\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"min\": 1.1589249160900001,\n    \"stddev\": 0.017714289940625846,\n    \"system\": 0.04069096,\n    \"time\": 1.17984555909,\n    \"user\": 1.1725067\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"max\": 1.20114159209,\n    \"mean\": 1.17334452129,\n    \"median\": 1.16757307309,\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"min\": 1.1589249160900001,\n    \"stddev\": 0.017714289940625846,\n    \"system\": 0.04069096,\n    \"time\": 1.16757307309,\n    \"user\": 1.1725067\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"max\": 1.180643254655,\n    \"mean\": 1.153623906255,\n    \"median\": 1.150362804655,\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"min\": 1.138442188655,\n    \"stddev\": 0.017300587749109378,\n    \"system\": 0.040409505000000005,\n    \"time\": 1.180643254655,\n    \"user\": 1.153510035\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"max\": 1.180643254655,\n    \"mean\": 1.153623906255,\n    \"median\": 1.150362804655,\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"min\": 1.138442188655,\n    \"stddev\": 0.017300587749109378,\n    \"system\": 0.040409505000000005,\n    \"time\": 1.139606859655,\n    \"user\": 1.153510035\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"max\": 1.180643254655,\n    \"mean\": 1.153623906255,\n    \"median\": 1.150362804655,\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"min\": 1.138442188655,\n    \"stddev\": 0.017300587749109378,\n    \"system\": 0.040409505000000005,\n    \"time\": 1.138442188655,\n    \"user\": 1.153510035\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"max\": 1.180643254655,\n    \"mean\": 1.153623906255,\n    \"median\": 1.150362804655,\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"min\": 1.138442188655,\n    \"stddev\": 0.017300587749109378,\n    \"system\": 0.040409505000000005,\n    \"time\": 1.159064423655,\n    \"user\": 1.153510035\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"max\": 1.180643254655,\n    \"mean\": 1.153623906255,\n    \"median\": 1.150362804655,\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"min\": 1.138442188655,\n    \"stddev\": 0.017300587749109378,\n    \"system\": 0.040409505000000005,\n    \"time\": 1.150362804655,\n    \"user\": 1.153510035\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"max\": 1.18124358003,\n    \"mean\": 1.16124698863,\n    \"median\": 1.1612450600300002,\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"min\": 1.14183412803,\n    \"stddev\": 0.015438166501276645,\n    \"system\": 0.047347110000000005,\n    \"time\": 1.17034906003,\n    \"user\": 1.158070205\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"max\": 1.18124358003,\n    \"mean\": 1.16124698863,\n    \"median\": 1.1612450600300002,\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"min\": 1.14183412803,\n    \"stddev\": 0.015438166501276645,\n    \"system\": 0.047347110000000005,\n    \"time\": 1.14183412803,\n    \"user\": 1.158070205\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"max\": 1.18124358003,\n    \"mean\": 1.16124698863,\n    \"median\": 1.1612450600300002,\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"min\": 1.14183412803,\n    \"stddev\": 0.015438166501276645,\n    \"system\": 0.047347110000000005,\n    \"time\": 1.15156311503,\n    \"user\": 1.158070205\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"max\": 1.18124358003,\n    \"mean\": 1.16124698863,\n    \"median\": 1.1612450600300002,\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"min\": 1.14183412803,\n    \"stddev\": 0.015438166501276645,\n    \"system\": 0.047347110000000005,\n    \"time\": 1.18124358003,\n    \"user\": 1.158070205\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"max\": 1.18124358003,\n    \"mean\": 1.16124698863,\n    \"median\": 1.1612450600300002,\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"min\": 1.14183412803,\n    \"stddev\": 0.015438166501276645,\n    \"system\": 0.047347110000000005,\n    \"time\": 1.1612450600300002,\n    \"user\": 1.158070205\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"max\": 1.51119344399,\n    \"mean\": 1.4876333715899999,\n    \"median\": 1.4878771989900001,\n    \"message\": \"Simplify state transition loop\\n\",\n    \"min\": 1.45865496599,\n    \"stddev\": 0.019060936244040278,\n    \"system\": 0.05565329,\n    \"time\": 1.45865496599,\n    \"user\": 1.4956431249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"max\": 1.51119344399,\n    \"mean\": 1.4876333715899999,\n    \"median\": 1.4878771989900001,\n    \"message\": \"Simplify state transition loop\\n\",\n    \"min\": 1.45865496599,\n    \"stddev\": 0.019060936244040278,\n    \"system\": 0.05565329,\n    \"time\": 1.51119344399,\n    \"user\": 1.4956431249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"max\": 1.51119344399,\n    \"mean\": 1.4876333715899999,\n    \"median\": 1.4878771989900001,\n    \"message\": \"Simplify state transition loop\\n\",\n    \"min\": 1.45865496599,\n    \"stddev\": 0.019060936244040278,\n    \"system\": 0.05565329,\n    \"time\": 1.49496430199,\n    \"user\": 1.4956431249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"max\": 1.51119344399,\n    \"mean\": 1.4876333715899999,\n    \"median\": 1.4878771989900001,\n    \"message\": \"Simplify state transition loop\\n\",\n    \"min\": 1.45865496599,\n    \"stddev\": 0.019060936244040278,\n    \"system\": 0.05565329,\n    \"time\": 1.48547694699,\n    \"user\": 1.4956431249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"max\": 1.51119344399,\n    \"mean\": 1.4876333715899999,\n    \"median\": 1.4878771989900001,\n    \"message\": \"Simplify state transition loop\\n\",\n    \"min\": 1.45865496599,\n    \"stddev\": 0.019060936244040278,\n    \"system\": 0.05565329,\n    \"time\": 1.4878771989900001,\n    \"user\": 1.4956431249999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"max\": 1.3965842474449999,\n    \"mean\": 1.371002113845,\n    \"median\": 1.365971817445,\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"min\": 1.360670720445,\n    \"stddev\": 0.014706530926206579,\n    \"system\": 0.07031591999999999,\n    \"time\": 1.3965842474449999,\n    \"user\": 1.3724192149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"max\": 1.3965842474449999,\n    \"mean\": 1.371002113845,\n    \"median\": 1.365971817445,\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"min\": 1.360670720445,\n    \"stddev\": 0.014706530926206579,\n    \"system\": 0.07031591999999999,\n    \"time\": 1.369525921445,\n    \"user\": 1.3724192149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"max\": 1.3965842474449999,\n    \"mean\": 1.371002113845,\n    \"median\": 1.365971817445,\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"min\": 1.360670720445,\n    \"stddev\": 0.014706530926206579,\n    \"system\": 0.07031591999999999,\n    \"time\": 1.365971817445,\n    \"user\": 1.3724192149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"max\": 1.3965842474449999,\n    \"mean\": 1.371002113845,\n    \"median\": 1.365971817445,\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"min\": 1.360670720445,\n    \"stddev\": 0.014706530926206579,\n    \"system\": 0.07031591999999999,\n    \"time\": 1.362257862445,\n    \"user\": 1.3724192149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"max\": 1.3965842474449999,\n    \"mean\": 1.371002113845,\n    \"median\": 1.365971817445,\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"min\": 1.360670720445,\n    \"stddev\": 0.014706530926206579,\n    \"system\": 0.07031591999999999,\n    \"time\": 1.360670720445,\n    \"user\": 1.3724192149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"max\": 1.22240235419,\n    \"mean\": 1.1891125803900002,\n    \"median\": 1.18795458619,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.1683980491900001,\n    \"stddev\": 0.02073144740917719,\n    \"system\": 0.051671064999999995,\n    \"time\": 1.22240235419,\n    \"user\": 1.185881535\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"max\": 1.22240235419,\n    \"mean\": 1.1891125803900002,\n    \"median\": 1.18795458619,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.1683980491900001,\n    \"stddev\": 0.02073144740917719,\n    \"system\": 0.051671064999999995,\n    \"time\": 1.1683980491900001,\n    \"user\": 1.185881535\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"max\": 1.22240235419,\n    \"mean\": 1.1891125803900002,\n    \"median\": 1.18795458619,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.1683980491900001,\n    \"stddev\": 0.02073144740917719,\n    \"system\": 0.051671064999999995,\n    \"time\": 1.17580944919,\n    \"user\": 1.185881535\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"max\": 1.22240235419,\n    \"mean\": 1.1891125803900002,\n    \"median\": 1.18795458619,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.1683980491900001,\n    \"stddev\": 0.02073144740917719,\n    \"system\": 0.051671064999999995,\n    \"time\": 1.1909984631900001,\n    \"user\": 1.185881535\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"max\": 1.22240235419,\n    \"mean\": 1.1891125803900002,\n    \"median\": 1.18795458619,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.1683980491900001,\n    \"stddev\": 0.02073144740917719,\n    \"system\": 0.051671064999999995,\n    \"time\": 1.18795458619,\n    \"user\": 1.185881535\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"max\": 1.1882785525500001,\n    \"mean\": 1.1533804717500002,\n    \"median\": 1.14654363555,\n    \"message\": \"Stub: combine style sections\\n\",\n    \"min\": 1.1413470225500002,\n    \"stddev\": 0.01964177319926766,\n    \"system\": 0.041079535,\n    \"time\": 1.1882785525500001,\n    \"user\": 1.152437\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"max\": 1.1882785525500001,\n    \"mean\": 1.1533804717500002,\n    \"median\": 1.14654363555,\n    \"message\": \"Stub: combine style sections\\n\",\n    \"min\": 1.1413470225500002,\n    \"stddev\": 0.01964177319926766,\n    \"system\": 0.041079535,\n    \"time\": 1.1413470225500002,\n    \"user\": 1.152437\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"max\": 1.1882785525500001,\n    \"mean\": 1.1533804717500002,\n    \"median\": 1.14654363555,\n    \"message\": \"Stub: combine style sections\\n\",\n    \"min\": 1.1413470225500002,\n    \"stddev\": 0.01964177319926766,\n    \"system\": 0.041079535,\n    \"time\": 1.1469990005500001,\n    \"user\": 1.152437\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"max\": 1.1882785525500001,\n    \"mean\": 1.1533804717500002,\n    \"median\": 1.14654363555,\n    \"message\": \"Stub: combine style sections\\n\",\n    \"min\": 1.1413470225500002,\n    \"stddev\": 0.01964177319926766,\n    \"system\": 0.041079535,\n    \"time\": 1.14654363555,\n    \"user\": 1.152437\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"max\": 1.1882785525500001,\n    \"mean\": 1.1533804717500002,\n    \"median\": 1.14654363555,\n    \"message\": \"Stub: combine style sections\\n\",\n    \"min\": 1.1413470225500002,\n    \"stddev\": 0.01964177319926766,\n    \"system\": 0.041079535,\n    \"time\": 1.14373414755,\n    \"user\": 1.152437\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"max\": 1.1644550439649999,\n    \"mean\": 1.140749134165,\n    \"median\": 1.1404099639649998,\n    \"message\": \"Separate painting and emitting\\n\",\n    \"min\": 1.1221839839649999,\n    \"stddev\": 0.015516770524477393,\n    \"system\": 0.04055066,\n    \"time\": 1.1644550439649999,\n    \"user\": 1.1394548200000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"max\": 1.1644550439649999,\n    \"mean\": 1.140749134165,\n    \"median\": 1.1404099639649998,\n    \"message\": \"Separate painting and emitting\\n\",\n    \"min\": 1.1221839839649999,\n    \"stddev\": 0.015516770524477393,\n    \"system\": 0.04055066,\n    \"time\": 1.1404099639649998,\n    \"user\": 1.1394548200000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"max\": 1.1644550439649999,\n    \"mean\": 1.140749134165,\n    \"median\": 1.1404099639649998,\n    \"message\": \"Separate painting and emitting\\n\",\n    \"min\": 1.1221839839649999,\n    \"stddev\": 0.015516770524477393,\n    \"system\": 0.04055066,\n    \"time\": 1.1221839839649999,\n    \"user\": 1.1394548200000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"max\": 1.1644550439649999,\n    \"mean\": 1.140749134165,\n    \"median\": 1.1404099639649998,\n    \"message\": \"Separate painting and emitting\\n\",\n    \"min\": 1.1221839839649999,\n    \"stddev\": 0.015516770524477393,\n    \"system\": 0.04055066,\n    \"time\": 1.133615314965,\n    \"user\": 1.1394548200000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"max\": 1.1644550439649999,\n    \"mean\": 1.140749134165,\n    \"median\": 1.1404099639649998,\n    \"message\": \"Separate painting and emitting\\n\",\n    \"min\": 1.1221839839649999,\n    \"stddev\": 0.015516770524477393,\n    \"system\": 0.04055066,\n    \"time\": 1.143081363965,\n    \"user\": 1.1394548200000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"max\": 1.236158594195,\n    \"mean\": 1.201434078395,\n    \"median\": 1.208384566195,\n    \"message\": \"Rename and unify files\\n\",\n    \"min\": 1.161961305195,\n    \"stddev\": 0.030689201636673068,\n    \"system\": 0.051524894999999994,\n    \"time\": 1.208384566195,\n    \"user\": 1.200861585\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"max\": 1.236158594195,\n    \"mean\": 1.201434078395,\n    \"median\": 1.208384566195,\n    \"message\": \"Rename and unify files\\n\",\n    \"min\": 1.161961305195,\n    \"stddev\": 0.030689201636673068,\n    \"system\": 0.051524894999999994,\n    \"time\": 1.236158594195,\n    \"user\": 1.200861585\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"max\": 1.236158594195,\n    \"mean\": 1.201434078395,\n    \"median\": 1.208384566195,\n    \"message\": \"Rename and unify files\\n\",\n    \"min\": 1.161961305195,\n    \"stddev\": 0.030689201636673068,\n    \"system\": 0.051524894999999994,\n    \"time\": 1.222158205195,\n    \"user\": 1.200861585\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"max\": 1.236158594195,\n    \"mean\": 1.201434078395,\n    \"median\": 1.208384566195,\n    \"message\": \"Rename and unify files\\n\",\n    \"min\": 1.161961305195,\n    \"stddev\": 0.030689201636673068,\n    \"system\": 0.051524894999999994,\n    \"time\": 1.178507721195,\n    \"user\": 1.200861585\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"max\": 1.236158594195,\n    \"mean\": 1.201434078395,\n    \"median\": 1.208384566195,\n    \"message\": \"Rename and unify files\\n\",\n    \"min\": 1.161961305195,\n    \"stddev\": 0.030689201636673068,\n    \"system\": 0.051524894999999994,\n    \"time\": 1.161961305195,\n    \"user\": 1.200861585\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"max\": 1.299086087545,\n    \"mean\": 1.2401122099450004,\n    \"median\": 1.227456850545,\n    \"message\": \"Simplify flush condition\\n\",\n    \"min\": 1.217535754545,\n    \"stddev\": 0.03333379794477074,\n    \"system\": 0.050098390000000007,\n    \"time\": 1.2309754855450001,\n    \"user\": 1.2433628549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"max\": 1.299086087545,\n    \"mean\": 1.2401122099450004,\n    \"median\": 1.227456850545,\n    \"message\": \"Simplify flush condition\\n\",\n    \"min\": 1.217535754545,\n    \"stddev\": 0.03333379794477074,\n    \"system\": 0.050098390000000007,\n    \"time\": 1.2255068715450002,\n    \"user\": 1.2433628549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"max\": 1.299086087545,\n    \"mean\": 1.2401122099450004,\n    \"median\": 1.227456850545,\n    \"message\": \"Simplify flush condition\\n\",\n    \"min\": 1.217535754545,\n    \"stddev\": 0.03333379794477074,\n    \"system\": 0.050098390000000007,\n    \"time\": 1.217535754545,\n    \"user\": 1.2433628549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"max\": 1.299086087545,\n    \"mean\": 1.2401122099450004,\n    \"median\": 1.227456850545,\n    \"message\": \"Simplify flush condition\\n\",\n    \"min\": 1.217535754545,\n    \"stddev\": 0.03333379794477074,\n    \"system\": 0.050098390000000007,\n    \"time\": 1.227456850545,\n    \"user\": 1.2433628549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"max\": 1.299086087545,\n    \"mean\": 1.2401122099450004,\n    \"median\": 1.227456850545,\n    \"message\": \"Simplify flush condition\\n\",\n    \"min\": 1.217535754545,\n    \"stddev\": 0.03333379794477074,\n    \"system\": 0.050098390000000007,\n    \"time\": 1.299086087545,\n    \"user\": 1.2433628549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"max\": 1.215233308225,\n    \"mean\": 1.1798152644250002,\n    \"median\": 1.1610149142250001,\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"min\": 1.154320513225,\n    \"stddev\": 0.03027317090232085,\n    \"system\": 0.050040474999999994,\n    \"time\": 1.2104127792250001,\n    \"user\": 1.1780197799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"max\": 1.215233308225,\n    \"mean\": 1.1798152644250002,\n    \"median\": 1.1610149142250001,\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"min\": 1.154320513225,\n    \"stddev\": 0.03027317090232085,\n    \"system\": 0.050040474999999994,\n    \"time\": 1.154320513225,\n    \"user\": 1.1780197799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"max\": 1.215233308225,\n    \"mean\": 1.1798152644250002,\n    \"median\": 1.1610149142250001,\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"min\": 1.154320513225,\n    \"stddev\": 0.03027317090232085,\n    \"system\": 0.050040474999999994,\n    \"time\": 1.215233308225,\n    \"user\": 1.1780197799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"max\": 1.215233308225,\n    \"mean\": 1.1798152644250002,\n    \"median\": 1.1610149142250001,\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"min\": 1.154320513225,\n    \"stddev\": 0.03027317090232085,\n    \"system\": 0.050040474999999994,\n    \"time\": 1.1580948072250001,\n    \"user\": 1.1780197799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"max\": 1.215233308225,\n    \"mean\": 1.1798152644250002,\n    \"median\": 1.1610149142250001,\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"min\": 1.154320513225,\n    \"stddev\": 0.03027317090232085,\n    \"system\": 0.050040474999999994,\n    \"time\": 1.1610149142250001,\n    \"user\": 1.1780197799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"max\": 1.26488234408,\n    \"mean\": 1.23532166768,\n    \"median\": 1.2302774600800002,\n    \"message\": \"Strengthen test\\n\",\n    \"min\": 1.22228035208,\n    \"stddev\": 0.017024924727588566,\n    \"system\": 0.05054451499999999,\n    \"time\": 1.26488234408,\n    \"user\": 1.2364692400000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"max\": 1.26488234408,\n    \"mean\": 1.23532166768,\n    \"median\": 1.2302774600800002,\n    \"message\": \"Strengthen test\\n\",\n    \"min\": 1.22228035208,\n    \"stddev\": 0.017024924727588566,\n    \"system\": 0.05054451499999999,\n    \"time\": 1.2302774600800002,\n    \"user\": 1.2364692400000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"max\": 1.26488234408,\n    \"mean\": 1.23532166768,\n    \"median\": 1.2302774600800002,\n    \"message\": \"Strengthen test\\n\",\n    \"min\": 1.22228035208,\n    \"stddev\": 0.017024924727588566,\n    \"system\": 0.05054451499999999,\n    \"time\": 1.2330625350800002,\n    \"user\": 1.2364692400000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"max\": 1.26488234408,\n    \"mean\": 1.23532166768,\n    \"median\": 1.2302774600800002,\n    \"message\": \"Strengthen test\\n\",\n    \"min\": 1.22228035208,\n    \"stddev\": 0.017024924727588566,\n    \"system\": 0.05054451499999999,\n    \"time\": 1.22228035208,\n    \"user\": 1.2364692400000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"max\": 1.26488234408,\n    \"mean\": 1.23532166768,\n    \"median\": 1.2302774600800002,\n    \"message\": \"Strengthen test\\n\",\n    \"min\": 1.22228035208,\n    \"stddev\": 0.017024924727588566,\n    \"system\": 0.05054451499999999,\n    \"time\": 1.22610564708,\n    \"user\": 1.2364692400000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"max\": 1.24193775544,\n    \"mean\": 1.19488034504,\n    \"median\": 1.18671817744,\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"min\": 1.1706698424400002,\n    \"stddev\": 0.02759215271141244,\n    \"system\": 0.052268085,\n    \"time\": 1.24193775544,\n    \"user\": 1.19093323\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"max\": 1.24193775544,\n    \"mean\": 1.19488034504,\n    \"median\": 1.18671817744,\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"min\": 1.1706698424400002,\n    \"stddev\": 0.02759215271141244,\n    \"system\": 0.052268085,\n    \"time\": 1.18671817744,\n    \"user\": 1.19093323\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"max\": 1.24193775544,\n    \"mean\": 1.19488034504,\n    \"median\": 1.18671817744,\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"min\": 1.1706698424400002,\n    \"stddev\": 0.02759215271141244,\n    \"system\": 0.052268085,\n    \"time\": 1.19346745544,\n    \"user\": 1.19093323\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"max\": 1.24193775544,\n    \"mean\": 1.19488034504,\n    \"median\": 1.18671817744,\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"min\": 1.1706698424400002,\n    \"stddev\": 0.02759215271141244,\n    \"system\": 0.052268085,\n    \"time\": 1.18160849444,\n    \"user\": 1.19093323\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"max\": 1.24193775544,\n    \"mean\": 1.19488034504,\n    \"median\": 1.18671817744,\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"min\": 1.1706698424400002,\n    \"stddev\": 0.02759215271141244,\n    \"system\": 0.052268085,\n    \"time\": 1.1706698424400002,\n    \"user\": 1.19093323\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"max\": 1.185194344135,\n    \"mean\": 1.153357329535,\n    \"median\": 1.146247208135,\n    \"message\": \"Fix state machine documentation\\n\",\n    \"min\": 1.1431473451349998,\n    \"stddev\": 0.017924347129004266,\n    \"system\": 0.04844933,\n    \"time\": 1.185194344135,\n    \"user\": 1.1529702099999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"max\": 1.185194344135,\n    \"mean\": 1.153357329535,\n    \"median\": 1.146247208135,\n    \"message\": \"Fix state machine documentation\\n\",\n    \"min\": 1.1431473451349998,\n    \"stddev\": 0.017924347129004266,\n    \"system\": 0.04844933,\n    \"time\": 1.1431473451349998,\n    \"user\": 1.1529702099999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"max\": 1.185194344135,\n    \"mean\": 1.153357329535,\n    \"median\": 1.146247208135,\n    \"message\": \"Fix state machine documentation\\n\",\n    \"min\": 1.1431473451349998,\n    \"stddev\": 0.017924347129004266,\n    \"system\": 0.04844933,\n    \"time\": 1.146247208135,\n    \"user\": 1.1529702099999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"max\": 1.185194344135,\n    \"mean\": 1.153357329535,\n    \"median\": 1.146247208135,\n    \"message\": \"Fix state machine documentation\\n\",\n    \"min\": 1.1431473451349998,\n    \"stddev\": 0.017924347129004266,\n    \"system\": 0.04844933,\n    \"time\": 1.1484827221349998,\n    \"user\": 1.1529702099999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"max\": 1.185194344135,\n    \"mean\": 1.153357329535,\n    \"median\": 1.146247208135,\n    \"message\": \"Fix state machine documentation\\n\",\n    \"min\": 1.1431473451349998,\n    \"stddev\": 0.017924347129004266,\n    \"system\": 0.04844933,\n    \"time\": 1.143715028135,\n    \"user\": 1.1529702099999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"max\": 1.275949960665,\n    \"mean\": 1.2385253336650002,\n    \"median\": 1.233933613665,\n    \"message\": \"Refactor: config colors\\n\",\n    \"min\": 1.2150566196650001,\n    \"stddev\": 0.023975118752485716,\n    \"system\": 0.041118449999999994,\n    \"time\": 1.275949960665,\n    \"user\": 1.2279322649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"max\": 1.275949960665,\n    \"mean\": 1.2385253336650002,\n    \"median\": 1.233933613665,\n    \"message\": \"Refactor: config colors\\n\",\n    \"min\": 1.2150566196650001,\n    \"stddev\": 0.023975118752485716,\n    \"system\": 0.041118449999999994,\n    \"time\": 1.245736808665,\n    \"user\": 1.2279322649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"max\": 1.275949960665,\n    \"mean\": 1.2385253336650002,\n    \"median\": 1.233933613665,\n    \"message\": \"Refactor: config colors\\n\",\n    \"min\": 1.2150566196650001,\n    \"stddev\": 0.023975118752485716,\n    \"system\": 0.041118449999999994,\n    \"time\": 1.221949665665,\n    \"user\": 1.2279322649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"max\": 1.275949960665,\n    \"mean\": 1.2385253336650002,\n    \"median\": 1.233933613665,\n    \"message\": \"Refactor: config colors\\n\",\n    \"min\": 1.2150566196650001,\n    \"stddev\": 0.023975118752485716,\n    \"system\": 0.041118449999999994,\n    \"time\": 1.233933613665,\n    \"user\": 1.2279322649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"max\": 1.275949960665,\n    \"mean\": 1.2385253336650002,\n    \"median\": 1.233933613665,\n    \"message\": \"Refactor: config colors\\n\",\n    \"min\": 1.2150566196650001,\n    \"stddev\": 0.023975118752485716,\n    \"system\": 0.041118449999999994,\n    \"time\": 1.2150566196650001,\n    \"user\": 1.2279322649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"max\": 1.285482954295,\n    \"mean\": 1.2555986748949999,\n    \"median\": 1.250473410295,\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"min\": 1.244030053295,\n    \"stddev\": 0.017203015366762314,\n    \"system\": 0.0428499,\n    \"time\": 1.285482954295,\n    \"user\": 1.258365225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"max\": 1.285482954295,\n    \"mean\": 1.2555986748949999,\n    \"median\": 1.250473410295,\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"min\": 1.244030053295,\n    \"stddev\": 0.017203015366762314,\n    \"system\": 0.0428499,\n    \"time\": 1.2443338842949998,\n    \"user\": 1.258365225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"max\": 1.285482954295,\n    \"mean\": 1.2555986748949999,\n    \"median\": 1.250473410295,\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"min\": 1.244030053295,\n    \"stddev\": 0.017203015366762314,\n    \"system\": 0.0428499,\n    \"time\": 1.250473410295,\n    \"user\": 1.258365225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"max\": 1.285482954295,\n    \"mean\": 1.2555986748949999,\n    \"median\": 1.250473410295,\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"min\": 1.244030053295,\n    \"stddev\": 0.017203015366762314,\n    \"system\": 0.0428499,\n    \"time\": 1.253673072295,\n    \"user\": 1.258365225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"max\": 1.285482954295,\n    \"mean\": 1.2555986748949999,\n    \"median\": 1.250473410295,\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"min\": 1.244030053295,\n    \"stddev\": 0.017203015366762314,\n    \"system\": 0.0428499,\n    \"time\": 1.244030053295,\n    \"user\": 1.258365225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"max\": 1.448841718975,\n    \"mean\": 1.4232398383750002,\n    \"median\": 1.421268540975,\n    \"message\": \"Honor --width argument\\n\",\n    \"min\": 1.4079707859750001,\n    \"stddev\": 0.01683724012584363,\n    \"system\": 0.043180885,\n    \"time\": 1.448841718975,\n    \"user\": 1.4281380249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"max\": 1.448841718975,\n    \"mean\": 1.4232398383750002,\n    \"median\": 1.421268540975,\n    \"message\": \"Honor --width argument\\n\",\n    \"min\": 1.4079707859750001,\n    \"stddev\": 0.01683724012584363,\n    \"system\": 0.043180885,\n    \"time\": 1.421268540975,\n    \"user\": 1.4281380249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"max\": 1.448841718975,\n    \"mean\": 1.4232398383750002,\n    \"median\": 1.421268540975,\n    \"message\": \"Honor --width argument\\n\",\n    \"min\": 1.4079707859750001,\n    \"stddev\": 0.01683724012584363,\n    \"system\": 0.043180885,\n    \"time\": 1.4088972139750002,\n    \"user\": 1.4281380249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"max\": 1.448841718975,\n    \"mean\": 1.4232398383750002,\n    \"median\": 1.421268540975,\n    \"message\": \"Honor --width argument\\n\",\n    \"min\": 1.4079707859750001,\n    \"stddev\": 0.01683724012584363,\n    \"system\": 0.043180885,\n    \"time\": 1.4079707859750001,\n    \"user\": 1.4281380249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"max\": 1.448841718975,\n    \"mean\": 1.4232398383750002,\n    \"median\": 1.421268540975,\n    \"message\": \"Honor --width argument\\n\",\n    \"min\": 1.4079707859750001,\n    \"stddev\": 0.01683724012584363,\n    \"system\": 0.043180885,\n    \"time\": 1.429220931975,\n    \"user\": 1.4281380249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"max\": 1.20416081136,\n    \"mean\": 1.1801096345600002,\n    \"median\": 1.17352605936,\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"min\": 1.16583214536,\n    \"stddev\": 0.015914726384856154,\n    \"system\": 0.04282999,\n    \"time\": 1.18806382936,\n    \"user\": 1.1797219700000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"max\": 1.20416081136,\n    \"mean\": 1.1801096345600002,\n    \"median\": 1.17352605936,\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"min\": 1.16583214536,\n    \"stddev\": 0.015914726384856154,\n    \"system\": 0.04282999,\n    \"time\": 1.17352605936,\n    \"user\": 1.1797219700000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"max\": 1.20416081136,\n    \"mean\": 1.1801096345600002,\n    \"median\": 1.17352605936,\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"min\": 1.16583214536,\n    \"stddev\": 0.015914726384856154,\n    \"system\": 0.04282999,\n    \"time\": 1.20416081136,\n    \"user\": 1.1797219700000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"max\": 1.20416081136,\n    \"mean\": 1.1801096345600002,\n    \"median\": 1.17352605936,\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"min\": 1.16583214536,\n    \"stddev\": 0.015914726384856154,\n    \"system\": 0.04282999,\n    \"time\": 1.16583214536,\n    \"user\": 1.1797219700000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"max\": 1.20416081136,\n    \"mean\": 1.1801096345600002,\n    \"median\": 1.17352605936,\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"min\": 1.16583214536,\n    \"stddev\": 0.015914726384856154,\n    \"system\": 0.04282999,\n    \"time\": 1.16896532736,\n    \"user\": 1.1797219700000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"max\": 1.4434280558500001,\n    \"mean\": 1.43252225665,\n    \"median\": 1.42855887885,\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"min\": 1.42472387885,\n    \"stddev\": 0.00822349179777816,\n    \"system\": 0.04361345,\n    \"time\": 1.4434280558500001,\n    \"user\": 1.43836896\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"max\": 1.4434280558500001,\n    \"mean\": 1.43252225665,\n    \"median\": 1.42855887885,\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"min\": 1.42472387885,\n    \"stddev\": 0.00822349179777816,\n    \"system\": 0.04361345,\n    \"time\": 1.42472387885,\n    \"user\": 1.43836896\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"max\": 1.4434280558500001,\n    \"mean\": 1.43252225665,\n    \"median\": 1.42855887885,\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"min\": 1.42472387885,\n    \"stddev\": 0.00822349179777816,\n    \"system\": 0.04361345,\n    \"time\": 1.43906077585,\n    \"user\": 1.43836896\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"max\": 1.4434280558500001,\n    \"mean\": 1.43252225665,\n    \"median\": 1.42855887885,\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"min\": 1.42472387885,\n    \"stddev\": 0.00822349179777816,\n    \"system\": 0.04361345,\n    \"time\": 1.42683969385,\n    \"user\": 1.43836896\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"max\": 1.4434280558500001,\n    \"mean\": 1.43252225665,\n    \"median\": 1.42855887885,\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"min\": 1.42472387885,\n    \"stddev\": 0.00822349179777816,\n    \"system\": 0.04361345,\n    \"time\": 1.42855887885,\n    \"user\": 1.43836896\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"max\": 1.487303488175,\n    \"mean\": 1.4491784543750001,\n    \"median\": 1.451351679175,\n    \"message\": \"Only apply background color when desired\\n\",\n    \"min\": 1.409646086175,\n    \"stddev\": 0.029036534848241393,\n    \"system\": 0.04380395499999999,\n    \"time\": 1.4620457711750001,\n    \"user\": 1.4521019499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"max\": 1.487303488175,\n    \"mean\": 1.4491784543750001,\n    \"median\": 1.451351679175,\n    \"message\": \"Only apply background color when desired\\n\",\n    \"min\": 1.409646086175,\n    \"stddev\": 0.029036534848241393,\n    \"system\": 0.04380395499999999,\n    \"time\": 1.435545247175,\n    \"user\": 1.4521019499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"max\": 1.487303488175,\n    \"mean\": 1.4491784543750001,\n    \"median\": 1.451351679175,\n    \"message\": \"Only apply background color when desired\\n\",\n    \"min\": 1.409646086175,\n    \"stddev\": 0.029036534848241393,\n    \"system\": 0.04380395499999999,\n    \"time\": 1.487303488175,\n    \"user\": 1.4521019499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"max\": 1.487303488175,\n    \"mean\": 1.4491784543750001,\n    \"median\": 1.451351679175,\n    \"message\": \"Only apply background color when desired\\n\",\n    \"min\": 1.409646086175,\n    \"stddev\": 0.029036534848241393,\n    \"system\": 0.04380395499999999,\n    \"time\": 1.451351679175,\n    \"user\": 1.4521019499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"max\": 1.487303488175,\n    \"mean\": 1.4491784543750001,\n    \"median\": 1.451351679175,\n    \"message\": \"Only apply background color when desired\\n\",\n    \"min\": 1.409646086175,\n    \"stddev\": 0.029036534848241393,\n    \"system\": 0.04380395499999999,\n    \"time\": 1.409646086175,\n    \"user\": 1.4521019499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"max\": 1.454064485155,\n    \"mean\": 1.424764964355,\n    \"median\": 1.418993926155,\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"min\": 1.415038269155,\n    \"stddev\": 0.016525212748631297,\n    \"system\": 0.042451724999999996,\n    \"time\": 1.454064485155,\n    \"user\": 1.429727615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"max\": 1.454064485155,\n    \"mean\": 1.424764964355,\n    \"median\": 1.418993926155,\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"min\": 1.415038269155,\n    \"stddev\": 0.016525212748631297,\n    \"system\": 0.042451724999999996,\n    \"time\": 1.415549923155,\n    \"user\": 1.429727615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"max\": 1.454064485155,\n    \"mean\": 1.424764964355,\n    \"median\": 1.418993926155,\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"min\": 1.415038269155,\n    \"stddev\": 0.016525212748631297,\n    \"system\": 0.042451724999999996,\n    \"time\": 1.415038269155,\n    \"user\": 1.429727615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"max\": 1.454064485155,\n    \"mean\": 1.424764964355,\n    \"median\": 1.418993926155,\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"min\": 1.415038269155,\n    \"stddev\": 0.016525212748631297,\n    \"system\": 0.042451724999999996,\n    \"time\": 1.420178218155,\n    \"user\": 1.429727615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"max\": 1.454064485155,\n    \"mean\": 1.424764964355,\n    \"median\": 1.418993926155,\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"min\": 1.415038269155,\n    \"stddev\": 0.016525212748631297,\n    \"system\": 0.042451724999999996,\n    \"time\": 1.418993926155,\n    \"user\": 1.429727615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"max\": 1.442810602215,\n    \"mean\": 1.421893304815,\n    \"median\": 1.418455140215,\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"min\": 1.4131380602149999,\n    \"stddev\": 0.011918640564202719,\n    \"system\": 0.042638315,\n    \"time\": 1.442810602215,\n    \"user\": 1.423279155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"max\": 1.442810602215,\n    \"mean\": 1.421893304815,\n    \"median\": 1.418455140215,\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"min\": 1.4131380602149999,\n    \"stddev\": 0.011918640564202719,\n    \"system\": 0.042638315,\n    \"time\": 1.418455140215,\n    \"user\": 1.423279155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"max\": 1.442810602215,\n    \"mean\": 1.421893304815,\n    \"median\": 1.418455140215,\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"min\": 1.4131380602149999,\n    \"stddev\": 0.011918640564202719,\n    \"system\": 0.042638315,\n    \"time\": 1.4131380602149999,\n    \"user\": 1.423279155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"max\": 1.442810602215,\n    \"mean\": 1.421893304815,\n    \"median\": 1.418455140215,\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"min\": 1.4131380602149999,\n    \"stddev\": 0.011918640564202719,\n    \"system\": 0.042638315,\n    \"time\": 1.418972583215,\n    \"user\": 1.423279155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"max\": 1.442810602215,\n    \"mean\": 1.421893304815,\n    \"median\": 1.418455140215,\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"min\": 1.4131380602149999,\n    \"stddev\": 0.011918640564202719,\n    \"system\": 0.042638315,\n    \"time\": 1.416090138215,\n    \"user\": 1.423279155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"max\": 1.4500551825999999,\n    \"mean\": 1.4184425909999998,\n    \"median\": 1.4149052256,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.4032384166,\n    \"stddev\": 0.018851720699496952,\n    \"system\": 0.041904145,\n    \"time\": 1.4500551825999999,\n    \"user\": 1.419943365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"max\": 1.4500551825999999,\n    \"mean\": 1.4184425909999998,\n    \"median\": 1.4149052256,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.4032384166,\n    \"stddev\": 0.018851720699496952,\n    \"system\": 0.041904145,\n    \"time\": 1.4050903576,\n    \"user\": 1.419943365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"max\": 1.4500551825999999,\n    \"mean\": 1.4184425909999998,\n    \"median\": 1.4149052256,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.4032384166,\n    \"stddev\": 0.018851720699496952,\n    \"system\": 0.041904145,\n    \"time\": 1.4032384166,\n    \"user\": 1.419943365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"max\": 1.4500551825999999,\n    \"mean\": 1.4184425909999998,\n    \"median\": 1.4149052256,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.4032384166,\n    \"stddev\": 0.018851720699496952,\n    \"system\": 0.041904145,\n    \"time\": 1.4149052256,\n    \"user\": 1.419943365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"max\": 1.4500551825999999,\n    \"mean\": 1.4184425909999998,\n    \"median\": 1.4149052256,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.4032384166,\n    \"stddev\": 0.018851720699496952,\n    \"system\": 0.041904145,\n    \"time\": 1.4189237726,\n    \"user\": 1.419943365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"max\": 1.452258149355,\n    \"mean\": 1.429614992955,\n    \"median\": 1.422257213355,\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"min\": 1.4044470683549999,\n    \"stddev\": 0.02127968463349833,\n    \"system\": 0.042351879999999995,\n    \"time\": 1.451322209355,\n    \"user\": 1.4300328900000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"max\": 1.452258149355,\n    \"mean\": 1.429614992955,\n    \"median\": 1.422257213355,\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"min\": 1.4044470683549999,\n    \"stddev\": 0.02127968463349833,\n    \"system\": 0.042351879999999995,\n    \"time\": 1.452258149355,\n    \"user\": 1.4300328900000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"max\": 1.452258149355,\n    \"mean\": 1.429614992955,\n    \"median\": 1.422257213355,\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"min\": 1.4044470683549999,\n    \"stddev\": 0.02127968463349833,\n    \"system\": 0.042351879999999995,\n    \"time\": 1.422257213355,\n    \"user\": 1.4300328900000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"max\": 1.452258149355,\n    \"mean\": 1.429614992955,\n    \"median\": 1.422257213355,\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"min\": 1.4044470683549999,\n    \"stddev\": 0.02127968463349833,\n    \"system\": 0.042351879999999995,\n    \"time\": 1.4044470683549999,\n    \"user\": 1.4300328900000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"max\": 1.452258149355,\n    \"mean\": 1.429614992955,\n    \"median\": 1.422257213355,\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"min\": 1.4044470683549999,\n    \"stddev\": 0.02127968463349833,\n    \"system\": 0.042351879999999995,\n    \"time\": 1.417790324355,\n    \"user\": 1.4300328900000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"max\": 1.4642690155650002,\n    \"mean\": 1.4263370479650004,\n    \"median\": 1.418393019565,\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"min\": 1.4069343595650001,\n    \"stddev\": 0.022567963367948255,\n    \"system\": 0.04288513,\n    \"time\": 1.4642690155650002,\n    \"user\": 1.42738962\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"max\": 1.4642690155650002,\n    \"mean\": 1.4263370479650004,\n    \"median\": 1.418393019565,\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"min\": 1.4069343595650001,\n    \"stddev\": 0.022567963367948255,\n    \"system\": 0.04288513,\n    \"time\": 1.4138742745650001,\n    \"user\": 1.42738962\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"max\": 1.4642690155650002,\n    \"mean\": 1.4263370479650004,\n    \"median\": 1.418393019565,\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"min\": 1.4069343595650001,\n    \"stddev\": 0.022567963367948255,\n    \"system\": 0.04288513,\n    \"time\": 1.4069343595650001,\n    \"user\": 1.42738962\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"max\": 1.4642690155650002,\n    \"mean\": 1.4263370479650004,\n    \"median\": 1.418393019565,\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"min\": 1.4069343595650001,\n    \"stddev\": 0.022567963367948255,\n    \"system\": 0.04288513,\n    \"time\": 1.4282145705650002,\n    \"user\": 1.42738962\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"max\": 1.4642690155650002,\n    \"mean\": 1.4263370479650004,\n    \"median\": 1.418393019565,\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"min\": 1.4069343595650001,\n    \"stddev\": 0.022567963367948255,\n    \"system\": 0.04288513,\n    \"time\": 1.418393019565,\n    \"user\": 1.42738962\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"max\": 1.456292951425,\n    \"mean\": 1.433047277625,\n    \"median\": 1.429461012425,\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"min\": 1.413553694425,\n    \"stddev\": 0.017473677841761858,\n    \"system\": 0.046350965,\n    \"time\": 1.456292951425,\n    \"user\": 1.4331690399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"max\": 1.456292951425,\n    \"mean\": 1.433047277625,\n    \"median\": 1.429461012425,\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"min\": 1.413553694425,\n    \"stddev\": 0.017473677841761858,\n    \"system\": 0.046350965,\n    \"time\": 1.429461012425,\n    \"user\": 1.4331690399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"max\": 1.456292951425,\n    \"mean\": 1.433047277625,\n    \"median\": 1.429461012425,\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"min\": 1.413553694425,\n    \"stddev\": 0.017473677841761858,\n    \"system\": 0.046350965,\n    \"time\": 1.420962667425,\n    \"user\": 1.4331690399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"max\": 1.456292951425,\n    \"mean\": 1.433047277625,\n    \"median\": 1.429461012425,\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"min\": 1.413553694425,\n    \"stddev\": 0.017473677841761858,\n    \"system\": 0.046350965,\n    \"time\": 1.444966062425,\n    \"user\": 1.4331690399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"max\": 1.456292951425,\n    \"mean\": 1.433047277625,\n    \"median\": 1.429461012425,\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"min\": 1.413553694425,\n    \"stddev\": 0.017473677841761858,\n    \"system\": 0.046350965,\n    \"time\": 1.413553694425,\n    \"user\": 1.4331690399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"max\": 1.427443940565,\n    \"mean\": 1.413810866965,\n    \"median\": 1.417253125565,\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"min\": 1.391597055565,\n    \"stddev\": 0.01339008539859219,\n    \"system\": 0.04614446999999999,\n    \"time\": 1.418911144565,\n    \"user\": 1.4172431849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"max\": 1.427443940565,\n    \"mean\": 1.413810866965,\n    \"median\": 1.417253125565,\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"min\": 1.391597055565,\n    \"stddev\": 0.01339008539859219,\n    \"system\": 0.04614446999999999,\n    \"time\": 1.391597055565,\n    \"user\": 1.4172431849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"max\": 1.427443940565,\n    \"mean\": 1.413810866965,\n    \"median\": 1.417253125565,\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"min\": 1.391597055565,\n    \"stddev\": 0.01339008539859219,\n    \"system\": 0.04614446999999999,\n    \"time\": 1.427443940565,\n    \"user\": 1.4172431849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"max\": 1.427443940565,\n    \"mean\": 1.413810866965,\n    \"median\": 1.417253125565,\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"min\": 1.391597055565,\n    \"stddev\": 0.01339008539859219,\n    \"system\": 0.04614446999999999,\n    \"time\": 1.413849068565,\n    \"user\": 1.4172431849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"max\": 1.427443940565,\n    \"mean\": 1.413810866965,\n    \"median\": 1.417253125565,\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"min\": 1.391597055565,\n    \"stddev\": 0.01339008539859219,\n    \"system\": 0.04614446999999999,\n    \"time\": 1.417253125565,\n    \"user\": 1.4172431849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"max\": 1.44214059839,\n    \"mean\": 1.42331963639,\n    \"median\": 1.41688054039,\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"min\": 1.41016932039,\n    \"stddev\": 0.01391244946149817,\n    \"system\": 0.047358565,\n    \"time\": 1.43383570139,\n    \"user\": 1.4225853899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"max\": 1.44214059839,\n    \"mean\": 1.42331963639,\n    \"median\": 1.41688054039,\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"min\": 1.41016932039,\n    \"stddev\": 0.01391244946149817,\n    \"system\": 0.047358565,\n    \"time\": 1.41357202139,\n    \"user\": 1.4225853899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"max\": 1.44214059839,\n    \"mean\": 1.42331963639,\n    \"median\": 1.41688054039,\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"min\": 1.41016932039,\n    \"stddev\": 0.01391244946149817,\n    \"system\": 0.047358565,\n    \"time\": 1.44214059839,\n    \"user\": 1.4225853899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"max\": 1.44214059839,\n    \"mean\": 1.42331963639,\n    \"median\": 1.41688054039,\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"min\": 1.41016932039,\n    \"stddev\": 0.01391244946149817,\n    \"system\": 0.047358565,\n    \"time\": 1.41688054039,\n    \"user\": 1.4225853899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"max\": 1.44214059839,\n    \"mean\": 1.42331963639,\n    \"median\": 1.41688054039,\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"min\": 1.41016932039,\n    \"stddev\": 0.01391244946149817,\n    \"system\": 0.047358565,\n    \"time\": 1.41016932039,\n    \"user\": 1.4225853899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"max\": 1.4747238230450002,\n    \"mean\": 1.4683294102450002,\n    \"median\": 1.4728706120450001,\n    \"message\": \"Fix file change description text\\n\",\n    \"min\": 1.4498281370450001,\n    \"stddev\": 0.010507102892468222,\n    \"system\": 0.048665034999999995,\n    \"time\": 1.469971082045,\n    \"user\": 1.4652892999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"max\": 1.4747238230450002,\n    \"mean\": 1.4683294102450002,\n    \"median\": 1.4728706120450001,\n    \"message\": \"Fix file change description text\\n\",\n    \"min\": 1.4498281370450001,\n    \"stddev\": 0.010507102892468222,\n    \"system\": 0.048665034999999995,\n    \"time\": 1.4728706120450001,\n    \"user\": 1.4652892999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"max\": 1.4747238230450002,\n    \"mean\": 1.4683294102450002,\n    \"median\": 1.4728706120450001,\n    \"message\": \"Fix file change description text\\n\",\n    \"min\": 1.4498281370450001,\n    \"stddev\": 0.010507102892468222,\n    \"system\": 0.048665034999999995,\n    \"time\": 1.4747238230450002,\n    \"user\": 1.4652892999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"max\": 1.4747238230450002,\n    \"mean\": 1.4683294102450002,\n    \"median\": 1.4728706120450001,\n    \"message\": \"Fix file change description text\\n\",\n    \"min\": 1.4498281370450001,\n    \"stddev\": 0.010507102892468222,\n    \"system\": 0.048665034999999995,\n    \"time\": 1.4498281370450001,\n    \"user\": 1.4652892999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"max\": 1.4747238230450002,\n    \"mean\": 1.4683294102450002,\n    \"median\": 1.4728706120450001,\n    \"message\": \"Fix file change description text\\n\",\n    \"min\": 1.4498281370450001,\n    \"stddev\": 0.010507102892468222,\n    \"system\": 0.048665034999999995,\n    \"time\": 1.4742533970450002,\n    \"user\": 1.4652892999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"max\": 1.455159172205,\n    \"mean\": 1.427107016805,\n    \"median\": 1.423140854205,\n    \"message\": \"Document unicode character\\n\",\n    \"min\": 1.408201549205,\n    \"stddev\": 0.018307343561828684,\n    \"system\": 0.0445377,\n    \"time\": 1.455159172205,\n    \"user\": 1.42732037\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"max\": 1.455159172205,\n    \"mean\": 1.427107016805,\n    \"median\": 1.423140854205,\n    \"message\": \"Document unicode character\\n\",\n    \"min\": 1.408201549205,\n    \"stddev\": 0.018307343561828684,\n    \"system\": 0.0445377,\n    \"time\": 1.415374932205,\n    \"user\": 1.42732037\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"max\": 1.455159172205,\n    \"mean\": 1.427107016805,\n    \"median\": 1.423140854205,\n    \"message\": \"Document unicode character\\n\",\n    \"min\": 1.408201549205,\n    \"stddev\": 0.018307343561828684,\n    \"system\": 0.0445377,\n    \"time\": 1.423140854205,\n    \"user\": 1.42732037\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"max\": 1.455159172205,\n    \"mean\": 1.427107016805,\n    \"median\": 1.423140854205,\n    \"message\": \"Document unicode character\\n\",\n    \"min\": 1.408201549205,\n    \"stddev\": 0.018307343561828684,\n    \"system\": 0.0445377,\n    \"time\": 1.408201549205,\n    \"user\": 1.42732037\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"max\": 1.455159172205,\n    \"mean\": 1.427107016805,\n    \"median\": 1.423140854205,\n    \"message\": \"Document unicode character\\n\",\n    \"min\": 1.408201549205,\n    \"stddev\": 0.018307343561828684,\n    \"system\": 0.0445377,\n    \"time\": 1.433658576205,\n    \"user\": 1.42732037\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"max\": 1.44439041878,\n    \"mean\": 1.42806810498,\n    \"median\": 1.42277308278,\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"min\": 1.41385116778,\n    \"stddev\": 0.013267347200027911,\n    \"system\": 0.045032545,\n    \"time\": 1.44439041878,\n    \"user\": 1.428225905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"max\": 1.44439041878,\n    \"mean\": 1.42806810498,\n    \"median\": 1.42277308278,\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"min\": 1.41385116778,\n    \"stddev\": 0.013267347200027911,\n    \"system\": 0.045032545,\n    \"time\": 1.43972340978,\n    \"user\": 1.428225905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"max\": 1.44439041878,\n    \"mean\": 1.42806810498,\n    \"median\": 1.42277308278,\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"min\": 1.41385116778,\n    \"stddev\": 0.013267347200027911,\n    \"system\": 0.045032545,\n    \"time\": 1.41385116778,\n    \"user\": 1.428225905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"max\": 1.44439041878,\n    \"mean\": 1.42806810498,\n    \"median\": 1.42277308278,\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"min\": 1.41385116778,\n    \"stddev\": 0.013267347200027911,\n    \"system\": 0.045032545,\n    \"time\": 1.42277308278,\n    \"user\": 1.428225905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"max\": 1.44439041878,\n    \"mean\": 1.42806810498,\n    \"median\": 1.42277308278,\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"min\": 1.41385116778,\n    \"stddev\": 0.013267347200027911,\n    \"system\": 0.045032545,\n    \"time\": 1.41960244578,\n    \"user\": 1.428225905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"max\": 1.5549087833200002,\n    \"mean\": 1.5225901969200002,\n    \"median\": 1.5161603403200001,\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"min\": 1.5103195163200003,\n    \"stddev\": 0.018493309451644766,\n    \"system\": 0.06760419,\n    \"time\": 1.5549087833200002,\n    \"user\": 1.5159672849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"max\": 1.5549087833200002,\n    \"mean\": 1.5225901969200002,\n    \"median\": 1.5161603403200001,\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"min\": 1.5103195163200003,\n    \"stddev\": 0.018493309451644766,\n    \"system\": 0.06760419,\n    \"time\": 1.5113720533200001,\n    \"user\": 1.5159672849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"max\": 1.5549087833200002,\n    \"mean\": 1.5225901969200002,\n    \"median\": 1.5161603403200001,\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"min\": 1.5103195163200003,\n    \"stddev\": 0.018493309451644766,\n    \"system\": 0.06760419,\n    \"time\": 1.5161603403200001,\n    \"user\": 1.5159672849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"max\": 1.5549087833200002,\n    \"mean\": 1.5225901969200002,\n    \"median\": 1.5161603403200001,\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"min\": 1.5103195163200003,\n    \"stddev\": 0.018493309451644766,\n    \"system\": 0.06760419,\n    \"time\": 1.5201902913200003,\n    \"user\": 1.5159672849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"max\": 1.5549087833200002,\n    \"mean\": 1.5225901969200002,\n    \"median\": 1.5161603403200001,\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"min\": 1.5103195163200003,\n    \"stddev\": 0.018493309451644766,\n    \"system\": 0.06760419,\n    \"time\": 1.5103195163200003,\n    \"user\": 1.5159672849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"max\": 1.5427369399,\n    \"mean\": 1.5155680759,\n    \"median\": 1.5087500858999998,\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"min\": 1.5031513768999998,\n    \"stddev\": 0.015983416485658496,\n    \"system\": 0.068875685,\n    \"time\": 1.5427369399,\n    \"user\": 1.507467025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"max\": 1.5427369399,\n    \"mean\": 1.5155680759,\n    \"median\": 1.5087500858999998,\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"min\": 1.5031513768999998,\n    \"stddev\": 0.015983416485658496,\n    \"system\": 0.068875685,\n    \"time\": 1.5065218019,\n    \"user\": 1.507467025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"max\": 1.5427369399,\n    \"mean\": 1.5155680759,\n    \"median\": 1.5087500858999998,\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"min\": 1.5031513768999998,\n    \"stddev\": 0.015983416485658496,\n    \"system\": 0.068875685,\n    \"time\": 1.5166801749,\n    \"user\": 1.507467025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"max\": 1.5427369399,\n    \"mean\": 1.5155680759,\n    \"median\": 1.5087500858999998,\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"min\": 1.5031513768999998,\n    \"stddev\": 0.015983416485658496,\n    \"system\": 0.068875685,\n    \"time\": 1.5031513768999998,\n    \"user\": 1.507467025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"max\": 1.5427369399,\n    \"mean\": 1.5155680759,\n    \"median\": 1.5087500858999998,\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"min\": 1.5031513768999998,\n    \"stddev\": 0.015983416485658496,\n    \"system\": 0.068875685,\n    \"time\": 1.5087500858999998,\n    \"user\": 1.507467025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"max\": 1.5990142087800001,\n    \"mean\": 1.5825754687800002,\n    \"median\": 1.5890942167800002,\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"min\": 1.55006336978,\n    \"stddev\": 0.01941130120186225,\n    \"system\": 0.07978631499999998,\n    \"time\": 1.5890942167800002,\n    \"user\": 1.5742098199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"max\": 1.5990142087800001,\n    \"mean\": 1.5825754687800002,\n    \"median\": 1.5890942167800002,\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"min\": 1.55006336978,\n    \"stddev\": 0.01941130120186225,\n    \"system\": 0.07978631499999998,\n    \"time\": 1.58057832478,\n    \"user\": 1.5742098199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"max\": 1.5990142087800001,\n    \"mean\": 1.5825754687800002,\n    \"median\": 1.5890942167800002,\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"min\": 1.55006336978,\n    \"stddev\": 0.01941130120186225,\n    \"system\": 0.07978631499999998,\n    \"time\": 1.5990142087800001,\n    \"user\": 1.5742098199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"max\": 1.5990142087800001,\n    \"mean\": 1.5825754687800002,\n    \"median\": 1.5890942167800002,\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"min\": 1.55006336978,\n    \"stddev\": 0.01941130120186225,\n    \"system\": 0.07978631499999998,\n    \"time\": 1.59412722378,\n    \"user\": 1.5742098199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"max\": 1.5990142087800001,\n    \"mean\": 1.5825754687800002,\n    \"median\": 1.5890942167800002,\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"min\": 1.55006336978,\n    \"stddev\": 0.01941130120186225,\n    \"system\": 0.07978631499999998,\n    \"time\": 1.55006336978,\n    \"user\": 1.5742098199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"max\": 1.60760229868,\n    \"mean\": 1.58436179468,\n    \"median\": 1.58080097568,\n    \"message\": \"Refactor: cli module\\n\",\n    \"min\": 1.56783240868,\n    \"stddev\": 0.015526041054189692,\n    \"system\": 0.07984376500000001,\n    \"time\": 1.60760229868,\n    \"user\": 1.5734825899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"max\": 1.60760229868,\n    \"mean\": 1.58436179468,\n    \"median\": 1.58080097568,\n    \"message\": \"Refactor: cli module\\n\",\n    \"min\": 1.56783240868,\n    \"stddev\": 0.015526041054189692,\n    \"system\": 0.07984376500000001,\n    \"time\": 1.5909490146799998,\n    \"user\": 1.5734825899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"max\": 1.60760229868,\n    \"mean\": 1.58436179468,\n    \"median\": 1.58080097568,\n    \"message\": \"Refactor: cli module\\n\",\n    \"min\": 1.56783240868,\n    \"stddev\": 0.015526041054189692,\n    \"system\": 0.07984376500000001,\n    \"time\": 1.58080097568,\n    \"user\": 1.5734825899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"max\": 1.60760229868,\n    \"mean\": 1.58436179468,\n    \"median\": 1.58080097568,\n    \"message\": \"Refactor: cli module\\n\",\n    \"min\": 1.56783240868,\n    \"stddev\": 0.015526041054189692,\n    \"system\": 0.07984376500000001,\n    \"time\": 1.57462427568,\n    \"user\": 1.5734825899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"max\": 1.60760229868,\n    \"mean\": 1.58436179468,\n    \"median\": 1.58080097568,\n    \"message\": \"Refactor: cli module\\n\",\n    \"min\": 1.56783240868,\n    \"stddev\": 0.015526041054189692,\n    \"system\": 0.07984376500000001,\n    \"time\": 1.56783240868,\n    \"user\": 1.5734825899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"max\": 1.594958988485,\n    \"mean\": 1.585213464085,\n    \"median\": 1.586998752485,\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"min\": 1.575611841485,\n    \"stddev\": 0.007947872325848492,\n    \"system\": 0.07971891499999999,\n    \"time\": 1.5897470574850001,\n    \"user\": 1.57446436\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"max\": 1.594958988485,\n    \"mean\": 1.585213464085,\n    \"median\": 1.586998752485,\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"min\": 1.575611841485,\n    \"stddev\": 0.007947872325848492,\n    \"system\": 0.07971891499999999,\n    \"time\": 1.578750680485,\n    \"user\": 1.57446436\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"max\": 1.594958988485,\n    \"mean\": 1.585213464085,\n    \"median\": 1.586998752485,\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"min\": 1.575611841485,\n    \"stddev\": 0.007947872325848492,\n    \"system\": 0.07971891499999999,\n    \"time\": 1.586998752485,\n    \"user\": 1.57446436\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"max\": 1.594958988485,\n    \"mean\": 1.585213464085,\n    \"median\": 1.586998752485,\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"min\": 1.575611841485,\n    \"stddev\": 0.007947872325848492,\n    \"system\": 0.07971891499999999,\n    \"time\": 1.594958988485,\n    \"user\": 1.57446436\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"max\": 1.594958988485,\n    \"mean\": 1.585213464085,\n    \"median\": 1.586998752485,\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"min\": 1.575611841485,\n    \"stddev\": 0.007947872325848492,\n    \"system\": 0.07971891499999999,\n    \"time\": 1.575611841485,\n    \"user\": 1.57446436\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"max\": 1.66189797488,\n    \"mean\": 1.59402425368,\n    \"median\": 1.59289291988,\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"min\": 1.54184750488,\n    \"stddev\": 0.05257441506262918,\n    \"system\": 0.079596455,\n    \"time\": 1.66189797488,\n    \"user\": 1.580771425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"max\": 1.66189797488,\n    \"mean\": 1.59402425368,\n    \"median\": 1.59289291988,\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"min\": 1.54184750488,\n    \"stddev\": 0.05257441506262918,\n    \"system\": 0.079596455,\n    \"time\": 1.6292835458800001,\n    \"user\": 1.580771425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"max\": 1.66189797488,\n    \"mean\": 1.59402425368,\n    \"median\": 1.59289291988,\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"min\": 1.54184750488,\n    \"stddev\": 0.05257441506262918,\n    \"system\": 0.079596455,\n    \"time\": 1.59289291988,\n    \"user\": 1.580771425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"max\": 1.66189797488,\n    \"mean\": 1.59402425368,\n    \"median\": 1.59289291988,\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"min\": 1.54184750488,\n    \"stddev\": 0.05257441506262918,\n    \"system\": 0.079596455,\n    \"time\": 1.54419932288,\n    \"user\": 1.580771425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"max\": 1.66189797488,\n    \"mean\": 1.59402425368,\n    \"median\": 1.59289291988,\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"min\": 1.54184750488,\n    \"stddev\": 0.05257441506262918,\n    \"system\": 0.079596455,\n    \"time\": 1.54184750488,\n    \"user\": 1.580771425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"max\": 1.646107490215,\n    \"mean\": 1.618155582615,\n    \"median\": 1.616646162215,\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"min\": 1.602487636215,\n    \"stddev\": 0.01734697806430141,\n    \"system\": 0.079403705,\n    \"time\": 1.646107490215,\n    \"user\": 1.6036723449999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"max\": 1.646107490215,\n    \"mean\": 1.618155582615,\n    \"median\": 1.616646162215,\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"min\": 1.602487636215,\n    \"stddev\": 0.01734697806430141,\n    \"system\": 0.079403705,\n    \"time\": 1.620402223215,\n    \"user\": 1.6036723449999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"max\": 1.646107490215,\n    \"mean\": 1.618155582615,\n    \"median\": 1.616646162215,\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"min\": 1.602487636215,\n    \"stddev\": 0.01734697806430141,\n    \"system\": 0.079403705,\n    \"time\": 1.616646162215,\n    \"user\": 1.6036723449999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"max\": 1.646107490215,\n    \"mean\": 1.618155582615,\n    \"median\": 1.616646162215,\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"min\": 1.602487636215,\n    \"stddev\": 0.01734697806430141,\n    \"system\": 0.079403705,\n    \"time\": 1.605134401215,\n    \"user\": 1.6036723449999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"max\": 1.646107490215,\n    \"mean\": 1.618155582615,\n    \"median\": 1.616646162215,\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"min\": 1.602487636215,\n    \"stddev\": 0.01734697806430141,\n    \"system\": 0.079403705,\n    \"time\": 1.602487636215,\n    \"user\": 1.6036723449999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"max\": 1.779662348045,\n    \"mean\": 1.620306135245,\n    \"median\": 1.578954833045,\n    \"message\": \"Style section arguments\\n\",\n    \"min\": 1.571033125045,\n    \"stddev\": 0.08973697287871697,\n    \"system\": 0.07256976500000001,\n    \"time\": 1.598523862045,\n    \"user\": 1.6032144750000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"max\": 1.779662348045,\n    \"mean\": 1.620306135245,\n    \"median\": 1.578954833045,\n    \"message\": \"Style section arguments\\n\",\n    \"min\": 1.571033125045,\n    \"stddev\": 0.08973697287871697,\n    \"system\": 0.07256976500000001,\n    \"time\": 1.578954833045,\n    \"user\": 1.6032144750000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"max\": 1.779662348045,\n    \"mean\": 1.620306135245,\n    \"median\": 1.578954833045,\n    \"message\": \"Style section arguments\\n\",\n    \"min\": 1.571033125045,\n    \"stddev\": 0.08973697287871697,\n    \"system\": 0.07256976500000001,\n    \"time\": 1.571033125045,\n    \"user\": 1.6032144750000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"max\": 1.779662348045,\n    \"mean\": 1.620306135245,\n    \"median\": 1.578954833045,\n    \"message\": \"Style section arguments\\n\",\n    \"min\": 1.571033125045,\n    \"stddev\": 0.08973697287871697,\n    \"system\": 0.07256976500000001,\n    \"time\": 1.5733565080449998,\n    \"user\": 1.6032144750000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"max\": 1.779662348045,\n    \"mean\": 1.620306135245,\n    \"median\": 1.578954833045,\n    \"message\": \"Style section arguments\\n\",\n    \"min\": 1.571033125045,\n    \"stddev\": 0.08973697287871697,\n    \"system\": 0.07256976500000001,\n    \"time\": 1.779662348045,\n    \"user\": 1.6032144750000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"max\": 1.61255669227,\n    \"mean\": 1.58621452887,\n    \"median\": 1.5812886232699999,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.5714881432699999,\n    \"stddev\": 0.01645914894301845,\n    \"system\": 0.07049456999999999,\n    \"time\": 1.61255669227,\n    \"user\": 1.5775533549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"max\": 1.61255669227,\n    \"mean\": 1.58621452887,\n    \"median\": 1.5812886232699999,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.5714881432699999,\n    \"stddev\": 0.01645914894301845,\n    \"system\": 0.07049456999999999,\n    \"time\": 1.5812886232699999,\n    \"user\": 1.5775533549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"max\": 1.61255669227,\n    \"mean\": 1.58621452887,\n    \"median\": 1.5812886232699999,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.5714881432699999,\n    \"stddev\": 0.01645914894301845,\n    \"system\": 0.07049456999999999,\n    \"time\": 1.5714881432699999,\n    \"user\": 1.5775533549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"max\": 1.61255669227,\n    \"mean\": 1.58621452887,\n    \"median\": 1.5812886232699999,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.5714881432699999,\n    \"stddev\": 0.01645914894301845,\n    \"system\": 0.07049456999999999,\n    \"time\": 1.57492614927,\n    \"user\": 1.5775533549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"max\": 1.61255669227,\n    \"mean\": 1.58621452887,\n    \"median\": 1.5812886232699999,\n    \"message\": \"Rearrange\\n\",\n    \"min\": 1.5714881432699999,\n    \"stddev\": 0.01645914894301845,\n    \"system\": 0.07049456999999999,\n    \"time\": 1.5908130362700001,\n    \"user\": 1.5775533549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"max\": 1.637756883665,\n    \"mean\": 1.591136737865,\n    \"median\": 1.575307209665,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.564058703665,\n    \"stddev\": 0.03194297038933295,\n    \"system\": 0.06919801,\n    \"time\": 1.637756883665,\n    \"user\": 1.5836761799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"max\": 1.637756883665,\n    \"mean\": 1.591136737865,\n    \"median\": 1.575307209665,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.564058703665,\n    \"stddev\": 0.03194297038933295,\n    \"system\": 0.06919801,\n    \"time\": 1.5678644486650002,\n    \"user\": 1.5836761799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"max\": 1.637756883665,\n    \"mean\": 1.591136737865,\n    \"median\": 1.575307209665,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.564058703665,\n    \"stddev\": 0.03194297038933295,\n    \"system\": 0.06919801,\n    \"time\": 1.610696443665,\n    \"user\": 1.5836761799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"max\": 1.637756883665,\n    \"mean\": 1.591136737865,\n    \"median\": 1.575307209665,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.564058703665,\n    \"stddev\": 0.03194297038933295,\n    \"system\": 0.06919801,\n    \"time\": 1.575307209665,\n    \"user\": 1.5836761799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"max\": 1.637756883665,\n    \"mean\": 1.591136737865,\n    \"median\": 1.575307209665,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.564058703665,\n    \"stddev\": 0.03194297038933295,\n    \"system\": 0.06919801,\n    \"time\": 1.564058703665,\n    \"user\": 1.5836761799999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"max\": 1.617462978495,\n    \"mean\": 1.5929366528950002,\n    \"median\": 1.5883080774950002,\n    \"message\": \"Refactor: draw module\\n\",\n    \"min\": 1.582638920495,\n    \"stddev\": 0.013923715483916119,\n    \"system\": 0.06707050499999999,\n    \"time\": 1.617462978495,\n    \"user\": 1.587303475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"max\": 1.617462978495,\n    \"mean\": 1.5929366528950002,\n    \"median\": 1.5883080774950002,\n    \"message\": \"Refactor: draw module\\n\",\n    \"min\": 1.582638920495,\n    \"stddev\": 0.013923715483916119,\n    \"system\": 0.06707050499999999,\n    \"time\": 1.587694156495,\n    \"user\": 1.587303475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"max\": 1.617462978495,\n    \"mean\": 1.5929366528950002,\n    \"median\": 1.5883080774950002,\n    \"message\": \"Refactor: draw module\\n\",\n    \"min\": 1.582638920495,\n    \"stddev\": 0.013923715483916119,\n    \"system\": 0.06707050499999999,\n    \"time\": 1.5883080774950002,\n    \"user\": 1.587303475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"max\": 1.617462978495,\n    \"mean\": 1.5929366528950002,\n    \"median\": 1.5883080774950002,\n    \"message\": \"Refactor: draw module\\n\",\n    \"min\": 1.582638920495,\n    \"stddev\": 0.013923715483916119,\n    \"system\": 0.06707050499999999,\n    \"time\": 1.5885791314950002,\n    \"user\": 1.587303475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"max\": 1.617462978495,\n    \"mean\": 1.5929366528950002,\n    \"median\": 1.5883080774950002,\n    \"message\": \"Refactor: draw module\\n\",\n    \"min\": 1.582638920495,\n    \"stddev\": 0.013923715483916119,\n    \"system\": 0.06707050499999999,\n    \"time\": 1.582638920495,\n    \"user\": 1.587303475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"max\": 1.6158364665300002,\n    \"mean\": 1.5884940597300001,\n    \"median\": 1.58345716053,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.5744890645300003,\n    \"stddev\": 0.015893966327468985,\n    \"system\": 0.067455705,\n    \"time\": 1.6158364665300002,\n    \"user\": 1.58234764\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"max\": 1.6158364665300002,\n    \"mean\": 1.5884940597300001,\n    \"median\": 1.58345716053,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.5744890645300003,\n    \"stddev\": 0.015893966327468985,\n    \"system\": 0.067455705,\n    \"time\": 1.58248558453,\n    \"user\": 1.58234764\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"max\": 1.6158364665300002,\n    \"mean\": 1.5884940597300001,\n    \"median\": 1.58345716053,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.5744890645300003,\n    \"stddev\": 0.015893966327468985,\n    \"system\": 0.067455705,\n    \"time\": 1.5744890645300003,\n    \"user\": 1.58234764\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"max\": 1.6158364665300002,\n    \"mean\": 1.5884940597300001,\n    \"median\": 1.58345716053,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.5744890645300003,\n    \"stddev\": 0.015893966327468985,\n    \"system\": 0.067455705,\n    \"time\": 1.58345716053,\n    \"user\": 1.58234764\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"max\": 1.6158364665300002,\n    \"mean\": 1.5884940597300001,\n    \"median\": 1.58345716053,\n    \"message\": \"Change name of state in state machine\\n\",\n    \"min\": 1.5744890645300003,\n    \"stddev\": 0.015893966327468985,\n    \"system\": 0.067455705,\n    \"time\": 1.5862020225300002,\n    \"user\": 1.58234764\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"max\": 1.61494297295,\n    \"mean\": 1.58131483455,\n    \"median\": 1.5744474129500001,\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"min\": 1.56013319095,\n    \"stddev\": 0.020502497524211866,\n    \"system\": 0.06802955999999999,\n    \"time\": 1.61494297295,\n    \"user\": 1.5748919349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"max\": 1.61494297295,\n    \"mean\": 1.58131483455,\n    \"median\": 1.5744474129500001,\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"min\": 1.56013319095,\n    \"stddev\": 0.020502497524211866,\n    \"system\": 0.06802955999999999,\n    \"time\": 1.56013319095,\n    \"user\": 1.5748919349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"max\": 1.61494297295,\n    \"mean\": 1.58131483455,\n    \"median\": 1.5744474129500001,\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"min\": 1.56013319095,\n    \"stddev\": 0.020502497524211866,\n    \"system\": 0.06802955999999999,\n    \"time\": 1.5744474129500001,\n    \"user\": 1.5748919349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"max\": 1.61494297295,\n    \"mean\": 1.58131483455,\n    \"median\": 1.5744474129500001,\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"min\": 1.56013319095,\n    \"stddev\": 0.020502497524211866,\n    \"system\": 0.06802955999999999,\n    \"time\": 1.5740997249500002,\n    \"user\": 1.5748919349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"max\": 1.61494297295,\n    \"mean\": 1.58131483455,\n    \"median\": 1.5744474129500001,\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"min\": 1.56013319095,\n    \"stddev\": 0.020502497524211866,\n    \"system\": 0.06802955999999999,\n    \"time\": 1.5829508709500002,\n    \"user\": 1.5748919349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"max\": 1.6502111215000002,\n    \"mean\": 1.5958836853,\n    \"median\": 1.5809745025,\n    \"message\": \"Refactor: split file\\n\",\n    \"min\": 1.5567634755000002,\n    \"stddev\": 0.03745881336778723,\n    \"system\": 0.06864352999999998,\n    \"time\": 1.6502111215000002,\n    \"user\": 1.5877233999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"max\": 1.6502111215000002,\n    \"mean\": 1.5958836853,\n    \"median\": 1.5809745025,\n    \"message\": \"Refactor: split file\\n\",\n    \"min\": 1.5567634755000002,\n    \"stddev\": 0.03745881336778723,\n    \"system\": 0.06864352999999998,\n    \"time\": 1.5744219735,\n    \"user\": 1.5877233999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"max\": 1.6502111215000002,\n    \"mean\": 1.5958836853,\n    \"median\": 1.5809745025,\n    \"message\": \"Refactor: split file\\n\",\n    \"min\": 1.5567634755000002,\n    \"stddev\": 0.03745881336778723,\n    \"system\": 0.06864352999999998,\n    \"time\": 1.6170473535,\n    \"user\": 1.5877233999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"max\": 1.6502111215000002,\n    \"mean\": 1.5958836853,\n    \"median\": 1.5809745025,\n    \"message\": \"Refactor: split file\\n\",\n    \"min\": 1.5567634755000002,\n    \"stddev\": 0.03745881336778723,\n    \"system\": 0.06864352999999998,\n    \"time\": 1.5809745025,\n    \"user\": 1.5877233999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"max\": 1.6502111215000002,\n    \"mean\": 1.5958836853,\n    \"median\": 1.5809745025,\n    \"message\": \"Refactor: split file\\n\",\n    \"min\": 1.5567634755000002,\n    \"stddev\": 0.03745881336778723,\n    \"system\": 0.06864352999999998,\n    \"time\": 1.5567634755000002,\n    \"user\": 1.5877233999999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"max\": 1.623374941355,\n    \"mean\": 1.5910866423549999,\n    \"median\": 1.584308361355,\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"min\": 1.577111324355,\n    \"stddev\": 0.018983512785018166,\n    \"system\": 0.06831685000000001,\n    \"time\": 1.592071385355,\n    \"user\": 1.584256865\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"max\": 1.623374941355,\n    \"mean\": 1.5910866423549999,\n    \"median\": 1.584308361355,\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"min\": 1.577111324355,\n    \"stddev\": 0.018983512785018166,\n    \"system\": 0.06831685000000001,\n    \"time\": 1.623374941355,\n    \"user\": 1.584256865\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"max\": 1.623374941355,\n    \"mean\": 1.5910866423549999,\n    \"median\": 1.584308361355,\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"min\": 1.577111324355,\n    \"stddev\": 0.018983512785018166,\n    \"system\": 0.06831685000000001,\n    \"time\": 1.577111324355,\n    \"user\": 1.584256865\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"max\": 1.623374941355,\n    \"mean\": 1.5910866423549999,\n    \"median\": 1.584308361355,\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"min\": 1.577111324355,\n    \"stddev\": 0.018983512785018166,\n    \"system\": 0.06831685000000001,\n    \"time\": 1.578567199355,\n    \"user\": 1.584256865\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"max\": 1.623374941355,\n    \"mean\": 1.5910866423549999,\n    \"median\": 1.584308361355,\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"min\": 1.577111324355,\n    \"stddev\": 0.018983512785018166,\n    \"system\": 0.06831685000000001,\n    \"time\": 1.584308361355,\n    \"user\": 1.584256865\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"max\": 1.380232389355,\n    \"mean\": 1.3486534167550002,\n    \"median\": 1.344364668355,\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"min\": 1.332607556355,\n    \"stddev\": 0.018457919044342297,\n    \"system\": 0.06390084999999998,\n    \"time\": 1.380232389355,\n    \"user\": 1.343164895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"max\": 1.380232389355,\n    \"mean\": 1.3486534167550002,\n    \"median\": 1.344364668355,\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"min\": 1.332607556355,\n    \"stddev\": 0.018457919044342297,\n    \"system\": 0.06390084999999998,\n    \"time\": 1.339393465355,\n    \"user\": 1.343164895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"max\": 1.380232389355,\n    \"mean\": 1.3486534167550002,\n    \"median\": 1.344364668355,\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"min\": 1.332607556355,\n    \"stddev\": 0.018457919044342297,\n    \"system\": 0.06390084999999998,\n    \"time\": 1.332607556355,\n    \"user\": 1.343164895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"max\": 1.380232389355,\n    \"mean\": 1.3486534167550002,\n    \"median\": 1.344364668355,\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"min\": 1.332607556355,\n    \"stddev\": 0.018457919044342297,\n    \"system\": 0.06390084999999998,\n    \"time\": 1.346669004355,\n    \"user\": 1.343164895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"max\": 1.380232389355,\n    \"mean\": 1.3486534167550002,\n    \"median\": 1.344364668355,\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"min\": 1.332607556355,\n    \"stddev\": 0.018457919044342297,\n    \"system\": 0.06390084999999998,\n    \"time\": 1.344364668355,\n    \"user\": 1.343164895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"max\": 1.07901028965,\n    \"mean\": 1.0601044950499998,\n    \"median\": 1.0567222326499999,\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"min\": 1.04984655965,\n    \"stddev\": 0.01163999348706726,\n    \"system\": 0.061723105,\n    \"time\": 1.07901028965,\n    \"user\": 1.0585288699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"max\": 1.07901028965,\n    \"mean\": 1.0601044950499998,\n    \"median\": 1.0567222326499999,\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"min\": 1.04984655965,\n    \"stddev\": 0.01163999348706726,\n    \"system\": 0.061723105,\n    \"time\": 1.06266787465,\n    \"user\": 1.0585288699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"max\": 1.07901028965,\n    \"mean\": 1.0601044950499998,\n    \"median\": 1.0567222326499999,\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"min\": 1.04984655965,\n    \"stddev\": 0.01163999348706726,\n    \"system\": 0.061723105,\n    \"time\": 1.0567222326499999,\n    \"user\": 1.0585288699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"max\": 1.07901028965,\n    \"mean\": 1.0601044950499998,\n    \"median\": 1.0567222326499999,\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"min\": 1.04984655965,\n    \"stddev\": 0.01163999348706726,\n    \"system\": 0.061723105,\n    \"time\": 1.05227551865,\n    \"user\": 1.0585288699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"max\": 1.07901028965,\n    \"mean\": 1.0601044950499998,\n    \"median\": 1.0567222326499999,\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"min\": 1.04984655965,\n    \"stddev\": 0.01163999348706726,\n    \"system\": 0.061723105,\n    \"time\": 1.04984655965,\n    \"user\": 1.0585288699999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"max\": 1.083321176545,\n    \"mean\": 1.069351150745,\n    \"median\": 1.065280286545,\n    \"message\": \"CI: Travis configuration\\n\",\n    \"min\": 1.059408290545,\n    \"stddev\": 0.010041061780644579,\n    \"system\": 0.06302291,\n    \"time\": 1.083321176545,\n    \"user\": 1.06579061\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"max\": 1.083321176545,\n    \"mean\": 1.069351150745,\n    \"median\": 1.065280286545,\n    \"message\": \"CI: Travis configuration\\n\",\n    \"min\": 1.059408290545,\n    \"stddev\": 0.010041061780644579,\n    \"system\": 0.06302291,\n    \"time\": 1.065280286545,\n    \"user\": 1.06579061\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"max\": 1.083321176545,\n    \"mean\": 1.069351150745,\n    \"median\": 1.065280286545,\n    \"message\": \"CI: Travis configuration\\n\",\n    \"min\": 1.059408290545,\n    \"stddev\": 0.010041061780644579,\n    \"system\": 0.06302291,\n    \"time\": 1.062565037545,\n    \"user\": 1.06579061\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"max\": 1.083321176545,\n    \"mean\": 1.069351150745,\n    \"median\": 1.065280286545,\n    \"message\": \"CI: Travis configuration\\n\",\n    \"min\": 1.059408290545,\n    \"stddev\": 0.010041061780644579,\n    \"system\": 0.06302291,\n    \"time\": 1.059408290545,\n    \"user\": 1.06579061\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"max\": 1.083321176545,\n    \"mean\": 1.069351150745,\n    \"median\": 1.065280286545,\n    \"message\": \"CI: Travis configuration\\n\",\n    \"min\": 1.059408290545,\n    \"stddev\": 0.010041061780644579,\n    \"system\": 0.06302291,\n    \"time\": 1.076180962545,\n    \"user\": 1.06579061\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"max\": 1.122900381125,\n    \"mean\": 1.0938222405249998,\n    \"median\": 1.0943147171249998,\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"min\": 1.077975366125,\n    \"stddev\": 0.018365824624130105,\n    \"system\": 0.06293053500000001,\n    \"time\": 1.122900381125,\n    \"user\": 1.0883296249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"max\": 1.122900381125,\n    \"mean\": 1.0938222405249998,\n    \"median\": 1.0943147171249998,\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"min\": 1.077975366125,\n    \"stddev\": 0.018365824624130105,\n    \"system\": 0.06293053500000001,\n    \"time\": 1.077975366125,\n    \"user\": 1.0883296249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"max\": 1.122900381125,\n    \"mean\": 1.0938222405249998,\n    \"median\": 1.0943147171249998,\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"min\": 1.077975366125,\n    \"stddev\": 0.018365824624130105,\n    \"system\": 0.06293053500000001,\n    \"time\": 1.0943147171249998,\n    \"user\": 1.0883296249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"max\": 1.122900381125,\n    \"mean\": 1.0938222405249998,\n    \"median\": 1.0943147171249998,\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"min\": 1.077975366125,\n    \"stddev\": 0.018365824624130105,\n    \"system\": 0.06293053500000001,\n    \"time\": 1.095852480125,\n    \"user\": 1.0883296249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"max\": 1.122900381125,\n    \"mean\": 1.0938222405249998,\n    \"median\": 1.0943147171249998,\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"min\": 1.077975366125,\n    \"stddev\": 0.018365824624130105,\n    \"system\": 0.06293053500000001,\n    \"time\": 1.0780682581249998,\n    \"user\": 1.0883296249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"max\": 1.11305893241,\n    \"mean\": 1.08235458961,\n    \"median\": 1.07557083041,\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"min\": 1.0693411694100001,\n    \"stddev\": 0.017768164147161737,\n    \"system\": 0.062550265,\n    \"time\": 1.11305893241,\n    \"user\": 1.076630155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"max\": 1.11305893241,\n    \"mean\": 1.08235458961,\n    \"median\": 1.07557083041,\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"min\": 1.0693411694100001,\n    \"stddev\": 0.017768164147161737,\n    \"system\": 0.062550265,\n    \"time\": 1.0693411694100001,\n    \"user\": 1.076630155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"max\": 1.11305893241,\n    \"mean\": 1.08235458961,\n    \"median\": 1.07557083041,\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"min\": 1.0693411694100001,\n    \"stddev\": 0.017768164147161737,\n    \"system\": 0.062550265,\n    \"time\": 1.07214588641,\n    \"user\": 1.076630155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"max\": 1.11305893241,\n    \"mean\": 1.08235458961,\n    \"median\": 1.07557083041,\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"min\": 1.0693411694100001,\n    \"stddev\": 0.017768164147161737,\n    \"system\": 0.062550265,\n    \"time\": 1.08165612941,\n    \"user\": 1.076630155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"max\": 1.11305893241,\n    \"mean\": 1.08235458961,\n    \"median\": 1.07557083041,\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"min\": 1.0693411694100001,\n    \"stddev\": 0.017768164147161737,\n    \"system\": 0.062550265,\n    \"time\": 1.07557083041,\n    \"user\": 1.076630155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"max\": 1.1104782022850002,\n    \"mean\": 1.086040560685,\n    \"median\": 1.083966790285,\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"min\": 1.068436929285,\n    \"stddev\": 0.015797485038094458,\n    \"system\": 0.06197938000000001,\n    \"time\": 1.089805581285,\n    \"user\": 1.0837273449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"max\": 1.1104782022850002,\n    \"mean\": 1.086040560685,\n    \"median\": 1.083966790285,\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"min\": 1.068436929285,\n    \"stddev\": 0.015797485038094458,\n    \"system\": 0.06197938000000001,\n    \"time\": 1.068436929285,\n    \"user\": 1.0837273449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"max\": 1.1104782022850002,\n    \"mean\": 1.086040560685,\n    \"median\": 1.083966790285,\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"min\": 1.068436929285,\n    \"stddev\": 0.015797485038094458,\n    \"system\": 0.06197938000000001,\n    \"time\": 1.077515300285,\n    \"user\": 1.0837273449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"max\": 1.1104782022850002,\n    \"mean\": 1.086040560685,\n    \"median\": 1.083966790285,\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"min\": 1.068436929285,\n    \"stddev\": 0.015797485038094458,\n    \"system\": 0.06197938000000001,\n    \"time\": 1.1104782022850002,\n    \"user\": 1.0837273449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"max\": 1.1104782022850002,\n    \"mean\": 1.086040560685,\n    \"median\": 1.083966790285,\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"min\": 1.068436929285,\n    \"stddev\": 0.015797485038094458,\n    \"system\": 0.06197938000000001,\n    \"time\": 1.083966790285,\n    \"user\": 1.0837273449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"max\": 1.11168427568,\n    \"mean\": 1.0853863800799999,\n    \"median\": 1.0807144526799999,\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"min\": 1.06968467168,\n    \"stddev\": 0.015697722271498665,\n    \"system\": 0.063041505,\n    \"time\": 1.11168427568,\n    \"user\": 1.0798746099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"max\": 1.11168427568,\n    \"mean\": 1.0853863800799999,\n    \"median\": 1.0807144526799999,\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"min\": 1.06968467168,\n    \"stddev\": 0.015697722271498665,\n    \"system\": 0.063041505,\n    \"time\": 1.08040241368,\n    \"user\": 1.0798746099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"max\": 1.11168427568,\n    \"mean\": 1.0853863800799999,\n    \"median\": 1.0807144526799999,\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"min\": 1.06968467168,\n    \"stddev\": 0.015697722271498665,\n    \"system\": 0.063041505,\n    \"time\": 1.0807144526799999,\n    \"user\": 1.0798746099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"max\": 1.11168427568,\n    \"mean\": 1.0853863800799999,\n    \"median\": 1.0807144526799999,\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"min\": 1.06968467168,\n    \"stddev\": 0.015697722271498665,\n    \"system\": 0.063041505,\n    \"time\": 1.06968467168,\n    \"user\": 1.0798746099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"max\": 1.11168427568,\n    \"mean\": 1.0853863800799999,\n    \"median\": 1.0807144526799999,\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"min\": 1.06968467168,\n    \"stddev\": 0.015697722271498665,\n    \"system\": 0.063041505,\n    \"time\": 1.0844460866799999,\n    \"user\": 1.0798746099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"max\": 1.080058375125,\n    \"mean\": 1.070195315525,\n    \"median\": 1.067920070125,\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"min\": 1.0637899281249998,\n    \"stddev\": 0.006970840206560277,\n    \"system\": 0.062272669999999995,\n    \"time\": 1.067920070125,\n    \"user\": 1.0668568549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"max\": 1.080058375125,\n    \"mean\": 1.070195315525,\n    \"median\": 1.067920070125,\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"min\": 1.0637899281249998,\n    \"stddev\": 0.006970840206560277,\n    \"system\": 0.062272669999999995,\n    \"time\": 1.080058375125,\n    \"user\": 1.0668568549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"max\": 1.080058375125,\n    \"mean\": 1.070195315525,\n    \"median\": 1.067920070125,\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"min\": 1.0637899281249998,\n    \"stddev\": 0.006970840206560277,\n    \"system\": 0.062272669999999995,\n    \"time\": 1.0746133791249999,\n    \"user\": 1.0668568549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"max\": 1.080058375125,\n    \"mean\": 1.070195315525,\n    \"median\": 1.067920070125,\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"min\": 1.0637899281249998,\n    \"stddev\": 0.006970840206560277,\n    \"system\": 0.062272669999999995,\n    \"time\": 1.0637899281249998,\n    \"user\": 1.0668568549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"max\": 1.080058375125,\n    \"mean\": 1.070195315525,\n    \"median\": 1.067920070125,\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"min\": 1.0637899281249998,\n    \"stddev\": 0.006970840206560277,\n    \"system\": 0.062272669999999995,\n    \"time\": 1.064594825125,\n    \"user\": 1.0668568549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"max\": 1.0776299065550001,\n    \"mean\": 1.072154862755,\n    \"median\": 1.074613276555,\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"min\": 1.0638025985550001,\n    \"stddev\": 0.005625495659005866,\n    \"system\": 0.062507175,\n    \"time\": 1.0691458125550002,\n    \"user\": 1.0698741550000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"max\": 1.0776299065550001,\n    \"mean\": 1.072154862755,\n    \"median\": 1.074613276555,\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"min\": 1.0638025985550001,\n    \"stddev\": 0.005625495659005866,\n    \"system\": 0.062507175,\n    \"time\": 1.0638025985550001,\n    \"user\": 1.0698741550000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"max\": 1.0776299065550001,\n    \"mean\": 1.072154862755,\n    \"median\": 1.074613276555,\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"min\": 1.0638025985550001,\n    \"stddev\": 0.005625495659005866,\n    \"system\": 0.062507175,\n    \"time\": 1.075582719555,\n    \"user\": 1.0698741550000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"max\": 1.0776299065550001,\n    \"mean\": 1.072154862755,\n    \"median\": 1.074613276555,\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"min\": 1.0638025985550001,\n    \"stddev\": 0.005625495659005866,\n    \"system\": 0.062507175,\n    \"time\": 1.0776299065550001,\n    \"user\": 1.0698741550000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"max\": 1.0776299065550001,\n    \"mean\": 1.072154862755,\n    \"median\": 1.074613276555,\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"min\": 1.0638025985550001,\n    \"stddev\": 0.005625495659005866,\n    \"system\": 0.062507175,\n    \"time\": 1.074613276555,\n    \"user\": 1.0698741550000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"max\": 1.0933227324049999,\n    \"mean\": 1.0743633212049999,\n    \"median\": 1.0768867364049999,\n    \"message\": \"README\\n\",\n    \"min\": 1.055582240405,\n    \"stddev\": 0.014698053767669066,\n    \"system\": 0.06304689,\n    \"time\": 1.0933227324049999,\n    \"user\": 1.06785342\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"max\": 1.0933227324049999,\n    \"mean\": 1.0743633212049999,\n    \"median\": 1.0768867364049999,\n    \"message\": \"README\\n\",\n    \"min\": 1.055582240405,\n    \"stddev\": 0.014698053767669066,\n    \"system\": 0.06304689,\n    \"time\": 1.0768867364049999,\n    \"user\": 1.06785342\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"max\": 1.0933227324049999,\n    \"mean\": 1.0743633212049999,\n    \"median\": 1.0768867364049999,\n    \"message\": \"README\\n\",\n    \"min\": 1.055582240405,\n    \"stddev\": 0.014698053767669066,\n    \"system\": 0.06304689,\n    \"time\": 1.055582240405,\n    \"user\": 1.06785342\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"max\": 1.0933227324049999,\n    \"mean\": 1.0743633212049999,\n    \"median\": 1.0768867364049999,\n    \"message\": \"README\\n\",\n    \"min\": 1.055582240405,\n    \"stddev\": 0.014698053767669066,\n    \"system\": 0.06304689,\n    \"time\": 1.064588508405,\n    \"user\": 1.06785342\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"max\": 1.0933227324049999,\n    \"mean\": 1.0743633212049999,\n    \"median\": 1.0768867364049999,\n    \"message\": \"README\\n\",\n    \"min\": 1.055582240405,\n    \"stddev\": 0.014698053767669066,\n    \"system\": 0.06304689,\n    \"time\": 1.081436388405,\n    \"user\": 1.06785342\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"max\": 1.119406058265,\n    \"mean\": 1.079771412065,\n    \"median\": 1.0747027012650001,\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"min\": 1.063283303265,\n    \"stddev\": 0.022752423767941732,\n    \"system\": 0.06403961999999999,\n    \"time\": 1.119406058265,\n    \"user\": 1.0733609549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"max\": 1.119406058265,\n    \"mean\": 1.079771412065,\n    \"median\": 1.0747027012650001,\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"min\": 1.063283303265,\n    \"stddev\": 0.022752423767941732,\n    \"system\": 0.06403961999999999,\n    \"time\": 1.063283303265,\n    \"user\": 1.0733609549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"max\": 1.119406058265,\n    \"mean\": 1.079771412065,\n    \"median\": 1.0747027012650001,\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"min\": 1.063283303265,\n    \"stddev\": 0.022752423767941732,\n    \"system\": 0.06403961999999999,\n    \"time\": 1.0747027012650001,\n    \"user\": 1.0733609549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"max\": 1.119406058265,\n    \"mean\": 1.079771412065,\n    \"median\": 1.0747027012650001,\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"min\": 1.063283303265,\n    \"stddev\": 0.022752423767941732,\n    \"system\": 0.06403961999999999,\n    \"time\": 1.066326111265,\n    \"user\": 1.0733609549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"max\": 1.119406058265,\n    \"mean\": 1.079771412065,\n    \"median\": 1.0747027012650001,\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"min\": 1.063283303265,\n    \"stddev\": 0.022752423767941732,\n    \"system\": 0.06403961999999999,\n    \"time\": 1.075138886265,\n    \"user\": 1.0733609549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"max\": 1.097567612485,\n    \"mean\": 1.075357084285,\n    \"median\": 1.0707285684849999,\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"min\": 1.065079220485,\n    \"stddev\": 0.01286308946023587,\n    \"system\": 0.06350984,\n    \"time\": 1.097567612485,\n    \"user\": 1.0680167799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"max\": 1.097567612485,\n    \"mean\": 1.075357084285,\n    \"median\": 1.0707285684849999,\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"min\": 1.065079220485,\n    \"stddev\": 0.01286308946023587,\n    \"system\": 0.06350984,\n    \"time\": 1.074424916485,\n    \"user\": 1.0680167799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"max\": 1.097567612485,\n    \"mean\": 1.075357084285,\n    \"median\": 1.0707285684849999,\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"min\": 1.065079220485,\n    \"stddev\": 0.01286308946023587,\n    \"system\": 0.06350984,\n    \"time\": 1.068985103485,\n    \"user\": 1.0680167799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"max\": 1.097567612485,\n    \"mean\": 1.075357084285,\n    \"median\": 1.0707285684849999,\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"min\": 1.065079220485,\n    \"stddev\": 0.01286308946023587,\n    \"system\": 0.06350984,\n    \"time\": 1.0707285684849999,\n    \"user\": 1.0680167799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"max\": 1.097567612485,\n    \"mean\": 1.075357084285,\n    \"median\": 1.0707285684849999,\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"min\": 1.065079220485,\n    \"stddev\": 0.01286308946023587,\n    \"system\": 0.06350984,\n    \"time\": 1.065079220485,\n    \"user\": 1.0680167799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"max\": 1.08175064793,\n    \"mean\": 1.0686550339300003,\n    \"median\": 1.06628117693,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.05769301093,\n    \"stddev\": 0.00987938457733004,\n    \"system\": 0.06293996999999998,\n    \"time\": 1.08175064793,\n    \"user\": 1.0631977349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"max\": 1.08175064793,\n    \"mean\": 1.0686550339300003,\n    \"median\": 1.06628117693,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.05769301093,\n    \"stddev\": 0.00987938457733004,\n    \"system\": 0.06293996999999998,\n    \"time\": 1.05769301093,\n    \"user\": 1.0631977349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"max\": 1.08175064793,\n    \"mean\": 1.0686550339300003,\n    \"median\": 1.06628117693,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.05769301093,\n    \"stddev\": 0.00987938457733004,\n    \"system\": 0.06293996999999998,\n    \"time\": 1.07559733093,\n    \"user\": 1.0631977349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"max\": 1.08175064793,\n    \"mean\": 1.0686550339300003,\n    \"median\": 1.06628117693,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.05769301093,\n    \"stddev\": 0.00987938457733004,\n    \"system\": 0.06293996999999998,\n    \"time\": 1.06628117693,\n    \"user\": 1.0631977349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"max\": 1.08175064793,\n    \"mean\": 1.0686550339300003,\n    \"median\": 1.06628117693,\n    \"message\": \"Rename module\\n\",\n    \"min\": 1.05769301093,\n    \"stddev\": 0.00987938457733004,\n    \"system\": 0.06293996999999998,\n    \"time\": 1.06195300293,\n    \"user\": 1.0631977349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"max\": 1.09267472934,\n    \"mean\": 1.07483519934,\n    \"median\": 1.06967481334,\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"min\": 1.06775922334,\n    \"stddev\": 0.010527648003784928,\n    \"system\": 0.06452906,\n    \"time\": 1.09267472934,\n    \"user\": 1.0690314650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"max\": 1.09267472934,\n    \"mean\": 1.07483519934,\n    \"median\": 1.06967481334,\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"min\": 1.06775922334,\n    \"stddev\": 0.010527648003784928,\n    \"system\": 0.06452906,\n    \"time\": 1.06799134534,\n    \"user\": 1.0690314650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"max\": 1.09267472934,\n    \"mean\": 1.07483519934,\n    \"median\": 1.06967481334,\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"min\": 1.06775922334,\n    \"stddev\": 0.010527648003784928,\n    \"system\": 0.06452906,\n    \"time\": 1.06775922334,\n    \"user\": 1.0690314650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"max\": 1.09267472934,\n    \"mean\": 1.07483519934,\n    \"median\": 1.06967481334,\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"min\": 1.06775922334,\n    \"stddev\": 0.010527648003784928,\n    \"system\": 0.06452906,\n    \"time\": 1.07607588534,\n    \"user\": 1.0690314650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"max\": 1.09267472934,\n    \"mean\": 1.07483519934,\n    \"median\": 1.06967481334,\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"min\": 1.06775922334,\n    \"stddev\": 0.010527648003784928,\n    \"system\": 0.06452906,\n    \"time\": 1.06967481334,\n    \"user\": 1.0690314650000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"max\": 1.090318396895,\n    \"mean\": 1.0752896608950002,\n    \"median\": 1.0692554918950001,\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"min\": 1.0683354598950001,\n    \"stddev\": 0.009632698304754312,\n    \"system\": 0.06391258,\n    \"time\": 1.079674981895,\n    \"user\": 1.072360775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"max\": 1.090318396895,\n    \"mean\": 1.0752896608950002,\n    \"median\": 1.0692554918950001,\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"min\": 1.0683354598950001,\n    \"stddev\": 0.009632698304754312,\n    \"system\": 0.06391258,\n    \"time\": 1.0683354598950001,\n    \"user\": 1.072360775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"max\": 1.090318396895,\n    \"mean\": 1.0752896608950002,\n    \"median\": 1.0692554918950001,\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"min\": 1.0683354598950001,\n    \"stddev\": 0.009632698304754312,\n    \"system\": 0.06391258,\n    \"time\": 1.0692554918950001,\n    \"user\": 1.072360775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"max\": 1.090318396895,\n    \"mean\": 1.0752896608950002,\n    \"median\": 1.0692554918950001,\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"min\": 1.0683354598950001,\n    \"stddev\": 0.009632698304754312,\n    \"system\": 0.06391258,\n    \"time\": 1.068863973895,\n    \"user\": 1.072360775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"max\": 1.090318396895,\n    \"mean\": 1.0752896608950002,\n    \"median\": 1.0692554918950001,\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"min\": 1.0683354598950001,\n    \"stddev\": 0.009632698304754312,\n    \"system\": 0.06391258,\n    \"time\": 1.090318396895,\n    \"user\": 1.072360775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"max\": 1.089967824365,\n    \"mean\": 1.072659919965,\n    \"median\": 1.071875648365,\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"min\": 1.0640115243650001,\n    \"stddev\": 0.010394210580992432,\n    \"system\": 0.06245383499999999,\n    \"time\": 1.089967824365,\n    \"user\": 1.0702733050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"max\": 1.089967824365,\n    \"mean\": 1.072659919965,\n    \"median\": 1.071875648365,\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"min\": 1.0640115243650001,\n    \"stddev\": 0.010394210580992432,\n    \"system\": 0.06245383499999999,\n    \"time\": 1.071875648365,\n    \"user\": 1.0702733050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"max\": 1.089967824365,\n    \"mean\": 1.072659919965,\n    \"median\": 1.071875648365,\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"min\": 1.0640115243650001,\n    \"stddev\": 0.010394210580992432,\n    \"system\": 0.06245383499999999,\n    \"time\": 1.0640115243650001,\n    \"user\": 1.0702733050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"max\": 1.089967824365,\n    \"mean\": 1.072659919965,\n    \"median\": 1.071875648365,\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"min\": 1.0640115243650001,\n    \"stddev\": 0.010394210580992432,\n    \"system\": 0.06245383499999999,\n    \"time\": 1.065104609365,\n    \"user\": 1.0702733050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"max\": 1.089967824365,\n    \"mean\": 1.072659919965,\n    \"median\": 1.071875648365,\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"min\": 1.0640115243650001,\n    \"stddev\": 0.010394210580992432,\n    \"system\": 0.06245383499999999,\n    \"time\": 1.072339993365,\n    \"user\": 1.0702733050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"max\": 1.094293334525,\n    \"mean\": 1.080548560525,\n    \"median\": 1.073906552525,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.070012036525,\n    \"stddev\": 0.01150699365043806,\n    \"system\": 0.06344594,\n    \"time\": 1.094293334525,\n    \"user\": 1.07457614\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"max\": 1.094293334525,\n    \"mean\": 1.080548560525,\n    \"median\": 1.073906552525,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.070012036525,\n    \"stddev\": 0.01150699365043806,\n    \"system\": 0.06344594,\n    \"time\": 1.091744227525,\n    \"user\": 1.07457614\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"max\": 1.094293334525,\n    \"mean\": 1.080548560525,\n    \"median\": 1.073906552525,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.070012036525,\n    \"stddev\": 0.01150699365043806,\n    \"system\": 0.06344594,\n    \"time\": 1.070012036525,\n    \"user\": 1.07457614\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"max\": 1.094293334525,\n    \"mean\": 1.080548560525,\n    \"median\": 1.073906552525,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.070012036525,\n    \"stddev\": 0.01150699365043806,\n    \"system\": 0.06344594,\n    \"time\": 1.072786651525,\n    \"user\": 1.07457614\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"max\": 1.094293334525,\n    \"mean\": 1.080548560525,\n    \"median\": 1.073906552525,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.070012036525,\n    \"stddev\": 0.01150699365043806,\n    \"system\": 0.06344594,\n    \"time\": 1.073906552525,\n    \"user\": 1.07457614\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"max\": 1.07414978896,\n    \"mean\": 1.06888024356,\n    \"median\": 1.07103132596,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.05872957796,\n    \"stddev\": 0.00599563184460801,\n    \"system\": 0.06255598500000001,\n    \"time\": 1.07414978896,\n    \"user\": 1.0665162249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"max\": 1.07414978896,\n    \"mean\": 1.06888024356,\n    \"median\": 1.07103132596,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.05872957796,\n    \"stddev\": 0.00599563184460801,\n    \"system\": 0.06255598500000001,\n    \"time\": 1.07103132596,\n    \"user\": 1.0665162249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"max\": 1.07414978896,\n    \"mean\": 1.06888024356,\n    \"median\": 1.07103132596,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.05872957796,\n    \"stddev\": 0.00599563184460801,\n    \"system\": 0.06255598500000001,\n    \"time\": 1.06872332696,\n    \"user\": 1.0665162249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"max\": 1.07414978896,\n    \"mean\": 1.06888024356,\n    \"median\": 1.07103132596,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.05872957796,\n    \"stddev\": 0.00599563184460801,\n    \"system\": 0.06255598500000001,\n    \"time\": 1.05872957796,\n    \"user\": 1.0665162249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"max\": 1.07414978896,\n    \"mean\": 1.06888024356,\n    \"median\": 1.07103132596,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.05872957796,\n    \"stddev\": 0.00599563184460801,\n    \"system\": 0.06255598500000001,\n    \"time\": 1.0717671979599999,\n    \"user\": 1.0665162249999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"max\": 1.0793652837449998,\n    \"mean\": 1.0719746075449998,\n    \"median\": 1.0758448537449998,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.0613374927449999,\n    \"stddev\": 0.008177305426694524,\n    \"system\": 0.06248412999999999,\n    \"time\": 1.0793652837449998,\n    \"user\": 1.0693491499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"max\": 1.0793652837449998,\n    \"mean\": 1.0719746075449998,\n    \"median\": 1.0758448537449998,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.0613374927449999,\n    \"stddev\": 0.008177305426694524,\n    \"system\": 0.06248412999999999,\n    \"time\": 1.0758448537449998,\n    \"user\": 1.0693491499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"max\": 1.0793652837449998,\n    \"mean\": 1.0719746075449998,\n    \"median\": 1.0758448537449998,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.0613374927449999,\n    \"stddev\": 0.008177305426694524,\n    \"system\": 0.06248412999999999,\n    \"time\": 1.0613374927449999,\n    \"user\": 1.0693491499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"max\": 1.0793652837449998,\n    \"mean\": 1.0719746075449998,\n    \"median\": 1.0758448537449998,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.0613374927449999,\n    \"stddev\": 0.008177305426694524,\n    \"system\": 0.06248412999999999,\n    \"time\": 1.078163842745,\n    \"user\": 1.0693491499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"max\": 1.0793652837449998,\n    \"mean\": 1.0719746075449998,\n    \"median\": 1.0758448537449998,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.0613374927449999,\n    \"stddev\": 0.008177305426694524,\n    \"system\": 0.06248412999999999,\n    \"time\": 1.065161564745,\n    \"user\": 1.0693491499999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"max\": 1.086765322135,\n    \"mean\": 1.0694037249350001,\n    \"median\": 1.068124248135,\n    \"message\": \"README: screenshots\\n\",\n    \"min\": 1.0589403211350001,\n    \"stddev\": 0.010481455053255427,\n    \"system\": 0.061443954999999995,\n    \"time\": 1.086765322135,\n    \"user\": 1.06800311\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"max\": 1.086765322135,\n    \"mean\": 1.0694037249350001,\n    \"median\": 1.068124248135,\n    \"message\": \"README: screenshots\\n\",\n    \"min\": 1.0589403211350001,\n    \"stddev\": 0.010481455053255427,\n    \"system\": 0.061443954999999995,\n    \"time\": 1.068124248135,\n    \"user\": 1.06800311\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"max\": 1.086765322135,\n    \"mean\": 1.0694037249350001,\n    \"median\": 1.068124248135,\n    \"message\": \"README: screenshots\\n\",\n    \"min\": 1.0589403211350001,\n    \"stddev\": 0.010481455053255427,\n    \"system\": 0.061443954999999995,\n    \"time\": 1.064237072135,\n    \"user\": 1.06800311\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"max\": 1.086765322135,\n    \"mean\": 1.0694037249350001,\n    \"median\": 1.068124248135,\n    \"message\": \"README: screenshots\\n\",\n    \"min\": 1.0589403211350001,\n    \"stddev\": 0.010481455053255427,\n    \"system\": 0.061443954999999995,\n    \"time\": 1.0589403211350001,\n    \"user\": 1.06800311\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"max\": 1.086765322135,\n    \"mean\": 1.0694037249350001,\n    \"median\": 1.068124248135,\n    \"message\": \"README: screenshots\\n\",\n    \"min\": 1.0589403211350001,\n    \"stddev\": 0.010481455053255427,\n    \"system\": 0.061443954999999995,\n    \"time\": 1.068951661135,\n    \"user\": 1.06800311\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"max\": 1.09916954108,\n    \"mean\": 1.08017338808,\n    \"median\": 1.07647561708,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.06470650108,\n    \"stddev\": 0.013341808778916853,\n    \"system\": 0.06393149499999999,\n    \"time\": 1.09916954108,\n    \"user\": 1.0725351\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"max\": 1.09916954108,\n    \"mean\": 1.08017338808,\n    \"median\": 1.07647561708,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.06470650108,\n    \"stddev\": 0.013341808778916853,\n    \"system\": 0.06393149499999999,\n    \"time\": 1.07647561708,\n    \"user\": 1.0725351\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"max\": 1.09916954108,\n    \"mean\": 1.08017338808,\n    \"median\": 1.07647561708,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.06470650108,\n    \"stddev\": 0.013341808778916853,\n    \"system\": 0.06393149499999999,\n    \"time\": 1.07324874208,\n    \"user\": 1.0725351\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"max\": 1.09916954108,\n    \"mean\": 1.08017338808,\n    \"median\": 1.07647561708,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.06470650108,\n    \"stddev\": 0.013341808778916853,\n    \"system\": 0.06393149499999999,\n    \"time\": 1.06470650108,\n    \"user\": 1.0725351\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"max\": 1.09916954108,\n    \"mean\": 1.08017338808,\n    \"median\": 1.07647561708,\n    \"message\": \"Homebrew formula\\n\",\n    \"min\": 1.06470650108,\n    \"stddev\": 0.013341808778916853,\n    \"system\": 0.06393149499999999,\n    \"time\": 1.08726653908,\n    \"user\": 1.0725351\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"max\": 1.09877415047,\n    \"mean\": 1.07773162687,\n    \"median\": 1.0725731464700001,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.06313441347,\n    \"stddev\": 0.01428241756037797,\n    \"system\": 0.064404905,\n    \"time\": 1.09877415047,\n    \"user\": 1.0708762200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"max\": 1.09877415047,\n    \"mean\": 1.07773162687,\n    \"median\": 1.0725731464700001,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.06313441347,\n    \"stddev\": 0.01428241756037797,\n    \"system\": 0.064404905,\n    \"time\": 1.08523208947,\n    \"user\": 1.0708762200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"max\": 1.09877415047,\n    \"mean\": 1.07773162687,\n    \"median\": 1.0725731464700001,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.06313441347,\n    \"stddev\": 0.01428241756037797,\n    \"system\": 0.064404905,\n    \"time\": 1.06894433447,\n    \"user\": 1.0708762200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"max\": 1.09877415047,\n    \"mean\": 1.07773162687,\n    \"median\": 1.0725731464700001,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.06313441347,\n    \"stddev\": 0.01428241756037797,\n    \"system\": 0.064404905,\n    \"time\": 1.06313441347,\n    \"user\": 1.0708762200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"max\": 1.09877415047,\n    \"mean\": 1.07773162687,\n    \"median\": 1.0725731464700001,\n    \"message\": \"Tweak light theme colors\\n\",\n    \"min\": 1.06313441347,\n    \"stddev\": 0.01428241756037797,\n    \"system\": 0.064404905,\n    \"time\": 1.0725731464700001,\n    \"user\": 1.0708762200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n    \"max\": 1.109912615285,\n    \"mean\": 1.074154863485,\n    \"median\": 1.066122086285,\n    \"message\": \"Benchmark with hyperfine on commit history\\n\",\n    \"min\": 1.0619502592849999,\n    \"stddev\": 0.02011999179233402,\n    \"system\": 0.06254422,\n    \"time\": 1.109912615285,\n    \"user\": 1.0666907449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n    \"max\": 1.109912615285,\n    \"mean\": 1.074154863485,\n    \"median\": 1.066122086285,\n    \"message\": \"Benchmark with hyperfine on commit history\\n\",\n    \"min\": 1.0619502592849999,\n    \"stddev\": 0.02011999179233402,\n    \"system\": 0.06254422,\n    \"time\": 1.066122086285,\n    \"user\": 1.0666907449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n    \"max\": 1.109912615285,\n    \"mean\": 1.074154863485,\n    \"median\": 1.066122086285,\n    \"message\": \"Benchmark with hyperfine on commit history\\n\",\n    \"min\": 1.0619502592849999,\n    \"stddev\": 0.02011999179233402,\n    \"system\": 0.06254422,\n    \"time\": 1.068227796285,\n    \"user\": 1.0666907449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n    \"max\": 1.109912615285,\n    \"mean\": 1.074154863485,\n    \"median\": 1.066122086285,\n    \"message\": \"Benchmark with hyperfine on commit history\\n\",\n    \"min\": 1.0619502592849999,\n    \"stddev\": 0.02011999179233402,\n    \"system\": 0.06254422,\n    \"time\": 1.0619502592849999,\n    \"user\": 1.0666907449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n    \"max\": 1.109912615285,\n    \"mean\": 1.074154863485,\n    \"median\": 1.066122086285,\n    \"message\": \"Benchmark with hyperfine on commit history\\n\",\n    \"min\": 1.0619502592849999,\n    \"stddev\": 0.02011999179233402,\n    \"system\": 0.06254422,\n    \"time\": 1.064561560285,\n    \"user\": 1.0666907449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n    \"max\": 1.1007091676549998,\n    \"mean\": 1.082660120255,\n    \"median\": 1.075950055655,\n    \"message\": \"Performance visualization\\n\",\n    \"min\": 1.0711022476549998,\n    \"stddev\": 0.012598112027880035,\n    \"system\": 0.06481456000000001,\n    \"time\": 1.1007091676549998,\n    \"user\": 1.0732819550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n    \"max\": 1.1007091676549998,\n    \"mean\": 1.082660120255,\n    \"median\": 1.075950055655,\n    \"message\": \"Performance visualization\\n\",\n    \"min\": 1.0711022476549998,\n    \"stddev\": 0.012598112027880035,\n    \"system\": 0.06481456000000001,\n    \"time\": 1.074693419655,\n    \"user\": 1.0732819550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n    \"max\": 1.1007091676549998,\n    \"mean\": 1.082660120255,\n    \"median\": 1.075950055655,\n    \"message\": \"Performance visualization\\n\",\n    \"min\": 1.0711022476549998,\n    \"stddev\": 0.012598112027880035,\n    \"system\": 0.06481456000000001,\n    \"time\": 1.090845710655,\n    \"user\": 1.0732819550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n    \"max\": 1.1007091676549998,\n    \"mean\": 1.082660120255,\n    \"median\": 1.075950055655,\n    \"message\": \"Performance visualization\\n\",\n    \"min\": 1.0711022476549998,\n    \"stddev\": 0.012598112027880035,\n    \"system\": 0.06481456000000001,\n    \"time\": 1.0711022476549998,\n    \"user\": 1.0732819550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n    \"max\": 1.1007091676549998,\n    \"mean\": 1.082660120255,\n    \"median\": 1.075950055655,\n    \"message\": \"Performance visualization\\n\",\n    \"min\": 1.0711022476549998,\n    \"stddev\": 0.012598112027880035,\n    \"system\": 0.06481456000000001,\n    \"time\": 1.075950055655,\n    \"user\": 1.0732819550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"max\": 1.117400954765,\n    \"mean\": 1.0813890335649998,\n    \"median\": 1.076063764765,\n    \"message\": \"Autoformat\\n\",\n    \"min\": 1.062016210765,\n    \"stddev\": 0.021170696602128575,\n    \"system\": 0.06393680499999999,\n    \"time\": 1.079491705765,\n    \"user\": 1.078158835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"max\": 1.117400954765,\n    \"mean\": 1.0813890335649998,\n    \"median\": 1.076063764765,\n    \"message\": \"Autoformat\\n\",\n    \"min\": 1.062016210765,\n    \"stddev\": 0.021170696602128575,\n    \"system\": 0.06393680499999999,\n    \"time\": 1.117400954765,\n    \"user\": 1.078158835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"max\": 1.117400954765,\n    \"mean\": 1.0813890335649998,\n    \"median\": 1.076063764765,\n    \"message\": \"Autoformat\\n\",\n    \"min\": 1.062016210765,\n    \"stddev\": 0.021170696602128575,\n    \"system\": 0.06393680499999999,\n    \"time\": 1.062016210765,\n    \"user\": 1.078158835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"max\": 1.117400954765,\n    \"mean\": 1.0813890335649998,\n    \"median\": 1.076063764765,\n    \"message\": \"Autoformat\\n\",\n    \"min\": 1.062016210765,\n    \"stddev\": 0.021170696602128575,\n    \"system\": 0.06393680499999999,\n    \"time\": 1.071972531765,\n    \"user\": 1.078158835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"max\": 1.117400954765,\n    \"mean\": 1.0813890335649998,\n    \"median\": 1.076063764765,\n    \"message\": \"Autoformat\\n\",\n    \"min\": 1.062016210765,\n    \"stddev\": 0.021170696602128575,\n    \"system\": 0.06393680499999999,\n    \"time\": 1.076063764765,\n    \"user\": 1.078158835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"max\": 1.09631725822,\n    \"mean\": 1.07385226482,\n    \"median\": 1.07291830422,\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"min\": 1.0608364642199999,\n    \"stddev\": 0.014692202453753538,\n    \"system\": 0.062959365,\n    \"time\": 1.09631725822,\n    \"user\": 1.0676213449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"max\": 1.09631725822,\n    \"mean\": 1.07385226482,\n    \"median\": 1.07291830422,\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"min\": 1.0608364642199999,\n    \"stddev\": 0.014692202453753538,\n    \"system\": 0.062959365,\n    \"time\": 1.0783190222199999,\n    \"user\": 1.0676213449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"max\": 1.09631725822,\n    \"mean\": 1.07385226482,\n    \"median\": 1.07291830422,\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"min\": 1.0608364642199999,\n    \"stddev\": 0.014692202453753538,\n    \"system\": 0.062959365,\n    \"time\": 1.0608702752199999,\n    \"user\": 1.0676213449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"max\": 1.09631725822,\n    \"mean\": 1.07385226482,\n    \"median\": 1.07291830422,\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"min\": 1.0608364642199999,\n    \"stddev\": 0.014692202453753538,\n    \"system\": 0.062959365,\n    \"time\": 1.0608364642199999,\n    \"user\": 1.0676213449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"max\": 1.09631725822,\n    \"mean\": 1.07385226482,\n    \"median\": 1.07291830422,\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"min\": 1.0608364642199999,\n    \"stddev\": 0.014692202453753538,\n    \"system\": 0.062959365,\n    \"time\": 1.07291830422,\n    \"user\": 1.0676213449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"max\": 1.110756572645,\n    \"mean\": 1.0885123484449999,\n    \"median\": 1.082510753645,\n    \"message\": \"Handle file rename\\n\",\n    \"min\": 1.073029007645,\n    \"stddev\": 0.016251767133967754,\n    \"system\": 0.06298592,\n    \"time\": 1.110756572645,\n    \"user\": 1.0822236349999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"max\": 1.110756572645,\n    \"mean\": 1.0885123484449999,\n    \"median\": 1.082510753645,\n    \"message\": \"Handle file rename\\n\",\n    \"min\": 1.073029007645,\n    \"stddev\": 0.016251767133967754,\n    \"system\": 0.06298592,\n    \"time\": 1.100083289645,\n    \"user\": 1.0822236349999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"max\": 1.110756572645,\n    \"mean\": 1.0885123484449999,\n    \"median\": 1.082510753645,\n    \"message\": \"Handle file rename\\n\",\n    \"min\": 1.073029007645,\n    \"stddev\": 0.016251767133967754,\n    \"system\": 0.06298592,\n    \"time\": 1.073029007645,\n    \"user\": 1.0822236349999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"max\": 1.110756572645,\n    \"mean\": 1.0885123484449999,\n    \"median\": 1.082510753645,\n    \"message\": \"Handle file rename\\n\",\n    \"min\": 1.073029007645,\n    \"stddev\": 0.016251767133967754,\n    \"system\": 0.06298592,\n    \"time\": 1.082510753645,\n    \"user\": 1.0822236349999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"max\": 1.110756572645,\n    \"mean\": 1.0885123484449999,\n    \"median\": 1.082510753645,\n    \"message\": \"Handle file rename\\n\",\n    \"min\": 1.073029007645,\n    \"stddev\": 0.016251767133967754,\n    \"system\": 0.06298592,\n    \"time\": 1.076182118645,\n    \"user\": 1.0822236349999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"max\": 1.093522700505,\n    \"mean\": 1.083194209705,\n    \"median\": 1.088079370505,\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"min\": 1.070747172505,\n    \"stddev\": 0.010482303429576819,\n    \"system\": 0.0633567,\n    \"time\": 1.088079370505,\n    \"user\": 1.0791472299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"max\": 1.093522700505,\n    \"mean\": 1.083194209705,\n    \"median\": 1.088079370505,\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"min\": 1.070747172505,\n    \"stddev\": 0.010482303429576819,\n    \"system\": 0.0633567,\n    \"time\": 1.073144403505,\n    \"user\": 1.0791472299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"max\": 1.093522700505,\n    \"mean\": 1.083194209705,\n    \"median\": 1.088079370505,\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"min\": 1.070747172505,\n    \"stddev\": 0.010482303429576819,\n    \"system\": 0.0633567,\n    \"time\": 1.093522700505,\n    \"user\": 1.0791472299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"max\": 1.093522700505,\n    \"mean\": 1.083194209705,\n    \"median\": 1.088079370505,\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"min\": 1.070747172505,\n    \"stddev\": 0.010482303429576819,\n    \"system\": 0.0633567,\n    \"time\": 1.090477401505,\n    \"user\": 1.0791472299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"max\": 1.093522700505,\n    \"mean\": 1.083194209705,\n    \"median\": 1.088079370505,\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"min\": 1.070747172505,\n    \"stddev\": 0.010482303429576819,\n    \"system\": 0.0633567,\n    \"time\": 1.070747172505,\n    \"user\": 1.0791472299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"max\": 1.1108776942299998,\n    \"mean\": 1.0830885908299999,\n    \"median\": 1.0779436942299998,\n    \"message\": \"Report errors to stderr\\n\",\n    \"min\": 1.07241320223,\n    \"stddev\": 0.015749203286866832,\n    \"system\": 0.06378463499999999,\n    \"time\": 1.1108776942299998,\n    \"user\": 1.07734624\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"max\": 1.1108776942299998,\n    \"mean\": 1.0830885908299999,\n    \"median\": 1.0779436942299998,\n    \"message\": \"Report errors to stderr\\n\",\n    \"min\": 1.07241320223,\n    \"stddev\": 0.015749203286866832,\n    \"system\": 0.06378463499999999,\n    \"time\": 1.07241320223,\n    \"user\": 1.07734624\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"max\": 1.1108776942299998,\n    \"mean\": 1.0830885908299999,\n    \"median\": 1.0779436942299998,\n    \"message\": \"Report errors to stderr\\n\",\n    \"min\": 1.07241320223,\n    \"stddev\": 0.015749203286866832,\n    \"system\": 0.06378463499999999,\n    \"time\": 1.07908599423,\n    \"user\": 1.07734624\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"max\": 1.1108776942299998,\n    \"mean\": 1.0830885908299999,\n    \"median\": 1.0779436942299998,\n    \"message\": \"Report errors to stderr\\n\",\n    \"min\": 1.07241320223,\n    \"stddev\": 0.015749203286866832,\n    \"system\": 0.06378463499999999,\n    \"time\": 1.0751223692299998,\n    \"user\": 1.07734624\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"max\": 1.1108776942299998,\n    \"mean\": 1.0830885908299999,\n    \"median\": 1.0779436942299998,\n    \"message\": \"Report errors to stderr\\n\",\n    \"min\": 1.07241320223,\n    \"stddev\": 0.015749203286866832,\n    \"system\": 0.06378463499999999,\n    \"time\": 1.0779436942299998,\n    \"user\": 1.07734624\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"max\": 1.1116774272549999,\n    \"mean\": 1.077661140455,\n    \"median\": 1.070855366255,\n    \"message\": \"Make edit inference less naive\\n\",\n    \"min\": 1.066454257255,\n    \"stddev\": 0.019181194093541916,\n    \"system\": 0.06298325,\n    \"time\": 1.1116774272549999,\n    \"user\": 1.0716764549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"max\": 1.1116774272549999,\n    \"mean\": 1.077661140455,\n    \"median\": 1.070855366255,\n    \"message\": \"Make edit inference less naive\\n\",\n    \"min\": 1.066454257255,\n    \"stddev\": 0.019181194093541916,\n    \"system\": 0.06298325,\n    \"time\": 1.070855366255,\n    \"user\": 1.0716764549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"max\": 1.1116774272549999,\n    \"mean\": 1.077661140455,\n    \"median\": 1.070855366255,\n    \"message\": \"Make edit inference less naive\\n\",\n    \"min\": 1.066454257255,\n    \"stddev\": 0.019181194093541916,\n    \"system\": 0.06298325,\n    \"time\": 1.072360639255,\n    \"user\": 1.0716764549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"max\": 1.1116774272549999,\n    \"mean\": 1.077661140455,\n    \"median\": 1.070855366255,\n    \"message\": \"Make edit inference less naive\\n\",\n    \"min\": 1.066454257255,\n    \"stddev\": 0.019181194093541916,\n    \"system\": 0.06298325,\n    \"time\": 1.066454257255,\n    \"user\": 1.0716764549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"max\": 1.1116774272549999,\n    \"mean\": 1.077661140455,\n    \"median\": 1.070855366255,\n    \"message\": \"Make edit inference less naive\\n\",\n    \"min\": 1.066454257255,\n    \"stddev\": 0.019181194093541916,\n    \"system\": 0.06298325,\n    \"time\": 1.066958012255,\n    \"user\": 1.0716764549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"max\": 1.095995535285,\n    \"mean\": 1.0759539836849998,\n    \"median\": 1.074898612285,\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"min\": 1.0642303762849998,\n    \"stddev\": 0.013144232848839803,\n    \"system\": 0.06241819999999999,\n    \"time\": 1.095995535285,\n    \"user\": 1.0706238649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"max\": 1.095995535285,\n    \"mean\": 1.0759539836849998,\n    \"median\": 1.074898612285,\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"min\": 1.0642303762849998,\n    \"stddev\": 0.013144232848839803,\n    \"system\": 0.06241819999999999,\n    \"time\": 1.0802122592849999,\n    \"user\": 1.0706238649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"max\": 1.095995535285,\n    \"mean\": 1.0759539836849998,\n    \"median\": 1.074898612285,\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"min\": 1.0642303762849998,\n    \"stddev\": 0.013144232848839803,\n    \"system\": 0.06241819999999999,\n    \"time\": 1.0644331352849998,\n    \"user\": 1.0706238649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"max\": 1.095995535285,\n    \"mean\": 1.0759539836849998,\n    \"median\": 1.074898612285,\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"min\": 1.0642303762849998,\n    \"stddev\": 0.013144232848839803,\n    \"system\": 0.06241819999999999,\n    \"time\": 1.074898612285,\n    \"user\": 1.0706238649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"max\": 1.095995535285,\n    \"mean\": 1.0759539836849998,\n    \"median\": 1.074898612285,\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"min\": 1.0642303762849998,\n    \"stddev\": 0.013144232848839803,\n    \"system\": 0.06241819999999999,\n    \"time\": 1.0642303762849998,\n    \"user\": 1.0706238649999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"max\": 1.10725439525,\n    \"mean\": 1.08398421945,\n    \"median\": 1.07633004025,\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"min\": 1.07060258025,\n    \"stddev\": 0.014804224326356695,\n    \"system\": 0.06430716,\n    \"time\": 1.08975936425,\n    \"user\": 1.078722695\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"max\": 1.10725439525,\n    \"mean\": 1.08398421945,\n    \"median\": 1.07633004025,\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"min\": 1.07060258025,\n    \"stddev\": 0.014804224326356695,\n    \"system\": 0.06430716,\n    \"time\": 1.07060258025,\n    \"user\": 1.078722695\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"max\": 1.10725439525,\n    \"mean\": 1.08398421945,\n    \"median\": 1.07633004025,\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"min\": 1.07060258025,\n    \"stddev\": 0.014804224326356695,\n    \"system\": 0.06430716,\n    \"time\": 1.10725439525,\n    \"user\": 1.078722695\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"max\": 1.10725439525,\n    \"mean\": 1.08398421945,\n    \"median\": 1.07633004025,\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"min\": 1.07060258025,\n    \"stddev\": 0.014804224326356695,\n    \"system\": 0.06430716,\n    \"time\": 1.07597471725,\n    \"user\": 1.078722695\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"max\": 1.10725439525,\n    \"mean\": 1.08398421945,\n    \"median\": 1.07633004025,\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"min\": 1.07060258025,\n    \"stddev\": 0.014804224326356695,\n    \"system\": 0.06430716,\n    \"time\": 1.07633004025,\n    \"user\": 1.078722695\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"max\": 1.1023968535,\n    \"mean\": 1.0812573107,\n    \"median\": 1.0737857925,\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"min\": 1.0716365934999998,\n    \"stddev\": 0.013090176623755008,\n    \"system\": 0.062889565,\n    \"time\": 1.1023968535,\n    \"user\": 1.078467575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"max\": 1.1023968535,\n    \"mean\": 1.0812573107,\n    \"median\": 1.0737857925,\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"min\": 1.0716365934999998,\n    \"stddev\": 0.013090176623755008,\n    \"system\": 0.062889565,\n    \"time\": 1.0737857925,\n    \"user\": 1.078467575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"max\": 1.1023968535,\n    \"mean\": 1.0812573107,\n    \"median\": 1.0737857925,\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"min\": 1.0716365934999998,\n    \"stddev\": 0.013090176623755008,\n    \"system\": 0.062889565,\n    \"time\": 1.0728321535,\n    \"user\": 1.078467575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"max\": 1.1023968535,\n    \"mean\": 1.0812573107,\n    \"median\": 1.0737857925,\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"min\": 1.0716365934999998,\n    \"stddev\": 0.013090176623755008,\n    \"system\": 0.062889565,\n    \"time\": 1.0856351604999999,\n    \"user\": 1.078467575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"max\": 1.1023968535,\n    \"mean\": 1.0812573107,\n    \"median\": 1.0737857925,\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"min\": 1.0716365934999998,\n    \"stddev\": 0.013090176623755008,\n    \"system\": 0.062889565,\n    \"time\": 1.0716365934999998,\n    \"user\": 1.078467575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"max\": 1.11373945896,\n    \"mean\": 1.08275212056,\n    \"median\": 1.0767067859600001,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.0651972929600002,\n    \"stddev\": 0.018335031136651046,\n    \"system\": 0.06329720999999999,\n    \"time\": 1.11373945896,\n    \"user\": 1.0766583349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"max\": 1.11373945896,\n    \"mean\": 1.08275212056,\n    \"median\": 1.0767067859600001,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.0651972929600002,\n    \"stddev\": 0.018335031136651046,\n    \"system\": 0.06329720999999999,\n    \"time\": 1.07656102396,\n    \"user\": 1.0766583349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"max\": 1.11373945896,\n    \"mean\": 1.08275212056,\n    \"median\": 1.0767067859600001,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.0651972929600002,\n    \"stddev\": 0.018335031136651046,\n    \"system\": 0.06329720999999999,\n    \"time\": 1.0651972929600002,\n    \"user\": 1.0766583349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"max\": 1.11373945896,\n    \"mean\": 1.08275212056,\n    \"median\": 1.0767067859600001,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.0651972929600002,\n    \"stddev\": 0.018335031136651046,\n    \"system\": 0.06329720999999999,\n    \"time\": 1.08155604096,\n    \"user\": 1.0766583349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"max\": 1.11373945896,\n    \"mean\": 1.08275212056,\n    \"median\": 1.0767067859600001,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.0651972929600002,\n    \"stddev\": 0.018335031136651046,\n    \"system\": 0.06329720999999999,\n    \"time\": 1.0767067859600001,\n    \"user\": 1.0766583349999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"max\": 1.10069088898,\n    \"mean\": 1.08166129398,\n    \"median\": 1.0773728329799999,\n    \"message\": \"Bump version, update README and description\\n\",\n    \"min\": 1.06813176498,\n    \"stddev\": 0.012167556292832818,\n    \"system\": 0.06270011,\n    \"time\": 1.10069088898,\n    \"user\": 1.079084765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"max\": 1.10069088898,\n    \"mean\": 1.08166129398,\n    \"median\": 1.0773728329799999,\n    \"message\": \"Bump version, update README and description\\n\",\n    \"min\": 1.06813176498,\n    \"stddev\": 0.012167556292832818,\n    \"system\": 0.06270011,\n    \"time\": 1.06813176498,\n    \"user\": 1.079084765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"max\": 1.10069088898,\n    \"mean\": 1.08166129398,\n    \"median\": 1.0773728329799999,\n    \"message\": \"Bump version, update README and description\\n\",\n    \"min\": 1.06813176498,\n    \"stddev\": 0.012167556292832818,\n    \"system\": 0.06270011,\n    \"time\": 1.08479040598,\n    \"user\": 1.079084765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"max\": 1.10069088898,\n    \"mean\": 1.08166129398,\n    \"median\": 1.0773728329799999,\n    \"message\": \"Bump version, update README and description\\n\",\n    \"min\": 1.06813176498,\n    \"stddev\": 0.012167556292832818,\n    \"system\": 0.06270011,\n    \"time\": 1.0773728329799999,\n    \"user\": 1.079084765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"max\": 1.10069088898,\n    \"mean\": 1.08166129398,\n    \"median\": 1.0773728329799999,\n    \"message\": \"Bump version, update README and description\\n\",\n    \"min\": 1.06813176498,\n    \"stddev\": 0.012167556292832818,\n    \"system\": 0.06270011,\n    \"time\": 1.07732057698,\n    \"user\": 1.079084765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"max\": 1.0851685646,\n    \"mean\": 1.072042316,\n    \"median\": 1.0704223606,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0612180136,\n    \"stddev\": 0.008648323491726454,\n    \"system\": 0.06146746999999999,\n    \"time\": 1.0704223606,\n    \"user\": 1.06982675\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"max\": 1.0851685646,\n    \"mean\": 1.072042316,\n    \"median\": 1.0704223606,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0612180136,\n    \"stddev\": 0.008648323491726454,\n    \"system\": 0.06146746999999999,\n    \"time\": 1.0851685646,\n    \"user\": 1.06982675\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"max\": 1.0851685646,\n    \"mean\": 1.072042316,\n    \"median\": 1.0704223606,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0612180136,\n    \"stddev\": 0.008648323491726454,\n    \"system\": 0.06146746999999999,\n    \"time\": 1.0612180136,\n    \"user\": 1.06982675\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"max\": 1.0851685646,\n    \"mean\": 1.072042316,\n    \"median\": 1.0704223606,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0612180136,\n    \"stddev\": 0.008648323491726454,\n    \"system\": 0.06146746999999999,\n    \"time\": 1.0698502046,\n    \"user\": 1.06982675\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"max\": 1.0851685646,\n    \"mean\": 1.072042316,\n    \"median\": 1.0704223606,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0612180136,\n    \"stddev\": 0.008648323491726454,\n    \"system\": 0.06146746999999999,\n    \"time\": 1.0735524366,\n    \"user\": 1.06982675\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"max\": 1.11704483571,\n    \"mean\": 1.1037527545099999,\n    \"median\": 1.10764246671,\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"min\": 1.08925718271,\n    \"stddev\": 0.012933162985497118,\n    \"system\": 0.067323355,\n    \"time\": 1.1138884947099998,\n    \"user\": 1.092800425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"max\": 1.11704483571,\n    \"mean\": 1.1037527545099999,\n    \"median\": 1.10764246671,\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"min\": 1.08925718271,\n    \"stddev\": 0.012933162985497118,\n    \"system\": 0.067323355,\n    \"time\": 1.08925718271,\n    \"user\": 1.092800425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"max\": 1.11704483571,\n    \"mean\": 1.1037527545099999,\n    \"median\": 1.10764246671,\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"min\": 1.08925718271,\n    \"stddev\": 0.012933162985497118,\n    \"system\": 0.067323355,\n    \"time\": 1.09093079271,\n    \"user\": 1.092800425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"max\": 1.11704483571,\n    \"mean\": 1.1037527545099999,\n    \"median\": 1.10764246671,\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"min\": 1.08925718271,\n    \"stddev\": 0.012933162985497118,\n    \"system\": 0.067323355,\n    \"time\": 1.10764246671,\n    \"user\": 1.092800425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"max\": 1.11704483571,\n    \"mean\": 1.1037527545099999,\n    \"median\": 1.10764246671,\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"min\": 1.08925718271,\n    \"stddev\": 0.012933162985497118,\n    \"system\": 0.067323355,\n    \"time\": 1.11704483571,\n    \"user\": 1.092800425\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"max\": 1.11273560411,\n    \"mean\": 1.08349492691,\n    \"median\": 1.0752919171100002,\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"min\": 1.06674251411,\n    \"stddev\": 0.01986286092720665,\n    \"system\": 0.06425001,\n    \"time\": 1.11273560411,\n    \"user\": 1.0770233299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"max\": 1.11273560411,\n    \"mean\": 1.08349492691,\n    \"median\": 1.0752919171100002,\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"min\": 1.06674251411,\n    \"stddev\": 0.01986286092720665,\n    \"system\": 0.06425001,\n    \"time\": 1.06674251411,\n    \"user\": 1.0770233299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"max\": 1.11273560411,\n    \"mean\": 1.08349492691,\n    \"median\": 1.0752919171100002,\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"min\": 1.06674251411,\n    \"stddev\": 0.01986286092720665,\n    \"system\": 0.06425001,\n    \"time\": 1.09488007411,\n    \"user\": 1.0770233299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"max\": 1.11273560411,\n    \"mean\": 1.08349492691,\n    \"median\": 1.0752919171100002,\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"min\": 1.06674251411,\n    \"stddev\": 0.01986286092720665,\n    \"system\": 0.06425001,\n    \"time\": 1.06782452511,\n    \"user\": 1.0770233299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"max\": 1.11273560411,\n    \"mean\": 1.08349492691,\n    \"median\": 1.0752919171100002,\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"min\": 1.06674251411,\n    \"stddev\": 0.01986286092720665,\n    \"system\": 0.06425001,\n    \"time\": 1.0752919171100002,\n    \"user\": 1.0770233299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"max\": 1.10363167954,\n    \"mean\": 1.0875293841400002,\n    \"median\": 1.08299171054,\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"min\": 1.07906856854,\n    \"stddev\": 0.009733497467147854,\n    \"system\": 0.06568434,\n    \"time\": 1.10363167954,\n    \"user\": 1.08160716\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"max\": 1.10363167954,\n    \"mean\": 1.0875293841400002,\n    \"median\": 1.08299171054,\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"min\": 1.07906856854,\n    \"stddev\": 0.009733497467147854,\n    \"system\": 0.06568434,\n    \"time\": 1.08260944854,\n    \"user\": 1.08160716\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"max\": 1.10363167954,\n    \"mean\": 1.0875293841400002,\n    \"median\": 1.08299171054,\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"min\": 1.07906856854,\n    \"stddev\": 0.009733497467147854,\n    \"system\": 0.06568434,\n    \"time\": 1.08299171054,\n    \"user\": 1.08160716\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"max\": 1.10363167954,\n    \"mean\": 1.0875293841400002,\n    \"median\": 1.08299171054,\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"min\": 1.07906856854,\n    \"stddev\": 0.009733497467147854,\n    \"system\": 0.06568434,\n    \"time\": 1.08934551354,\n    \"user\": 1.08160716\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"max\": 1.10363167954,\n    \"mean\": 1.0875293841400002,\n    \"median\": 1.08299171054,\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"min\": 1.07906856854,\n    \"stddev\": 0.009733497467147854,\n    \"system\": 0.06568434,\n    \"time\": 1.07906856854,\n    \"user\": 1.08160716\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"max\": 1.0806258601449998,\n    \"mean\": 1.059061847945,\n    \"median\": 1.052762883145,\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"min\": 1.051219583145,\n    \"stddev\": 0.01247511239320049,\n    \"system\": 0.06025773999999999,\n    \"time\": 1.0806258601449998,\n    \"user\": 1.0536065749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"max\": 1.0806258601449998,\n    \"mean\": 1.059061847945,\n    \"median\": 1.052762883145,\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"min\": 1.051219583145,\n    \"stddev\": 0.01247511239320049,\n    \"system\": 0.06025773999999999,\n    \"time\": 1.051219583145,\n    \"user\": 1.0536065749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"max\": 1.0806258601449998,\n    \"mean\": 1.059061847945,\n    \"median\": 1.052762883145,\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"min\": 1.051219583145,\n    \"stddev\": 0.01247511239320049,\n    \"system\": 0.06025773999999999,\n    \"time\": 1.051557030145,\n    \"user\": 1.0536065749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"max\": 1.0806258601449998,\n    \"mean\": 1.059061847945,\n    \"median\": 1.052762883145,\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"min\": 1.051219583145,\n    \"stddev\": 0.01247511239320049,\n    \"system\": 0.06025773999999999,\n    \"time\": 1.059143883145,\n    \"user\": 1.0536065749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"max\": 1.0806258601449998,\n    \"mean\": 1.059061847945,\n    \"median\": 1.052762883145,\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"min\": 1.051219583145,\n    \"stddev\": 0.01247511239320049,\n    \"system\": 0.06025773999999999,\n    \"time\": 1.052762883145,\n    \"user\": 1.0536065749999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"max\": 1.19689657773,\n    \"mean\": 1.10859444233,\n    \"median\": 1.10013292073,\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"min\": 1.0503798197299998,\n    \"stddev\": 0.05376828824283034,\n    \"system\": 0.07005658000000001,\n    \"time\": 1.0917620287299998,\n    \"user\": 1.090668235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"max\": 1.19689657773,\n    \"mean\": 1.10859444233,\n    \"median\": 1.10013292073,\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"min\": 1.0503798197299998,\n    \"stddev\": 0.05376828824283034,\n    \"system\": 0.07005658000000001,\n    \"time\": 1.0503798197299998,\n    \"user\": 1.090668235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"max\": 1.19689657773,\n    \"mean\": 1.10859444233,\n    \"median\": 1.10013292073,\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"min\": 1.0503798197299998,\n    \"stddev\": 0.05376828824283034,\n    \"system\": 0.07005658000000001,\n    \"time\": 1.10380086473,\n    \"user\": 1.090668235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"max\": 1.19689657773,\n    \"mean\": 1.10859444233,\n    \"median\": 1.10013292073,\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"min\": 1.0503798197299998,\n    \"stddev\": 0.05376828824283034,\n    \"system\": 0.07005658000000001,\n    \"time\": 1.19689657773,\n    \"user\": 1.090668235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"max\": 1.19689657773,\n    \"mean\": 1.10859444233,\n    \"median\": 1.10013292073,\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"min\": 1.0503798197299998,\n    \"stddev\": 0.05376828824283034,\n    \"system\": 0.07005658000000001,\n    \"time\": 1.10013292073,\n    \"user\": 1.090668235\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"max\": 1.084842629105,\n    \"mean\": 1.0649749099049999,\n    \"median\": 1.062521736105,\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"min\": 1.0459193681049999,\n    \"stddev\": 0.015417295213379622,\n    \"system\": 0.060157554999999995,\n    \"time\": 1.084842629105,\n    \"user\": 1.060623225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"max\": 1.084842629105,\n    \"mean\": 1.0649749099049999,\n    \"median\": 1.062521736105,\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"min\": 1.0459193681049999,\n    \"stddev\": 0.015417295213379622,\n    \"system\": 0.060157554999999995,\n    \"time\": 1.056162975105,\n    \"user\": 1.060623225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"max\": 1.084842629105,\n    \"mean\": 1.0649749099049999,\n    \"median\": 1.062521736105,\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"min\": 1.0459193681049999,\n    \"stddev\": 0.015417295213379622,\n    \"system\": 0.060157554999999995,\n    \"time\": 1.075427841105,\n    \"user\": 1.060623225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"max\": 1.084842629105,\n    \"mean\": 1.0649749099049999,\n    \"median\": 1.062521736105,\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"min\": 1.0459193681049999,\n    \"stddev\": 0.015417295213379622,\n    \"system\": 0.060157554999999995,\n    \"time\": 1.0459193681049999,\n    \"user\": 1.060623225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"max\": 1.084842629105,\n    \"mean\": 1.0649749099049999,\n    \"median\": 1.062521736105,\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"min\": 1.0459193681049999,\n    \"stddev\": 0.015417295213379622,\n    \"system\": 0.060157554999999995,\n    \"time\": 1.062521736105,\n    \"user\": 1.060623225\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"max\": 1.10665858924,\n    \"mean\": 1.09044632064,\n    \"median\": 1.08728263524,\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"min\": 1.08043947324,\n    \"stddev\": 0.010195765555389032,\n    \"system\": 0.060231435,\n    \"time\": 1.10665858924,\n    \"user\": 1.08554064\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"max\": 1.10665858924,\n    \"mean\": 1.09044632064,\n    \"median\": 1.08728263524,\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"min\": 1.08043947324,\n    \"stddev\": 0.010195765555389032,\n    \"system\": 0.060231435,\n    \"time\": 1.08043947324,\n    \"user\": 1.08554064\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"max\": 1.10665858924,\n    \"mean\": 1.09044632064,\n    \"median\": 1.08728263524,\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"min\": 1.08043947324,\n    \"stddev\": 0.010195765555389032,\n    \"system\": 0.060231435,\n    \"time\": 1.08728263524,\n    \"user\": 1.08554064\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"max\": 1.10665858924,\n    \"mean\": 1.09044632064,\n    \"median\": 1.08728263524,\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"min\": 1.08043947324,\n    \"stddev\": 0.010195765555389032,\n    \"system\": 0.060231435,\n    \"time\": 1.08455481724,\n    \"user\": 1.08554064\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"max\": 1.10665858924,\n    \"mean\": 1.09044632064,\n    \"median\": 1.08728263524,\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"min\": 1.08043947324,\n    \"stddev\": 0.010195765555389032,\n    \"system\": 0.060231435,\n    \"time\": 1.09329608824,\n    \"user\": 1.08554064\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n    \"max\": 1.1611078743649998,\n    \"mean\": 1.1034978111649998,\n    \"median\": 1.0884592713649999,\n    \"message\": \"Update hyperfine output format\\n\",\n    \"min\": 1.076597769365,\n    \"stddev\": 0.03503861140149444,\n    \"system\": 0.063048655,\n    \"time\": 1.1611078743649998,\n    \"user\": 1.0946974950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n    \"max\": 1.1611078743649998,\n    \"mean\": 1.1034978111649998,\n    \"median\": 1.0884592713649999,\n    \"message\": \"Update hyperfine output format\\n\",\n    \"min\": 1.076597769365,\n    \"stddev\": 0.03503861140149444,\n    \"system\": 0.063048655,\n    \"time\": 1.0884592713649999,\n    \"user\": 1.0946974950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n    \"max\": 1.1611078743649998,\n    \"mean\": 1.1034978111649998,\n    \"median\": 1.0884592713649999,\n    \"message\": \"Update hyperfine output format\\n\",\n    \"min\": 1.076597769365,\n    \"stddev\": 0.03503861140149444,\n    \"system\": 0.063048655,\n    \"time\": 1.076597769365,\n    \"user\": 1.0946974950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n    \"max\": 1.1611078743649998,\n    \"mean\": 1.1034978111649998,\n    \"median\": 1.0884592713649999,\n    \"message\": \"Update hyperfine output format\\n\",\n    \"min\": 1.076597769365,\n    \"stddev\": 0.03503861140149444,\n    \"system\": 0.063048655,\n    \"time\": 1.079547943365,\n    \"user\": 1.0946974950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n    \"max\": 1.1611078743649998,\n    \"mean\": 1.1034978111649998,\n    \"median\": 1.0884592713649999,\n    \"message\": \"Update hyperfine output format\\n\",\n    \"min\": 1.076597769365,\n    \"stddev\": 0.03503861140149444,\n    \"system\": 0.063048655,\n    \"time\": 1.111776197365,\n    \"user\": 1.0946974950000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n    \"max\": 1.173420741215,\n    \"mean\": 1.1192708206149997,\n    \"median\": 1.117659038215,\n    \"message\": \"Update hyperfine data\\n\",\n    \"min\": 1.073891446215,\n    \"stddev\": 0.038907245126009335,\n    \"system\": 0.06427922999999999,\n    \"time\": 1.138444148215,\n    \"user\": 1.1115887899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n    \"max\": 1.173420741215,\n    \"mean\": 1.1192708206149997,\n    \"median\": 1.117659038215,\n    \"message\": \"Update hyperfine data\\n\",\n    \"min\": 1.073891446215,\n    \"stddev\": 0.038907245126009335,\n    \"system\": 0.06427922999999999,\n    \"time\": 1.117659038215,\n    \"user\": 1.1115887899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n    \"max\": 1.173420741215,\n    \"mean\": 1.1192708206149997,\n    \"median\": 1.117659038215,\n    \"message\": \"Update hyperfine data\\n\",\n    \"min\": 1.073891446215,\n    \"stddev\": 0.038907245126009335,\n    \"system\": 0.06427922999999999,\n    \"time\": 1.173420741215,\n    \"user\": 1.1115887899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n    \"max\": 1.173420741215,\n    \"mean\": 1.1192708206149997,\n    \"median\": 1.117659038215,\n    \"message\": \"Update hyperfine data\\n\",\n    \"min\": 1.073891446215,\n    \"stddev\": 0.038907245126009335,\n    \"system\": 0.06427922999999999,\n    \"time\": 1.092938729215,\n    \"user\": 1.1115887899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n    \"max\": 1.173420741215,\n    \"mean\": 1.1192708206149997,\n    \"median\": 1.117659038215,\n    \"message\": \"Update hyperfine data\\n\",\n    \"min\": 1.073891446215,\n    \"stddev\": 0.038907245126009335,\n    \"system\": 0.06427922999999999,\n    \"time\": 1.073891446215,\n    \"user\": 1.1115887899999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n    \"max\": 1.1825180016949999,\n    \"mean\": 1.130955206895,\n    \"median\": 1.122594962695,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.108145652695,\n    \"stddev\": 0.029460480031131185,\n    \"system\": 0.06663242,\n    \"time\": 1.1825180016949999,\n    \"user\": 1.11855963\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n    \"max\": 1.1825180016949999,\n    \"mean\": 1.130955206895,\n    \"median\": 1.122594962695,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.108145652695,\n    \"stddev\": 0.029460480031131185,\n    \"system\": 0.06663242,\n    \"time\": 1.122594962695,\n    \"user\": 1.11855963\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n    \"max\": 1.1825180016949999,\n    \"mean\": 1.130955206895,\n    \"median\": 1.122594962695,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.108145652695,\n    \"stddev\": 0.029460480031131185,\n    \"system\": 0.06663242,\n    \"time\": 1.123483697695,\n    \"user\": 1.11855963\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n    \"max\": 1.1825180016949999,\n    \"mean\": 1.130955206895,\n    \"median\": 1.122594962695,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.108145652695,\n    \"stddev\": 0.029460480031131185,\n    \"system\": 0.06663242,\n    \"time\": 1.108145652695,\n    \"user\": 1.11855963\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n    \"max\": 1.1825180016949999,\n    \"mean\": 1.130955206895,\n    \"median\": 1.122594962695,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.108145652695,\n    \"stddev\": 0.029460480031131185,\n    \"system\": 0.06663242,\n    \"time\": 1.1180337196949999,\n    \"user\": 1.11855963\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n    \"max\": 1.153711250975,\n    \"mean\": 1.1172233691750002,\n    \"median\": 1.118489223975,\n    \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n    \"min\": 1.084588114975,\n    \"stddev\": 0.028461337795552242,\n    \"system\": 0.06471876,\n    \"time\": 1.153711250975,\n    \"user\": 1.111729385\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n    \"max\": 1.153711250975,\n    \"mean\": 1.1172233691750002,\n    \"median\": 1.118489223975,\n    \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n    \"min\": 1.084588114975,\n    \"stddev\": 0.028461337795552242,\n    \"system\": 0.06471876,\n    \"time\": 1.118489223975,\n    \"user\": 1.111729385\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n    \"max\": 1.153711250975,\n    \"mean\": 1.1172233691750002,\n    \"median\": 1.118489223975,\n    \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n    \"min\": 1.084588114975,\n    \"stddev\": 0.028461337795552242,\n    \"system\": 0.06471876,\n    \"time\": 1.135024184975,\n    \"user\": 1.111729385\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n    \"max\": 1.153711250975,\n    \"mean\": 1.1172233691750002,\n    \"median\": 1.118489223975,\n    \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n    \"min\": 1.084588114975,\n    \"stddev\": 0.028461337795552242,\n    \"system\": 0.06471876,\n    \"time\": 1.084588114975,\n    \"user\": 1.111729385\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n    \"max\": 1.153711250975,\n    \"mean\": 1.1172233691750002,\n    \"median\": 1.118489223975,\n    \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n    \"min\": 1.084588114975,\n    \"stddev\": 0.028461337795552242,\n    \"system\": 0.06471876,\n    \"time\": 1.094304070975,\n    \"user\": 1.111729385\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n    \"max\": 1.1389264266699999,\n    \"mean\": 1.11790453587,\n    \"median\": 1.11460459967,\n    \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n    \"min\": 1.10145053267,\n    \"stddev\": 0.015887138582005765,\n    \"system\": 0.06513257,\n    \"time\": 1.1389264266699999,\n    \"user\": 1.11102143\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n    \"max\": 1.1389264266699999,\n    \"mean\": 1.11790453587,\n    \"median\": 1.11460459967,\n    \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n    \"min\": 1.10145053267,\n    \"stddev\": 0.015887138582005765,\n    \"system\": 0.06513257,\n    \"time\": 1.11460459967,\n    \"user\": 1.11102143\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n    \"max\": 1.1389264266699999,\n    \"mean\": 1.11790453587,\n    \"median\": 1.11460459967,\n    \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n    \"min\": 1.10145053267,\n    \"stddev\": 0.015887138582005765,\n    \"system\": 0.06513257,\n    \"time\": 1.10145053267,\n    \"user\": 1.11102143\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n    \"max\": 1.1389264266699999,\n    \"mean\": 1.11790453587,\n    \"median\": 1.11460459967,\n    \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n    \"min\": 1.10145053267,\n    \"stddev\": 0.015887138582005765,\n    \"system\": 0.06513257,\n    \"time\": 1.12921328067,\n    \"user\": 1.11102143\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n    \"max\": 1.1389264266699999,\n    \"mean\": 1.11790453587,\n    \"median\": 1.11460459967,\n    \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n    \"min\": 1.10145053267,\n    \"stddev\": 0.015887138582005765,\n    \"system\": 0.06513257,\n    \"time\": 1.10532783967,\n    \"user\": 1.11102143\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n    \"max\": 1.136103169605,\n    \"mean\": 1.1204592472049997,\n    \"median\": 1.1222472316049998,\n    \"message\": \"For a rename, use the new extension to infer language\\n\",\n    \"min\": 1.109599353605,\n    \"stddev\": 0.010615498952959395,\n    \"system\": 0.06717134500000001,\n    \"time\": 1.1222472316049998,\n    \"user\": 1.1107629299999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n    \"max\": 1.136103169605,\n    \"mean\": 1.1204592472049997,\n    \"median\": 1.1222472316049998,\n    \"message\": \"For a rename, use the new extension to infer language\\n\",\n    \"min\": 1.109599353605,\n    \"stddev\": 0.010615498952959395,\n    \"system\": 0.06717134500000001,\n    \"time\": 1.109599353605,\n    \"user\": 1.1107629299999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n    \"max\": 1.136103169605,\n    \"mean\": 1.1204592472049997,\n    \"median\": 1.1222472316049998,\n    \"message\": \"For a rename, use the new extension to infer language\\n\",\n    \"min\": 1.109599353605,\n    \"stddev\": 0.010615498952959395,\n    \"system\": 0.06717134500000001,\n    \"time\": 1.111547713605,\n    \"user\": 1.1107629299999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n    \"max\": 1.136103169605,\n    \"mean\": 1.1204592472049997,\n    \"median\": 1.1222472316049998,\n    \"message\": \"For a rename, use the new extension to infer language\\n\",\n    \"min\": 1.109599353605,\n    \"stddev\": 0.010615498952959395,\n    \"system\": 0.06717134500000001,\n    \"time\": 1.122798767605,\n    \"user\": 1.1107629299999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n    \"max\": 1.136103169605,\n    \"mean\": 1.1204592472049997,\n    \"median\": 1.1222472316049998,\n    \"message\": \"For a rename, use the new extension to infer language\\n\",\n    \"min\": 1.109599353605,\n    \"stddev\": 0.010615498952959395,\n    \"system\": 0.06717134500000001,\n    \"time\": 1.136103169605,\n    \"user\": 1.1107629299999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n    \"max\": 1.09135139897,\n    \"mean\": 1.0695922097700001,\n    \"median\": 1.07055845197,\n    \"message\": \"Windows build\\n\",\n    \"min\": 1.05256154497,\n    \"stddev\": 0.014675946988984548,\n    \"system\": 0.05808777,\n    \"time\": 1.09135139897,\n    \"user\": 1.0701543249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n    \"max\": 1.09135139897,\n    \"mean\": 1.0695922097700001,\n    \"median\": 1.07055845197,\n    \"message\": \"Windows build\\n\",\n    \"min\": 1.05256154497,\n    \"stddev\": 0.014675946988984548,\n    \"system\": 0.05808777,\n    \"time\": 1.0731040329700001,\n    \"user\": 1.0701543249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n    \"max\": 1.09135139897,\n    \"mean\": 1.0695922097700001,\n    \"median\": 1.07055845197,\n    \"message\": \"Windows build\\n\",\n    \"min\": 1.05256154497,\n    \"stddev\": 0.014675946988984548,\n    \"system\": 0.05808777,\n    \"time\": 1.05256154497,\n    \"user\": 1.0701543249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n    \"max\": 1.09135139897,\n    \"mean\": 1.0695922097700001,\n    \"median\": 1.07055845197,\n    \"message\": \"Windows build\\n\",\n    \"min\": 1.05256154497,\n    \"stddev\": 0.014675946988984548,\n    \"system\": 0.05808777,\n    \"time\": 1.07055845197,\n    \"user\": 1.0701543249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n    \"max\": 1.09135139897,\n    \"mean\": 1.0695922097700001,\n    \"median\": 1.07055845197,\n    \"message\": \"Windows build\\n\",\n    \"min\": 1.05256154497,\n    \"stddev\": 0.014675946988984548,\n    \"system\": 0.05808777,\n    \"time\": 1.0603856199700001,\n    \"user\": 1.0701543249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n    \"max\": 1.11215147141,\n    \"mean\": 1.10592766401,\n    \"median\": 1.10486353841,\n    \"message\": \"Don't paint zero-length text\\n\",\n    \"min\": 1.09906011841,\n    \"stddev\": 0.005503546063601589,\n    \"system\": 0.063882895,\n    \"time\": 1.11215147141,\n    \"user\": 1.09957486\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n    \"max\": 1.11215147141,\n    \"mean\": 1.10592766401,\n    \"median\": 1.10486353841,\n    \"message\": \"Don't paint zero-length text\\n\",\n    \"min\": 1.09906011841,\n    \"stddev\": 0.005503546063601589,\n    \"system\": 0.063882895,\n    \"time\": 1.09906011841,\n    \"user\": 1.09957486\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n    \"max\": 1.11215147141,\n    \"mean\": 1.10592766401,\n    \"median\": 1.10486353841,\n    \"message\": \"Don't paint zero-length text\\n\",\n    \"min\": 1.09906011841,\n    \"stddev\": 0.005503546063601589,\n    \"system\": 0.063882895,\n    \"time\": 1.11082302841,\n    \"user\": 1.09957486\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n    \"max\": 1.11215147141,\n    \"mean\": 1.10592766401,\n    \"median\": 1.10486353841,\n    \"message\": \"Don't paint zero-length text\\n\",\n    \"min\": 1.09906011841,\n    \"stddev\": 0.005503546063601589,\n    \"system\": 0.063882895,\n    \"time\": 1.10274016341,\n    \"user\": 1.09957486\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n    \"max\": 1.11215147141,\n    \"mean\": 1.10592766401,\n    \"median\": 1.10486353841,\n    \"message\": \"Don't paint zero-length text\\n\",\n    \"min\": 1.09906011841,\n    \"stddev\": 0.005503546063601589,\n    \"system\": 0.063882895,\n    \"time\": 1.10486353841,\n    \"user\": 1.09957486\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n    \"max\": 1.1424607525250001,\n    \"mean\": 1.1160484749250001,\n    \"median\": 1.113671092525,\n    \"message\": \"Painter struct constructor\\n\",\n    \"min\": 1.0959447905250002,\n    \"stddev\": 0.017205188015889945,\n    \"system\": 0.06640397499999999,\n    \"time\": 1.1424607525250001,\n    \"user\": 1.1069941099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n    \"max\": 1.1424607525250001,\n    \"mean\": 1.1160484749250001,\n    \"median\": 1.113671092525,\n    \"message\": \"Painter struct constructor\\n\",\n    \"min\": 1.0959447905250002,\n    \"stddev\": 0.017205188015889945,\n    \"system\": 0.06640397499999999,\n    \"time\": 1.119953486525,\n    \"user\": 1.1069941099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n    \"max\": 1.1424607525250001,\n    \"mean\": 1.1160484749250001,\n    \"median\": 1.113671092525,\n    \"message\": \"Painter struct constructor\\n\",\n    \"min\": 1.0959447905250002,\n    \"stddev\": 0.017205188015889945,\n    \"system\": 0.06640397499999999,\n    \"time\": 1.0959447905250002,\n    \"user\": 1.1069941099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n    \"max\": 1.1424607525250001,\n    \"mean\": 1.1160484749250001,\n    \"median\": 1.113671092525,\n    \"message\": \"Painter struct constructor\\n\",\n    \"min\": 1.0959447905250002,\n    \"stddev\": 0.017205188015889945,\n    \"system\": 0.06640397499999999,\n    \"time\": 1.113671092525,\n    \"user\": 1.1069941099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n    \"max\": 1.1424607525250001,\n    \"mean\": 1.1160484749250001,\n    \"median\": 1.113671092525,\n    \"message\": \"Painter struct constructor\\n\",\n    \"min\": 1.0959447905250002,\n    \"stddev\": 0.017205188015889945,\n    \"system\": 0.06640397499999999,\n    \"time\": 1.108212252525,\n    \"user\": 1.1069941099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n    \"max\": 1.176117968265,\n    \"mean\": 1.145313132065,\n    \"median\": 1.134919231265,\n    \"message\": \"Use `skip` instead of `next`\\n\",\n    \"min\": 1.127483535265,\n    \"stddev\": 0.020627468468142778,\n    \"system\": 0.07166418999999999,\n    \"time\": 1.176117968265,\n    \"user\": 1.12678746\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n    \"max\": 1.176117968265,\n    \"mean\": 1.145313132065,\n    \"median\": 1.134919231265,\n    \"message\": \"Use `skip` instead of `next`\\n\",\n    \"min\": 1.127483535265,\n    \"stddev\": 0.020627468468142778,\n    \"system\": 0.07166418999999999,\n    \"time\": 1.127483535265,\n    \"user\": 1.12678746\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n    \"max\": 1.176117968265,\n    \"mean\": 1.145313132065,\n    \"median\": 1.134919231265,\n    \"message\": \"Use `skip` instead of `next`\\n\",\n    \"min\": 1.127483535265,\n    \"stddev\": 0.020627468468142778,\n    \"system\": 0.07166418999999999,\n    \"time\": 1.131299009265,\n    \"user\": 1.12678746\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n    \"max\": 1.176117968265,\n    \"mean\": 1.145313132065,\n    \"median\": 1.134919231265,\n    \"message\": \"Use `skip` instead of `next`\\n\",\n    \"min\": 1.127483535265,\n    \"stddev\": 0.020627468468142778,\n    \"system\": 0.07166418999999999,\n    \"time\": 1.156745916265,\n    \"user\": 1.12678746\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n    \"max\": 1.176117968265,\n    \"mean\": 1.145313132065,\n    \"median\": 1.134919231265,\n    \"message\": \"Use `skip` instead of `next`\\n\",\n    \"min\": 1.127483535265,\n    \"stddev\": 0.020627468468142778,\n    \"system\": 0.07166418999999999,\n    \"time\": 1.134919231265,\n    \"user\": 1.12678746\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n    \"max\": 1.09952142853,\n    \"mean\": 1.0858965059299999,\n    \"median\": 1.09721934053,\n    \"message\": \"Update Windows build\\n\",\n    \"min\": 1.0580336665299999,\n    \"stddev\": 0.01815906869908142,\n    \"system\": 0.061301775,\n    \"time\": 1.0979506345299999,\n    \"user\": 1.0840667600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n    \"max\": 1.09952142853,\n    \"mean\": 1.0858965059299999,\n    \"median\": 1.09721934053,\n    \"message\": \"Update Windows build\\n\",\n    \"min\": 1.0580336665299999,\n    \"stddev\": 0.01815906869908142,\n    \"system\": 0.061301775,\n    \"time\": 1.09721934053,\n    \"user\": 1.0840667600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n    \"max\": 1.09952142853,\n    \"mean\": 1.0858965059299999,\n    \"median\": 1.09721934053,\n    \"message\": \"Update Windows build\\n\",\n    \"min\": 1.0580336665299999,\n    \"stddev\": 0.01815906869908142,\n    \"system\": 0.061301775,\n    \"time\": 1.09952142853,\n    \"user\": 1.0840667600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n    \"max\": 1.09952142853,\n    \"mean\": 1.0858965059299999,\n    \"median\": 1.09721934053,\n    \"message\": \"Update Windows build\\n\",\n    \"min\": 1.0580336665299999,\n    \"stddev\": 0.01815906869908142,\n    \"system\": 0.061301775,\n    \"time\": 1.0580336665299999,\n    \"user\": 1.0840667600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n    \"max\": 1.09952142853,\n    \"mean\": 1.0858965059299999,\n    \"median\": 1.09721934053,\n    \"message\": \"Update Windows build\\n\",\n    \"min\": 1.0580336665299999,\n    \"stddev\": 0.01815906869908142,\n    \"system\": 0.061301775,\n    \"time\": 1.0767574595299998,\n    \"user\": 1.0840667600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n    \"max\": 1.101794139855,\n    \"mean\": 1.0719746494549998,\n    \"median\": 1.0629745418549998,\n    \"message\": \"chronologer\\n\",\n    \"min\": 1.057691362855,\n    \"stddev\": 0.01895783967059471,\n    \"system\": 0.06057028,\n    \"time\": 1.057691362855,\n    \"user\": 1.071762635\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n    \"max\": 1.101794139855,\n    \"mean\": 1.0719746494549998,\n    \"median\": 1.0629745418549998,\n    \"message\": \"chronologer\\n\",\n    \"min\": 1.057691362855,\n    \"stddev\": 0.01895783967059471,\n    \"system\": 0.06057028,\n    \"time\": 1.079707106855,\n    \"user\": 1.071762635\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n    \"max\": 1.101794139855,\n    \"mean\": 1.0719746494549998,\n    \"median\": 1.0629745418549998,\n    \"message\": \"chronologer\\n\",\n    \"min\": 1.057691362855,\n    \"stddev\": 0.01895783967059471,\n    \"system\": 0.06057028,\n    \"time\": 1.0629745418549998,\n    \"user\": 1.071762635\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n    \"max\": 1.101794139855,\n    \"mean\": 1.0719746494549998,\n    \"median\": 1.0629745418549998,\n    \"message\": \"chronologer\\n\",\n    \"min\": 1.057691362855,\n    \"stddev\": 0.01895783967059471,\n    \"system\": 0.06057028,\n    \"time\": 1.057706095855,\n    \"user\": 1.071762635\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n    \"max\": 1.101794139855,\n    \"mean\": 1.0719746494549998,\n    \"median\": 1.0629745418549998,\n    \"message\": \"chronologer\\n\",\n    \"min\": 1.057691362855,\n    \"stddev\": 0.01895783967059471,\n    \"system\": 0.06057028,\n    \"time\": 1.101794139855,\n    \"user\": 1.071762635\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n    \"max\": 1.0584551382099998,\n    \"mean\": 1.0515858410099999,\n    \"median\": 1.05126419021,\n    \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n    \"min\": 1.04376498221,\n    \"stddev\": 0.005346561323337733,\n    \"system\": 0.05630037,\n    \"time\": 1.0506293682099999,\n    \"user\": 1.0530261099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n    \"max\": 1.0584551382099998,\n    \"mean\": 1.0515858410099999,\n    \"median\": 1.05126419021,\n    \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n    \"min\": 1.04376498221,\n    \"stddev\": 0.005346561323337733,\n    \"system\": 0.05630037,\n    \"time\": 1.05126419021,\n    \"user\": 1.0530261099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n    \"max\": 1.0584551382099998,\n    \"mean\": 1.0515858410099999,\n    \"median\": 1.05126419021,\n    \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n    \"min\": 1.04376498221,\n    \"stddev\": 0.005346561323337733,\n    \"system\": 0.05630037,\n    \"time\": 1.0584551382099998,\n    \"user\": 1.0530261099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n    \"max\": 1.0584551382099998,\n    \"mean\": 1.0515858410099999,\n    \"median\": 1.05126419021,\n    \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n    \"min\": 1.04376498221,\n    \"stddev\": 0.005346561323337733,\n    \"system\": 0.05630037,\n    \"time\": 1.04376498221,\n    \"user\": 1.0530261099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n    \"max\": 1.0584551382099998,\n    \"mean\": 1.0515858410099999,\n    \"median\": 1.05126419021,\n    \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n    \"min\": 1.04376498221,\n    \"stddev\": 0.005346561323337733,\n    \"system\": 0.05630037,\n    \"time\": 1.05381552621,\n    \"user\": 1.0530261099999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n    \"max\": 1.181121225155,\n    \"mean\": 1.0786119261549998,\n    \"median\": 1.055144017155,\n    \"message\": \"README: Installation\\n\",\n    \"min\": 1.048840072155,\n    \"stddev\": 0.05736300526326874,\n    \"system\": 0.06129902,\n    \"time\": 1.181121225155,\n    \"user\": 1.0773353149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n    \"max\": 1.181121225155,\n    \"mean\": 1.0786119261549998,\n    \"median\": 1.055144017155,\n    \"message\": \"README: Installation\\n\",\n    \"min\": 1.048840072155,\n    \"stddev\": 0.05736300526326874,\n    \"system\": 0.06129902,\n    \"time\": 1.055144017155,\n    \"user\": 1.0773353149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n    \"max\": 1.181121225155,\n    \"mean\": 1.0786119261549998,\n    \"median\": 1.055144017155,\n    \"message\": \"README: Installation\\n\",\n    \"min\": 1.048840072155,\n    \"stddev\": 0.05736300526326874,\n    \"system\": 0.06129902,\n    \"time\": 1.048840072155,\n    \"user\": 1.0773353149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n    \"max\": 1.181121225155,\n    \"mean\": 1.0786119261549998,\n    \"median\": 1.055144017155,\n    \"message\": \"README: Installation\\n\",\n    \"min\": 1.048840072155,\n    \"stddev\": 0.05736300526326874,\n    \"system\": 0.06129902,\n    \"time\": 1.052741950155,\n    \"user\": 1.0773353149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n    \"max\": 1.181121225155,\n    \"mean\": 1.0786119261549998,\n    \"median\": 1.055144017155,\n    \"message\": \"README: Installation\\n\",\n    \"min\": 1.048840072155,\n    \"stddev\": 0.05736300526326874,\n    \"system\": 0.06129902,\n    \"time\": 1.0552123661550001,\n    \"user\": 1.0773353149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n    \"max\": 1.057982019215,\n    \"mean\": 1.050759903415,\n    \"median\": 1.0475264252149998,\n    \"message\": \"README: formatting\\n\",\n    \"min\": 1.045243814215,\n    \"stddev\": 0.005730908436670729,\n    \"system\": 0.05632258999999999,\n    \"time\": 1.047212880215,\n    \"user\": 1.05229241\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n    \"max\": 1.057982019215,\n    \"mean\": 1.050759903415,\n    \"median\": 1.0475264252149998,\n    \"message\": \"README: formatting\\n\",\n    \"min\": 1.045243814215,\n    \"stddev\": 0.005730908436670729,\n    \"system\": 0.05632258999999999,\n    \"time\": 1.0475264252149998,\n    \"user\": 1.05229241\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n    \"max\": 1.057982019215,\n    \"mean\": 1.050759903415,\n    \"median\": 1.0475264252149998,\n    \"message\": \"README: formatting\\n\",\n    \"min\": 1.045243814215,\n    \"stddev\": 0.005730908436670729,\n    \"system\": 0.05632258999999999,\n    \"time\": 1.045243814215,\n    \"user\": 1.05229241\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n    \"max\": 1.057982019215,\n    \"mean\": 1.050759903415,\n    \"median\": 1.0475264252149998,\n    \"message\": \"README: formatting\\n\",\n    \"min\": 1.045243814215,\n    \"stddev\": 0.005730908436670729,\n    \"system\": 0.05632258999999999,\n    \"time\": 1.057982019215,\n    \"user\": 1.05229241\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n    \"max\": 1.057982019215,\n    \"mean\": 1.050759903415,\n    \"median\": 1.0475264252149998,\n    \"message\": \"README: formatting\\n\",\n    \"min\": 1.045243814215,\n    \"stddev\": 0.005730908436670729,\n    \"system\": 0.05632258999999999,\n    \"time\": 1.055834378215,\n    \"user\": 1.05229241\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n    \"max\": 1.0773153471899999,\n    \"mean\": 1.0627088895899999,\n    \"median\": 1.0673122931899999,\n    \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n    \"min\": 1.0427694291899998,\n    \"stddev\": 0.01314043130782722,\n    \"system\": 0.059355475000000005,\n    \"time\": 1.0773153471899999,\n    \"user\": 1.0616878600000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n    \"max\": 1.0773153471899999,\n    \"mean\": 1.0627088895899999,\n    \"median\": 1.0673122931899999,\n    \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n    \"min\": 1.0427694291899998,\n    \"stddev\": 0.01314043130782722,\n    \"system\": 0.059355475000000005,\n    \"time\": 1.05767482019,\n    \"user\": 1.0616878600000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n    \"max\": 1.0773153471899999,\n    \"mean\": 1.0627088895899999,\n    \"median\": 1.0673122931899999,\n    \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n    \"min\": 1.0427694291899998,\n    \"stddev\": 0.01314043130782722,\n    \"system\": 0.059355475000000005,\n    \"time\": 1.0684725581899999,\n    \"user\": 1.0616878600000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n    \"max\": 1.0773153471899999,\n    \"mean\": 1.0627088895899999,\n    \"median\": 1.0673122931899999,\n    \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n    \"min\": 1.0427694291899998,\n    \"stddev\": 0.01314043130782722,\n    \"system\": 0.059355475000000005,\n    \"time\": 1.0427694291899998,\n    \"user\": 1.0616878600000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n    \"max\": 1.0773153471899999,\n    \"mean\": 1.0627088895899999,\n    \"median\": 1.0673122931899999,\n    \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n    \"min\": 1.0427694291899998,\n    \"stddev\": 0.01314043130782722,\n    \"system\": 0.059355475000000005,\n    \"time\": 1.0673122931899999,\n    \"user\": 1.0616878600000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n    \"max\": 1.0877142476950001,\n    \"mean\": 1.074014882695,\n    \"median\": 1.078519037695,\n    \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n    \"min\": 1.056883525695,\n    \"stddev\": 0.01245698797732693,\n    \"system\": 0.058916865,\n    \"time\": 1.081182307695,\n    \"user\": 1.072317045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n    \"max\": 1.0877142476950001,\n    \"mean\": 1.074014882695,\n    \"median\": 1.078519037695,\n    \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n    \"min\": 1.056883525695,\n    \"stddev\": 0.01245698797732693,\n    \"system\": 0.058916865,\n    \"time\": 1.0877142476950001,\n    \"user\": 1.072317045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n    \"max\": 1.0877142476950001,\n    \"mean\": 1.074014882695,\n    \"median\": 1.078519037695,\n    \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n    \"min\": 1.056883525695,\n    \"stddev\": 0.01245698797732693,\n    \"system\": 0.058916865,\n    \"time\": 1.056883525695,\n    \"user\": 1.072317045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n    \"max\": 1.0877142476950001,\n    \"mean\": 1.074014882695,\n    \"median\": 1.078519037695,\n    \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n    \"min\": 1.056883525695,\n    \"stddev\": 0.01245698797732693,\n    \"system\": 0.058916865,\n    \"time\": 1.065775294695,\n    \"user\": 1.072317045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n    \"max\": 1.0877142476950001,\n    \"mean\": 1.074014882695,\n    \"median\": 1.078519037695,\n    \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n    \"min\": 1.056883525695,\n    \"stddev\": 0.01245698797732693,\n    \"system\": 0.058916865,\n    \"time\": 1.078519037695,\n    \"user\": 1.072317045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n    \"max\": 1.1021118847850002,\n    \"mean\": 1.0929675407850001,\n    \"median\": 1.0956828817850002,\n    \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n    \"min\": 1.0819443697850002,\n    \"stddev\": 0.00807336273833099,\n    \"system\": 0.06171935999999999,\n    \"time\": 1.0819443697850002,\n    \"user\": 1.0927352049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n    \"max\": 1.1021118847850002,\n    \"mean\": 1.0929675407850001,\n    \"median\": 1.0956828817850002,\n    \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n    \"min\": 1.0819443697850002,\n    \"stddev\": 0.00807336273833099,\n    \"system\": 0.06171935999999999,\n    \"time\": 1.0974413417850002,\n    \"user\": 1.0927352049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n    \"max\": 1.1021118847850002,\n    \"mean\": 1.0929675407850001,\n    \"median\": 1.0956828817850002,\n    \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n    \"min\": 1.0819443697850002,\n    \"stddev\": 0.00807336273833099,\n    \"system\": 0.06171935999999999,\n    \"time\": 1.0876572257850001,\n    \"user\": 1.0927352049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n    \"max\": 1.1021118847850002,\n    \"mean\": 1.0929675407850001,\n    \"median\": 1.0956828817850002,\n    \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n    \"min\": 1.0819443697850002,\n    \"stddev\": 0.00807336273833099,\n    \"system\": 0.06171935999999999,\n    \"time\": 1.0956828817850002,\n    \"user\": 1.0927352049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n    \"max\": 1.1021118847850002,\n    \"mean\": 1.0929675407850001,\n    \"median\": 1.0956828817850002,\n    \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n    \"min\": 1.0819443697850002,\n    \"stddev\": 0.00807336273833099,\n    \"system\": 0.06171935999999999,\n    \"time\": 1.1021118847850002,\n    \"user\": 1.0927352049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n    \"max\": 1.090994857745,\n    \"mean\": 1.0837679865449998,\n    \"median\": 1.084037499745,\n    \"message\": \"Separate diff output for different files with a newline\\n\",\n    \"min\": 1.074402261745,\n    \"stddev\": 0.006781714865114058,\n    \"system\": 0.061518635,\n    \"time\": 1.0892962557449999,\n    \"user\": 1.0817670549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n    \"max\": 1.090994857745,\n    \"mean\": 1.0837679865449998,\n    \"median\": 1.084037499745,\n    \"message\": \"Separate diff output for different files with a newline\\n\",\n    \"min\": 1.074402261745,\n    \"stddev\": 0.006781714865114058,\n    \"system\": 0.061518635,\n    \"time\": 1.090994857745,\n    \"user\": 1.0817670549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n    \"max\": 1.090994857745,\n    \"mean\": 1.0837679865449998,\n    \"median\": 1.084037499745,\n    \"message\": \"Separate diff output for different files with a newline\\n\",\n    \"min\": 1.074402261745,\n    \"stddev\": 0.006781714865114058,\n    \"system\": 0.061518635,\n    \"time\": 1.084037499745,\n    \"user\": 1.0817670549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n    \"max\": 1.090994857745,\n    \"mean\": 1.0837679865449998,\n    \"median\": 1.084037499745,\n    \"message\": \"Separate diff output for different files with a newline\\n\",\n    \"min\": 1.074402261745,\n    \"stddev\": 0.006781714865114058,\n    \"system\": 0.061518635,\n    \"time\": 1.0801090577449999,\n    \"user\": 1.0817670549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n    \"max\": 1.090994857745,\n    \"mean\": 1.0837679865449998,\n    \"median\": 1.084037499745,\n    \"message\": \"Separate diff output for different files with a newline\\n\",\n    \"min\": 1.074402261745,\n    \"stddev\": 0.006781714865114058,\n    \"system\": 0.061518635,\n    \"time\": 1.074402261745,\n    \"user\": 1.0817670549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n    \"max\": 1.108683589705,\n    \"mean\": 1.0895828551050002,\n    \"median\": 1.086178179705,\n    \"message\": \".truncate(0) => .clear()\\n\",\n    \"min\": 1.0790830817050001,\n    \"stddev\": 0.011234728334354028,\n    \"system\": 0.063695195,\n    \"time\": 1.108683589705,\n    \"user\": 1.086290065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n    \"max\": 1.108683589705,\n    \"mean\": 1.0895828551050002,\n    \"median\": 1.086178179705,\n    \"message\": \".truncate(0) => .clear()\\n\",\n    \"min\": 1.0790830817050001,\n    \"stddev\": 0.011234728334354028,\n    \"system\": 0.063695195,\n    \"time\": 1.088517792705,\n    \"user\": 1.086290065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n    \"max\": 1.108683589705,\n    \"mean\": 1.0895828551050002,\n    \"median\": 1.086178179705,\n    \"message\": \".truncate(0) => .clear()\\n\",\n    \"min\": 1.0790830817050001,\n    \"stddev\": 0.011234728334354028,\n    \"system\": 0.063695195,\n    \"time\": 1.085451631705,\n    \"user\": 1.086290065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n    \"max\": 1.108683589705,\n    \"mean\": 1.0895828551050002,\n    \"median\": 1.086178179705,\n    \"message\": \".truncate(0) => .clear()\\n\",\n    \"min\": 1.0790830817050001,\n    \"stddev\": 0.011234728334354028,\n    \"system\": 0.063695195,\n    \"time\": 1.0790830817050001,\n    \"user\": 1.086290065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n    \"max\": 1.108683589705,\n    \"mean\": 1.0895828551050002,\n    \"median\": 1.086178179705,\n    \"message\": \".truncate(0) => .clear()\\n\",\n    \"min\": 1.0790830817050001,\n    \"stddev\": 0.011234728334354028,\n    \"system\": 0.063695195,\n    \"time\": 1.086178179705,\n    \"user\": 1.086290065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n    \"max\": 1.105978172655,\n    \"mean\": 1.086323931455,\n    \"median\": 1.0819676836549998,\n    \"message\": \"make target: chronologer\\n\",\n    \"min\": 1.075959344655,\n    \"stddev\": 0.011667158190603448,\n    \"system\": 0.06022917,\n    \"time\": 1.0869901436549998,\n    \"user\": 1.08680625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n    \"max\": 1.105978172655,\n    \"mean\": 1.086323931455,\n    \"median\": 1.0819676836549998,\n    \"message\": \"make target: chronologer\\n\",\n    \"min\": 1.075959344655,\n    \"stddev\": 0.011667158190603448,\n    \"system\": 0.06022917,\n    \"time\": 1.0819676836549998,\n    \"user\": 1.08680625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n    \"max\": 1.105978172655,\n    \"mean\": 1.086323931455,\n    \"median\": 1.0819676836549998,\n    \"message\": \"make target: chronologer\\n\",\n    \"min\": 1.075959344655,\n    \"stddev\": 0.011667158190603448,\n    \"system\": 0.06022917,\n    \"time\": 1.105978172655,\n    \"user\": 1.08680625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n    \"max\": 1.105978172655,\n    \"mean\": 1.086323931455,\n    \"median\": 1.0819676836549998,\n    \"message\": \"make target: chronologer\\n\",\n    \"min\": 1.075959344655,\n    \"stddev\": 0.011667158190603448,\n    \"system\": 0.06022917,\n    \"time\": 1.080724312655,\n    \"user\": 1.08680625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n    \"max\": 1.105978172655,\n    \"mean\": 1.086323931455,\n    \"median\": 1.0819676836549998,\n    \"message\": \"make target: chronologer\\n\",\n    \"min\": 1.075959344655,\n    \"stddev\": 0.011667158190603448,\n    \"system\": 0.06022917,\n    \"time\": 1.075959344655,\n    \"user\": 1.08680625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n    \"max\": 1.06795116023,\n    \"mean\": 1.06028307023,\n    \"median\": 1.05946260123,\n    \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n    \"min\": 1.05369811923,\n    \"stddev\": 0.005226889053461011,\n    \"system\": 0.059634244999999995,\n    \"time\": 1.06795116023,\n    \"user\": 1.0608583550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n    \"max\": 1.06795116023,\n    \"mean\": 1.06028307023,\n    \"median\": 1.05946260123,\n    \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n    \"min\": 1.05369811923,\n    \"stddev\": 0.005226889053461011,\n    \"system\": 0.059634244999999995,\n    \"time\": 1.05946260123,\n    \"user\": 1.0608583550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n    \"max\": 1.06795116023,\n    \"mean\": 1.06028307023,\n    \"median\": 1.05946260123,\n    \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n    \"min\": 1.05369811923,\n    \"stddev\": 0.005226889053461011,\n    \"system\": 0.059634244999999995,\n    \"time\": 1.05369811923,\n    \"user\": 1.0608583550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n    \"max\": 1.06795116023,\n    \"mean\": 1.06028307023,\n    \"median\": 1.05946260123,\n    \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n    \"min\": 1.05369811923,\n    \"stddev\": 0.005226889053461011,\n    \"system\": 0.059634244999999995,\n    \"time\": 1.0619423532299999,\n    \"user\": 1.0608583550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n    \"max\": 1.06795116023,\n    \"mean\": 1.06028307023,\n    \"median\": 1.05946260123,\n    \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n    \"min\": 1.05369811923,\n    \"stddev\": 0.005226889053461011,\n    \"system\": 0.059634244999999995,\n    \"time\": 1.0583611172299998,\n    \"user\": 1.0608583550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n    \"max\": 1.06143425726,\n    \"mean\": 1.0560026750599998,\n    \"median\": 1.05529823226,\n    \"message\": \"Replace for loop with iterator API\\n\",\n    \"min\": 1.05072196826,\n    \"stddev\": 0.0038765585007075123,\n    \"system\": 0.05867935,\n    \"time\": 1.06143425726,\n    \"user\": 1.057408015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n    \"max\": 1.06143425726,\n    \"mean\": 1.0560026750599998,\n    \"median\": 1.05529823226,\n    \"message\": \"Replace for loop with iterator API\\n\",\n    \"min\": 1.05072196826,\n    \"stddev\": 0.0038765585007075123,\n    \"system\": 0.05867935,\n    \"time\": 1.05072196826,\n    \"user\": 1.057408015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n    \"max\": 1.06143425726,\n    \"mean\": 1.0560026750599998,\n    \"median\": 1.05529823226,\n    \"message\": \"Replace for loop with iterator API\\n\",\n    \"min\": 1.05072196826,\n    \"stddev\": 0.0038765585007075123,\n    \"system\": 0.05867935,\n    \"time\": 1.05729764726,\n    \"user\": 1.057408015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n    \"max\": 1.06143425726,\n    \"mean\": 1.0560026750599998,\n    \"median\": 1.05529823226,\n    \"message\": \"Replace for loop with iterator API\\n\",\n    \"min\": 1.05072196826,\n    \"stddev\": 0.0038765585007075123,\n    \"system\": 0.05867935,\n    \"time\": 1.05526127026,\n    \"user\": 1.057408015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n    \"max\": 1.06143425726,\n    \"mean\": 1.0560026750599998,\n    \"median\": 1.05529823226,\n    \"message\": \"Replace for loop with iterator API\\n\",\n    \"min\": 1.05072196826,\n    \"stddev\": 0.0038765585007075123,\n    \"system\": 0.05867935,\n    \"time\": 1.05529823226,\n    \"user\": 1.057408015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n    \"max\": 1.065872274275,\n    \"mean\": 1.0611835086749999,\n    \"median\": 1.062397058275,\n    \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n    \"min\": 1.0552406722749998,\n    \"stddev\": 0.004217272546400898,\n    \"system\": 0.059659975,\n    \"time\": 1.062397058275,\n    \"user\": 1.0614029699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n    \"max\": 1.065872274275,\n    \"mean\": 1.0611835086749999,\n    \"median\": 1.062397058275,\n    \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n    \"min\": 1.0552406722749998,\n    \"stddev\": 0.004217272546400898,\n    \"system\": 0.059659975,\n    \"time\": 1.0552406722749998,\n    \"user\": 1.0614029699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n    \"max\": 1.065872274275,\n    \"mean\": 1.0611835086749999,\n    \"median\": 1.062397058275,\n    \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n    \"min\": 1.0552406722749998,\n    \"stddev\": 0.004217272546400898,\n    \"system\": 0.059659975,\n    \"time\": 1.063690353275,\n    \"user\": 1.0614029699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n    \"max\": 1.065872274275,\n    \"mean\": 1.0611835086749999,\n    \"median\": 1.062397058275,\n    \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n    \"min\": 1.0552406722749998,\n    \"stddev\": 0.004217272546400898,\n    \"system\": 0.059659975,\n    \"time\": 1.058717185275,\n    \"user\": 1.0614029699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n    \"max\": 1.065872274275,\n    \"mean\": 1.0611835086749999,\n    \"median\": 1.062397058275,\n    \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n    \"min\": 1.0552406722749998,\n    \"stddev\": 0.004217272546400898,\n    \"system\": 0.059659975,\n    \"time\": 1.065872274275,\n    \"user\": 1.0614029699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n    \"max\": 1.18232576991,\n    \"mean\": 1.0965526155099998,\n    \"median\": 1.08187612991,\n    \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n    \"min\": 1.06047447591,\n    \"stddev\": 0.04893662019090351,\n    \"system\": 0.06296154,\n    \"time\": 1.08187612991,\n    \"user\": 1.0892039050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n    \"max\": 1.18232576991,\n    \"mean\": 1.0965526155099998,\n    \"median\": 1.08187612991,\n    \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n    \"min\": 1.06047447591,\n    \"stddev\": 0.04893662019090351,\n    \"system\": 0.06296154,\n    \"time\": 1.18232576991,\n    \"user\": 1.0892039050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n    \"max\": 1.18232576991,\n    \"mean\": 1.0965526155099998,\n    \"median\": 1.08187612991,\n    \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n    \"min\": 1.06047447591,\n    \"stddev\": 0.04893662019090351,\n    \"system\": 0.06296154,\n    \"time\": 1.06047447591,\n    \"user\": 1.0892039050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n    \"max\": 1.18232576991,\n    \"mean\": 1.0965526155099998,\n    \"median\": 1.08187612991,\n    \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n    \"min\": 1.06047447591,\n    \"stddev\": 0.04893662019090351,\n    \"system\": 0.06296154,\n    \"time\": 1.07226260291,\n    \"user\": 1.0892039050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n    \"max\": 1.18232576991,\n    \"mean\": 1.0965526155099998,\n    \"median\": 1.08187612991,\n    \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n    \"min\": 1.06047447591,\n    \"stddev\": 0.04893662019090351,\n    \"system\": 0.06296154,\n    \"time\": 1.08582409891,\n    \"user\": 1.0892039050000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n    \"max\": 1.084912952385,\n    \"mean\": 1.067008391985,\n    \"median\": 1.060806209385,\n    \"message\": \"Refactor: edits\\n\",\n    \"min\": 1.059578938385,\n    \"stddev\": 0.01092542072336575,\n    \"system\": 0.060367939999999995,\n    \"time\": 1.070072564385,\n    \"user\": 1.06675621\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n    \"max\": 1.084912952385,\n    \"mean\": 1.067008391985,\n    \"median\": 1.060806209385,\n    \"message\": \"Refactor: edits\\n\",\n    \"min\": 1.059578938385,\n    \"stddev\": 0.01092542072336575,\n    \"system\": 0.060367939999999995,\n    \"time\": 1.059671295385,\n    \"user\": 1.06675621\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n    \"max\": 1.084912952385,\n    \"mean\": 1.067008391985,\n    \"median\": 1.060806209385,\n    \"message\": \"Refactor: edits\\n\",\n    \"min\": 1.059578938385,\n    \"stddev\": 0.01092542072336575,\n    \"system\": 0.060367939999999995,\n    \"time\": 1.059578938385,\n    \"user\": 1.06675621\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n    \"max\": 1.084912952385,\n    \"mean\": 1.067008391985,\n    \"median\": 1.060806209385,\n    \"message\": \"Refactor: edits\\n\",\n    \"min\": 1.059578938385,\n    \"stddev\": 0.01092542072336575,\n    \"system\": 0.060367939999999995,\n    \"time\": 1.060806209385,\n    \"user\": 1.06675621\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n    \"max\": 1.084912952385,\n    \"mean\": 1.067008391985,\n    \"median\": 1.060806209385,\n    \"message\": \"Refactor: edits\\n\",\n    \"min\": 1.059578938385,\n    \"stddev\": 0.01092542072336575,\n    \"system\": 0.060367939999999995,\n    \"time\": 1.084912952385,\n    \"user\": 1.06675621\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n    \"max\": 1.0737070711299999,\n    \"mean\": 1.05784370113,\n    \"median\": 1.05651749713,\n    \"message\": \"Use same lifetime for minus and plus lines\\n\",\n    \"min\": 1.04293570813,\n    \"stddev\": 0.011444880711946147,\n    \"system\": 0.05907293499999999,\n    \"time\": 1.04293570813,\n    \"user\": 1.057799495\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n    \"max\": 1.0737070711299999,\n    \"mean\": 1.05784370113,\n    \"median\": 1.05651749713,\n    \"message\": \"Use same lifetime for minus and plus lines\\n\",\n    \"min\": 1.04293570813,\n    \"stddev\": 0.011444880711946147,\n    \"system\": 0.05907293499999999,\n    \"time\": 1.0737070711299999,\n    \"user\": 1.057799495\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n    \"max\": 1.0737070711299999,\n    \"mean\": 1.05784370113,\n    \"median\": 1.05651749713,\n    \"message\": \"Use same lifetime for minus and plus lines\\n\",\n    \"min\": 1.04293570813,\n    \"stddev\": 0.011444880711946147,\n    \"system\": 0.05907293499999999,\n    \"time\": 1.0629392491299998,\n    \"user\": 1.057799495\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n    \"max\": 1.0737070711299999,\n    \"mean\": 1.05784370113,\n    \"median\": 1.05651749713,\n    \"message\": \"Use same lifetime for minus and plus lines\\n\",\n    \"min\": 1.04293570813,\n    \"stddev\": 0.011444880711946147,\n    \"system\": 0.05907293499999999,\n    \"time\": 1.0531189801299998,\n    \"user\": 1.057799495\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n    \"max\": 1.0737070711299999,\n    \"mean\": 1.05784370113,\n    \"median\": 1.05651749713,\n    \"message\": \"Use same lifetime for minus and plus lines\\n\",\n    \"min\": 1.04293570813,\n    \"stddev\": 0.011444880711946147,\n    \"system\": 0.05907293499999999,\n    \"time\": 1.05651749713,\n    \"user\": 1.057799495\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n    \"max\": 0.9655029540350001,\n    \"mean\": 0.9508352114350002,\n    \"median\": 0.948089201035,\n    \"message\": \"Revert interleavings algorithm\\n\",\n    \"min\": 0.9396034850350001,\n    \"stddev\": 0.009515146592679864,\n    \"system\": 0.05540914500000001,\n    \"time\": 0.9530474610350002,\n    \"user\": 0.939172765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n    \"max\": 0.9655029540350001,\n    \"mean\": 0.9508352114350002,\n    \"median\": 0.948089201035,\n    \"message\": \"Revert interleavings algorithm\\n\",\n    \"min\": 0.9396034850350001,\n    \"stddev\": 0.009515146592679864,\n    \"system\": 0.05540914500000001,\n    \"time\": 0.948089201035,\n    \"user\": 0.939172765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n    \"max\": 0.9655029540350001,\n    \"mean\": 0.9508352114350002,\n    \"median\": 0.948089201035,\n    \"message\": \"Revert interleavings algorithm\\n\",\n    \"min\": 0.9396034850350001,\n    \"stddev\": 0.009515146592679864,\n    \"system\": 0.05540914500000001,\n    \"time\": 0.9396034850350001,\n    \"user\": 0.939172765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n    \"max\": 0.9655029540350001,\n    \"mean\": 0.9508352114350002,\n    \"median\": 0.948089201035,\n    \"message\": \"Revert interleavings algorithm\\n\",\n    \"min\": 0.9396034850350001,\n    \"stddev\": 0.009515146592679864,\n    \"system\": 0.05540914500000001,\n    \"time\": 0.9655029540350001,\n    \"user\": 0.939172765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n    \"max\": 0.9655029540350001,\n    \"mean\": 0.9508352114350002,\n    \"median\": 0.948089201035,\n    \"message\": \"Revert interleavings algorithm\\n\",\n    \"min\": 0.9396034850350001,\n    \"stddev\": 0.009515146592679864,\n    \"system\": 0.05540914500000001,\n    \"time\": 0.947932956035,\n    \"user\": 0.939172765\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n    \"max\": 1.07288042742,\n    \"mean\": 1.0482804608199998,\n    \"median\": 1.04643401942,\n    \"message\": \"Refactor edit tests\\n\",\n    \"min\": 1.03515878242,\n    \"stddev\": 0.014575155540910635,\n    \"system\": 0.05528951,\n    \"time\": 1.0468266984199999,\n    \"user\": 1.0502096699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n    \"max\": 1.07288042742,\n    \"mean\": 1.0482804608199998,\n    \"median\": 1.04643401942,\n    \"message\": \"Refactor edit tests\\n\",\n    \"min\": 1.03515878242,\n    \"stddev\": 0.014575155540910635,\n    \"system\": 0.05528951,\n    \"time\": 1.07288042742,\n    \"user\": 1.0502096699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n    \"max\": 1.07288042742,\n    \"mean\": 1.0482804608199998,\n    \"median\": 1.04643401942,\n    \"message\": \"Refactor edit tests\\n\",\n    \"min\": 1.03515878242,\n    \"stddev\": 0.014575155540910635,\n    \"system\": 0.05528951,\n    \"time\": 1.04010237642,\n    \"user\": 1.0502096699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n    \"max\": 1.07288042742,\n    \"mean\": 1.0482804608199998,\n    \"median\": 1.04643401942,\n    \"message\": \"Refactor edit tests\\n\",\n    \"min\": 1.03515878242,\n    \"stddev\": 0.014575155540910635,\n    \"system\": 0.05528951,\n    \"time\": 1.04643401942,\n    \"user\": 1.0502096699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n    \"max\": 1.07288042742,\n    \"mean\": 1.0482804608199998,\n    \"median\": 1.04643401942,\n    \"message\": \"Refactor edit tests\\n\",\n    \"min\": 1.03515878242,\n    \"stddev\": 0.014575155540910635,\n    \"system\": 0.05528951,\n    \"time\": 1.03515878242,\n    \"user\": 1.0502096699999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n    \"max\": 0.97309633122,\n    \"mean\": 0.9516310450200001,\n    \"median\": 0.9471687822200001,\n    \"message\": \"LinePair format method\\n\",\n    \"min\": 0.93146803322,\n    \"stddev\": 0.016028424818636335,\n    \"system\": 0.054001999999999994,\n    \"time\": 0.97309633122,\n    \"user\": 0.940471995\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n    \"max\": 0.97309633122,\n    \"mean\": 0.9516310450200001,\n    \"median\": 0.9471687822200001,\n    \"message\": \"LinePair format method\\n\",\n    \"min\": 0.93146803322,\n    \"stddev\": 0.016028424818636335,\n    \"system\": 0.054001999999999994,\n    \"time\": 0.9614399972200001,\n    \"user\": 0.940471995\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n    \"max\": 0.97309633122,\n    \"mean\": 0.9516310450200001,\n    \"median\": 0.9471687822200001,\n    \"message\": \"LinePair format method\\n\",\n    \"min\": 0.93146803322,\n    \"stddev\": 0.016028424818636335,\n    \"system\": 0.054001999999999994,\n    \"time\": 0.9471687822200001,\n    \"user\": 0.940471995\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n    \"max\": 0.97309633122,\n    \"mean\": 0.9516310450200001,\n    \"median\": 0.9471687822200001,\n    \"message\": \"LinePair format method\\n\",\n    \"min\": 0.93146803322,\n    \"stddev\": 0.016028424818636335,\n    \"system\": 0.054001999999999994,\n    \"time\": 0.93146803322,\n    \"user\": 0.940471995\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n    \"max\": 0.97309633122,\n    \"mean\": 0.9516310450200001,\n    \"median\": 0.9471687822200001,\n    \"message\": \"LinePair format method\\n\",\n    \"min\": 0.93146803322,\n    \"stddev\": 0.016028424818636335,\n    \"system\": 0.054001999999999994,\n    \"time\": 0.94498208122,\n    \"user\": 0.940471995\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n    \"max\": 1.0884033605449999,\n    \"mean\": 1.074957940945,\n    \"median\": 1.0756182295449999,\n    \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n    \"min\": 1.061826013545,\n    \"stddev\": 0.009997649172831696,\n    \"system\": 0.05900446499999999,\n    \"time\": 1.0756182295449999,\n    \"user\": 1.0749870549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n    \"max\": 1.0884033605449999,\n    \"mean\": 1.074957940945,\n    \"median\": 1.0756182295449999,\n    \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n    \"min\": 1.061826013545,\n    \"stddev\": 0.009997649172831696,\n    \"system\": 0.05900446499999999,\n    \"time\": 1.061826013545,\n    \"user\": 1.0749870549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n    \"max\": 1.0884033605449999,\n    \"mean\": 1.074957940945,\n    \"median\": 1.0756182295449999,\n    \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n    \"min\": 1.061826013545,\n    \"stddev\": 0.009997649172831696,\n    \"system\": 0.05900446499999999,\n    \"time\": 1.0884033605449999,\n    \"user\": 1.0749870549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n    \"max\": 1.0884033605449999,\n    \"mean\": 1.074957940945,\n    \"median\": 1.0756182295449999,\n    \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n    \"min\": 1.061826013545,\n    \"stddev\": 0.009997649172831696,\n    \"system\": 0.05900446499999999,\n    \"time\": 1.079249911545,\n    \"user\": 1.0749870549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n    \"max\": 1.0884033605449999,\n    \"mean\": 1.074957940945,\n    \"median\": 1.0756182295449999,\n    \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n    \"min\": 1.061826013545,\n    \"stddev\": 0.009997649172831696,\n    \"system\": 0.05900446499999999,\n    \"time\": 1.069692189545,\n    \"user\": 1.0749870549999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n    \"max\": 1.046937267265,\n    \"mean\": 1.0361849804649998,\n    \"median\": 1.036373550265,\n    \"message\": \"Interleavings\\n\",\n    \"min\": 1.019919557265,\n    \"stddev\": 0.011167720599289555,\n    \"system\": 0.056802660000000005,\n    \"time\": 1.046075168265,\n    \"user\": 1.037097875\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n    \"max\": 1.046937267265,\n    \"mean\": 1.0361849804649998,\n    \"median\": 1.036373550265,\n    \"message\": \"Interleavings\\n\",\n    \"min\": 1.019919557265,\n    \"stddev\": 0.011167720599289555,\n    \"system\": 0.056802660000000005,\n    \"time\": 1.0316193592649998,\n    \"user\": 1.037097875\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n    \"max\": 1.046937267265,\n    \"mean\": 1.0361849804649998,\n    \"median\": 1.036373550265,\n    \"message\": \"Interleavings\\n\",\n    \"min\": 1.019919557265,\n    \"stddev\": 0.011167720599289555,\n    \"system\": 0.056802660000000005,\n    \"time\": 1.046937267265,\n    \"user\": 1.037097875\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n    \"max\": 1.046937267265,\n    \"mean\": 1.0361849804649998,\n    \"median\": 1.036373550265,\n    \"message\": \"Interleavings\\n\",\n    \"min\": 1.019919557265,\n    \"stddev\": 0.011167720599289555,\n    \"system\": 0.056802660000000005,\n    \"time\": 1.036373550265,\n    \"user\": 1.037097875\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n    \"max\": 1.046937267265,\n    \"mean\": 1.0361849804649998,\n    \"median\": 1.036373550265,\n    \"message\": \"Interleavings\\n\",\n    \"min\": 1.019919557265,\n    \"stddev\": 0.011167720599289555,\n    \"system\": 0.056802660000000005,\n    \"time\": 1.019919557265,\n    \"user\": 1.037097875\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n    \"max\": 1.076945783415,\n    \"mean\": 1.067523959015,\n    \"median\": 1.0650288594150001,\n    \"message\": \"Rename edit-related entities\\n\",\n    \"min\": 1.055029550415,\n    \"stddev\": 0.009082282301349514,\n    \"system\": 0.059104945,\n    \"time\": 1.0759356474150001,\n    \"user\": 1.0676536999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n    \"max\": 1.076945783415,\n    \"mean\": 1.067523959015,\n    \"median\": 1.0650288594150001,\n    \"message\": \"Rename edit-related entities\\n\",\n    \"min\": 1.055029550415,\n    \"stddev\": 0.009082282301349514,\n    \"system\": 0.059104945,\n    \"time\": 1.064679954415,\n    \"user\": 1.0676536999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n    \"max\": 1.076945783415,\n    \"mean\": 1.067523959015,\n    \"median\": 1.0650288594150001,\n    \"message\": \"Rename edit-related entities\\n\",\n    \"min\": 1.055029550415,\n    \"stddev\": 0.009082282301349514,\n    \"system\": 0.059104945,\n    \"time\": 1.076945783415,\n    \"user\": 1.0676536999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n    \"max\": 1.076945783415,\n    \"mean\": 1.067523959015,\n    \"median\": 1.0650288594150001,\n    \"message\": \"Rename edit-related entities\\n\",\n    \"min\": 1.055029550415,\n    \"stddev\": 0.009082282301349514,\n    \"system\": 0.059104945,\n    \"time\": 1.0650288594150001,\n    \"user\": 1.0676536999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n    \"max\": 1.076945783415,\n    \"mean\": 1.067523959015,\n    \"median\": 1.0650288594150001,\n    \"message\": \"Rename edit-related entities\\n\",\n    \"min\": 1.055029550415,\n    \"stddev\": 0.009082282301349514,\n    \"system\": 0.059104945,\n    \"time\": 1.055029550415,\n    \"user\": 1.0676536999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n    \"max\": 1.1001065083200001,\n    \"mean\": 1.0604578085200003,\n    \"median\": 1.05269898332,\n    \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n    \"min\": 1.04750135732,\n    \"stddev\": 0.02228714246937785,\n    \"system\": 0.057658804999999994,\n    \"time\": 1.0529329033200001,\n    \"user\": 1.0618972150000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n    \"max\": 1.1001065083200001,\n    \"mean\": 1.0604578085200003,\n    \"median\": 1.05269898332,\n    \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n    \"min\": 1.04750135732,\n    \"stddev\": 0.02228714246937785,\n    \"system\": 0.057658804999999994,\n    \"time\": 1.05269898332,\n    \"user\": 1.0618972150000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n    \"max\": 1.1001065083200001,\n    \"mean\": 1.0604578085200003,\n    \"median\": 1.05269898332,\n    \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n    \"min\": 1.04750135732,\n    \"stddev\": 0.02228714246937785,\n    \"system\": 0.057658804999999994,\n    \"time\": 1.04750135732,\n    \"user\": 1.0618972150000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n    \"max\": 1.1001065083200001,\n    \"mean\": 1.0604578085200003,\n    \"median\": 1.05269898332,\n    \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n    \"min\": 1.04750135732,\n    \"stddev\": 0.02228714246937785,\n    \"system\": 0.057658804999999994,\n    \"time\": 1.1001065083200001,\n    \"user\": 1.0618972150000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n    \"max\": 1.1001065083200001,\n    \"mean\": 1.0604578085200003,\n    \"median\": 1.05269898332,\n    \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n    \"min\": 1.04750135732,\n    \"stddev\": 0.02228714246937785,\n    \"system\": 0.057658804999999994,\n    \"time\": 1.04904929032,\n    \"user\": 1.0618972150000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n    \"max\": 1.08144625149,\n    \"mean\": 1.06946043409,\n    \"median\": 1.07066281649,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.05964581549,\n    \"stddev\": 0.008316819138596505,\n    \"system\": 0.060287335,\n    \"time\": 1.07161780249,\n    \"user\": 1.0676449399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n    \"max\": 1.08144625149,\n    \"mean\": 1.06946043409,\n    \"median\": 1.07066281649,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.05964581549,\n    \"stddev\": 0.008316819138596505,\n    \"system\": 0.060287335,\n    \"time\": 1.06392948449,\n    \"user\": 1.0676449399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n    \"max\": 1.08144625149,\n    \"mean\": 1.06946043409,\n    \"median\": 1.07066281649,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.05964581549,\n    \"stddev\": 0.008316819138596505,\n    \"system\": 0.060287335,\n    \"time\": 1.05964581549,\n    \"user\": 1.0676449399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n    \"max\": 1.08144625149,\n    \"mean\": 1.06946043409,\n    \"median\": 1.07066281649,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.05964581549,\n    \"stddev\": 0.008316819138596505,\n    \"system\": 0.060287335,\n    \"time\": 1.07066281649,\n    \"user\": 1.0676449399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n    \"max\": 1.08144625149,\n    \"mean\": 1.06946043409,\n    \"median\": 1.07066281649,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.05964581549,\n    \"stddev\": 0.008316819138596505,\n    \"system\": 0.060287335,\n    \"time\": 1.08144625149,\n    \"user\": 1.0676449399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n    \"max\": 1.0912961541800001,\n    \"mean\": 1.0788756645800004,\n    \"median\": 1.0778017801800002,\n    \"message\": \"Release hash make target\\n\",\n    \"min\": 1.06831743018,\n    \"stddev\": 0.008374972602180798,\n    \"system\": 0.06023070500000001,\n    \"time\": 1.06831743018,\n    \"user\": 1.078148575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n    \"max\": 1.0912961541800001,\n    \"mean\": 1.0788756645800004,\n    \"median\": 1.0778017801800002,\n    \"message\": \"Release hash make target\\n\",\n    \"min\": 1.06831743018,\n    \"stddev\": 0.008374972602180798,\n    \"system\": 0.06023070500000001,\n    \"time\": 1.07589770318,\n    \"user\": 1.078148575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n    \"max\": 1.0912961541800001,\n    \"mean\": 1.0788756645800004,\n    \"median\": 1.0778017801800002,\n    \"message\": \"Release hash make target\\n\",\n    \"min\": 1.06831743018,\n    \"stddev\": 0.008374972602180798,\n    \"system\": 0.06023070500000001,\n    \"time\": 1.0912961541800001,\n    \"user\": 1.078148575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n    \"max\": 1.0912961541800001,\n    \"mean\": 1.0788756645800004,\n    \"median\": 1.0778017801800002,\n    \"message\": \"Release hash make target\\n\",\n    \"min\": 1.06831743018,\n    \"stddev\": 0.008374972602180798,\n    \"system\": 0.06023070500000001,\n    \"time\": 1.0778017801800002,\n    \"user\": 1.078148575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n    \"max\": 1.0912961541800001,\n    \"mean\": 1.0788756645800004,\n    \"median\": 1.0778017801800002,\n    \"message\": \"Release hash make target\\n\",\n    \"min\": 1.06831743018,\n    \"stddev\": 0.008374972602180798,\n    \"system\": 0.06023070500000001,\n    \"time\": 1.0810652551800002,\n    \"user\": 1.078148575\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n    \"max\": 1.101487234855,\n    \"mean\": 1.0776584580550002,\n    \"median\": 1.074193729855,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0661387518549998,\n    \"stddev\": 0.014484994841342143,\n    \"system\": 0.06014716499999999,\n    \"time\": 1.074193729855,\n    \"user\": 1.0732853949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n    \"max\": 1.101487234855,\n    \"mean\": 1.0776584580550002,\n    \"median\": 1.074193729855,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0661387518549998,\n    \"stddev\": 0.014484994841342143,\n    \"system\": 0.06014716499999999,\n    \"time\": 1.0798555968549999,\n    \"user\": 1.0732853949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n    \"max\": 1.101487234855,\n    \"mean\": 1.0776584580550002,\n    \"median\": 1.074193729855,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0661387518549998,\n    \"stddev\": 0.014484994841342143,\n    \"system\": 0.06014716499999999,\n    \"time\": 1.066616976855,\n    \"user\": 1.0732853949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n    \"max\": 1.101487234855,\n    \"mean\": 1.0776584580550002,\n    \"median\": 1.074193729855,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0661387518549998,\n    \"stddev\": 0.014484994841342143,\n    \"system\": 0.06014716499999999,\n    \"time\": 1.101487234855,\n    \"user\": 1.0732853949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n    \"max\": 1.101487234855,\n    \"mean\": 1.0776584580550002,\n    \"median\": 1.074193729855,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.0661387518549998,\n    \"stddev\": 0.014484994841342143,\n    \"system\": 0.06014716499999999,\n    \"time\": 1.0661387518549998,\n    \"user\": 1.0732853949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n    \"max\": 1.8356967980000003,\n    \"mean\": 1.2897377238,\n    \"median\": 1.2261456450000001,\n    \"message\": \"Tweak dark theme plus colors\\n\",\n    \"min\": 1.073488927,\n    \"stddev\": 0.31534955307993895,\n    \"system\": 0.079240225,\n    \"time\": 1.2261456450000001,\n    \"user\": 1.2064280749999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n    \"max\": 1.8356967980000003,\n    \"mean\": 1.2897377238,\n    \"median\": 1.2261456450000001,\n    \"message\": \"Tweak dark theme plus colors\\n\",\n    \"min\": 1.073488927,\n    \"stddev\": 0.31534955307993895,\n    \"system\": 0.079240225,\n    \"time\": 1.8356967980000003,\n    \"user\": 1.2064280749999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n    \"max\": 1.8356967980000003,\n    \"mean\": 1.2897377238,\n    \"median\": 1.2261456450000001,\n    \"message\": \"Tweak dark theme plus colors\\n\",\n    \"min\": 1.073488927,\n    \"stddev\": 0.31534955307993895,\n    \"system\": 0.079240225,\n    \"time\": 1.2388160380000002,\n    \"user\": 1.2064280749999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n    \"max\": 1.8356967980000003,\n    \"mean\": 1.2897377238,\n    \"median\": 1.2261456450000001,\n    \"message\": \"Tweak dark theme plus colors\\n\",\n    \"min\": 1.073488927,\n    \"stddev\": 0.31534955307993895,\n    \"system\": 0.079240225,\n    \"time\": 1.074541211,\n    \"user\": 1.2064280749999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n    \"max\": 1.8356967980000003,\n    \"mean\": 1.2897377238,\n    \"median\": 1.2261456450000001,\n    \"message\": \"Tweak dark theme plus colors\\n\",\n    \"min\": 1.073488927,\n    \"stddev\": 0.31534955307993895,\n    \"system\": 0.079240225,\n    \"time\": 1.073488927,\n    \"user\": 1.2064280749999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n    \"max\": 1.11679057761,\n    \"mean\": 1.0780472036100002,\n    \"median\": 1.06766268861,\n    \"message\": \"Tweak styling of file metadata\\n\",\n    \"min\": 1.05878387361,\n    \"stddev\": 0.02310328608449384,\n    \"system\": 0.06379011500000001,\n    \"time\": 1.11679057761,\n    \"user\": 1.0755788149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n    \"max\": 1.11679057761,\n    \"mean\": 1.0780472036100002,\n    \"median\": 1.06766268861,\n    \"message\": \"Tweak styling of file metadata\\n\",\n    \"min\": 1.05878387361,\n    \"stddev\": 0.02310328608449384,\n    \"system\": 0.06379011500000001,\n    \"time\": 1.08103999361,\n    \"user\": 1.0755788149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n    \"max\": 1.11679057761,\n    \"mean\": 1.0780472036100002,\n    \"median\": 1.06766268861,\n    \"message\": \"Tweak styling of file metadata\\n\",\n    \"min\": 1.05878387361,\n    \"stddev\": 0.02310328608449384,\n    \"system\": 0.06379011500000001,\n    \"time\": 1.0659588846099999,\n    \"user\": 1.0755788149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n    \"max\": 1.11679057761,\n    \"mean\": 1.0780472036100002,\n    \"median\": 1.06766268861,\n    \"message\": \"Tweak styling of file metadata\\n\",\n    \"min\": 1.05878387361,\n    \"stddev\": 0.02310328608449384,\n    \"system\": 0.06379011500000001,\n    \"time\": 1.06766268861,\n    \"user\": 1.0755788149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n    \"max\": 1.11679057761,\n    \"mean\": 1.0780472036100002,\n    \"median\": 1.06766268861,\n    \"message\": \"Tweak styling of file metadata\\n\",\n    \"min\": 1.05878387361,\n    \"stddev\": 0.02310328608449384,\n    \"system\": 0.06379011500000001,\n    \"time\": 1.05878387361,\n    \"user\": 1.0755788149999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n    \"max\": 1.511451679455,\n    \"mean\": 1.2184550386550002,\n    \"median\": 1.077058337455,\n    \"message\": \"Suppress new lines in debugging utility\\n\",\n    \"min\": 1.062442061455,\n    \"stddev\": 0.2099331588899277,\n    \"system\": 0.075925885,\n    \"time\": 1.077058337455,\n    \"user\": 1.15790619\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n    \"max\": 1.511451679455,\n    \"mean\": 1.2184550386550002,\n    \"median\": 1.077058337455,\n    \"message\": \"Suppress new lines in debugging utility\\n\",\n    \"min\": 1.062442061455,\n    \"stddev\": 0.2099331588899277,\n    \"system\": 0.075925885,\n    \"time\": 1.062442061455,\n    \"user\": 1.15790619\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n    \"max\": 1.511451679455,\n    \"mean\": 1.2184550386550002,\n    \"median\": 1.077058337455,\n    \"message\": \"Suppress new lines in debugging utility\\n\",\n    \"min\": 1.062442061455,\n    \"stddev\": 0.2099331588899277,\n    \"system\": 0.075925885,\n    \"time\": 1.0688427844550001,\n    \"user\": 1.15790619\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n    \"max\": 1.511451679455,\n    \"mean\": 1.2184550386550002,\n    \"median\": 1.077058337455,\n    \"message\": \"Suppress new lines in debugging utility\\n\",\n    \"min\": 1.062442061455,\n    \"stddev\": 0.2099331588899277,\n    \"system\": 0.075925885,\n    \"time\": 1.3724803304550002,\n    \"user\": 1.15790619\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n    \"max\": 1.511451679455,\n    \"mean\": 1.2184550386550002,\n    \"median\": 1.077058337455,\n    \"message\": \"Suppress new lines in debugging utility\\n\",\n    \"min\": 1.062442061455,\n    \"stddev\": 0.2099331588899277,\n    \"system\": 0.075925885,\n    \"time\": 1.511451679455,\n    \"user\": 1.15790619\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n    \"max\": 1.117992449625,\n    \"mean\": 1.0817426558250003,\n    \"median\": 1.0723289816250001,\n    \"message\": \"Edits: unit test of real bug\\n\",\n    \"min\": 1.066419235625,\n    \"stddev\": 0.021309309477674943,\n    \"system\": 0.062805775,\n    \"time\": 1.117992449625,\n    \"user\": 1.0809388599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n    \"max\": 1.117992449625,\n    \"mean\": 1.0817426558250003,\n    \"median\": 1.0723289816250001,\n    \"message\": \"Edits: unit test of real bug\\n\",\n    \"min\": 1.066419235625,\n    \"stddev\": 0.021309309477674943,\n    \"system\": 0.062805775,\n    \"time\": 1.066419235625,\n    \"user\": 1.0809388599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n    \"max\": 1.117992449625,\n    \"mean\": 1.0817426558250003,\n    \"median\": 1.0723289816250001,\n    \"message\": \"Edits: unit test of real bug\\n\",\n    \"min\": 1.066419235625,\n    \"stddev\": 0.021309309477674943,\n    \"system\": 0.062805775,\n    \"time\": 1.0834897566250001,\n    \"user\": 1.0809388599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n    \"max\": 1.117992449625,\n    \"mean\": 1.0817426558250003,\n    \"median\": 1.0723289816250001,\n    \"message\": \"Edits: unit test of real bug\\n\",\n    \"min\": 1.066419235625,\n    \"stddev\": 0.021309309477674943,\n    \"system\": 0.062805775,\n    \"time\": 1.0684828556250001,\n    \"user\": 1.0809388599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n    \"max\": 1.117992449625,\n    \"mean\": 1.0817426558250003,\n    \"median\": 1.0723289816250001,\n    \"message\": \"Edits: unit test of real bug\\n\",\n    \"min\": 1.066419235625,\n    \"stddev\": 0.021309309477674943,\n    \"system\": 0.062805775,\n    \"time\": 1.0723289816250001,\n    \"user\": 1.0809388599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n    \"max\": 1.16076605817,\n    \"mean\": 1.11418777437,\n    \"median\": 1.10908853317,\n    \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n    \"min\": 1.07274918217,\n    \"stddev\": 0.036936913873595496,\n    \"system\": 0.06916711,\n    \"time\": 1.16076605817,\n    \"user\": 1.10255335\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n    \"max\": 1.16076605817,\n    \"mean\": 1.11418777437,\n    \"median\": 1.10908853317,\n    \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n    \"min\": 1.07274918217,\n    \"stddev\": 0.036936913873595496,\n    \"system\": 0.06916711,\n    \"time\": 1.14195824817,\n    \"user\": 1.10255335\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n    \"max\": 1.16076605817,\n    \"mean\": 1.11418777437,\n    \"median\": 1.10908853317,\n    \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n    \"min\": 1.07274918217,\n    \"stddev\": 0.036936913873595496,\n    \"system\": 0.06916711,\n    \"time\": 1.08637685017,\n    \"user\": 1.10255335\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n    \"max\": 1.16076605817,\n    \"mean\": 1.11418777437,\n    \"median\": 1.10908853317,\n    \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n    \"min\": 1.07274918217,\n    \"stddev\": 0.036936913873595496,\n    \"system\": 0.06916711,\n    \"time\": 1.10908853317,\n    \"user\": 1.10255335\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n    \"max\": 1.16076605817,\n    \"mean\": 1.11418777437,\n    \"median\": 1.10908853317,\n    \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n    \"min\": 1.07274918217,\n    \"stddev\": 0.036936913873595496,\n    \"system\": 0.06916711,\n    \"time\": 1.07274918217,\n    \"user\": 1.10255335\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n    \"max\": 1.09338621903,\n    \"mean\": 1.08108464963,\n    \"median\": 1.07691352703,\n    \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n    \"min\": 1.07315870303,\n    \"stddev\": 0.008322959019187583,\n    \"system\": 0.063061855,\n    \"time\": 1.09338621903,\n    \"user\": 1.08201391\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n    \"max\": 1.09338621903,\n    \"mean\": 1.08108464963,\n    \"median\": 1.07691352703,\n    \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n    \"min\": 1.07315870303,\n    \"stddev\": 0.008322959019187583,\n    \"system\": 0.063061855,\n    \"time\": 1.08575304803,\n    \"user\": 1.08201391\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n    \"max\": 1.09338621903,\n    \"mean\": 1.08108464963,\n    \"median\": 1.07691352703,\n    \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n    \"min\": 1.07315870303,\n    \"stddev\": 0.008322959019187583,\n    \"system\": 0.063061855,\n    \"time\": 1.07621175103,\n    \"user\": 1.08201391\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n    \"max\": 1.09338621903,\n    \"mean\": 1.08108464963,\n    \"median\": 1.07691352703,\n    \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n    \"min\": 1.07315870303,\n    \"stddev\": 0.008322959019187583,\n    \"system\": 0.063061855,\n    \"time\": 1.07691352703,\n    \"user\": 1.08201391\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n    \"max\": 1.09338621903,\n    \"mean\": 1.08108464963,\n    \"median\": 1.07691352703,\n    \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n    \"min\": 1.07315870303,\n    \"stddev\": 0.008322959019187583,\n    \"system\": 0.063061855,\n    \"time\": 1.07315870303,\n    \"user\": 1.08201391\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n    \"max\": 1.09669329545,\n    \"mean\": 1.08093708205,\n    \"median\": 1.0775715204499998,\n    \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n    \"min\": 1.0691630884499999,\n    \"stddev\": 0.010238792969132347,\n    \"system\": 0.06308591,\n    \"time\": 1.09669329545,\n    \"user\": 1.077160525\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n    \"max\": 1.09669329545,\n    \"mean\": 1.08093708205,\n    \"median\": 1.0775715204499998,\n    \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n    \"min\": 1.0691630884499999,\n    \"stddev\": 0.010238792969132347,\n    \"system\": 0.06308591,\n    \"time\": 1.08386365645,\n    \"user\": 1.077160525\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n    \"max\": 1.09669329545,\n    \"mean\": 1.08093708205,\n    \"median\": 1.0775715204499998,\n    \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n    \"min\": 1.0691630884499999,\n    \"stddev\": 0.010238792969132347,\n    \"system\": 0.06308591,\n    \"time\": 1.0691630884499999,\n    \"user\": 1.077160525\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n    \"max\": 1.09669329545,\n    \"mean\": 1.08093708205,\n    \"median\": 1.0775715204499998,\n    \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n    \"min\": 1.0691630884499999,\n    \"stddev\": 0.010238792969132347,\n    \"system\": 0.06308591,\n    \"time\": 1.07739384945,\n    \"user\": 1.077160525\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n    \"max\": 1.09669329545,\n    \"mean\": 1.08093708205,\n    \"median\": 1.0775715204499998,\n    \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n    \"min\": 1.0691630884499999,\n    \"stddev\": 0.010238792969132347,\n    \"system\": 0.06308591,\n    \"time\": 1.0775715204499998,\n    \"user\": 1.077160525\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n    \"max\": 1.890421234655,\n    \"mean\": 1.839680475655,\n    \"median\": 1.8737948396550002,\n    \"message\": \"Clean up distance-metrics\\n\",\n    \"min\": 1.7557470726550002,\n    \"stddev\": 0.06268163714427763,\n    \"system\": 0.07444002,\n    \"time\": 1.890421234655,\n    \"user\": 1.81711088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n    \"max\": 1.890421234655,\n    \"mean\": 1.839680475655,\n    \"median\": 1.8737948396550002,\n    \"message\": \"Clean up distance-metrics\\n\",\n    \"min\": 1.7557470726550002,\n    \"stddev\": 0.06268163714427763,\n    \"system\": 0.07444002,\n    \"time\": 1.7895592936550002,\n    \"user\": 1.81711088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n    \"max\": 1.890421234655,\n    \"mean\": 1.839680475655,\n    \"median\": 1.8737948396550002,\n    \"message\": \"Clean up distance-metrics\\n\",\n    \"min\": 1.7557470726550002,\n    \"stddev\": 0.06268163714427763,\n    \"system\": 0.07444002,\n    \"time\": 1.8888799376550003,\n    \"user\": 1.81711088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n    \"max\": 1.890421234655,\n    \"mean\": 1.839680475655,\n    \"median\": 1.8737948396550002,\n    \"message\": \"Clean up distance-metrics\\n\",\n    \"min\": 1.7557470726550002,\n    \"stddev\": 0.06268163714427763,\n    \"system\": 0.07444002,\n    \"time\": 1.7557470726550002,\n    \"user\": 1.81711088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n    \"max\": 1.890421234655,\n    \"mean\": 1.839680475655,\n    \"median\": 1.8737948396550002,\n    \"message\": \"Clean up distance-metrics\\n\",\n    \"min\": 1.7557470726550002,\n    \"stddev\": 0.06268163714427763,\n    \"system\": 0.07444002,\n    \"time\": 1.8737948396550002,\n    \"user\": 1.81711088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n    \"max\": 1.4350577286400001,\n    \"mean\": 1.38208374564,\n    \"median\": 1.36738143764,\n    \"message\": \"Change tokenization algorithm\\n\",\n    \"min\": 1.35162089564,\n    \"stddev\": 0.035582523221737036,\n    \"system\": 0.063211345,\n    \"time\": 1.40145581264,\n    \"user\": 1.3758691399999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n    \"max\": 1.4350577286400001,\n    \"mean\": 1.38208374564,\n    \"median\": 1.36738143764,\n    \"message\": \"Change tokenization algorithm\\n\",\n    \"min\": 1.35162089564,\n    \"stddev\": 0.035582523221737036,\n    \"system\": 0.063211345,\n    \"time\": 1.4350577286400001,\n    \"user\": 1.3758691399999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n    \"max\": 1.4350577286400001,\n    \"mean\": 1.38208374564,\n    \"median\": 1.36738143764,\n    \"message\": \"Change tokenization algorithm\\n\",\n    \"min\": 1.35162089564,\n    \"stddev\": 0.035582523221737036,\n    \"system\": 0.063211345,\n    \"time\": 1.36738143764,\n    \"user\": 1.3758691399999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n    \"max\": 1.4350577286400001,\n    \"mean\": 1.38208374564,\n    \"median\": 1.36738143764,\n    \"message\": \"Change tokenization algorithm\\n\",\n    \"min\": 1.35162089564,\n    \"stddev\": 0.035582523221737036,\n    \"system\": 0.063211345,\n    \"time\": 1.35490285364,\n    \"user\": 1.3758691399999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n    \"max\": 1.4350577286400001,\n    \"mean\": 1.38208374564,\n    \"median\": 1.36738143764,\n    \"message\": \"Change tokenization algorithm\\n\",\n    \"min\": 1.35162089564,\n    \"stddev\": 0.035582523221737036,\n    \"system\": 0.063211345,\n    \"time\": 1.35162089564,\n    \"user\": 1.3758691399999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n    \"max\": 1.608484694355,\n    \"mean\": 1.551365087355,\n    \"median\": 1.5627601633550001,\n    \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n    \"min\": 1.500142921355,\n    \"stddev\": 0.04599551229119883,\n    \"system\": 0.06583958999999999,\n    \"time\": 1.500142921355,\n    \"user\": 1.5393822949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n    \"max\": 1.608484694355,\n    \"mean\": 1.551365087355,\n    \"median\": 1.5627601633550001,\n    \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n    \"min\": 1.500142921355,\n    \"stddev\": 0.04599551229119883,\n    \"system\": 0.06583958999999999,\n    \"time\": 1.508832065355,\n    \"user\": 1.5393822949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n    \"max\": 1.608484694355,\n    \"mean\": 1.551365087355,\n    \"median\": 1.5627601633550001,\n    \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n    \"min\": 1.500142921355,\n    \"stddev\": 0.04599551229119883,\n    \"system\": 0.06583958999999999,\n    \"time\": 1.5627601633550001,\n    \"user\": 1.5393822949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n    \"max\": 1.608484694355,\n    \"mean\": 1.551365087355,\n    \"median\": 1.5627601633550001,\n    \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n    \"min\": 1.500142921355,\n    \"stddev\": 0.04599551229119883,\n    \"system\": 0.06583958999999999,\n    \"time\": 1.576605592355,\n    \"user\": 1.5393822949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n    \"max\": 1.608484694355,\n    \"mean\": 1.551365087355,\n    \"median\": 1.5627601633550001,\n    \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n    \"min\": 1.500142921355,\n    \"stddev\": 0.04599551229119883,\n    \"system\": 0.06583958999999999,\n    \"time\": 1.608484694355,\n    \"user\": 1.5393822949999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n    \"max\": 1.401082828415,\n    \"mean\": 1.394299513815,\n    \"median\": 1.3952252414150002,\n    \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n    \"min\": 1.3834161894149999,\n    \"stddev\": 0.0067494589709079155,\n    \"system\": 0.056580845000000005,\n    \"time\": 1.3952252414150002,\n    \"user\": 1.390004735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n    \"max\": 1.401082828415,\n    \"mean\": 1.394299513815,\n    \"median\": 1.3952252414150002,\n    \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n    \"min\": 1.3834161894149999,\n    \"stddev\": 0.0067494589709079155,\n    \"system\": 0.056580845000000005,\n    \"time\": 1.401082828415,\n    \"user\": 1.390004735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n    \"max\": 1.401082828415,\n    \"mean\": 1.394299513815,\n    \"median\": 1.3952252414150002,\n    \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n    \"min\": 1.3834161894149999,\n    \"stddev\": 0.0067494589709079155,\n    \"system\": 0.056580845000000005,\n    \"time\": 1.398322396415,\n    \"user\": 1.390004735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n    \"max\": 1.401082828415,\n    \"mean\": 1.394299513815,\n    \"median\": 1.3952252414150002,\n    \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n    \"min\": 1.3834161894149999,\n    \"stddev\": 0.0067494589709079155,\n    \"system\": 0.056580845000000005,\n    \"time\": 1.393450913415,\n    \"user\": 1.390004735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n    \"max\": 1.401082828415,\n    \"mean\": 1.394299513815,\n    \"median\": 1.3952252414150002,\n    \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n    \"min\": 1.3834161894149999,\n    \"stddev\": 0.0067494589709079155,\n    \"system\": 0.056580845000000005,\n    \"time\": 1.3834161894149999,\n    \"user\": 1.390004735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n    \"max\": 1.45539736432,\n    \"mean\": 1.4182567109200002,\n    \"median\": 1.40469210132,\n    \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n    \"min\": 1.4004749563199999,\n    \"stddev\": 0.023532768118342456,\n    \"system\": 0.058091569999999995,\n    \"time\": 1.42798415032,\n    \"user\": 1.412673735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n    \"max\": 1.45539736432,\n    \"mean\": 1.4182567109200002,\n    \"median\": 1.40469210132,\n    \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n    \"min\": 1.4004749563199999,\n    \"stddev\": 0.023532768118342456,\n    \"system\": 0.058091569999999995,\n    \"time\": 1.40469210132,\n    \"user\": 1.412673735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n    \"max\": 1.45539736432,\n    \"mean\": 1.4182567109200002,\n    \"median\": 1.40469210132,\n    \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n    \"min\": 1.4004749563199999,\n    \"stddev\": 0.023532768118342456,\n    \"system\": 0.058091569999999995,\n    \"time\": 1.4004749563199999,\n    \"user\": 1.412673735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n    \"max\": 1.45539736432,\n    \"mean\": 1.4182567109200002,\n    \"median\": 1.40469210132,\n    \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n    \"min\": 1.4004749563199999,\n    \"stddev\": 0.023532768118342456,\n    \"system\": 0.058091569999999995,\n    \"time\": 1.40273498232,\n    \"user\": 1.412673735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n    \"max\": 1.45539736432,\n    \"mean\": 1.4182567109200002,\n    \"median\": 1.40469210132,\n    \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n    \"min\": 1.4004749563199999,\n    \"stddev\": 0.023532768118342456,\n    \"system\": 0.058091569999999995,\n    \"time\": 1.45539736432,\n    \"user\": 1.412673735\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n    \"max\": 1.4579623372150001,\n    \"mean\": 1.4285062858150002,\n    \"median\": 1.429565405215,\n    \"message\": \"Fix tests\\n\",\n    \"min\": 1.405910749215,\n    \"stddev\": 0.021356383739036273,\n    \"system\": 0.06354424,\n    \"time\": 1.429565405215,\n    \"user\": 1.41690106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n    \"max\": 1.4579623372150001,\n    \"mean\": 1.4285062858150002,\n    \"median\": 1.429565405215,\n    \"message\": \"Fix tests\\n\",\n    \"min\": 1.405910749215,\n    \"stddev\": 0.021356383739036273,\n    \"system\": 0.06354424,\n    \"time\": 1.438928423215,\n    \"user\": 1.41690106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n    \"max\": 1.4579623372150001,\n    \"mean\": 1.4285062858150002,\n    \"median\": 1.429565405215,\n    \"message\": \"Fix tests\\n\",\n    \"min\": 1.405910749215,\n    \"stddev\": 0.021356383739036273,\n    \"system\": 0.06354424,\n    \"time\": 1.4101645142149999,\n    \"user\": 1.41690106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n    \"max\": 1.4579623372150001,\n    \"mean\": 1.4285062858150002,\n    \"median\": 1.429565405215,\n    \"message\": \"Fix tests\\n\",\n    \"min\": 1.405910749215,\n    \"stddev\": 0.021356383739036273,\n    \"system\": 0.06354424,\n    \"time\": 1.405910749215,\n    \"user\": 1.41690106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n    \"max\": 1.4579623372150001,\n    \"mean\": 1.4285062858150002,\n    \"median\": 1.429565405215,\n    \"message\": \"Fix tests\\n\",\n    \"min\": 1.405910749215,\n    \"stddev\": 0.021356383739036273,\n    \"system\": 0.06354424,\n    \"time\": 1.4579623372150001,\n    \"user\": 1.41690106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n    \"max\": 1.49252457683,\n    \"mean\": 1.4476667384300002,\n    \"median\": 1.45978158883,\n    \"message\": \"Use alignment to annotate line pair\\n\",\n    \"min\": 1.40593207383,\n    \"stddev\": 0.03790045223510938,\n    \"system\": 0.06409549,\n    \"time\": 1.46944926483,\n    \"user\": 1.4353083299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n    \"max\": 1.49252457683,\n    \"mean\": 1.4476667384300002,\n    \"median\": 1.45978158883,\n    \"message\": \"Use alignment to annotate line pair\\n\",\n    \"min\": 1.40593207383,\n    \"stddev\": 0.03790045223510938,\n    \"system\": 0.06409549,\n    \"time\": 1.40593207383,\n    \"user\": 1.4353083299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n    \"max\": 1.49252457683,\n    \"mean\": 1.4476667384300002,\n    \"median\": 1.45978158883,\n    \"message\": \"Use alignment to annotate line pair\\n\",\n    \"min\": 1.40593207383,\n    \"stddev\": 0.03790045223510938,\n    \"system\": 0.06409549,\n    \"time\": 1.45978158883,\n    \"user\": 1.4353083299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n    \"max\": 1.49252457683,\n    \"mean\": 1.4476667384300002,\n    \"median\": 1.45978158883,\n    \"message\": \"Use alignment to annotate line pair\\n\",\n    \"min\": 1.40593207383,\n    \"stddev\": 0.03790045223510938,\n    \"system\": 0.06409549,\n    \"time\": 1.49252457683,\n    \"user\": 1.4353083299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n    \"max\": 1.49252457683,\n    \"mean\": 1.4476667384300002,\n    \"median\": 1.45978158883,\n    \"message\": \"Use alignment to annotate line pair\\n\",\n    \"min\": 1.40593207383,\n    \"stddev\": 0.03790045223510938,\n    \"system\": 0.06409549,\n    \"time\": 1.41064618783,\n    \"user\": 1.4353083299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n    \"max\": 1.420639748245,\n    \"mean\": 1.399619065045,\n    \"median\": 1.3969602782450001,\n    \"message\": \"Move run-length encoding\\n\",\n    \"min\": 1.386568210245,\n    \"stddev\": 0.014475683562826325,\n    \"system\": 0.063454375,\n    \"time\": 1.420639748245,\n    \"user\": 1.3839092149999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n    \"max\": 1.420639748245,\n    \"mean\": 1.399619065045,\n    \"median\": 1.3969602782450001,\n    \"message\": \"Move run-length encoding\\n\",\n    \"min\": 1.386568210245,\n    \"stddev\": 0.014475683562826325,\n    \"system\": 0.063454375,\n    \"time\": 1.386568210245,\n    \"user\": 1.3839092149999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n    \"max\": 1.420639748245,\n    \"mean\": 1.399619065045,\n    \"median\": 1.3969602782450001,\n    \"message\": \"Move run-length encoding\\n\",\n    \"min\": 1.386568210245,\n    \"stddev\": 0.014475683562826325,\n    \"system\": 0.063454375,\n    \"time\": 1.407083203245,\n    \"user\": 1.3839092149999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n    \"max\": 1.420639748245,\n    \"mean\": 1.399619065045,\n    \"median\": 1.3969602782450001,\n    \"message\": \"Move run-length encoding\\n\",\n    \"min\": 1.386568210245,\n    \"stddev\": 0.014475683562826325,\n    \"system\": 0.063454375,\n    \"time\": 1.3969602782450001,\n    \"user\": 1.3839092149999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n    \"max\": 1.420639748245,\n    \"mean\": 1.399619065045,\n    \"median\": 1.3969602782450001,\n    \"message\": \"Move run-length encoding\\n\",\n    \"min\": 1.386568210245,\n    \"stddev\": 0.014475683562826325,\n    \"system\": 0.063454375,\n    \"time\": 1.386843885245,\n    \"user\": 1.3839092149999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n    \"max\": 1.43633462241,\n    \"mean\": 1.4193672652100002,\n    \"median\": 1.41348009641,\n    \"message\": \"Compute distance in annotation routine\\n\",\n    \"min\": 1.40206449441,\n    \"stddev\": 0.014753758481636242,\n    \"system\": 0.05827373499999999,\n    \"time\": 1.43318830541,\n    \"user\": 1.4130733450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n    \"max\": 1.43633462241,\n    \"mean\": 1.4193672652100002,\n    \"median\": 1.41348009641,\n    \"message\": \"Compute distance in annotation routine\\n\",\n    \"min\": 1.40206449441,\n    \"stddev\": 0.014753758481636242,\n    \"system\": 0.05827373499999999,\n    \"time\": 1.41176880741,\n    \"user\": 1.4130733450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n    \"max\": 1.43633462241,\n    \"mean\": 1.4193672652100002,\n    \"median\": 1.41348009641,\n    \"message\": \"Compute distance in annotation routine\\n\",\n    \"min\": 1.40206449441,\n    \"stddev\": 0.014753758481636242,\n    \"system\": 0.05827373499999999,\n    \"time\": 1.41348009641,\n    \"user\": 1.4130733450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n    \"max\": 1.43633462241,\n    \"mean\": 1.4193672652100002,\n    \"median\": 1.41348009641,\n    \"message\": \"Compute distance in annotation routine\\n\",\n    \"min\": 1.40206449441,\n    \"stddev\": 0.014753758481636242,\n    \"system\": 0.05827373499999999,\n    \"time\": 1.40206449441,\n    \"user\": 1.4130733450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n    \"max\": 1.43633462241,\n    \"mean\": 1.4193672652100002,\n    \"median\": 1.41348009641,\n    \"message\": \"Compute distance in annotation routine\\n\",\n    \"min\": 1.40206449441,\n    \"stddev\": 0.014753758481636242,\n    \"system\": 0.05827373499999999,\n    \"time\": 1.43633462241,\n    \"user\": 1.4130733450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n    \"max\": 1.4669542843499999,\n    \"mean\": 1.4559502531500002,\n    \"median\": 1.45864702935,\n    \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n    \"min\": 1.44524877235,\n    \"stddev\": 0.009426365046554832,\n    \"system\": 0.057166850000000005,\n    \"time\": 1.4669542843499999,\n    \"user\": 1.4582724599999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n    \"max\": 1.4669542843499999,\n    \"mean\": 1.4559502531500002,\n    \"median\": 1.45864702935,\n    \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n    \"min\": 1.44524877235,\n    \"stddev\": 0.009426365046554832,\n    \"system\": 0.057166850000000005,\n    \"time\": 1.45864702935,\n    \"user\": 1.4582724599999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n    \"max\": 1.4669542843499999,\n    \"mean\": 1.4559502531500002,\n    \"median\": 1.45864702935,\n    \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n    \"min\": 1.44524877235,\n    \"stddev\": 0.009426365046554832,\n    \"system\": 0.057166850000000005,\n    \"time\": 1.46180057135,\n    \"user\": 1.4582724599999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n    \"max\": 1.4669542843499999,\n    \"mean\": 1.4559502531500002,\n    \"median\": 1.45864702935,\n    \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n    \"min\": 1.44524877235,\n    \"stddev\": 0.009426365046554832,\n    \"system\": 0.057166850000000005,\n    \"time\": 1.44710060835,\n    \"user\": 1.4582724599999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n    \"max\": 1.4669542843499999,\n    \"mean\": 1.4559502531500002,\n    \"median\": 1.45864702935,\n    \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n    \"min\": 1.44524877235,\n    \"stddev\": 0.009426365046554832,\n    \"system\": 0.057166850000000005,\n    \"time\": 1.44524877235,\n    \"user\": 1.4582724599999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n    \"max\": 1.43217648408,\n    \"mean\": 1.4074352006800002,\n    \"median\": 1.4006232470800002,\n    \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n    \"min\": 1.3942678560800001,\n    \"stddev\": 0.01559344241824017,\n    \"system\": 0.057862479999999994,\n    \"time\": 1.39701148608,\n    \"user\": 1.4016661049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n    \"max\": 1.43217648408,\n    \"mean\": 1.4074352006800002,\n    \"median\": 1.4006232470800002,\n    \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n    \"min\": 1.3942678560800001,\n    \"stddev\": 0.01559344241824017,\n    \"system\": 0.057862479999999994,\n    \"time\": 1.41309693008,\n    \"user\": 1.4016661049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n    \"max\": 1.43217648408,\n    \"mean\": 1.4074352006800002,\n    \"median\": 1.4006232470800002,\n    \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n    \"min\": 1.3942678560800001,\n    \"stddev\": 0.01559344241824017,\n    \"system\": 0.057862479999999994,\n    \"time\": 1.43217648408,\n    \"user\": 1.4016661049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n    \"max\": 1.43217648408,\n    \"mean\": 1.4074352006800002,\n    \"median\": 1.4006232470800002,\n    \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n    \"min\": 1.3942678560800001,\n    \"stddev\": 0.01559344241824017,\n    \"system\": 0.057862479999999994,\n    \"time\": 1.4006232470800002,\n    \"user\": 1.4016661049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n    \"max\": 1.43217648408,\n    \"mean\": 1.4074352006800002,\n    \"median\": 1.4006232470800002,\n    \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n    \"min\": 1.3942678560800001,\n    \"stddev\": 0.01559344241824017,\n    \"system\": 0.057862479999999994,\n    \"time\": 1.3942678560800001,\n    \"user\": 1.4016661049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n    \"max\": 1.457694638095,\n    \"mean\": 1.4509191396949999,\n    \"median\": 1.4536211670949999,\n    \"message\": \"Edit docstrings and comments\\n\",\n    \"min\": 1.443283054095,\n    \"stddev\": 0.006683422515641823,\n    \"system\": 0.05704848999999999,\n    \"time\": 1.457694638095,\n    \"user\": 1.4541058850000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n    \"max\": 1.457694638095,\n    \"mean\": 1.4509191396949999,\n    \"median\": 1.4536211670949999,\n    \"message\": \"Edit docstrings and comments\\n\",\n    \"min\": 1.443283054095,\n    \"stddev\": 0.006683422515641823,\n    \"system\": 0.05704848999999999,\n    \"time\": 1.4536211670949999,\n    \"user\": 1.4541058850000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n    \"max\": 1.457694638095,\n    \"mean\": 1.4509191396949999,\n    \"median\": 1.4536211670949999,\n    \"message\": \"Edit docstrings and comments\\n\",\n    \"min\": 1.443283054095,\n    \"stddev\": 0.006683422515641823,\n    \"system\": 0.05704848999999999,\n    \"time\": 1.455719388095,\n    \"user\": 1.4541058850000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n    \"max\": 1.457694638095,\n    \"mean\": 1.4509191396949999,\n    \"median\": 1.4536211670949999,\n    \"message\": \"Edit docstrings and comments\\n\",\n    \"min\": 1.443283054095,\n    \"stddev\": 0.006683422515641823,\n    \"system\": 0.05704848999999999,\n    \"time\": 1.443283054095,\n    \"user\": 1.4541058850000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n    \"max\": 1.457694638095,\n    \"mean\": 1.4509191396949999,\n    \"median\": 1.4536211670949999,\n    \"message\": \"Edit docstrings and comments\\n\",\n    \"min\": 1.443283054095,\n    \"stddev\": 0.006683422515641823,\n    \"system\": 0.05704848999999999,\n    \"time\": 1.444277451095,\n    \"user\": 1.4541058850000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n    \"max\": 1.5199449962249998,\n    \"mean\": 1.4759515694249998,\n    \"median\": 1.463586556225,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.455293196225,\n    \"stddev\": 0.026267746034283296,\n    \"system\": 0.05891765,\n    \"time\": 1.455293196225,\n    \"user\": 1.4770496299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n    \"max\": 1.5199449962249998,\n    \"mean\": 1.4759515694249998,\n    \"median\": 1.463586556225,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.455293196225,\n    \"stddev\": 0.026267746034283296,\n    \"system\": 0.05891765,\n    \"time\": 1.4800770512249999,\n    \"user\": 1.4770496299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n    \"max\": 1.5199449962249998,\n    \"mean\": 1.4759515694249998,\n    \"median\": 1.463586556225,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.455293196225,\n    \"stddev\": 0.026267746034283296,\n    \"system\": 0.05891765,\n    \"time\": 1.5199449962249998,\n    \"user\": 1.4770496299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n    \"max\": 1.5199449962249998,\n    \"mean\": 1.4759515694249998,\n    \"median\": 1.463586556225,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.455293196225,\n    \"stddev\": 0.026267746034283296,\n    \"system\": 0.05891765,\n    \"time\": 1.463586556225,\n    \"user\": 1.4770496299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n    \"max\": 1.5199449962249998,\n    \"mean\": 1.4759515694249998,\n    \"median\": 1.463586556225,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.455293196225,\n    \"stddev\": 0.026267746034283296,\n    \"system\": 0.05891765,\n    \"time\": 1.4608560472249998,\n    \"user\": 1.4770496299999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n    \"max\": 1.464413535675,\n    \"mean\": 1.4489773606749998,\n    \"median\": 1.446718431675,\n    \"message\": \"Clippy\\n\",\n    \"min\": 1.437409905675,\n    \"stddev\": 0.010754239028816129,\n    \"system\": 0.055551545,\n    \"time\": 1.454658397675,\n    \"user\": 1.4526881499999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n    \"max\": 1.464413535675,\n    \"mean\": 1.4489773606749998,\n    \"median\": 1.446718431675,\n    \"message\": \"Clippy\\n\",\n    \"min\": 1.437409905675,\n    \"stddev\": 0.010754239028816129,\n    \"system\": 0.055551545,\n    \"time\": 1.446718431675,\n    \"user\": 1.4526881499999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n    \"max\": 1.464413535675,\n    \"mean\": 1.4489773606749998,\n    \"median\": 1.446718431675,\n    \"message\": \"Clippy\\n\",\n    \"min\": 1.437409905675,\n    \"stddev\": 0.010754239028816129,\n    \"system\": 0.055551545,\n    \"time\": 1.441686532675,\n    \"user\": 1.4526881499999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n    \"max\": 1.464413535675,\n    \"mean\": 1.4489773606749998,\n    \"median\": 1.446718431675,\n    \"message\": \"Clippy\\n\",\n    \"min\": 1.437409905675,\n    \"stddev\": 0.010754239028816129,\n    \"system\": 0.055551545,\n    \"time\": 1.464413535675,\n    \"user\": 1.4526881499999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n    \"max\": 1.464413535675,\n    \"mean\": 1.4489773606749998,\n    \"median\": 1.446718431675,\n    \"message\": \"Clippy\\n\",\n    \"min\": 1.437409905675,\n    \"stddev\": 0.010754239028816129,\n    \"system\": 0.055551545,\n    \"time\": 1.437409905675,\n    \"user\": 1.4526881499999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n    \"max\": 1.54297443287,\n    \"mean\": 1.51880891407,\n    \"median\": 1.53307311687,\n    \"message\": \"Commit Cargo.lock\\n\",\n    \"min\": 1.47251042287,\n    \"stddev\": 0.028698063186810334,\n    \"system\": 0.061138805,\n    \"time\": 1.53307311687,\n    \"user\": 1.51645085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n    \"max\": 1.54297443287,\n    \"mean\": 1.51880891407,\n    \"median\": 1.53307311687,\n    \"message\": \"Commit Cargo.lock\\n\",\n    \"min\": 1.47251042287,\n    \"stddev\": 0.028698063186810334,\n    \"system\": 0.061138805,\n    \"time\": 1.47251042287,\n    \"user\": 1.51645085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n    \"max\": 1.54297443287,\n    \"mean\": 1.51880891407,\n    \"median\": 1.53307311687,\n    \"message\": \"Commit Cargo.lock\\n\",\n    \"min\": 1.47251042287,\n    \"stddev\": 0.028698063186810334,\n    \"system\": 0.061138805,\n    \"time\": 1.50985209087,\n    \"user\": 1.51645085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n    \"max\": 1.54297443287,\n    \"mean\": 1.51880891407,\n    \"median\": 1.53307311687,\n    \"message\": \"Commit Cargo.lock\\n\",\n    \"min\": 1.47251042287,\n    \"stddev\": 0.028698063186810334,\n    \"system\": 0.061138805,\n    \"time\": 1.54297443287,\n    \"user\": 1.51645085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n    \"max\": 1.54297443287,\n    \"mean\": 1.51880891407,\n    \"median\": 1.53307311687,\n    \"message\": \"Commit Cargo.lock\\n\",\n    \"min\": 1.47251042287,\n    \"stddev\": 0.028698063186810334,\n    \"system\": 0.061138805,\n    \"time\": 1.53563450687,\n    \"user\": 1.51645085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n    \"max\": 1.42813345266,\n    \"mean\": 1.40997422186,\n    \"median\": 1.41326262366,\n    \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n    \"min\": 1.38508255766,\n    \"stddev\": 0.0192294295567053,\n    \"system\": 0.060868069999999996,\n    \"time\": 1.42813345266,\n    \"user\": 1.407846595\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n    \"max\": 1.42813345266,\n    \"mean\": 1.40997422186,\n    \"median\": 1.41326262366,\n    \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n    \"min\": 1.38508255766,\n    \"stddev\": 0.0192294295567053,\n    \"system\": 0.060868069999999996,\n    \"time\": 1.41326262366,\n    \"user\": 1.407846595\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n    \"max\": 1.42813345266,\n    \"mean\": 1.40997422186,\n    \"median\": 1.41326262366,\n    \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n    \"min\": 1.38508255766,\n    \"stddev\": 0.0192294295567053,\n    \"system\": 0.060868069999999996,\n    \"time\": 1.39568082366,\n    \"user\": 1.407846595\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n    \"max\": 1.42813345266,\n    \"mean\": 1.40997422186,\n    \"median\": 1.41326262366,\n    \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n    \"min\": 1.38508255766,\n    \"stddev\": 0.0192294295567053,\n    \"system\": 0.060868069999999996,\n    \"time\": 1.4277116516600001,\n    \"user\": 1.407846595\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n    \"max\": 1.42813345266,\n    \"mean\": 1.40997422186,\n    \"median\": 1.41326262366,\n    \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n    \"min\": 1.38508255766,\n    \"stddev\": 0.0192294295567053,\n    \"system\": 0.060868069999999996,\n    \"time\": 1.38508255766,\n    \"user\": 1.407846595\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n    \"max\": 1.46466153691,\n    \"mean\": 1.4345096167100002,\n    \"median\": 1.44067494291,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.4002270299100001,\n    \"stddev\": 0.024832090717049247,\n    \"system\": 0.06195311,\n    \"time\": 1.42041528991,\n    \"user\": 1.426602685\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n    \"max\": 1.46466153691,\n    \"mean\": 1.4345096167100002,\n    \"median\": 1.44067494291,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.4002270299100001,\n    \"stddev\": 0.024832090717049247,\n    \"system\": 0.06195311,\n    \"time\": 1.44656928391,\n    \"user\": 1.426602685\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n    \"max\": 1.46466153691,\n    \"mean\": 1.4345096167100002,\n    \"median\": 1.44067494291,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.4002270299100001,\n    \"stddev\": 0.024832090717049247,\n    \"system\": 0.06195311,\n    \"time\": 1.46466153691,\n    \"user\": 1.426602685\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n    \"max\": 1.46466153691,\n    \"mean\": 1.4345096167100002,\n    \"median\": 1.44067494291,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.4002270299100001,\n    \"stddev\": 0.024832090717049247,\n    \"system\": 0.06195311,\n    \"time\": 1.4002270299100001,\n    \"user\": 1.426602685\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n    \"max\": 1.46466153691,\n    \"mean\": 1.4345096167100002,\n    \"median\": 1.44067494291,\n    \"message\": \"Bump homebrew formula\\n\",\n    \"min\": 1.4002270299100001,\n    \"stddev\": 0.024832090717049247,\n    \"system\": 0.06195311,\n    \"time\": 1.44067494291,\n    \"user\": 1.426602685\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n    \"max\": 1.590179937355,\n    \"mean\": 1.563357085355,\n    \"median\": 1.555865405355,\n    \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n    \"min\": 1.5435781163550002,\n    \"stddev\": 0.020975425832910722,\n    \"system\": 0.055685004999999996,\n    \"time\": 1.590179937355,\n    \"user\": 1.5649283150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n    \"max\": 1.590179937355,\n    \"mean\": 1.563357085355,\n    \"median\": 1.555865405355,\n    \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n    \"min\": 1.5435781163550002,\n    \"stddev\": 0.020975425832910722,\n    \"system\": 0.055685004999999996,\n    \"time\": 1.5435781163550002,\n    \"user\": 1.5649283150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n    \"max\": 1.590179937355,\n    \"mean\": 1.563357085355,\n    \"median\": 1.555865405355,\n    \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n    \"min\": 1.5435781163550002,\n    \"stddev\": 0.020975425832910722,\n    \"system\": 0.055685004999999996,\n    \"time\": 1.546362165355,\n    \"user\": 1.5649283150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n    \"max\": 1.590179937355,\n    \"mean\": 1.563357085355,\n    \"median\": 1.555865405355,\n    \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n    \"min\": 1.5435781163550002,\n    \"stddev\": 0.020975425832910722,\n    \"system\": 0.055685004999999996,\n    \"time\": 1.555865405355,\n    \"user\": 1.5649283150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n    \"max\": 1.590179937355,\n    \"mean\": 1.563357085355,\n    \"median\": 1.555865405355,\n    \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n    \"min\": 1.5435781163550002,\n    \"stddev\": 0.020975425832910722,\n    \"system\": 0.055685004999999996,\n    \"time\": 1.580799802355,\n    \"user\": 1.5649283150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n    \"max\": 1.61201628893,\n    \"mean\": 1.59386400973,\n    \"median\": 1.59278190393,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.5824494499300001,\n    \"stddev\": 0.012024158886520845,\n    \"system\": 0.06087510999999999,\n    \"time\": 1.59278190393,\n    \"user\": 1.5909822949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n    \"max\": 1.61201628893,\n    \"mean\": 1.59386400973,\n    \"median\": 1.59278190393,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.5824494499300001,\n    \"stddev\": 0.012024158886520845,\n    \"system\": 0.06087510999999999,\n    \"time\": 1.59815519993,\n    \"user\": 1.5909822949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n    \"max\": 1.61201628893,\n    \"mean\": 1.59386400973,\n    \"median\": 1.59278190393,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.5824494499300001,\n    \"stddev\": 0.012024158886520845,\n    \"system\": 0.06087510999999999,\n    \"time\": 1.58391720593,\n    \"user\": 1.5909822949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n    \"max\": 1.61201628893,\n    \"mean\": 1.59386400973,\n    \"median\": 1.59278190393,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.5824494499300001,\n    \"stddev\": 0.012024158886520845,\n    \"system\": 0.06087510999999999,\n    \"time\": 1.61201628893,\n    \"user\": 1.5909822949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n    \"max\": 1.61201628893,\n    \"mean\": 1.59386400973,\n    \"median\": 1.59278190393,\n    \"message\": \"Clean up\\n\",\n    \"min\": 1.5824494499300001,\n    \"stddev\": 0.012024158886520845,\n    \"system\": 0.06087510999999999,\n    \"time\": 1.5824494499300001,\n    \"user\": 1.5909822949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n    \"max\": 1.621485896845,\n    \"mean\": 1.6107052696450002,\n    \"median\": 1.6163679248450002,\n    \"message\": \"Add test of edits inference\\n\",\n    \"min\": 1.592269030845,\n    \"stddev\": 0.011929734751172549,\n    \"system\": 0.061977359999999995,\n    \"time\": 1.605412635845,\n    \"user\": 1.6054619799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n    \"max\": 1.621485896845,\n    \"mean\": 1.6107052696450002,\n    \"median\": 1.6163679248450002,\n    \"message\": \"Add test of edits inference\\n\",\n    \"min\": 1.592269030845,\n    \"stddev\": 0.011929734751172549,\n    \"system\": 0.061977359999999995,\n    \"time\": 1.6179908598450001,\n    \"user\": 1.6054619799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n    \"max\": 1.621485896845,\n    \"mean\": 1.6107052696450002,\n    \"median\": 1.6163679248450002,\n    \"message\": \"Add test of edits inference\\n\",\n    \"min\": 1.592269030845,\n    \"stddev\": 0.011929734751172549,\n    \"system\": 0.061977359999999995,\n    \"time\": 1.621485896845,\n    \"user\": 1.6054619799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n    \"max\": 1.621485896845,\n    \"mean\": 1.6107052696450002,\n    \"median\": 1.6163679248450002,\n    \"message\": \"Add test of edits inference\\n\",\n    \"min\": 1.592269030845,\n    \"stddev\": 0.011929734751172549,\n    \"system\": 0.061977359999999995,\n    \"time\": 1.6163679248450002,\n    \"user\": 1.6054619799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n    \"max\": 1.621485896845,\n    \"mean\": 1.6107052696450002,\n    \"median\": 1.6163679248450002,\n    \"message\": \"Add test of edits inference\\n\",\n    \"min\": 1.592269030845,\n    \"stddev\": 0.011929734751172549,\n    \"system\": 0.061977359999999995,\n    \"time\": 1.592269030845,\n    \"user\": 1.6054619799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n    \"max\": 1.6413305397600002,\n    \"mean\": 1.61770353576,\n    \"median\": 1.6081095437600001,\n    \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n    \"min\": 1.5972068737600003,\n    \"stddev\": 0.01925017263245204,\n    \"system\": 0.062551725,\n    \"time\": 1.6349173857600001,\n    \"user\": 1.612231185\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n    \"max\": 1.6413305397600002,\n    \"mean\": 1.61770353576,\n    \"median\": 1.6081095437600001,\n    \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n    \"min\": 1.5972068737600003,\n    \"stddev\": 0.01925017263245204,\n    \"system\": 0.062551725,\n    \"time\": 1.6413305397600002,\n    \"user\": 1.612231185\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n    \"max\": 1.6413305397600002,\n    \"mean\": 1.61770353576,\n    \"median\": 1.6081095437600001,\n    \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n    \"min\": 1.5972068737600003,\n    \"stddev\": 0.01925017263245204,\n    \"system\": 0.062551725,\n    \"time\": 1.6081095437600001,\n    \"user\": 1.612231185\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n    \"max\": 1.6413305397600002,\n    \"mean\": 1.61770353576,\n    \"median\": 1.6081095437600001,\n    \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n    \"min\": 1.5972068737600003,\n    \"stddev\": 0.01925017263245204,\n    \"system\": 0.062551725,\n    \"time\": 1.60695333576,\n    \"user\": 1.612231185\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n    \"max\": 1.6413305397600002,\n    \"mean\": 1.61770353576,\n    \"median\": 1.6081095437600001,\n    \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n    \"min\": 1.5972068737600003,\n    \"stddev\": 0.01925017263245204,\n    \"system\": 0.062551725,\n    \"time\": 1.5972068737600003,\n    \"user\": 1.612231185\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n    \"max\": 1.637437942535,\n    \"mean\": 1.6164849547349998,\n    \"median\": 1.618484266535,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.603655279535,\n    \"stddev\": 0.013846908196829743,\n    \"system\": 0.061425045,\n    \"time\": 1.6187751115350002,\n    \"user\": 1.612314365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n    \"max\": 1.637437942535,\n    \"mean\": 1.6164849547349998,\n    \"median\": 1.618484266535,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.603655279535,\n    \"stddev\": 0.013846908196829743,\n    \"system\": 0.061425045,\n    \"time\": 1.604072173535,\n    \"user\": 1.612314365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n    \"max\": 1.637437942535,\n    \"mean\": 1.6164849547349998,\n    \"median\": 1.618484266535,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.603655279535,\n    \"stddev\": 0.013846908196829743,\n    \"system\": 0.061425045,\n    \"time\": 1.618484266535,\n    \"user\": 1.612314365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n    \"max\": 1.637437942535,\n    \"mean\": 1.6164849547349998,\n    \"median\": 1.618484266535,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.603655279535,\n    \"stddev\": 0.013846908196829743,\n    \"system\": 0.061425045,\n    \"time\": 1.637437942535,\n    \"user\": 1.612314365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n    \"max\": 1.637437942535,\n    \"mean\": 1.6164849547349998,\n    \"median\": 1.618484266535,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.603655279535,\n    \"stddev\": 0.013846908196829743,\n    \"system\": 0.061425045,\n    \"time\": 1.603655279535,\n    \"user\": 1.612314365\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n    \"max\": 1.6212467009800002,\n    \"mean\": 1.6089015339800004,\n    \"median\": 1.60846024998,\n    \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n    \"min\": 1.6012375569800001,\n    \"stddev\": 0.008067020267933584,\n    \"system\": 0.062109700000000004,\n    \"time\": 1.6212467009800002,\n    \"user\": 1.60435478\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n    \"max\": 1.6212467009800002,\n    \"mean\": 1.6089015339800004,\n    \"median\": 1.60846024998,\n    \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n    \"min\": 1.6012375569800001,\n    \"stddev\": 0.008067020267933584,\n    \"system\": 0.062109700000000004,\n    \"time\": 1.6012375569800001,\n    \"user\": 1.60435478\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n    \"max\": 1.6212467009800002,\n    \"mean\": 1.6089015339800004,\n    \"median\": 1.60846024998,\n    \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n    \"min\": 1.6012375569800001,\n    \"stddev\": 0.008067020267933584,\n    \"system\": 0.062109700000000004,\n    \"time\": 1.6023103149800002,\n    \"user\": 1.60435478\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n    \"max\": 1.6212467009800002,\n    \"mean\": 1.6089015339800004,\n    \"median\": 1.60846024998,\n    \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n    \"min\": 1.6012375569800001,\n    \"stddev\": 0.008067020267933584,\n    \"system\": 0.062109700000000004,\n    \"time\": 1.61125284698,\n    \"user\": 1.60435478\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n    \"max\": 1.6212467009800002,\n    \"mean\": 1.6089015339800004,\n    \"median\": 1.60846024998,\n    \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n    \"min\": 1.6012375569800001,\n    \"stddev\": 0.008067020267933584,\n    \"system\": 0.062109700000000004,\n    \"time\": 1.60846024998,\n    \"user\": 1.60435478\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n    \"max\": 1.641600140495,\n    \"mean\": 1.627325209895,\n    \"median\": 1.626981257495,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.614347583495,\n    \"stddev\": 0.012139619102070037,\n    \"system\": 0.06288722499999999,\n    \"time\": 1.6164390134950002,\n    \"user\": 1.622033415\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n    \"max\": 1.641600140495,\n    \"mean\": 1.627325209895,\n    \"median\": 1.626981257495,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.614347583495,\n    \"stddev\": 0.012139619102070037,\n    \"system\": 0.06288722499999999,\n    \"time\": 1.614347583495,\n    \"user\": 1.622033415\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n    \"max\": 1.641600140495,\n    \"mean\": 1.627325209895,\n    \"median\": 1.626981257495,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.614347583495,\n    \"stddev\": 0.012139619102070037,\n    \"system\": 0.06288722499999999,\n    \"time\": 1.626981257495,\n    \"user\": 1.622033415\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n    \"max\": 1.641600140495,\n    \"mean\": 1.627325209895,\n    \"median\": 1.626981257495,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.614347583495,\n    \"stddev\": 0.012139619102070037,\n    \"system\": 0.06288722499999999,\n    \"time\": 1.637258054495,\n    \"user\": 1.622033415\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n    \"max\": 1.641600140495,\n    \"mean\": 1.627325209895,\n    \"median\": 1.626981257495,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.614347583495,\n    \"stddev\": 0.012139619102070037,\n    \"system\": 0.06288722499999999,\n    \"time\": 1.641600140495,\n    \"user\": 1.622033415\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n    \"max\": 1.622419431635,\n    \"mean\": 1.6116969494349997,\n    \"median\": 1.607625640635,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.606633670635,\n    \"stddev\": 0.006759544281428719,\n    \"system\": 0.06220397499999999,\n    \"time\": 1.622419431635,\n    \"user\": 1.607890945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n    \"max\": 1.622419431635,\n    \"mean\": 1.6116969494349997,\n    \"median\": 1.607625640635,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.606633670635,\n    \"stddev\": 0.006759544281428719,\n    \"system\": 0.06220397499999999,\n    \"time\": 1.607415805635,\n    \"user\": 1.607890945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n    \"max\": 1.622419431635,\n    \"mean\": 1.6116969494349997,\n    \"median\": 1.607625640635,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.606633670635,\n    \"stddev\": 0.006759544281428719,\n    \"system\": 0.06220397499999999,\n    \"time\": 1.606633670635,\n    \"user\": 1.607890945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n    \"max\": 1.622419431635,\n    \"mean\": 1.6116969494349997,\n    \"median\": 1.607625640635,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.606633670635,\n    \"stddev\": 0.006759544281428719,\n    \"system\": 0.06220397499999999,\n    \"time\": 1.607625640635,\n    \"user\": 1.607890945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n    \"max\": 1.622419431635,\n    \"mean\": 1.6116969494349997,\n    \"median\": 1.607625640635,\n    \"message\": \"Add failing test of edits inference\\n\",\n    \"min\": 1.606633670635,\n    \"stddev\": 0.006759544281428719,\n    \"system\": 0.06220397499999999,\n    \"time\": 1.614390198635,\n    \"user\": 1.607890945\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n    \"max\": 1.63780117669,\n    \"mean\": 1.6199484198899998,\n    \"median\": 1.62120694969,\n    \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n    \"min\": 1.59689807669,\n    \"stddev\": 0.014894807104280887,\n    \"system\": 0.061676224999999994,\n    \"time\": 1.62120694969,\n    \"user\": 1.6161418599999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n    \"max\": 1.63780117669,\n    \"mean\": 1.6199484198899998,\n    \"median\": 1.62120694969,\n    \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n    \"min\": 1.59689807669,\n    \"stddev\": 0.014894807104280887,\n    \"system\": 0.061676224999999994,\n    \"time\": 1.63780117669,\n    \"user\": 1.6161418599999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n    \"max\": 1.63780117669,\n    \"mean\": 1.6199484198899998,\n    \"median\": 1.62120694969,\n    \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n    \"min\": 1.59689807669,\n    \"stddev\": 0.014894807104280887,\n    \"system\": 0.061676224999999994,\n    \"time\": 1.61817362669,\n    \"user\": 1.6161418599999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n    \"max\": 1.63780117669,\n    \"mean\": 1.6199484198899998,\n    \"median\": 1.62120694969,\n    \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n    \"min\": 1.59689807669,\n    \"stddev\": 0.014894807104280887,\n    \"system\": 0.061676224999999994,\n    \"time\": 1.62566226969,\n    \"user\": 1.6161418599999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n    \"max\": 1.63780117669,\n    \"mean\": 1.6199484198899998,\n    \"median\": 1.62120694969,\n    \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n    \"min\": 1.59689807669,\n    \"stddev\": 0.014894807104280887,\n    \"system\": 0.061676224999999994,\n    \"time\": 1.59689807669,\n    \"user\": 1.6161418599999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n    \"max\": 1.6222089615150002,\n    \"mean\": 1.6118496819150003,\n    \"median\": 1.6080535775150002,\n    \"message\": \"Ignore failing test\\n\",\n    \"min\": 1.606769350515,\n    \"stddev\": 0.006566068384774224,\n    \"system\": 0.061459405,\n    \"time\": 1.6222089615150002,\n    \"user\": 1.607356195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n    \"max\": 1.6222089615150002,\n    \"mean\": 1.6118496819150003,\n    \"median\": 1.6080535775150002,\n    \"message\": \"Ignore failing test\\n\",\n    \"min\": 1.606769350515,\n    \"stddev\": 0.006566068384774224,\n    \"system\": 0.061459405,\n    \"time\": 1.6145592565150002,\n    \"user\": 1.607356195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n    \"max\": 1.6222089615150002,\n    \"mean\": 1.6118496819150003,\n    \"median\": 1.6080535775150002,\n    \"message\": \"Ignore failing test\\n\",\n    \"min\": 1.606769350515,\n    \"stddev\": 0.006566068384774224,\n    \"system\": 0.061459405,\n    \"time\": 1.6076572635150002,\n    \"user\": 1.607356195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n    \"max\": 1.6222089615150002,\n    \"mean\": 1.6118496819150003,\n    \"median\": 1.6080535775150002,\n    \"message\": \"Ignore failing test\\n\",\n    \"min\": 1.606769350515,\n    \"stddev\": 0.006566068384774224,\n    \"system\": 0.061459405,\n    \"time\": 1.6080535775150002,\n    \"user\": 1.607356195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n    \"max\": 1.6222089615150002,\n    \"mean\": 1.6118496819150003,\n    \"median\": 1.6080535775150002,\n    \"message\": \"Ignore failing test\\n\",\n    \"min\": 1.606769350515,\n    \"stddev\": 0.006566068384774224,\n    \"system\": 0.061459405,\n    \"time\": 1.606769350515,\n    \"user\": 1.607356195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n    \"max\": 1.677938599895,\n    \"mean\": 1.6453449510950002,\n    \"median\": 1.648351388895,\n    \"message\": \"Update performance visualization\\n\",\n    \"min\": 1.6190460768950001,\n    \"stddev\": 0.022761516667121406,\n    \"system\": 0.063377515,\n    \"time\": 1.648351388895,\n    \"user\": 1.63907159\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n    \"max\": 1.677938599895,\n    \"mean\": 1.6453449510950002,\n    \"median\": 1.648351388895,\n    \"message\": \"Update performance visualization\\n\",\n    \"min\": 1.6190460768950001,\n    \"stddev\": 0.022761516667121406,\n    \"system\": 0.063377515,\n    \"time\": 1.629160158895,\n    \"user\": 1.63907159\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n    \"max\": 1.677938599895,\n    \"mean\": 1.6453449510950002,\n    \"median\": 1.648351388895,\n    \"message\": \"Update performance visualization\\n\",\n    \"min\": 1.6190460768950001,\n    \"stddev\": 0.022761516667121406,\n    \"system\": 0.063377515,\n    \"time\": 1.6190460768950001,\n    \"user\": 1.63907159\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n    \"max\": 1.677938599895,\n    \"mean\": 1.6453449510950002,\n    \"median\": 1.648351388895,\n    \"message\": \"Update performance visualization\\n\",\n    \"min\": 1.6190460768950001,\n    \"stddev\": 0.022761516667121406,\n    \"system\": 0.063377515,\n    \"time\": 1.677938599895,\n    \"user\": 1.63907159\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n    \"max\": 1.677938599895,\n    \"mean\": 1.6453449510950002,\n    \"median\": 1.648351388895,\n    \"message\": \"Update performance visualization\\n\",\n    \"min\": 1.6190460768950001,\n    \"stddev\": 0.022761516667121406,\n    \"system\": 0.063377515,\n    \"time\": 1.652228530895,\n    \"user\": 1.63907159\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n    \"max\": 1.7197722005050002,\n    \"mean\": 1.675659356505,\n    \"median\": 1.6716182405050002,\n    \"message\": \"Fix hunk meta line decoration\\n\",\n    \"min\": 1.637142722505,\n    \"stddev\": 0.03583533151027913,\n    \"system\": 0.068091395,\n    \"time\": 1.637142722505,\n    \"user\": 1.6640438899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n    \"max\": 1.7197722005050002,\n    \"mean\": 1.675659356505,\n    \"median\": 1.6716182405050002,\n    \"message\": \"Fix hunk meta line decoration\\n\",\n    \"min\": 1.637142722505,\n    \"stddev\": 0.03583533151027913,\n    \"system\": 0.068091395,\n    \"time\": 1.6458157635050001,\n    \"user\": 1.6640438899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n    \"max\": 1.7197722005050002,\n    \"mean\": 1.675659356505,\n    \"median\": 1.6716182405050002,\n    \"message\": \"Fix hunk meta line decoration\\n\",\n    \"min\": 1.637142722505,\n    \"stddev\": 0.03583533151027913,\n    \"system\": 0.068091395,\n    \"time\": 1.6716182405050002,\n    \"user\": 1.6640438899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n    \"max\": 1.7197722005050002,\n    \"mean\": 1.675659356505,\n    \"median\": 1.6716182405050002,\n    \"message\": \"Fix hunk meta line decoration\\n\",\n    \"min\": 1.637142722505,\n    \"stddev\": 0.03583533151027913,\n    \"system\": 0.068091395,\n    \"time\": 1.7197722005050002,\n    \"user\": 1.6640438899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n    \"max\": 1.7197722005050002,\n    \"mean\": 1.675659356505,\n    \"median\": 1.6716182405050002,\n    \"message\": \"Fix hunk meta line decoration\\n\",\n    \"min\": 1.637142722505,\n    \"stddev\": 0.03583533151027913,\n    \"system\": 0.068091395,\n    \"time\": 1.703947855505,\n    \"user\": 1.6640438899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n    \"max\": 1.7130768845100002,\n    \"mean\": 1.6620958585100003,\n    \"median\": 1.65101542051,\n    \"message\": \"Delete failing CI builds\\n\",\n    \"min\": 1.6297884715100002,\n    \"stddev\": 0.036268979875692664,\n    \"system\": 0.06681749,\n    \"time\": 1.6853854065100002,\n    \"user\": 1.6506615249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n    \"max\": 1.7130768845100002,\n    \"mean\": 1.6620958585100003,\n    \"median\": 1.65101542051,\n    \"message\": \"Delete failing CI builds\\n\",\n    \"min\": 1.6297884715100002,\n    \"stddev\": 0.036268979875692664,\n    \"system\": 0.06681749,\n    \"time\": 1.7130768845100002,\n    \"user\": 1.6506615249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n    \"max\": 1.7130768845100002,\n    \"mean\": 1.6620958585100003,\n    \"median\": 1.65101542051,\n    \"message\": \"Delete failing CI builds\\n\",\n    \"min\": 1.6297884715100002,\n    \"stddev\": 0.036268979875692664,\n    \"system\": 0.06681749,\n    \"time\": 1.65101542051,\n    \"user\": 1.6506615249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n    \"max\": 1.7130768845100002,\n    \"mean\": 1.6620958585100003,\n    \"median\": 1.65101542051,\n    \"message\": \"Delete failing CI builds\\n\",\n    \"min\": 1.6297884715100002,\n    \"stddev\": 0.036268979875692664,\n    \"system\": 0.06681749,\n    \"time\": 1.6312131095100002,\n    \"user\": 1.6506615249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n    \"max\": 1.7130768845100002,\n    \"mean\": 1.6620958585100003,\n    \"median\": 1.65101542051,\n    \"message\": \"Delete failing CI builds\\n\",\n    \"min\": 1.6297884715100002,\n    \"stddev\": 0.036268979875692664,\n    \"system\": 0.06681749,\n    \"time\": 1.6297884715100002,\n    \"user\": 1.6506615249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n    \"max\": 1.8051302245549998,\n    \"mean\": 1.743689329555,\n    \"median\": 1.7104908745549998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.695918350555,\n    \"stddev\": 0.054514379152339816,\n    \"system\": 0.073357325,\n    \"time\": 1.7104908745549998,\n    \"user\": 1.719667045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n    \"max\": 1.8051302245549998,\n    \"mean\": 1.743689329555,\n    \"median\": 1.7104908745549998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.695918350555,\n    \"stddev\": 0.054514379152339816,\n    \"system\": 0.073357325,\n    \"time\": 1.801084475555,\n    \"user\": 1.719667045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n    \"max\": 1.8051302245549998,\n    \"mean\": 1.743689329555,\n    \"median\": 1.7104908745549998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.695918350555,\n    \"stddev\": 0.054514379152339816,\n    \"system\": 0.073357325,\n    \"time\": 1.8051302245549998,\n    \"user\": 1.719667045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n    \"max\": 1.8051302245549998,\n    \"mean\": 1.743689329555,\n    \"median\": 1.7104908745549998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.695918350555,\n    \"stddev\": 0.054514379152339816,\n    \"system\": 0.073357325,\n    \"time\": 1.695918350555,\n    \"user\": 1.719667045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n    \"max\": 1.8051302245549998,\n    \"mean\": 1.743689329555,\n    \"median\": 1.7104908745549998,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.695918350555,\n    \"stddev\": 0.054514379152339816,\n    \"system\": 0.073357325,\n    \"time\": 1.705822722555,\n    \"user\": 1.719667045\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n    \"max\": 1.8351394702150001,\n    \"mean\": 1.756211987015,\n    \"median\": 1.7577498252150001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.666282008215,\n    \"stddev\": 0.05998602394043235,\n    \"system\": 0.080410175,\n    \"time\": 1.7571240562150001,\n    \"user\": 1.7294329300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n    \"max\": 1.8351394702150001,\n    \"mean\": 1.756211987015,\n    \"median\": 1.7577498252150001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.666282008215,\n    \"stddev\": 0.05998602394043235,\n    \"system\": 0.080410175,\n    \"time\": 1.8351394702150001,\n    \"user\": 1.7294329300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n    \"max\": 1.8351394702150001,\n    \"mean\": 1.756211987015,\n    \"median\": 1.7577498252150001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.666282008215,\n    \"stddev\": 0.05998602394043235,\n    \"system\": 0.080410175,\n    \"time\": 1.7577498252150001,\n    \"user\": 1.7294329300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n    \"max\": 1.8351394702150001,\n    \"mean\": 1.756211987015,\n    \"median\": 1.7577498252150001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.666282008215,\n    \"stddev\": 0.05998602394043235,\n    \"system\": 0.080410175,\n    \"time\": 1.764764575215,\n    \"user\": 1.7294329300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n    \"max\": 1.8351394702150001,\n    \"mean\": 1.756211987015,\n    \"median\": 1.7577498252150001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.666282008215,\n    \"stddev\": 0.05998602394043235,\n    \"system\": 0.080410175,\n    \"time\": 1.666282008215,\n    \"user\": 1.7294329300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n    \"max\": 1.692535984525,\n    \"mean\": 1.664135997125,\n    \"median\": 1.6539010765250002,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.647526203525,\n    \"stddev\": 0.02039901262794854,\n    \"system\": 0.06695234,\n    \"time\": 1.678786764525,\n    \"user\": 1.65269905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n    \"max\": 1.692535984525,\n    \"mean\": 1.664135997125,\n    \"median\": 1.6539010765250002,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.647526203525,\n    \"stddev\": 0.02039901262794854,\n    \"system\": 0.06695234,\n    \"time\": 1.647526203525,\n    \"user\": 1.65269905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n    \"max\": 1.692535984525,\n    \"mean\": 1.664135997125,\n    \"median\": 1.6539010765250002,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.647526203525,\n    \"stddev\": 0.02039901262794854,\n    \"system\": 0.06695234,\n    \"time\": 1.647929956525,\n    \"user\": 1.65269905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n    \"max\": 1.692535984525,\n    \"mean\": 1.664135997125,\n    \"median\": 1.6539010765250002,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.647526203525,\n    \"stddev\": 0.02039901262794854,\n    \"system\": 0.06695234,\n    \"time\": 1.692535984525,\n    \"user\": 1.65269905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n    \"max\": 1.692535984525,\n    \"mean\": 1.664135997125,\n    \"median\": 1.6539010765250002,\n    \"message\": \"Bump homebrew version\\n\",\n    \"min\": 1.647526203525,\n    \"stddev\": 0.02039901262794854,\n    \"system\": 0.06695234,\n    \"time\": 1.6539010765250002,\n    \"user\": 1.65269905\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n    \"max\": 1.64277560907,\n    \"mean\": 1.6291618514700001,\n    \"median\": 1.6287222650700002,\n    \"message\": \"Update Cargo.lock\\n\",\n    \"min\": 1.61610087407,\n    \"stddev\": 0.010025149888283905,\n    \"system\": 0.06256916500000001,\n    \"time\": 1.64277560907,\n    \"user\": 1.6236312649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n    \"max\": 1.64277560907,\n    \"mean\": 1.6291618514700001,\n    \"median\": 1.6287222650700002,\n    \"message\": \"Update Cargo.lock\\n\",\n    \"min\": 1.61610087407,\n    \"stddev\": 0.010025149888283905,\n    \"system\": 0.06256916500000001,\n    \"time\": 1.6287222650700002,\n    \"user\": 1.6236312649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n    \"max\": 1.64277560907,\n    \"mean\": 1.6291618514700001,\n    \"median\": 1.6287222650700002,\n    \"message\": \"Update Cargo.lock\\n\",\n    \"min\": 1.61610087407,\n    \"stddev\": 0.010025149888283905,\n    \"system\": 0.06256916500000001,\n    \"time\": 1.6338954190700001,\n    \"user\": 1.6236312649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n    \"max\": 1.64277560907,\n    \"mean\": 1.6291618514700001,\n    \"median\": 1.6287222650700002,\n    \"message\": \"Update Cargo.lock\\n\",\n    \"min\": 1.61610087407,\n    \"stddev\": 0.010025149888283905,\n    \"system\": 0.06256916500000001,\n    \"time\": 1.62431509007,\n    \"user\": 1.6236312649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n    \"max\": 1.64277560907,\n    \"mean\": 1.6291618514700001,\n    \"median\": 1.6287222650700002,\n    \"message\": \"Update Cargo.lock\\n\",\n    \"min\": 1.61610087407,\n    \"stddev\": 0.010025149888283905,\n    \"system\": 0.06256916500000001,\n    \"time\": 1.61610087407,\n    \"user\": 1.6236312649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n    \"max\": 1.642601361405,\n    \"mean\": 1.630099566805,\n    \"median\": 1.630423373405,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.617749218405,\n    \"stddev\": 0.010947100727547556,\n    \"system\": 0.062266119999999994,\n    \"time\": 1.639089949405,\n    \"user\": 1.624585475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n    \"max\": 1.642601361405,\n    \"mean\": 1.630099566805,\n    \"median\": 1.630423373405,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.617749218405,\n    \"stddev\": 0.010947100727547556,\n    \"system\": 0.062266119999999994,\n    \"time\": 1.630423373405,\n    \"user\": 1.624585475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n    \"max\": 1.642601361405,\n    \"mean\": 1.630099566805,\n    \"median\": 1.630423373405,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.617749218405,\n    \"stddev\": 0.010947100727547556,\n    \"system\": 0.062266119999999994,\n    \"time\": 1.620633931405,\n    \"user\": 1.624585475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n    \"max\": 1.642601361405,\n    \"mean\": 1.630099566805,\n    \"median\": 1.630423373405,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.617749218405,\n    \"stddev\": 0.010947100727547556,\n    \"system\": 0.062266119999999994,\n    \"time\": 1.617749218405,\n    \"user\": 1.624585475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n    \"max\": 1.642601361405,\n    \"mean\": 1.630099566805,\n    \"median\": 1.630423373405,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.617749218405,\n    \"stddev\": 0.010947100727547556,\n    \"system\": 0.062266119999999994,\n    \"time\": 1.642601361405,\n    \"user\": 1.624585475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n    \"max\": 1.643441392965,\n    \"mean\": 1.635906154965,\n    \"median\": 1.6378001559650002,\n    \"message\": \"Rearrange comparison images in README\\n\",\n    \"min\": 1.6259777799650001,\n    \"stddev\": 0.007194296679448744,\n    \"system\": 0.06321168999999999,\n    \"time\": 1.641053036965,\n    \"user\": 1.629560885\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n    \"max\": 1.643441392965,\n    \"mean\": 1.635906154965,\n    \"median\": 1.6378001559650002,\n    \"message\": \"Rearrange comparison images in README\\n\",\n    \"min\": 1.6259777799650001,\n    \"stddev\": 0.007194296679448744,\n    \"system\": 0.06321168999999999,\n    \"time\": 1.6259777799650001,\n    \"user\": 1.629560885\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n    \"max\": 1.643441392965,\n    \"mean\": 1.635906154965,\n    \"median\": 1.6378001559650002,\n    \"message\": \"Rearrange comparison images in README\\n\",\n    \"min\": 1.6259777799650001,\n    \"stddev\": 0.007194296679448744,\n    \"system\": 0.06321168999999999,\n    \"time\": 1.6378001559650002,\n    \"user\": 1.629560885\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n    \"max\": 1.643441392965,\n    \"mean\": 1.635906154965,\n    \"median\": 1.6378001559650002,\n    \"message\": \"Rearrange comparison images in README\\n\",\n    \"min\": 1.6259777799650001,\n    \"stddev\": 0.007194296679448744,\n    \"system\": 0.06321168999999999,\n    \"time\": 1.643441392965,\n    \"user\": 1.629560885\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n    \"max\": 1.643441392965,\n    \"mean\": 1.635906154965,\n    \"median\": 1.6378001559650002,\n    \"message\": \"Rearrange comparison images in README\\n\",\n    \"min\": 1.6259777799650001,\n    \"stddev\": 0.007194296679448744,\n    \"system\": 0.06321168999999999,\n    \"time\": 1.631258408965,\n    \"user\": 1.629560885\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n    \"max\": 1.677900899215,\n    \"mean\": 1.647233470415,\n    \"median\": 1.6467486032149998,\n    \"message\": \"Reinstate windows build\\n\",\n    \"min\": 1.629861471215,\n    \"stddev\": 0.01871276871509892,\n    \"system\": 0.06380067999999998,\n    \"time\": 1.646996777215,\n    \"user\": 1.6405300049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n    \"max\": 1.677900899215,\n    \"mean\": 1.647233470415,\n    \"median\": 1.6467486032149998,\n    \"message\": \"Reinstate windows build\\n\",\n    \"min\": 1.629861471215,\n    \"stddev\": 0.01871276871509892,\n    \"system\": 0.06380067999999998,\n    \"time\": 1.634659601215,\n    \"user\": 1.6405300049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n    \"max\": 1.677900899215,\n    \"mean\": 1.647233470415,\n    \"median\": 1.6467486032149998,\n    \"message\": \"Reinstate windows build\\n\",\n    \"min\": 1.629861471215,\n    \"stddev\": 0.01871276871509892,\n    \"system\": 0.06380067999999998,\n    \"time\": 1.6467486032149998,\n    \"user\": 1.6405300049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n    \"max\": 1.677900899215,\n    \"mean\": 1.647233470415,\n    \"median\": 1.6467486032149998,\n    \"message\": \"Reinstate windows build\\n\",\n    \"min\": 1.629861471215,\n    \"stddev\": 0.01871276871509892,\n    \"system\": 0.06380067999999998,\n    \"time\": 1.629861471215,\n    \"user\": 1.6405300049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n    \"max\": 1.677900899215,\n    \"mean\": 1.647233470415,\n    \"median\": 1.6467486032149998,\n    \"message\": \"Reinstate windows build\\n\",\n    \"min\": 1.629861471215,\n    \"stddev\": 0.01871276871509892,\n    \"system\": 0.06380067999999998,\n    \"time\": 1.677900899215,\n    \"user\": 1.6405300049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n    \"max\": 1.63965316965,\n    \"mean\": 1.6247637618500002,\n    \"median\": 1.62242526665,\n    \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n    \"min\": 1.61014093565,\n    \"stddev\": 0.011076504821941531,\n    \"system\": 0.06322296,\n    \"time\": 1.63067923465,\n    \"user\": 1.6181163399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n    \"max\": 1.63965316965,\n    \"mean\": 1.6247637618500002,\n    \"median\": 1.62242526665,\n    \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n    \"min\": 1.61014093565,\n    \"stddev\": 0.011076504821941531,\n    \"system\": 0.06322296,\n    \"time\": 1.63965316965,\n    \"user\": 1.6181163399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n    \"max\": 1.63965316965,\n    \"mean\": 1.6247637618500002,\n    \"median\": 1.62242526665,\n    \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n    \"min\": 1.61014093565,\n    \"stddev\": 0.011076504821941531,\n    \"system\": 0.06322296,\n    \"time\": 1.62242526665,\n    \"user\": 1.6181163399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n    \"max\": 1.63965316965,\n    \"mean\": 1.6247637618500002,\n    \"median\": 1.62242526665,\n    \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n    \"min\": 1.61014093565,\n    \"stddev\": 0.011076504821941531,\n    \"system\": 0.06322296,\n    \"time\": 1.62092020265,\n    \"user\": 1.6181163399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n    \"max\": 1.63965316965,\n    \"mean\": 1.6247637618500002,\n    \"median\": 1.62242526665,\n    \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n    \"min\": 1.61014093565,\n    \"stddev\": 0.011076504821941531,\n    \"system\": 0.06322296,\n    \"time\": 1.61014093565,\n    \"user\": 1.6181163399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n    \"max\": 1.658488187255,\n    \"mean\": 1.639298080255,\n    \"median\": 1.6317385842549998,\n    \"message\": \"Bump version, add Windows build\\n\",\n    \"min\": 1.6204699322549998,\n    \"stddev\": 0.01715027000103697,\n    \"system\": 0.06264037,\n    \"time\": 1.658488187255,\n    \"user\": 1.6332719699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n    \"max\": 1.658488187255,\n    \"mean\": 1.639298080255,\n    \"median\": 1.6317385842549998,\n    \"message\": \"Bump version, add Windows build\\n\",\n    \"min\": 1.6204699322549998,\n    \"stddev\": 0.01715027000103697,\n    \"system\": 0.06264037,\n    \"time\": 1.6204699322549998,\n    \"user\": 1.6332719699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n    \"max\": 1.658488187255,\n    \"mean\": 1.639298080255,\n    \"median\": 1.6317385842549998,\n    \"message\": \"Bump version, add Windows build\\n\",\n    \"min\": 1.6204699322549998,\n    \"stddev\": 0.01715027000103697,\n    \"system\": 0.06264037,\n    \"time\": 1.6317385842549998,\n    \"user\": 1.6332719699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n    \"max\": 1.658488187255,\n    \"mean\": 1.639298080255,\n    \"median\": 1.6317385842549998,\n    \"message\": \"Bump version, add Windows build\\n\",\n    \"min\": 1.6204699322549998,\n    \"stddev\": 0.01715027000103697,\n    \"system\": 0.06264037,\n    \"time\": 1.656511536255,\n    \"user\": 1.6332719699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n    \"max\": 1.658488187255,\n    \"mean\": 1.639298080255,\n    \"median\": 1.6317385842549998,\n    \"message\": \"Bump version, add Windows build\\n\",\n    \"min\": 1.6204699322549998,\n    \"stddev\": 0.01715027000103697,\n    \"system\": 0.06264037,\n    \"time\": 1.629282161255,\n    \"user\": 1.6332719699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n    \"max\": 1.646648960205,\n    \"mean\": 1.6349993162049998,\n    \"median\": 1.6380603252050001,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.623141527205,\n    \"stddev\": 0.009797452271780919,\n    \"system\": 0.06324717500000002,\n    \"time\": 1.646648960205,\n    \"user\": 1.6294359049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n    \"max\": 1.646648960205,\n    \"mean\": 1.6349993162049998,\n    \"median\": 1.6380603252050001,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.623141527205,\n    \"stddev\": 0.009797452271780919,\n    \"system\": 0.06324717500000002,\n    \"time\": 1.640435818205,\n    \"user\": 1.6294359049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n    \"max\": 1.646648960205,\n    \"mean\": 1.6349993162049998,\n    \"median\": 1.6380603252050001,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.623141527205,\n    \"stddev\": 0.009797452271780919,\n    \"system\": 0.06324717500000002,\n    \"time\": 1.6380603252050001,\n    \"user\": 1.6294359049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n    \"max\": 1.646648960205,\n    \"mean\": 1.6349993162049998,\n    \"median\": 1.6380603252050001,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.623141527205,\n    \"stddev\": 0.009797452271780919,\n    \"system\": 0.06324717500000002,\n    \"time\": 1.623141527205,\n    \"user\": 1.6294359049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n    \"max\": 1.646648960205,\n    \"mean\": 1.6349993162049998,\n    \"median\": 1.6380603252050001,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.623141527205,\n    \"stddev\": 0.009797452271780919,\n    \"system\": 0.06324717500000002,\n    \"time\": 1.626709950205,\n    \"user\": 1.6294359049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n    \"max\": 1.65140744633,\n    \"mean\": 1.6396907601300001,\n    \"median\": 1.6389726063299999,\n    \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n    \"min\": 1.6244568633299998,\n    \"stddev\": 0.011180011698744044,\n    \"system\": 0.06403154999999999,\n    \"time\": 1.65140744633,\n    \"user\": 1.6329478350000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n    \"max\": 1.65140744633,\n    \"mean\": 1.6396907601300001,\n    \"median\": 1.6389726063299999,\n    \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n    \"min\": 1.6244568633299998,\n    \"stddev\": 0.011180011698744044,\n    \"system\": 0.06403154999999999,\n    \"time\": 1.63402598133,\n    \"user\": 1.6329478350000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n    \"max\": 1.65140744633,\n    \"mean\": 1.6396907601300001,\n    \"median\": 1.6389726063299999,\n    \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n    \"min\": 1.6244568633299998,\n    \"stddev\": 0.011180011698744044,\n    \"system\": 0.06403154999999999,\n    \"time\": 1.6389726063299999,\n    \"user\": 1.6329478350000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n    \"max\": 1.65140744633,\n    \"mean\": 1.6396907601300001,\n    \"median\": 1.6389726063299999,\n    \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n    \"min\": 1.6244568633299998,\n    \"stddev\": 0.011180011698744044,\n    \"system\": 0.06403154999999999,\n    \"time\": 1.64959090333,\n    \"user\": 1.6329478350000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n    \"max\": 1.65140744633,\n    \"mean\": 1.6396907601300001,\n    \"median\": 1.6389726063299999,\n    \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n    \"min\": 1.6244568633299998,\n    \"stddev\": 0.011180011698744044,\n    \"system\": 0.06403154999999999,\n    \"time\": 1.6244568633299998,\n    \"user\": 1.6329478350000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n    \"max\": 1.61508574798,\n    \"mean\": 1.60531550438,\n    \"median\": 1.60194117398,\n    \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n    \"min\": 1.59861601498,\n    \"stddev\": 0.0073949955429037885,\n    \"system\": 0.060186895,\n    \"time\": 1.61508574798,\n    \"user\": 1.6002806999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n    \"max\": 1.61508574798,\n    \"mean\": 1.60531550438,\n    \"median\": 1.60194117398,\n    \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n    \"min\": 1.59861601498,\n    \"stddev\": 0.0073949955429037885,\n    \"system\": 0.060186895,\n    \"time\": 1.6112539509800001,\n    \"user\": 1.6002806999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n    \"max\": 1.61508574798,\n    \"mean\": 1.60531550438,\n    \"median\": 1.60194117398,\n    \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n    \"min\": 1.59861601498,\n    \"stddev\": 0.0073949955429037885,\n    \"system\": 0.060186895,\n    \"time\": 1.59861601498,\n    \"user\": 1.6002806999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n    \"max\": 1.61508574798,\n    \"mean\": 1.60531550438,\n    \"median\": 1.60194117398,\n    \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n    \"min\": 1.59861601498,\n    \"stddev\": 0.0073949955429037885,\n    \"system\": 0.060186895,\n    \"time\": 1.60194117398,\n    \"user\": 1.6002806999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n    \"max\": 1.61508574798,\n    \"mean\": 1.60531550438,\n    \"median\": 1.60194117398,\n    \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n    \"min\": 1.59861601498,\n    \"stddev\": 0.0073949955429037885,\n    \"system\": 0.060186895,\n    \"time\": 1.59968063398,\n    \"user\": 1.6002806999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n    \"max\": 1.665947790035,\n    \"mean\": 1.610957042235,\n    \"median\": 1.587014992035,\n    \"message\": \"Update crate metadata\\n\",\n    \"min\": 1.5841190330350001,\n    \"stddev\": 0.03721396503527582,\n    \"system\": 0.06306811,\n    \"time\": 1.633480634035,\n    \"user\": 1.6038088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n    \"max\": 1.665947790035,\n    \"mean\": 1.610957042235,\n    \"median\": 1.587014992035,\n    \"message\": \"Update crate metadata\\n\",\n    \"min\": 1.5841190330350001,\n    \"stddev\": 0.03721396503527582,\n    \"system\": 0.06306811,\n    \"time\": 1.665947790035,\n    \"user\": 1.6038088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n    \"max\": 1.665947790035,\n    \"mean\": 1.610957042235,\n    \"median\": 1.587014992035,\n    \"message\": \"Update crate metadata\\n\",\n    \"min\": 1.5841190330350001,\n    \"stddev\": 0.03721396503527582,\n    \"system\": 0.06306811,\n    \"time\": 1.587014992035,\n    \"user\": 1.6038088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n    \"max\": 1.665947790035,\n    \"mean\": 1.610957042235,\n    \"median\": 1.587014992035,\n    \"message\": \"Update crate metadata\\n\",\n    \"min\": 1.5841190330350001,\n    \"stddev\": 0.03721396503527582,\n    \"system\": 0.06306811,\n    \"time\": 1.5842227620350002,\n    \"user\": 1.6038088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n    \"max\": 1.665947790035,\n    \"mean\": 1.610957042235,\n    \"median\": 1.587014992035,\n    \"message\": \"Update crate metadata\\n\",\n    \"min\": 1.5841190330350001,\n    \"stddev\": 0.03721396503527582,\n    \"system\": 0.06306811,\n    \"time\": 1.5841190330350001,\n    \"user\": 1.6038088\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n    \"max\": 1.61990471232,\n    \"mean\": 1.6005628787200004,\n    \"median\": 1.59306101132,\n    \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n    \"min\": 1.58413276932,\n    \"stddev\": 0.016325873376081365,\n    \"system\": 0.060011505,\n    \"time\": 1.61990471232,\n    \"user\": 1.5967676199999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n    \"max\": 1.61990471232,\n    \"mean\": 1.6005628787200004,\n    \"median\": 1.59306101132,\n    \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n    \"min\": 1.58413276932,\n    \"stddev\": 0.016325873376081365,\n    \"system\": 0.060011505,\n    \"time\": 1.6161859063200001,\n    \"user\": 1.5967676199999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n    \"max\": 1.61990471232,\n    \"mean\": 1.6005628787200004,\n    \"median\": 1.59306101132,\n    \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n    \"min\": 1.58413276932,\n    \"stddev\": 0.016325873376081365,\n    \"system\": 0.060011505,\n    \"time\": 1.58952999432,\n    \"user\": 1.5967676199999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n    \"max\": 1.61990471232,\n    \"mean\": 1.6005628787200004,\n    \"median\": 1.59306101132,\n    \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n    \"min\": 1.58413276932,\n    \"stddev\": 0.016325873376081365,\n    \"system\": 0.060011505,\n    \"time\": 1.59306101132,\n    \"user\": 1.5967676199999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n    \"max\": 1.61990471232,\n    \"mean\": 1.6005628787200004,\n    \"median\": 1.59306101132,\n    \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n    \"min\": 1.58413276932,\n    \"stddev\": 0.016325873376081365,\n    \"system\": 0.060011505,\n    \"time\": 1.58413276932,\n    \"user\": 1.5967676199999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n    \"max\": 1.602677429425,\n    \"mean\": 1.5817615402249998,\n    \"median\": 1.576571988425,\n    \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n    \"min\": 1.570252552425,\n    \"stddev\": 0.0127358722267928,\n    \"system\": 0.058496755,\n    \"time\": 1.602677429425,\n    \"user\": 1.57970722\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n    \"max\": 1.602677429425,\n    \"mean\": 1.5817615402249998,\n    \"median\": 1.576571988425,\n    \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n    \"min\": 1.570252552425,\n    \"stddev\": 0.0127358722267928,\n    \"system\": 0.058496755,\n    \"time\": 1.576571988425,\n    \"user\": 1.57970722\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n    \"max\": 1.602677429425,\n    \"mean\": 1.5817615402249998,\n    \"median\": 1.576571988425,\n    \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n    \"min\": 1.570252552425,\n    \"stddev\": 0.0127358722267928,\n    \"system\": 0.058496755,\n    \"time\": 1.584292589425,\n    \"user\": 1.57970722\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n    \"max\": 1.602677429425,\n    \"mean\": 1.5817615402249998,\n    \"median\": 1.576571988425,\n    \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n    \"min\": 1.570252552425,\n    \"stddev\": 0.0127358722267928,\n    \"system\": 0.058496755,\n    \"time\": 1.570252552425,\n    \"user\": 1.57970722\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n    \"max\": 1.602677429425,\n    \"mean\": 1.5817615402249998,\n    \"median\": 1.576571988425,\n    \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n    \"min\": 1.570252552425,\n    \"stddev\": 0.0127358722267928,\n    \"system\": 0.058496755,\n    \"time\": 1.575013141425,\n    \"user\": 1.57970722\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n    \"max\": 1.71524980448,\n    \"mean\": 1.6693305110799996,\n    \"median\": 1.67152033848,\n    \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n    \"min\": 1.62187118348,\n    \"stddev\": 0.03677833569512099,\n    \"system\": 0.06633048,\n    \"time\": 1.69185958748,\n    \"user\": 1.659438295\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n    \"max\": 1.71524980448,\n    \"mean\": 1.6693305110799996,\n    \"median\": 1.67152033848,\n    \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n    \"min\": 1.62187118348,\n    \"stddev\": 0.03677833569512099,\n    \"system\": 0.06633048,\n    \"time\": 1.67152033848,\n    \"user\": 1.659438295\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n    \"max\": 1.71524980448,\n    \"mean\": 1.6693305110799996,\n    \"median\": 1.67152033848,\n    \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n    \"min\": 1.62187118348,\n    \"stddev\": 0.03677833569512099,\n    \"system\": 0.06633048,\n    \"time\": 1.71524980448,\n    \"user\": 1.659438295\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n    \"max\": 1.71524980448,\n    \"mean\": 1.6693305110799996,\n    \"median\": 1.67152033848,\n    \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n    \"min\": 1.62187118348,\n    \"stddev\": 0.03677833569512099,\n    \"system\": 0.06633048,\n    \"time\": 1.64615164148,\n    \"user\": 1.659438295\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n    \"max\": 1.71524980448,\n    \"mean\": 1.6693305110799996,\n    \"median\": 1.67152033848,\n    \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n    \"min\": 1.62187118348,\n    \"stddev\": 0.03677833569512099,\n    \"system\": 0.06633048,\n    \"time\": 1.62187118348,\n    \"user\": 1.659438295\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n    \"max\": 1.606045005245,\n    \"mean\": 1.596333297045,\n    \"median\": 1.595837075245,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.585553895245,\n    \"stddev\": 0.007644961448476466,\n    \"system\": 0.059523835000000004,\n    \"time\": 1.606045005245,\n    \"user\": 1.5930052999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n    \"max\": 1.606045005245,\n    \"mean\": 1.596333297045,\n    \"median\": 1.595837075245,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.585553895245,\n    \"stddev\": 0.007644961448476466,\n    \"system\": 0.059523835000000004,\n    \"time\": 1.600416755245,\n    \"user\": 1.5930052999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n    \"max\": 1.606045005245,\n    \"mean\": 1.596333297045,\n    \"median\": 1.595837075245,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.585553895245,\n    \"stddev\": 0.007644961448476466,\n    \"system\": 0.059523835000000004,\n    \"time\": 1.593813754245,\n    \"user\": 1.5930052999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n    \"max\": 1.606045005245,\n    \"mean\": 1.596333297045,\n    \"median\": 1.595837075245,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.585553895245,\n    \"stddev\": 0.007644961448476466,\n    \"system\": 0.059523835000000004,\n    \"time\": 1.585553895245,\n    \"user\": 1.5930052999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n    \"max\": 1.606045005245,\n    \"mean\": 1.596333297045,\n    \"median\": 1.595837075245,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.585553895245,\n    \"stddev\": 0.007644961448476466,\n    \"system\": 0.059523835000000004,\n    \"time\": 1.595837075245,\n    \"user\": 1.5930052999999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n    \"max\": 1.6144799456349999,\n    \"mean\": 1.602107905435,\n    \"median\": 1.603468813635,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.583704676635,\n    \"stddev\": 0.011475700950687642,\n    \"system\": 0.060423965,\n    \"time\": 1.6144799456349999,\n    \"user\": 1.59765461\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n    \"max\": 1.6144799456349999,\n    \"mean\": 1.602107905435,\n    \"median\": 1.603468813635,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.583704676635,\n    \"stddev\": 0.011475700950687642,\n    \"system\": 0.060423965,\n    \"time\": 1.601106669635,\n    \"user\": 1.59765461\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n    \"max\": 1.6144799456349999,\n    \"mean\": 1.602107905435,\n    \"median\": 1.603468813635,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.583704676635,\n    \"stddev\": 0.011475700950687642,\n    \"system\": 0.060423965,\n    \"time\": 1.607779421635,\n    \"user\": 1.59765461\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n    \"max\": 1.6144799456349999,\n    \"mean\": 1.602107905435,\n    \"median\": 1.603468813635,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.583704676635,\n    \"stddev\": 0.011475700950687642,\n    \"system\": 0.060423965,\n    \"time\": 1.603468813635,\n    \"user\": 1.59765461\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n    \"max\": 1.6144799456349999,\n    \"mean\": 1.602107905435,\n    \"median\": 1.603468813635,\n    \"message\": \"Bump Homebrew formula\\n\",\n    \"min\": 1.583704676635,\n    \"stddev\": 0.011475700950687642,\n    \"system\": 0.060423965,\n    \"time\": 1.583704676635,\n    \"user\": 1.59765461\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n    \"max\": 1.6123748016650001,\n    \"mean\": 1.601108461665,\n    \"median\": 1.6017197406650001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.591137724665,\n    \"stddev\": 0.008239017837828828,\n    \"system\": 0.06107934,\n    \"time\": 1.6123748016650001,\n    \"user\": 1.596559755\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n    \"max\": 1.6123748016650001,\n    \"mean\": 1.601108461665,\n    \"median\": 1.6017197406650001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.591137724665,\n    \"stddev\": 0.008239017837828828,\n    \"system\": 0.06107934,\n    \"time\": 1.604791176665,\n    \"user\": 1.596559755\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n    \"max\": 1.6123748016650001,\n    \"mean\": 1.601108461665,\n    \"median\": 1.6017197406650001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.591137724665,\n    \"stddev\": 0.008239017837828828,\n    \"system\": 0.06107934,\n    \"time\": 1.6017197406650001,\n    \"user\": 1.596559755\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n    \"max\": 1.6123748016650001,\n    \"mean\": 1.601108461665,\n    \"median\": 1.6017197406650001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.591137724665,\n    \"stddev\": 0.008239017837828828,\n    \"system\": 0.06107934,\n    \"time\": 1.591137724665,\n    \"user\": 1.596559755\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n    \"max\": 1.6123748016650001,\n    \"mean\": 1.601108461665,\n    \"median\": 1.6017197406650001,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.591137724665,\n    \"stddev\": 0.008239017837828828,\n    \"system\": 0.06107934,\n    \"time\": 1.595518864665,\n    \"user\": 1.596559755\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n    \"max\": 1.617912944525,\n    \"mean\": 1.599631649925,\n    \"median\": 1.595604750525,\n    \"message\": \"Bump Homebrew formula and README links\\n\",\n    \"min\": 1.589600727525,\n    \"stddev\": 0.011054461896995518,\n    \"system\": 0.06048252,\n    \"time\": 1.617912944525,\n    \"user\": 1.5955137700000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n    \"max\": 1.617912944525,\n    \"mean\": 1.599631649925,\n    \"median\": 1.595604750525,\n    \"message\": \"Bump Homebrew formula and README links\\n\",\n    \"min\": 1.589600727525,\n    \"stddev\": 0.011054461896995518,\n    \"system\": 0.06048252,\n    \"time\": 1.589600727525,\n    \"user\": 1.5955137700000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n    \"max\": 1.617912944525,\n    \"mean\": 1.599631649925,\n    \"median\": 1.595604750525,\n    \"message\": \"Bump Homebrew formula and README links\\n\",\n    \"min\": 1.589600727525,\n    \"stddev\": 0.011054461896995518,\n    \"system\": 0.06048252,\n    \"time\": 1.593722243525,\n    \"user\": 1.5955137700000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n    \"max\": 1.617912944525,\n    \"mean\": 1.599631649925,\n    \"median\": 1.595604750525,\n    \"message\": \"Bump Homebrew formula and README links\\n\",\n    \"min\": 1.589600727525,\n    \"stddev\": 0.011054461896995518,\n    \"system\": 0.06048252,\n    \"time\": 1.601317583525,\n    \"user\": 1.5955137700000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n    \"max\": 1.617912944525,\n    \"mean\": 1.599631649925,\n    \"median\": 1.595604750525,\n    \"message\": \"Bump Homebrew formula and README links\\n\",\n    \"min\": 1.589600727525,\n    \"stddev\": 0.011054461896995518,\n    \"system\": 0.06048252,\n    \"time\": 1.595604750525,\n    \"user\": 1.5955137700000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n    \"max\": 1.638529681875,\n    \"mean\": 1.628777822675,\n    \"median\": 1.6277093398750002,\n    \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n    \"min\": 1.620959216875,\n    \"stddev\": 0.006299787148928856,\n    \"system\": 0.05946923,\n    \"time\": 1.638529681875,\n    \"user\": 1.62467653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n    \"max\": 1.638529681875,\n    \"mean\": 1.628777822675,\n    \"median\": 1.6277093398750002,\n    \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n    \"min\": 1.620959216875,\n    \"stddev\": 0.006299787148928856,\n    \"system\": 0.05946923,\n    \"time\": 1.620959216875,\n    \"user\": 1.62467653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n    \"max\": 1.638529681875,\n    \"mean\": 1.628777822675,\n    \"median\": 1.6277093398750002,\n    \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n    \"min\": 1.620959216875,\n    \"stddev\": 0.006299787148928856,\n    \"system\": 0.05946923,\n    \"time\": 1.6277093398750002,\n    \"user\": 1.62467653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n    \"max\": 1.638529681875,\n    \"mean\": 1.628777822675,\n    \"median\": 1.6277093398750002,\n    \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n    \"min\": 1.620959216875,\n    \"stddev\": 0.006299787148928856,\n    \"system\": 0.05946923,\n    \"time\": 1.6290540798750002,\n    \"user\": 1.62467653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n    \"max\": 1.638529681875,\n    \"mean\": 1.628777822675,\n    \"median\": 1.6277093398750002,\n    \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n    \"min\": 1.620959216875,\n    \"stddev\": 0.006299787148928856,\n    \"system\": 0.05946923,\n    \"time\": 1.6276367948750001,\n    \"user\": 1.62467653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n    \"max\": 1.66115147656,\n    \"mean\": 1.6375783137600002,\n    \"median\": 1.64112771156,\n    \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n    \"min\": 1.61757751856,\n    \"stddev\": 0.01669260464598445,\n    \"system\": 0.060786305,\n    \"time\": 1.64112771156,\n    \"user\": 1.63361211\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n    \"max\": 1.66115147656,\n    \"mean\": 1.6375783137600002,\n    \"median\": 1.64112771156,\n    \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n    \"min\": 1.61757751856,\n    \"stddev\": 0.01669260464598445,\n    \"system\": 0.060786305,\n    \"time\": 1.64179201756,\n    \"user\": 1.63361211\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n    \"max\": 1.66115147656,\n    \"mean\": 1.6375783137600002,\n    \"median\": 1.64112771156,\n    \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n    \"min\": 1.61757751856,\n    \"stddev\": 0.01669260464598445,\n    \"system\": 0.060786305,\n    \"time\": 1.66115147656,\n    \"user\": 1.63361211\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n    \"max\": 1.66115147656,\n    \"mean\": 1.6375783137600002,\n    \"median\": 1.64112771156,\n    \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n    \"min\": 1.61757751856,\n    \"stddev\": 0.01669260464598445,\n    \"system\": 0.060786305,\n    \"time\": 1.6262428445600001,\n    \"user\": 1.63361211\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n    \"max\": 1.66115147656,\n    \"mean\": 1.6375783137600002,\n    \"median\": 1.64112771156,\n    \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n    \"min\": 1.61757751856,\n    \"stddev\": 0.01669260464598445,\n    \"system\": 0.060786305,\n    \"time\": 1.61757751856,\n    \"user\": 1.63361211\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n    \"max\": 1.644057854585,\n    \"mean\": 1.6296379473850002,\n    \"median\": 1.625491105585,\n    \"message\": \"Improve documentation for adding new theme/language\\n\",\n    \"min\": 1.6152449555850001,\n    \"stddev\": 0.0127306300525996,\n    \"system\": 0.06022705500000001,\n    \"time\": 1.625491105585,\n    \"user\": 1.625834625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n    \"max\": 1.644057854585,\n    \"mean\": 1.6296379473850002,\n    \"median\": 1.625491105585,\n    \"message\": \"Improve documentation for adding new theme/language\\n\",\n    \"min\": 1.6152449555850001,\n    \"stddev\": 0.0127306300525996,\n    \"system\": 0.06022705500000001,\n    \"time\": 1.641883700585,\n    \"user\": 1.625834625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n    \"max\": 1.644057854585,\n    \"mean\": 1.6296379473850002,\n    \"median\": 1.625491105585,\n    \"message\": \"Improve documentation for adding new theme/language\\n\",\n    \"min\": 1.6152449555850001,\n    \"stddev\": 0.0127306300525996,\n    \"system\": 0.06022705500000001,\n    \"time\": 1.6152449555850001,\n    \"user\": 1.625834625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n    \"max\": 1.644057854585,\n    \"mean\": 1.6296379473850002,\n    \"median\": 1.625491105585,\n    \"message\": \"Improve documentation for adding new theme/language\\n\",\n    \"min\": 1.6152449555850001,\n    \"stddev\": 0.0127306300525996,\n    \"system\": 0.06022705500000001,\n    \"time\": 1.644057854585,\n    \"user\": 1.625834625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n    \"max\": 1.644057854585,\n    \"mean\": 1.6296379473850002,\n    \"median\": 1.625491105585,\n    \"message\": \"Improve documentation for adding new theme/language\\n\",\n    \"min\": 1.6152449555850001,\n    \"stddev\": 0.0127306300525996,\n    \"system\": 0.06022705500000001,\n    \"time\": 1.621512120585,\n    \"user\": 1.625834625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n    \"max\": 1.6404970199700002,\n    \"mean\": 1.6269346527700002,\n    \"median\": 1.62509372597,\n    \"message\": \"Add dyn to suppress warning\\n\",\n    \"min\": 1.6182806569700001,\n    \"stddev\": 0.009167792105731473,\n    \"system\": 0.06002196,\n    \"time\": 1.6404970199700002,\n    \"user\": 1.622752835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n    \"max\": 1.6404970199700002,\n    \"mean\": 1.6269346527700002,\n    \"median\": 1.62509372597,\n    \"message\": \"Add dyn to suppress warning\\n\",\n    \"min\": 1.6182806569700001,\n    \"stddev\": 0.009167792105731473,\n    \"system\": 0.06002196,\n    \"time\": 1.6182806569700001,\n    \"user\": 1.622752835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n    \"max\": 1.6404970199700002,\n    \"mean\": 1.6269346527700002,\n    \"median\": 1.62509372597,\n    \"message\": \"Add dyn to suppress warning\\n\",\n    \"min\": 1.6182806569700001,\n    \"stddev\": 0.009167792105731473,\n    \"system\": 0.06002196,\n    \"time\": 1.62509372597,\n    \"user\": 1.622752835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n    \"max\": 1.6404970199700002,\n    \"mean\": 1.6269346527700002,\n    \"median\": 1.62509372597,\n    \"message\": \"Add dyn to suppress warning\\n\",\n    \"min\": 1.6182806569700001,\n    \"stddev\": 0.009167792105731473,\n    \"system\": 0.06002196,\n    \"time\": 1.61951575497,\n    \"user\": 1.622752835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n    \"max\": 1.6404970199700002,\n    \"mean\": 1.6269346527700002,\n    \"median\": 1.62509372597,\n    \"message\": \"Add dyn to suppress warning\\n\",\n    \"min\": 1.6182806569700001,\n    \"stddev\": 0.009167792105731473,\n    \"system\": 0.06002196,\n    \"time\": 1.6312861059700001,\n    \"user\": 1.622752835\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n    \"max\": 1.6747071376150002,\n    \"mean\": 1.6453819354150003,\n    \"median\": 1.6412350856150002,\n    \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n    \"min\": 1.6273688626150002,\n    \"stddev\": 0.01785144670615405,\n    \"system\": 0.062295909999999996,\n    \"time\": 1.6466671156150001,\n    \"user\": 1.640053065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n    \"max\": 1.6747071376150002,\n    \"mean\": 1.6453819354150003,\n    \"median\": 1.6412350856150002,\n    \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n    \"min\": 1.6273688626150002,\n    \"stddev\": 0.01785144670615405,\n    \"system\": 0.062295909999999996,\n    \"time\": 1.6369314756150002,\n    \"user\": 1.640053065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n    \"max\": 1.6747071376150002,\n    \"mean\": 1.6453819354150003,\n    \"median\": 1.6412350856150002,\n    \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n    \"min\": 1.6273688626150002,\n    \"stddev\": 0.01785144670615405,\n    \"system\": 0.062295909999999996,\n    \"time\": 1.6273688626150002,\n    \"user\": 1.640053065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n    \"max\": 1.6747071376150002,\n    \"mean\": 1.6453819354150003,\n    \"median\": 1.6412350856150002,\n    \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n    \"min\": 1.6273688626150002,\n    \"stddev\": 0.01785144670615405,\n    \"system\": 0.062295909999999996,\n    \"time\": 1.6412350856150002,\n    \"user\": 1.640053065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n    \"max\": 1.6747071376150002,\n    \"mean\": 1.6453819354150003,\n    \"median\": 1.6412350856150002,\n    \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n    \"min\": 1.6273688626150002,\n    \"stddev\": 0.01785144670615405,\n    \"system\": 0.062295909999999996,\n    \"time\": 1.6747071376150002,\n    \"user\": 1.640053065\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n    \"max\": 1.67822770332,\n    \"mean\": 1.6500650445199998,\n    \"median\": 1.6478134203199999,\n    \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n    \"min\": 1.62428631932,\n    \"stddev\": 0.026209521938918803,\n    \"system\": 0.061703224999999993,\n    \"time\": 1.67822770332,\n    \"user\": 1.6454195900000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n    \"max\": 1.67822770332,\n    \"mean\": 1.6500650445199998,\n    \"median\": 1.6478134203199999,\n    \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n    \"min\": 1.62428631932,\n    \"stddev\": 0.026209521938918803,\n    \"system\": 0.061703224999999993,\n    \"time\": 1.62428631932,\n    \"user\": 1.6454195900000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n    \"max\": 1.67822770332,\n    \"mean\": 1.6500650445199998,\n    \"median\": 1.6478134203199999,\n    \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n    \"min\": 1.62428631932,\n    \"stddev\": 0.026209521938918803,\n    \"system\": 0.061703224999999993,\n    \"time\": 1.62465131032,\n    \"user\": 1.6454195900000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n    \"max\": 1.67822770332,\n    \"mean\": 1.6500650445199998,\n    \"median\": 1.6478134203199999,\n    \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n    \"min\": 1.62428631932,\n    \"stddev\": 0.026209521938918803,\n    \"system\": 0.061703224999999993,\n    \"time\": 1.67534646932,\n    \"user\": 1.6454195900000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n    \"max\": 1.67822770332,\n    \"mean\": 1.6500650445199998,\n    \"median\": 1.6478134203199999,\n    \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n    \"min\": 1.62428631932,\n    \"stddev\": 0.026209521938918803,\n    \"system\": 0.061703224999999993,\n    \"time\": 1.6478134203199999,\n    \"user\": 1.6454195900000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n    \"max\": 1.64427059526,\n    \"mean\": 1.63203894326,\n    \"median\": 1.62535426126,\n    \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n    \"min\": 1.6238235382600001,\n    \"stddev\": 0.010508759998986417,\n    \"system\": 0.06039542999999999,\n    \"time\": 1.64427059526,\n    \"user\": 1.628694015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n    \"max\": 1.64427059526,\n    \"mean\": 1.63203894326,\n    \"median\": 1.62535426126,\n    \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n    \"min\": 1.6238235382600001,\n    \"stddev\": 0.010508759998986417,\n    \"system\": 0.06039542999999999,\n    \"time\": 1.6238235382600001,\n    \"user\": 1.628694015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n    \"max\": 1.64427059526,\n    \"mean\": 1.63203894326,\n    \"median\": 1.62535426126,\n    \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n    \"min\": 1.6238235382600001,\n    \"stddev\": 0.010508759998986417,\n    \"system\": 0.06039542999999999,\n    \"time\": 1.64276423926,\n    \"user\": 1.628694015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n    \"max\": 1.64427059526,\n    \"mean\": 1.63203894326,\n    \"median\": 1.62535426126,\n    \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n    \"min\": 1.6238235382600001,\n    \"stddev\": 0.010508759998986417,\n    \"system\": 0.06039542999999999,\n    \"time\": 1.62398208226,\n    \"user\": 1.628694015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n    \"max\": 1.64427059526,\n    \"mean\": 1.63203894326,\n    \"median\": 1.62535426126,\n    \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n    \"min\": 1.6238235382600001,\n    \"stddev\": 0.010508759998986417,\n    \"system\": 0.06039542999999999,\n    \"time\": 1.62535426126,\n    \"user\": 1.628694015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n    \"max\": 1.636431547365,\n    \"mean\": 1.631161573165,\n    \"median\": 1.630565653365,\n    \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n    \"min\": 1.6258436213649998,\n    \"stddev\": 0.0044283236529808504,\n    \"system\": 0.059869565,\n    \"time\": 1.636431547365,\n    \"user\": 1.6276303149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n    \"max\": 1.636431547365,\n    \"mean\": 1.631161573165,\n    \"median\": 1.630565653365,\n    \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n    \"min\": 1.6258436213649998,\n    \"stddev\": 0.0044283236529808504,\n    \"system\": 0.059869565,\n    \"time\": 1.6347868943650001,\n    \"user\": 1.6276303149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n    \"max\": 1.636431547365,\n    \"mean\": 1.631161573165,\n    \"median\": 1.630565653365,\n    \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n    \"min\": 1.6258436213649998,\n    \"stddev\": 0.0044283236529808504,\n    \"system\": 0.059869565,\n    \"time\": 1.6258436213649998,\n    \"user\": 1.6276303149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n    \"max\": 1.636431547365,\n    \"mean\": 1.631161573165,\n    \"median\": 1.630565653365,\n    \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n    \"min\": 1.6258436213649998,\n    \"stddev\": 0.0044283236529808504,\n    \"system\": 0.059869565,\n    \"time\": 1.628180149365,\n    \"user\": 1.6276303149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n    \"max\": 1.636431547365,\n    \"mean\": 1.631161573165,\n    \"median\": 1.630565653365,\n    \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n    \"min\": 1.6258436213649998,\n    \"stddev\": 0.0044283236529808504,\n    \"system\": 0.059869565,\n    \"time\": 1.630565653365,\n    \"user\": 1.6276303149999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n    \"max\": 1.635819647455,\n    \"mean\": 1.628453480655,\n    \"median\": 1.6310303984549999,\n    \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n    \"min\": 1.6163183194550002,\n    \"stddev\": 0.007398781525765136,\n    \"system\": 0.059939959999999994,\n    \"time\": 1.635819647455,\n    \"user\": 1.6248044849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n    \"max\": 1.635819647455,\n    \"mean\": 1.628453480655,\n    \"median\": 1.6310303984549999,\n    \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n    \"min\": 1.6163183194550002,\n    \"stddev\": 0.007398781525765136,\n    \"system\": 0.059939959999999994,\n    \"time\": 1.627499858455,\n    \"user\": 1.6248044849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n    \"max\": 1.635819647455,\n    \"mean\": 1.628453480655,\n    \"median\": 1.6310303984549999,\n    \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n    \"min\": 1.6163183194550002,\n    \"stddev\": 0.007398781525765136,\n    \"system\": 0.059939959999999994,\n    \"time\": 1.631599179455,\n    \"user\": 1.6248044849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n    \"max\": 1.635819647455,\n    \"mean\": 1.628453480655,\n    \"median\": 1.6310303984549999,\n    \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n    \"min\": 1.6163183194550002,\n    \"stddev\": 0.007398781525765136,\n    \"system\": 0.059939959999999994,\n    \"time\": 1.6310303984549999,\n    \"user\": 1.6248044849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n    \"max\": 1.635819647455,\n    \"mean\": 1.628453480655,\n    \"median\": 1.6310303984549999,\n    \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n    \"min\": 1.6163183194550002,\n    \"stddev\": 0.007398781525765136,\n    \"system\": 0.059939959999999994,\n    \"time\": 1.6163183194550002,\n    \"user\": 1.6248044849999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n    \"max\": 1.655786791065,\n    \"mean\": 1.6403615874650002,\n    \"median\": 1.6390859700650002,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6274938070650002,\n    \"stddev\": 0.011427560364484215,\n    \"system\": 0.06162586499999999,\n    \"time\": 1.6473492870650002,\n    \"user\": 1.63627577\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n    \"max\": 1.655786791065,\n    \"mean\": 1.6403615874650002,\n    \"median\": 1.6390859700650002,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6274938070650002,\n    \"stddev\": 0.011427560364484215,\n    \"system\": 0.06162586499999999,\n    \"time\": 1.655786791065,\n    \"user\": 1.63627577\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n    \"max\": 1.655786791065,\n    \"mean\": 1.6403615874650002,\n    \"median\": 1.6390859700650002,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6274938070650002,\n    \"stddev\": 0.011427560364484215,\n    \"system\": 0.06162586499999999,\n    \"time\": 1.6390859700650002,\n    \"user\": 1.63627577\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n    \"max\": 1.655786791065,\n    \"mean\": 1.6403615874650002,\n    \"median\": 1.6390859700650002,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6274938070650002,\n    \"stddev\": 0.011427560364484215,\n    \"system\": 0.06162586499999999,\n    \"time\": 1.6274938070650002,\n    \"user\": 1.63627577\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n    \"max\": 1.655786791065,\n    \"mean\": 1.6403615874650002,\n    \"median\": 1.6390859700650002,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6274938070650002,\n    \"stddev\": 0.011427560364484215,\n    \"system\": 0.06162586499999999,\n    \"time\": 1.632092082065,\n    \"user\": 1.63627577\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n    \"max\": 1.639072630075,\n    \"mean\": 1.630302710075,\n    \"median\": 1.6354536930749999,\n    \"message\": \"Bump homebrew version and README links\\n\",\n    \"min\": 1.614423932075,\n    \"stddev\": 0.010660401735130427,\n    \"system\": 0.060475875,\n    \"time\": 1.639072630075,\n    \"user\": 1.6272672849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n    \"max\": 1.639072630075,\n    \"mean\": 1.630302710075,\n    \"median\": 1.6354536930749999,\n    \"message\": \"Bump homebrew version and README links\\n\",\n    \"min\": 1.614423932075,\n    \"stddev\": 0.010660401735130427,\n    \"system\": 0.060475875,\n    \"time\": 1.6382487240749999,\n    \"user\": 1.6272672849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n    \"max\": 1.639072630075,\n    \"mean\": 1.630302710075,\n    \"median\": 1.6354536930749999,\n    \"message\": \"Bump homebrew version and README links\\n\",\n    \"min\": 1.614423932075,\n    \"stddev\": 0.010660401735130427,\n    \"system\": 0.060475875,\n    \"time\": 1.6354536930749999,\n    \"user\": 1.6272672849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n    \"max\": 1.639072630075,\n    \"mean\": 1.630302710075,\n    \"median\": 1.6354536930749999,\n    \"message\": \"Bump homebrew version and README links\\n\",\n    \"min\": 1.614423932075,\n    \"stddev\": 0.010660401735130427,\n    \"system\": 0.060475875,\n    \"time\": 1.624314571075,\n    \"user\": 1.6272672849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n    \"max\": 1.639072630075,\n    \"mean\": 1.630302710075,\n    \"median\": 1.6354536930749999,\n    \"message\": \"Bump homebrew version and README links\\n\",\n    \"min\": 1.614423932075,\n    \"stddev\": 0.010660401735130427,\n    \"system\": 0.060475875,\n    \"time\": 1.614423932075,\n    \"user\": 1.6272672849999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n    \"max\": 1.6485821145,\n    \"mean\": 1.6290897213000002,\n    \"median\": 1.6247137264999998,\n    \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n    \"min\": 1.6167792955,\n    \"stddev\": 0.013195343876359934,\n    \"system\": 0.06110814499999999,\n    \"time\": 1.6485821145,\n    \"user\": 1.621737155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n    \"max\": 1.6485821145,\n    \"mean\": 1.6290897213000002,\n    \"median\": 1.6247137264999998,\n    \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n    \"min\": 1.6167792955,\n    \"stddev\": 0.013195343876359934,\n    \"system\": 0.06110814499999999,\n    \"time\": 1.6192640765,\n    \"user\": 1.621737155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n    \"max\": 1.6485821145,\n    \"mean\": 1.6290897213000002,\n    \"median\": 1.6247137264999998,\n    \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n    \"min\": 1.6167792955,\n    \"stddev\": 0.013195343876359934,\n    \"system\": 0.06110814499999999,\n    \"time\": 1.6361093935,\n    \"user\": 1.621737155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n    \"max\": 1.6485821145,\n    \"mean\": 1.6290897213000002,\n    \"median\": 1.6247137264999998,\n    \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n    \"min\": 1.6167792955,\n    \"stddev\": 0.013195343876359934,\n    \"system\": 0.06110814499999999,\n    \"time\": 1.6167792955,\n    \"user\": 1.621737155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n    \"max\": 1.6485821145,\n    \"mean\": 1.6290897213000002,\n    \"median\": 1.6247137264999998,\n    \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n    \"min\": 1.6167792955,\n    \"stddev\": 0.013195343876359934,\n    \"system\": 0.06110814499999999,\n    \"time\": 1.6247137264999998,\n    \"user\": 1.621737155\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n    \"max\": 1.69138940248,\n    \"mean\": 1.6815805562800001,\n    \"median\": 1.68541593648,\n    \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n    \"min\": 1.66257309348,\n    \"stddev\": 0.011279529486789055,\n    \"system\": 0.06601737,\n    \"time\": 1.69138940248,\n    \"user\": 1.67305106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n    \"max\": 1.69138940248,\n    \"mean\": 1.6815805562800001,\n    \"median\": 1.68541593648,\n    \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n    \"min\": 1.66257309348,\n    \"stddev\": 0.011279529486789055,\n    \"system\": 0.06601737,\n    \"time\": 1.66257309348,\n    \"user\": 1.67305106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n    \"max\": 1.69138940248,\n    \"mean\": 1.6815805562800001,\n    \"median\": 1.68541593648,\n    \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n    \"min\": 1.66257309348,\n    \"stddev\": 0.011279529486789055,\n    \"system\": 0.06601737,\n    \"time\": 1.68760296348,\n    \"user\": 1.67305106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n    \"max\": 1.69138940248,\n    \"mean\": 1.6815805562800001,\n    \"median\": 1.68541593648,\n    \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n    \"min\": 1.66257309348,\n    \"stddev\": 0.011279529486789055,\n    \"system\": 0.06601737,\n    \"time\": 1.68541593648,\n    \"user\": 1.67305106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n    \"max\": 1.69138940248,\n    \"mean\": 1.6815805562800001,\n    \"median\": 1.68541593648,\n    \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n    \"min\": 1.66257309348,\n    \"stddev\": 0.011279529486789055,\n    \"system\": 0.06601737,\n    \"time\": 1.68092138548,\n    \"user\": 1.67305106\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n    \"max\": 1.749377778755,\n    \"mean\": 1.686167555755,\n    \"median\": 1.6574258047550001,\n    \"message\": \"Extended separators to better match github diff\\n\",\n    \"min\": 1.6487677487549999,\n    \"stddev\": 0.04549684692256057,\n    \"system\": 0.061877075000000004,\n    \"time\": 1.6574258047550001,\n    \"user\": 1.6779897749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n    \"max\": 1.749377778755,\n    \"mean\": 1.686167555755,\n    \"median\": 1.6574258047550001,\n    \"message\": \"Extended separators to better match github diff\\n\",\n    \"min\": 1.6487677487549999,\n    \"stddev\": 0.04549684692256057,\n    \"system\": 0.061877075000000004,\n    \"time\": 1.6487677487549999,\n    \"user\": 1.6779897749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n    \"max\": 1.749377778755,\n    \"mean\": 1.686167555755,\n    \"median\": 1.6574258047550001,\n    \"message\": \"Extended separators to better match github diff\\n\",\n    \"min\": 1.6487677487549999,\n    \"stddev\": 0.04549684692256057,\n    \"system\": 0.061877075000000004,\n    \"time\": 1.6555771017549998,\n    \"user\": 1.6779897749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n    \"max\": 1.749377778755,\n    \"mean\": 1.686167555755,\n    \"median\": 1.6574258047550001,\n    \"message\": \"Extended separators to better match github diff\\n\",\n    \"min\": 1.6487677487549999,\n    \"stddev\": 0.04549684692256057,\n    \"system\": 0.061877075000000004,\n    \"time\": 1.749377778755,\n    \"user\": 1.6779897749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n    \"max\": 1.749377778755,\n    \"mean\": 1.686167555755,\n    \"median\": 1.6574258047550001,\n    \"message\": \"Extended separators to better match github diff\\n\",\n    \"min\": 1.6487677487549999,\n    \"stddev\": 0.04549684692256057,\n    \"system\": 0.061877075000000004,\n    \"time\": 1.7196893447550001,\n    \"user\": 1.6779897749999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n    \"max\": 1.6900714604550002,\n    \"mean\": 1.6759762746550002,\n    \"median\": 1.6759364914550001,\n    \"message\": \"Changed the tests to reflect the change\\n\",\n    \"min\": 1.662290072455,\n    \"stddev\": 0.01112933826050537,\n    \"system\": 0.06200281999999999,\n    \"time\": 1.6759364914550001,\n    \"user\": 1.6705801699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n    \"max\": 1.6900714604550002,\n    \"mean\": 1.6759762746550002,\n    \"median\": 1.6759364914550001,\n    \"message\": \"Changed the tests to reflect the change\\n\",\n    \"min\": 1.662290072455,\n    \"stddev\": 0.01112933826050537,\n    \"system\": 0.06200281999999999,\n    \"time\": 1.662290072455,\n    \"user\": 1.6705801699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n    \"max\": 1.6900714604550002,\n    \"mean\": 1.6759762746550002,\n    \"median\": 1.6759364914550001,\n    \"message\": \"Changed the tests to reflect the change\\n\",\n    \"min\": 1.662290072455,\n    \"stddev\": 0.01112933826050537,\n    \"system\": 0.06200281999999999,\n    \"time\": 1.6831873674550002,\n    \"user\": 1.6705801699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n    \"max\": 1.6900714604550002,\n    \"mean\": 1.6759762746550002,\n    \"median\": 1.6759364914550001,\n    \"message\": \"Changed the tests to reflect the change\\n\",\n    \"min\": 1.662290072455,\n    \"stddev\": 0.01112933826050537,\n    \"system\": 0.06200281999999999,\n    \"time\": 1.668395981455,\n    \"user\": 1.6705801699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n    \"max\": 1.6900714604550002,\n    \"mean\": 1.6759762746550002,\n    \"median\": 1.6759364914550001,\n    \"message\": \"Changed the tests to reflect the change\\n\",\n    \"min\": 1.662290072455,\n    \"stddev\": 0.01112933826050537,\n    \"system\": 0.06200281999999999,\n    \"time\": 1.6900714604550002,\n    \"user\": 1.6705801699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n    \"max\": 1.75481204301,\n    \"mean\": 1.7095853940099999,\n    \"median\": 1.6983473910100002,\n    \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n    \"min\": 1.6744371180100002,\n    \"stddev\": 0.03132478896482747,\n    \"system\": 0.06290029999999999,\n    \"time\": 1.7262455300100001,\n    \"user\": 1.70286868\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n    \"max\": 1.75481204301,\n    \"mean\": 1.7095853940099999,\n    \"median\": 1.6983473910100002,\n    \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n    \"min\": 1.6744371180100002,\n    \"stddev\": 0.03132478896482747,\n    \"system\": 0.06290029999999999,\n    \"time\": 1.75481204301,\n    \"user\": 1.70286868\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n    \"max\": 1.75481204301,\n    \"mean\": 1.7095853940099999,\n    \"median\": 1.6983473910100002,\n    \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n    \"min\": 1.6744371180100002,\n    \"stddev\": 0.03132478896482747,\n    \"system\": 0.06290029999999999,\n    \"time\": 1.6940848880100001,\n    \"user\": 1.70286868\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n    \"max\": 1.75481204301,\n    \"mean\": 1.7095853940099999,\n    \"median\": 1.6983473910100002,\n    \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n    \"min\": 1.6744371180100002,\n    \"stddev\": 0.03132478896482747,\n    \"system\": 0.06290029999999999,\n    \"time\": 1.6983473910100002,\n    \"user\": 1.70286868\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n    \"max\": 1.75481204301,\n    \"mean\": 1.7095853940099999,\n    \"median\": 1.6983473910100002,\n    \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n    \"min\": 1.6744371180100002,\n    \"stddev\": 0.03132478896482747,\n    \"system\": 0.06290029999999999,\n    \"time\": 1.6744371180100002,\n    \"user\": 1.70286868\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n    \"max\": 1.957333729855,\n    \"mean\": 1.8064056842549998,\n    \"median\": 1.7490844508549999,\n    \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n    \"min\": 1.725274955855,\n    \"stddev\": 0.0983351928501913,\n    \"system\": 0.07143803499999998,\n    \"time\": 1.854730543855,\n    \"user\": 1.7978843699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n    \"max\": 1.957333729855,\n    \"mean\": 1.8064056842549998,\n    \"median\": 1.7490844508549999,\n    \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n    \"min\": 1.725274955855,\n    \"stddev\": 0.0983351928501913,\n    \"system\": 0.07143803499999998,\n    \"time\": 1.7490844508549999,\n    \"user\": 1.7978843699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n    \"max\": 1.957333729855,\n    \"mean\": 1.8064056842549998,\n    \"median\": 1.7490844508549999,\n    \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n    \"min\": 1.725274955855,\n    \"stddev\": 0.0983351928501913,\n    \"system\": 0.07143803499999998,\n    \"time\": 1.725274955855,\n    \"user\": 1.7978843699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n    \"max\": 1.957333729855,\n    \"mean\": 1.8064056842549998,\n    \"median\": 1.7490844508549999,\n    \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n    \"min\": 1.725274955855,\n    \"stddev\": 0.0983351928501913,\n    \"system\": 0.07143803499999998,\n    \"time\": 1.957333729855,\n    \"user\": 1.7978843699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n    \"max\": 1.957333729855,\n    \"mean\": 1.8064056842549998,\n    \"median\": 1.7490844508549999,\n    \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n    \"min\": 1.725274955855,\n    \"stddev\": 0.0983351928501913,\n    \"system\": 0.07143803499999998,\n    \"time\": 1.745604740855,\n    \"user\": 1.7978843699999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n    \"max\": 1.86261783881,\n    \"mean\": 1.7665748556100003,\n    \"median\": 1.71610219281,\n    \"message\": \"Add `git reflog -p` to README examples\\n\",\n    \"min\": 1.68896238781,\n    \"stddev\": 0.0842338071582119,\n    \"system\": 0.06876859499999999,\n    \"time\": 1.85356263981,\n    \"user\": 1.7484881250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n    \"max\": 1.86261783881,\n    \"mean\": 1.7665748556100003,\n    \"median\": 1.71610219281,\n    \"message\": \"Add `git reflog -p` to README examples\\n\",\n    \"min\": 1.68896238781,\n    \"stddev\": 0.0842338071582119,\n    \"system\": 0.06876859499999999,\n    \"time\": 1.86261783881,\n    \"user\": 1.7484881250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n    \"max\": 1.86261783881,\n    \"mean\": 1.7665748556100003,\n    \"median\": 1.71610219281,\n    \"message\": \"Add `git reflog -p` to README examples\\n\",\n    \"min\": 1.68896238781,\n    \"stddev\": 0.0842338071582119,\n    \"system\": 0.06876859499999999,\n    \"time\": 1.68896238781,\n    \"user\": 1.7484881250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n    \"max\": 1.86261783881,\n    \"mean\": 1.7665748556100003,\n    \"median\": 1.71610219281,\n    \"message\": \"Add `git reflog -p` to README examples\\n\",\n    \"min\": 1.68896238781,\n    \"stddev\": 0.0842338071582119,\n    \"system\": 0.06876859499999999,\n    \"time\": 1.71610219281,\n    \"user\": 1.7484881250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n    \"max\": 1.86261783881,\n    \"mean\": 1.7665748556100003,\n    \"median\": 1.71610219281,\n    \"message\": \"Add `git reflog -p` to README examples\\n\",\n    \"min\": 1.68896238781,\n    \"stddev\": 0.0842338071582119,\n    \"system\": 0.06876859499999999,\n    \"time\": 1.7116292188100002,\n    \"user\": 1.7484881250000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n    \"max\": 1.75699213357,\n    \"mean\": 1.73466011337,\n    \"median\": 1.7362164955700001,\n    \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n    \"min\": 1.71930740057,\n    \"stddev\": 0.01588391870681567,\n    \"system\": 0.066213565,\n    \"time\": 1.71930740057,\n    \"user\": 1.72590431\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n    \"max\": 1.75699213357,\n    \"mean\": 1.73466011337,\n    \"median\": 1.7362164955700001,\n    \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n    \"min\": 1.71930740057,\n    \"stddev\": 0.01588391870681567,\n    \"system\": 0.066213565,\n    \"time\": 1.71953134657,\n    \"user\": 1.72590431\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n    \"max\": 1.75699213357,\n    \"mean\": 1.73466011337,\n    \"median\": 1.7362164955700001,\n    \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n    \"min\": 1.71930740057,\n    \"stddev\": 0.01588391870681567,\n    \"system\": 0.066213565,\n    \"time\": 1.7362164955700001,\n    \"user\": 1.72590431\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n    \"max\": 1.75699213357,\n    \"mean\": 1.73466011337,\n    \"median\": 1.7362164955700001,\n    \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n    \"min\": 1.71930740057,\n    \"stddev\": 0.01588391870681567,\n    \"system\": 0.066213565,\n    \"time\": 1.75699213357,\n    \"user\": 1.72590431\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n    \"max\": 1.75699213357,\n    \"mean\": 1.73466011337,\n    \"median\": 1.7362164955700001,\n    \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n    \"min\": 1.71930740057,\n    \"stddev\": 0.01588391870681567,\n    \"system\": 0.066213565,\n    \"time\": 1.74125319057,\n    \"user\": 1.72590431\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n    \"max\": 1.7812901622550001,\n    \"mean\": 1.746670443455,\n    \"median\": 1.7459991402550001,\n    \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n    \"min\": 1.709454223255,\n    \"stddev\": 0.026805152434650998,\n    \"system\": 0.06662376499999999,\n    \"time\": 1.7602354582550002,\n    \"user\": 1.7342631049999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n    \"max\": 1.7812901622550001,\n    \"mean\": 1.746670443455,\n    \"median\": 1.7459991402550001,\n    \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n    \"min\": 1.709454223255,\n    \"stddev\": 0.026805152434650998,\n    \"system\": 0.06662376499999999,\n    \"time\": 1.709454223255,\n    \"user\": 1.7342631049999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n    \"max\": 1.7812901622550001,\n    \"mean\": 1.746670443455,\n    \"median\": 1.7459991402550001,\n    \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n    \"min\": 1.709454223255,\n    \"stddev\": 0.026805152434650998,\n    \"system\": 0.06662376499999999,\n    \"time\": 1.736373233255,\n    \"user\": 1.7342631049999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n    \"max\": 1.7812901622550001,\n    \"mean\": 1.746670443455,\n    \"median\": 1.7459991402550001,\n    \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n    \"min\": 1.709454223255,\n    \"stddev\": 0.026805152434650998,\n    \"system\": 0.06662376499999999,\n    \"time\": 1.7812901622550001,\n    \"user\": 1.7342631049999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n    \"max\": 1.7812901622550001,\n    \"mean\": 1.746670443455,\n    \"median\": 1.7459991402550001,\n    \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n    \"min\": 1.709454223255,\n    \"stddev\": 0.026805152434650998,\n    \"system\": 0.06662376499999999,\n    \"time\": 1.7459991402550001,\n    \"user\": 1.7342631049999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n    \"max\": 1.67974222769,\n    \"mean\": 1.67332389669,\n    \"median\": 1.67829146569,\n    \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n    \"min\": 1.65897500469,\n    \"stddev\": 0.008773517504711704,\n    \"system\": 0.06006478499999999,\n    \"time\": 1.67974222769,\n    \"user\": 1.6696383350000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n    \"max\": 1.67974222769,\n    \"mean\": 1.67332389669,\n    \"median\": 1.67829146569,\n    \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n    \"min\": 1.65897500469,\n    \"stddev\": 0.008773517504711704,\n    \"system\": 0.06006478499999999,\n    \"time\": 1.67082127669,\n    \"user\": 1.6696383350000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n    \"max\": 1.67974222769,\n    \"mean\": 1.67332389669,\n    \"median\": 1.67829146569,\n    \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n    \"min\": 1.65897500469,\n    \"stddev\": 0.008773517504711704,\n    \"system\": 0.06006478499999999,\n    \"time\": 1.67878950869,\n    \"user\": 1.6696383350000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n    \"max\": 1.67974222769,\n    \"mean\": 1.67332389669,\n    \"median\": 1.67829146569,\n    \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n    \"min\": 1.65897500469,\n    \"stddev\": 0.008773517504711704,\n    \"system\": 0.06006478499999999,\n    \"time\": 1.67829146569,\n    \"user\": 1.6696383350000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n    \"max\": 1.67974222769,\n    \"mean\": 1.67332389669,\n    \"median\": 1.67829146569,\n    \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n    \"min\": 1.65897500469,\n    \"stddev\": 0.008773517504711704,\n    \"system\": 0.06006478499999999,\n    \"time\": 1.65897500469,\n    \"user\": 1.6696383350000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n    \"max\": 1.691281485235,\n    \"mean\": 1.676561741035,\n    \"median\": 1.676946701235,\n    \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n    \"min\": 1.6614765442350001,\n    \"stddev\": 0.010547753005403813,\n    \"system\": 0.059964365,\n    \"time\": 1.691281485235,\n    \"user\": 1.673374145\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n    \"max\": 1.691281485235,\n    \"mean\": 1.676561741035,\n    \"median\": 1.676946701235,\n    \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n    \"min\": 1.6614765442350001,\n    \"stddev\": 0.010547753005403813,\n    \"system\": 0.059964365,\n    \"time\": 1.675987205235,\n    \"user\": 1.673374145\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n    \"max\": 1.691281485235,\n    \"mean\": 1.676561741035,\n    \"median\": 1.676946701235,\n    \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n    \"min\": 1.6614765442350001,\n    \"stddev\": 0.010547753005403813,\n    \"system\": 0.059964365,\n    \"time\": 1.676946701235,\n    \"user\": 1.673374145\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n    \"max\": 1.691281485235,\n    \"mean\": 1.676561741035,\n    \"median\": 1.676946701235,\n    \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n    \"min\": 1.6614765442350001,\n    \"stddev\": 0.010547753005403813,\n    \"system\": 0.059964365,\n    \"time\": 1.677116769235,\n    \"user\": 1.673374145\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n    \"max\": 1.691281485235,\n    \"mean\": 1.676561741035,\n    \"median\": 1.676946701235,\n    \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n    \"min\": 1.6614765442350001,\n    \"stddev\": 0.010547753005403813,\n    \"system\": 0.059964365,\n    \"time\": 1.6614765442350001,\n    \"user\": 1.673374145\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n    \"max\": 1.6965043663750001,\n    \"mean\": 1.6812644377750001,\n    \"median\": 1.6825589983750002,\n    \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n    \"min\": 1.667276333375,\n    \"stddev\": 0.01191736572280662,\n    \"system\": 0.061040605000000005,\n    \"time\": 1.6825589983750002,\n    \"user\": 1.6765844199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n    \"max\": 1.6965043663750001,\n    \"mean\": 1.6812644377750001,\n    \"median\": 1.6825589983750002,\n    \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n    \"min\": 1.667276333375,\n    \"stddev\": 0.01191736572280662,\n    \"system\": 0.061040605000000005,\n    \"time\": 1.6882148093750002,\n    \"user\": 1.6765844199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n    \"max\": 1.6965043663750001,\n    \"mean\": 1.6812644377750001,\n    \"median\": 1.6825589983750002,\n    \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n    \"min\": 1.667276333375,\n    \"stddev\": 0.01191736572280662,\n    \"system\": 0.061040605000000005,\n    \"time\": 1.667276333375,\n    \"user\": 1.6765844199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n    \"max\": 1.6965043663750001,\n    \"mean\": 1.6812644377750001,\n    \"median\": 1.6825589983750002,\n    \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n    \"min\": 1.667276333375,\n    \"stddev\": 0.01191736572280662,\n    \"system\": 0.061040605000000005,\n    \"time\": 1.671767681375,\n    \"user\": 1.6765844199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n    \"max\": 1.6965043663750001,\n    \"mean\": 1.6812644377750001,\n    \"median\": 1.6825589983750002,\n    \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n    \"min\": 1.667276333375,\n    \"stddev\": 0.01191736572280662,\n    \"system\": 0.061040605000000005,\n    \"time\": 1.6965043663750001,\n    \"user\": 1.6765844199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n    \"max\": 2.076995202875,\n    \"mean\": 1.891151899075,\n    \"median\": 1.912134700875,\n    \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n    \"min\": 1.732048745875,\n    \"stddev\": 0.12950498074984354,\n    \"system\": 0.083686485,\n    \"time\": 1.920467462875,\n    \"user\": 1.87067567\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n    \"max\": 2.076995202875,\n    \"mean\": 1.891151899075,\n    \"median\": 1.912134700875,\n    \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n    \"min\": 1.732048745875,\n    \"stddev\": 0.12950498074984354,\n    \"system\": 0.083686485,\n    \"time\": 1.814113382875,\n    \"user\": 1.87067567\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n    \"max\": 2.076995202875,\n    \"mean\": 1.891151899075,\n    \"median\": 1.912134700875,\n    \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n    \"min\": 1.732048745875,\n    \"stddev\": 0.12950498074984354,\n    \"system\": 0.083686485,\n    \"time\": 2.076995202875,\n    \"user\": 1.87067567\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n    \"max\": 2.076995202875,\n    \"mean\": 1.891151899075,\n    \"median\": 1.912134700875,\n    \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n    \"min\": 1.732048745875,\n    \"stddev\": 0.12950498074984354,\n    \"system\": 0.083686485,\n    \"time\": 1.732048745875,\n    \"user\": 1.87067567\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n    \"max\": 2.076995202875,\n    \"mean\": 1.891151899075,\n    \"median\": 1.912134700875,\n    \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n    \"min\": 1.732048745875,\n    \"stddev\": 0.12950498074984354,\n    \"system\": 0.083686485,\n    \"time\": 1.912134700875,\n    \"user\": 1.87067567\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n    \"max\": 2.0220149348149996,\n    \"mean\": 1.836561624815,\n    \"median\": 1.7480367248150002,\n    \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n    \"min\": 1.727463985815,\n    \"stddev\": 0.1387355185981961,\n    \"system\": 0.07262614999999999,\n    \"time\": 1.7480367248150002,\n    \"user\": 1.8243777049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n    \"max\": 2.0220149348149996,\n    \"mean\": 1.836561624815,\n    \"median\": 1.7480367248150002,\n    \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n    \"min\": 1.727463985815,\n    \"stddev\": 0.1387355185981961,\n    \"system\": 0.07262614999999999,\n    \"time\": 1.727463985815,\n    \"user\": 1.8243777049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n    \"max\": 2.0220149348149996,\n    \"mean\": 1.836561624815,\n    \"median\": 1.7480367248150002,\n    \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n    \"min\": 1.727463985815,\n    \"stddev\": 0.1387355185981961,\n    \"system\": 0.07262614999999999,\n    \"time\": 2.0220149348149996,\n    \"user\": 1.8243777049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n    \"max\": 2.0220149348149996,\n    \"mean\": 1.836561624815,\n    \"median\": 1.7480367248150002,\n    \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n    \"min\": 1.727463985815,\n    \"stddev\": 0.1387355185981961,\n    \"system\": 0.07262614999999999,\n    \"time\": 1.7359123448150002,\n    \"user\": 1.8243777049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n    \"max\": 2.0220149348149996,\n    \"mean\": 1.836561624815,\n    \"median\": 1.7480367248150002,\n    \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n    \"min\": 1.727463985815,\n    \"stddev\": 0.1387355185981961,\n    \"system\": 0.07262614999999999,\n    \"time\": 1.949380133815,\n    \"user\": 1.8243777049999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n    \"max\": 1.9791077594100002,\n    \"mean\": 1.85194980381,\n    \"median\": 1.87725294441,\n    \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n    \"min\": 1.73153866041,\n    \"stddev\": 0.09866019406898846,\n    \"system\": 0.0770565,\n    \"time\": 1.7762863424100002,\n    \"user\": 1.8330042899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n    \"max\": 1.9791077594100002,\n    \"mean\": 1.85194980381,\n    \"median\": 1.87725294441,\n    \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n    \"min\": 1.73153866041,\n    \"stddev\": 0.09866019406898846,\n    \"system\": 0.0770565,\n    \"time\": 1.89556331241,\n    \"user\": 1.8330042899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n    \"max\": 1.9791077594100002,\n    \"mean\": 1.85194980381,\n    \"median\": 1.87725294441,\n    \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n    \"min\": 1.73153866041,\n    \"stddev\": 0.09866019406898846,\n    \"system\": 0.0770565,\n    \"time\": 1.73153866041,\n    \"user\": 1.8330042899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n    \"max\": 1.9791077594100002,\n    \"mean\": 1.85194980381,\n    \"median\": 1.87725294441,\n    \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n    \"min\": 1.73153866041,\n    \"stddev\": 0.09866019406898846,\n    \"system\": 0.0770565,\n    \"time\": 1.87725294441,\n    \"user\": 1.8330042899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n    \"max\": 1.9791077594100002,\n    \"mean\": 1.85194980381,\n    \"median\": 1.87725294441,\n    \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n    \"min\": 1.73153866041,\n    \"stddev\": 0.09866019406898846,\n    \"system\": 0.0770565,\n    \"time\": 1.9791077594100002,\n    \"user\": 1.8330042899999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n    \"max\": 2.05251940022,\n    \"mean\": 1.9014428428199999,\n    \"median\": 1.85271021722,\n    \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n    \"min\": 1.79446283522,\n    \"stddev\": 0.11975562659829767,\n    \"system\": 0.08017157999999999,\n    \"time\": 1.85271021722,\n    \"user\": 1.8817974450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n    \"max\": 2.05251940022,\n    \"mean\": 1.9014428428199999,\n    \"median\": 1.85271021722,\n    \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n    \"min\": 1.79446283522,\n    \"stddev\": 0.11975562659829767,\n    \"system\": 0.08017157999999999,\n    \"time\": 1.79446283522,\n    \"user\": 1.8817974450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n    \"max\": 2.05251940022,\n    \"mean\": 1.9014428428199999,\n    \"median\": 1.85271021722,\n    \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n    \"min\": 1.79446283522,\n    \"stddev\": 0.11975562659829767,\n    \"system\": 0.08017157999999999,\n    \"time\": 1.8019984692200002,\n    \"user\": 1.8817974450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n    \"max\": 2.05251940022,\n    \"mean\": 1.9014428428199999,\n    \"median\": 1.85271021722,\n    \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n    \"min\": 1.79446283522,\n    \"stddev\": 0.11975562659829767,\n    \"system\": 0.08017157999999999,\n    \"time\": 2.05251940022,\n    \"user\": 1.8817974450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n    \"max\": 2.05251940022,\n    \"mean\": 1.9014428428199999,\n    \"median\": 1.85271021722,\n    \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n    \"min\": 1.79446283522,\n    \"stddev\": 0.11975562659829767,\n    \"system\": 0.08017157999999999,\n    \"time\": 2.00552329222,\n    \"user\": 1.8817974450000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n    \"max\": 1.99661255905,\n    \"mean\": 1.8663282752500003,\n    \"median\": 1.83534819405,\n    \"message\": \"Test recognized and unrecognized file types\\n\",\n    \"min\": 1.78535833305,\n    \"stddev\": 0.08818298609131972,\n    \"system\": 0.07729403499999998,\n    \"time\": 1.83534819405,\n    \"user\": 1.8518293899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n    \"max\": 1.99661255905,\n    \"mean\": 1.8663282752500003,\n    \"median\": 1.83534819405,\n    \"message\": \"Test recognized and unrecognized file types\\n\",\n    \"min\": 1.78535833305,\n    \"stddev\": 0.08818298609131972,\n    \"system\": 0.07729403499999998,\n    \"time\": 1.78535833305,\n    \"user\": 1.8518293899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n    \"max\": 1.99661255905,\n    \"mean\": 1.8663282752500003,\n    \"median\": 1.83534819405,\n    \"message\": \"Test recognized and unrecognized file types\\n\",\n    \"min\": 1.78535833305,\n    \"stddev\": 0.08818298609131972,\n    \"system\": 0.07729403499999998,\n    \"time\": 1.99661255905,\n    \"user\": 1.8518293899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n    \"max\": 1.99661255905,\n    \"mean\": 1.8663282752500003,\n    \"median\": 1.83534819405,\n    \"message\": \"Test recognized and unrecognized file types\\n\",\n    \"min\": 1.78535833305,\n    \"stddev\": 0.08818298609131972,\n    \"system\": 0.07729403499999998,\n    \"time\": 1.91393698505,\n    \"user\": 1.8518293899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n    \"max\": 1.99661255905,\n    \"mean\": 1.8663282752500003,\n    \"median\": 1.83534819405,\n    \"message\": \"Test recognized and unrecognized file types\\n\",\n    \"min\": 1.78535833305,\n    \"stddev\": 0.08818298609131972,\n    \"system\": 0.07729403499999998,\n    \"time\": 1.80038530505,\n    \"user\": 1.8518293899999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n    \"max\": 2.019309025635,\n    \"mean\": 1.8329849652350003,\n    \"median\": 1.8032783136350001,\n    \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n    \"min\": 1.7239523246350001,\n    \"stddev\": 0.11509860244473041,\n    \"system\": 0.07363996999999999,\n    \"time\": 1.855943734635,\n    \"user\": 1.821862795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n    \"max\": 2.019309025635,\n    \"mean\": 1.8329849652350003,\n    \"median\": 1.8032783136350001,\n    \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n    \"min\": 1.7239523246350001,\n    \"stddev\": 0.11509860244473041,\n    \"system\": 0.07363996999999999,\n    \"time\": 1.8032783136350001,\n    \"user\": 1.821862795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n    \"max\": 2.019309025635,\n    \"mean\": 1.8329849652350003,\n    \"median\": 1.8032783136350001,\n    \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n    \"min\": 1.7239523246350001,\n    \"stddev\": 0.11509860244473041,\n    \"system\": 0.07363996999999999,\n    \"time\": 1.762441427635,\n    \"user\": 1.821862795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n    \"max\": 2.019309025635,\n    \"mean\": 1.8329849652350003,\n    \"median\": 1.8032783136350001,\n    \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n    \"min\": 1.7239523246350001,\n    \"stddev\": 0.11509860244473041,\n    \"system\": 0.07363996999999999,\n    \"time\": 1.7239523246350001,\n    \"user\": 1.821862795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n    \"max\": 2.019309025635,\n    \"mean\": 1.8329849652350003,\n    \"median\": 1.8032783136350001,\n    \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n    \"min\": 1.7239523246350001,\n    \"stddev\": 0.11509860244473041,\n    \"system\": 0.07363996999999999,\n    \"time\": 2.019309025635,\n    \"user\": 1.821862795\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n    \"max\": 1.91038226295,\n    \"mean\": 1.83770777135,\n    \"median\": 1.83881793195,\n    \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n    \"min\": 1.7661111619499998,\n    \"stddev\": 0.051568545449354755,\n    \"system\": 0.07472437999999999,\n    \"time\": 1.91038226295,\n    \"user\": 1.824329565\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n    \"max\": 1.91038226295,\n    \"mean\": 1.83770777135,\n    \"median\": 1.83881793195,\n    \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n    \"min\": 1.7661111619499998,\n    \"stddev\": 0.051568545449354755,\n    \"system\": 0.07472437999999999,\n    \"time\": 1.84724335695,\n    \"user\": 1.824329565\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n    \"max\": 1.91038226295,\n    \"mean\": 1.83770777135,\n    \"median\": 1.83881793195,\n    \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n    \"min\": 1.7661111619499998,\n    \"stddev\": 0.051568545449354755,\n    \"system\": 0.07472437999999999,\n    \"time\": 1.82598414295,\n    \"user\": 1.824329565\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n    \"max\": 1.91038226295,\n    \"mean\": 1.83770777135,\n    \"median\": 1.83881793195,\n    \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n    \"min\": 1.7661111619499998,\n    \"stddev\": 0.051568545449354755,\n    \"system\": 0.07472437999999999,\n    \"time\": 1.83881793195,\n    \"user\": 1.824329565\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n    \"max\": 1.91038226295,\n    \"mean\": 1.83770777135,\n    \"median\": 1.83881793195,\n    \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n    \"min\": 1.7661111619499998,\n    \"stddev\": 0.051568545449354755,\n    \"system\": 0.07472437999999999,\n    \"time\": 1.7661111619499998,\n    \"user\": 1.824329565\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n    \"max\": 1.85544390386,\n    \"mean\": 1.8087920730599998,\n    \"median\": 1.7982192288599999,\n    \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n    \"min\": 1.78086014086,\n    \"stddev\": 0.02933469913390957,\n    \"system\": 0.07323297999999998,\n    \"time\": 1.78086014086,\n    \"user\": 1.796521705\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n    \"max\": 1.85544390386,\n    \"mean\": 1.8087920730599998,\n    \"median\": 1.7982192288599999,\n    \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n    \"min\": 1.78086014086,\n    \"stddev\": 0.02933469913390957,\n    \"system\": 0.07323297999999998,\n    \"time\": 1.7916697938600001,\n    \"user\": 1.796521705\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n    \"max\": 1.85544390386,\n    \"mean\": 1.8087920730599998,\n    \"median\": 1.7982192288599999,\n    \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n    \"min\": 1.78086014086,\n    \"stddev\": 0.02933469913390957,\n    \"system\": 0.07323297999999998,\n    \"time\": 1.8177672978600001,\n    \"user\": 1.796521705\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n    \"max\": 1.85544390386,\n    \"mean\": 1.8087920730599998,\n    \"median\": 1.7982192288599999,\n    \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n    \"min\": 1.78086014086,\n    \"stddev\": 0.02933469913390957,\n    \"system\": 0.07323297999999998,\n    \"time\": 1.85544390386,\n    \"user\": 1.796521705\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n    \"max\": 1.85544390386,\n    \"mean\": 1.8087920730599998,\n    \"median\": 1.7982192288599999,\n    \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n    \"min\": 1.78086014086,\n    \"stddev\": 0.02933469913390957,\n    \"system\": 0.07323297999999998,\n    \"time\": 1.7982192288599999,\n    \"user\": 1.796521705\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n    \"max\": 1.94367948187,\n    \"mean\": 1.8221982468699998,\n    \"median\": 1.79064750387,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.7725180078699998,\n    \"stddev\": 0.0698583148711172,\n    \"system\": 0.07403870499999998,\n    \"time\": 1.78642976387,\n    \"user\": 1.8057163949999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n    \"max\": 1.94367948187,\n    \"mean\": 1.8221982468699998,\n    \"median\": 1.79064750387,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.7725180078699998,\n    \"stddev\": 0.0698583148711172,\n    \"system\": 0.07403870499999998,\n    \"time\": 1.79064750387,\n    \"user\": 1.8057163949999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n    \"max\": 1.94367948187,\n    \"mean\": 1.8221982468699998,\n    \"median\": 1.79064750387,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.7725180078699998,\n    \"stddev\": 0.0698583148711172,\n    \"system\": 0.07403870499999998,\n    \"time\": 1.7725180078699998,\n    \"user\": 1.8057163949999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n    \"max\": 1.94367948187,\n    \"mean\": 1.8221982468699998,\n    \"median\": 1.79064750387,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.7725180078699998,\n    \"stddev\": 0.0698583148711172,\n    \"system\": 0.07403870499999998,\n    \"time\": 1.81771647687,\n    \"user\": 1.8057163949999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n    \"max\": 1.94367948187,\n    \"mean\": 1.8221982468699998,\n    \"median\": 1.79064750387,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.7725180078699998,\n    \"stddev\": 0.0698583148711172,\n    \"system\": 0.07403870499999998,\n    \"time\": 1.94367948187,\n    \"user\": 1.8057163949999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n    \"max\": 1.986528651685,\n    \"mean\": 1.8237671366850001,\n    \"median\": 1.787681014685,\n    \"message\": \"Bump version in links\\n\",\n    \"min\": 1.7612490146850002,\n    \"stddev\": 0.09231565957979386,\n    \"system\": 0.077240765,\n    \"time\": 1.986528651685,\n    \"user\": 1.80825521\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n    \"max\": 1.986528651685,\n    \"mean\": 1.8237671366850001,\n    \"median\": 1.787681014685,\n    \"message\": \"Bump version in links\\n\",\n    \"min\": 1.7612490146850002,\n    \"stddev\": 0.09231565957979386,\n    \"system\": 0.077240765,\n    \"time\": 1.804506686685,\n    \"user\": 1.80825521\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n    \"max\": 1.986528651685,\n    \"mean\": 1.8237671366850001,\n    \"median\": 1.787681014685,\n    \"message\": \"Bump version in links\\n\",\n    \"min\": 1.7612490146850002,\n    \"stddev\": 0.09231565957979386,\n    \"system\": 0.077240765,\n    \"time\": 1.7612490146850002,\n    \"user\": 1.80825521\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n    \"max\": 1.986528651685,\n    \"mean\": 1.8237671366850001,\n    \"median\": 1.787681014685,\n    \"message\": \"Bump version in links\\n\",\n    \"min\": 1.7612490146850002,\n    \"stddev\": 0.09231565957979386,\n    \"system\": 0.077240765,\n    \"time\": 1.7788703156849999,\n    \"user\": 1.80825521\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n    \"max\": 1.986528651685,\n    \"mean\": 1.8237671366850001,\n    \"median\": 1.787681014685,\n    \"message\": \"Bump version in links\\n\",\n    \"min\": 1.7612490146850002,\n    \"stddev\": 0.09231565957979386,\n    \"system\": 0.077240765,\n    \"time\": 1.787681014685,\n    \"user\": 1.80825521\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n    \"max\": 2.0446609367799997,\n    \"mean\": 1.82828507998,\n    \"median\": 1.7888713087800001,\n    \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n    \"min\": 1.73641691778,\n    \"stddev\": 0.12683916892072247,\n    \"system\": 0.07124981,\n    \"time\": 1.7888713087800001,\n    \"user\": 1.8155802600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n    \"max\": 2.0446609367799997,\n    \"mean\": 1.82828507998,\n    \"median\": 1.7888713087800001,\n    \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n    \"min\": 1.73641691778,\n    \"stddev\": 0.12683916892072247,\n    \"system\": 0.07124981,\n    \"time\": 1.8300128017800001,\n    \"user\": 1.8155802600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n    \"max\": 2.0446609367799997,\n    \"mean\": 1.82828507998,\n    \"median\": 1.7888713087800001,\n    \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n    \"min\": 1.73641691778,\n    \"stddev\": 0.12683916892072247,\n    \"system\": 0.07124981,\n    \"time\": 2.0446609367799997,\n    \"user\": 1.8155802600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n    \"max\": 2.0446609367799997,\n    \"mean\": 1.82828507998,\n    \"median\": 1.7888713087800001,\n    \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n    \"min\": 1.73641691778,\n    \"stddev\": 0.12683916892072247,\n    \"system\": 0.07124981,\n    \"time\": 1.7414634347800002,\n    \"user\": 1.8155802600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n    \"max\": 2.0446609367799997,\n    \"mean\": 1.82828507998,\n    \"median\": 1.7888713087800001,\n    \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n    \"min\": 1.73641691778,\n    \"stddev\": 0.12683916892072247,\n    \"system\": 0.07124981,\n    \"time\": 1.73641691778,\n    \"user\": 1.8155802600000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n    \"max\": 2.0216179263300003,\n    \"mean\": 1.8411191099300002,\n    \"median\": 1.78738878533,\n    \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n    \"min\": 1.7501132373300001,\n    \"stddev\": 0.11561843369651265,\n    \"system\": 0.07357433,\n    \"time\": 1.75585023833,\n    \"user\": 1.82455338\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n    \"max\": 2.0216179263300003,\n    \"mean\": 1.8411191099300002,\n    \"median\": 1.78738878533,\n    \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n    \"min\": 1.7501132373300001,\n    \"stddev\": 0.11561843369651265,\n    \"system\": 0.07357433,\n    \"time\": 2.0216179263300003,\n    \"user\": 1.82455338\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n    \"max\": 2.0216179263300003,\n    \"mean\": 1.8411191099300002,\n    \"median\": 1.78738878533,\n    \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n    \"min\": 1.7501132373300001,\n    \"stddev\": 0.11561843369651265,\n    \"system\": 0.07357433,\n    \"time\": 1.7501132373300001,\n    \"user\": 1.82455338\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n    \"max\": 2.0216179263300003,\n    \"mean\": 1.8411191099300002,\n    \"median\": 1.78738878533,\n    \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n    \"min\": 1.7501132373300001,\n    \"stddev\": 0.11561843369651265,\n    \"system\": 0.07357433,\n    \"time\": 1.78738878533,\n    \"user\": 1.82455338\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n    \"max\": 2.0216179263300003,\n    \"mean\": 1.8411191099300002,\n    \"median\": 1.78738878533,\n    \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n    \"min\": 1.7501132373300001,\n    \"stddev\": 0.11561843369651265,\n    \"system\": 0.07357433,\n    \"time\": 1.89062536233,\n    \"user\": 1.82455338\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n    \"max\": 1.90121851209,\n    \"mean\": 1.82223031209,\n    \"median\": 1.8250404530900002,\n    \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n    \"min\": 1.7338159030900002,\n    \"stddev\": 0.06416541352922212,\n    \"system\": 0.07547793,\n    \"time\": 1.8600548250900002,\n    \"user\": 1.8091722349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n    \"max\": 1.90121851209,\n    \"mean\": 1.82223031209,\n    \"median\": 1.8250404530900002,\n    \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n    \"min\": 1.7338159030900002,\n    \"stddev\": 0.06416541352922212,\n    \"system\": 0.07547793,\n    \"time\": 1.7910218670900002,\n    \"user\": 1.8091722349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n    \"max\": 1.90121851209,\n    \"mean\": 1.82223031209,\n    \"median\": 1.8250404530900002,\n    \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n    \"min\": 1.7338159030900002,\n    \"stddev\": 0.06416541352922212,\n    \"system\": 0.07547793,\n    \"time\": 1.90121851209,\n    \"user\": 1.8091722349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n    \"max\": 1.90121851209,\n    \"mean\": 1.82223031209,\n    \"median\": 1.8250404530900002,\n    \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n    \"min\": 1.7338159030900002,\n    \"stddev\": 0.06416541352922212,\n    \"system\": 0.07547793,\n    \"time\": 1.8250404530900002,\n    \"user\": 1.8091722349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n    \"max\": 1.90121851209,\n    \"mean\": 1.82223031209,\n    \"median\": 1.8250404530900002,\n    \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n    \"min\": 1.7338159030900002,\n    \"stddev\": 0.06416541352922212,\n    \"system\": 0.07547793,\n    \"time\": 1.7338159030900002,\n    \"user\": 1.8091722349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n    \"max\": 1.913544771435,\n    \"mean\": 1.827434752835,\n    \"median\": 1.796430682435,\n    \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n    \"min\": 1.7818857604349998,\n    \"stddev\": 0.05500856201111077,\n    \"system\": 0.07617627499999999,\n    \"time\": 1.796430682435,\n    \"user\": 1.812930085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n    \"max\": 1.913544771435,\n    \"mean\": 1.827434752835,\n    \"median\": 1.796430682435,\n    \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n    \"min\": 1.7818857604349998,\n    \"stddev\": 0.05500856201111077,\n    \"system\": 0.07617627499999999,\n    \"time\": 1.851004127435,\n    \"user\": 1.812930085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n    \"max\": 1.913544771435,\n    \"mean\": 1.827434752835,\n    \"median\": 1.796430682435,\n    \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n    \"min\": 1.7818857604349998,\n    \"stddev\": 0.05500856201111077,\n    \"system\": 0.07617627499999999,\n    \"time\": 1.913544771435,\n    \"user\": 1.812930085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n    \"max\": 1.913544771435,\n    \"mean\": 1.827434752835,\n    \"median\": 1.796430682435,\n    \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n    \"min\": 1.7818857604349998,\n    \"stddev\": 0.05500856201111077,\n    \"system\": 0.07617627499999999,\n    \"time\": 1.7818857604349998,\n    \"user\": 1.812930085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n    \"max\": 1.913544771435,\n    \"mean\": 1.827434752835,\n    \"median\": 1.796430682435,\n    \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n    \"min\": 1.7818857604349998,\n    \"stddev\": 0.05500856201111077,\n    \"system\": 0.07617627499999999,\n    \"time\": 1.7943084224349999,\n    \"user\": 1.812930085\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n    \"max\": 1.9952455650499998,\n    \"mean\": 1.83274611605,\n    \"median\": 1.76209074205,\n    \"message\": \"Formatting\\n\",\n    \"min\": 1.74966581405,\n    \"stddev\": 0.11133912816718725,\n    \"system\": 0.07451551,\n    \"time\": 1.9952455650499998,\n    \"user\": 1.82076629\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n    \"max\": 1.9952455650499998,\n    \"mean\": 1.83274611605,\n    \"median\": 1.76209074205,\n    \"message\": \"Formatting\\n\",\n    \"min\": 1.74966581405,\n    \"stddev\": 0.11133912816718725,\n    \"system\": 0.07451551,\n    \"time\": 1.76209074205,\n    \"user\": 1.82076629\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n    \"max\": 1.9952455650499998,\n    \"mean\": 1.83274611605,\n    \"median\": 1.76209074205,\n    \"message\": \"Formatting\\n\",\n    \"min\": 1.74966581405,\n    \"stddev\": 0.11133912816718725,\n    \"system\": 0.07451551,\n    \"time\": 1.74966581405,\n    \"user\": 1.82076629\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n    \"max\": 1.9952455650499998,\n    \"mean\": 1.83274611605,\n    \"median\": 1.76209074205,\n    \"message\": \"Formatting\\n\",\n    \"min\": 1.74966581405,\n    \"stddev\": 0.11133912816718725,\n    \"system\": 0.07451551,\n    \"time\": 1.90335294405,\n    \"user\": 1.82076629\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n    \"max\": 1.9952455650499998,\n    \"mean\": 1.83274611605,\n    \"median\": 1.76209074205,\n    \"message\": \"Formatting\\n\",\n    \"min\": 1.74966581405,\n    \"stddev\": 0.11133912816718725,\n    \"system\": 0.07451551,\n    \"time\": 1.75337551505,\n    \"user\": 1.82076629\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n    \"max\": 1.8969139696750001,\n    \"mean\": 1.8028116620749999,\n    \"median\": 1.798569944675,\n    \"message\": \"Add env module\\n\",\n    \"min\": 1.748478282675,\n    \"stddev\": 0.05793334808419222,\n    \"system\": 0.072015455,\n    \"time\": 1.748478282675,\n    \"user\": 1.788403615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n    \"max\": 1.8969139696750001,\n    \"mean\": 1.8028116620749999,\n    \"median\": 1.798569944675,\n    \"message\": \"Add env module\\n\",\n    \"min\": 1.748478282675,\n    \"stddev\": 0.05793334808419222,\n    \"system\": 0.072015455,\n    \"time\": 1.8969139696750001,\n    \"user\": 1.788403615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n    \"max\": 1.8969139696750001,\n    \"mean\": 1.8028116620749999,\n    \"median\": 1.798569944675,\n    \"message\": \"Add env module\\n\",\n    \"min\": 1.748478282675,\n    \"stddev\": 0.05793334808419222,\n    \"system\": 0.072015455,\n    \"time\": 1.798569944675,\n    \"user\": 1.788403615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n    \"max\": 1.8969139696750001,\n    \"mean\": 1.8028116620749999,\n    \"median\": 1.798569944675,\n    \"message\": \"Add env module\\n\",\n    \"min\": 1.748478282675,\n    \"stddev\": 0.05793334808419222,\n    \"system\": 0.072015455,\n    \"time\": 1.8070554116750002,\n    \"user\": 1.788403615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n    \"max\": 1.8969139696750001,\n    \"mean\": 1.8028116620749999,\n    \"median\": 1.798569944675,\n    \"message\": \"Add env module\\n\",\n    \"min\": 1.748478282675,\n    \"stddev\": 0.05793334808419222,\n    \"system\": 0.072015455,\n    \"time\": 1.763040701675,\n    \"user\": 1.788403615\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n    \"max\": 1.80440154425,\n    \"mean\": 1.7433834768499998,\n    \"median\": 1.7322291762500002,\n    \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n    \"min\": 1.7151271652500002,\n    \"stddev\": 0.03627278910565622,\n    \"system\": 0.06548375499999999,\n    \"time\": 1.7322291762500002,\n    \"user\": 1.7358233200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n    \"max\": 1.80440154425,\n    \"mean\": 1.7433834768499998,\n    \"median\": 1.7322291762500002,\n    \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n    \"min\": 1.7151271652500002,\n    \"stddev\": 0.03627278910565622,\n    \"system\": 0.06548375499999999,\n    \"time\": 1.80440154425,\n    \"user\": 1.7358233200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n    \"max\": 1.80440154425,\n    \"mean\": 1.7433834768499998,\n    \"median\": 1.7322291762500002,\n    \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n    \"min\": 1.7151271652500002,\n    \"stddev\": 0.03627278910565622,\n    \"system\": 0.06548375499999999,\n    \"time\": 1.74642492425,\n    \"user\": 1.7358233200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n    \"max\": 1.80440154425,\n    \"mean\": 1.7433834768499998,\n    \"median\": 1.7322291762500002,\n    \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n    \"min\": 1.7151271652500002,\n    \"stddev\": 0.03627278910565622,\n    \"system\": 0.06548375499999999,\n    \"time\": 1.7151271652500002,\n    \"user\": 1.7358233200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n    \"max\": 1.80440154425,\n    \"mean\": 1.7433834768499998,\n    \"median\": 1.7322291762500002,\n    \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n    \"min\": 1.7151271652500002,\n    \"stddev\": 0.03627278910565622,\n    \"system\": 0.06548375499999999,\n    \"time\": 1.71873457425,\n    \"user\": 1.7358233200000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n    \"max\": 1.78506000683,\n    \"mean\": 1.7479044830300001,\n    \"median\": 1.7308000228300002,\n    \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n    \"min\": 1.7226189628300002,\n    \"stddev\": 0.02983931309908452,\n    \"system\": 0.06664693000000001,\n    \"time\": 1.7308000228300002,\n    \"user\": 1.7374236399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n    \"max\": 1.78506000683,\n    \"mean\": 1.7479044830300001,\n    \"median\": 1.7308000228300002,\n    \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n    \"min\": 1.7226189628300002,\n    \"stddev\": 0.02983931309908452,\n    \"system\": 0.06664693000000001,\n    \"time\": 1.72566828483,\n    \"user\": 1.7374236399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n    \"max\": 1.78506000683,\n    \"mean\": 1.7479044830300001,\n    \"median\": 1.7308000228300002,\n    \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n    \"min\": 1.7226189628300002,\n    \"stddev\": 0.02983931309908452,\n    \"system\": 0.06664693000000001,\n    \"time\": 1.77537513783,\n    \"user\": 1.7374236399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n    \"max\": 1.78506000683,\n    \"mean\": 1.7479044830300001,\n    \"median\": 1.7308000228300002,\n    \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n    \"min\": 1.7226189628300002,\n    \"stddev\": 0.02983931309908452,\n    \"system\": 0.06664693000000001,\n    \"time\": 1.7226189628300002,\n    \"user\": 1.7374236399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n    \"max\": 1.78506000683,\n    \"mean\": 1.7479044830300001,\n    \"median\": 1.7308000228300002,\n    \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n    \"min\": 1.7226189628300002,\n    \"stddev\": 0.02983931309908452,\n    \"system\": 0.06664693000000001,\n    \"time\": 1.78506000683,\n    \"user\": 1.7374236399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n    \"max\": 1.8081866743700001,\n    \"mean\": 1.76490237717,\n    \"median\": 1.7559170003700002,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.7011162393700001,\n    \"stddev\": 0.043900302441628104,\n    \"system\": 0.06802973999999999,\n    \"time\": 1.8081866743700001,\n    \"user\": 1.7520235100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n    \"max\": 1.8081866743700001,\n    \"mean\": 1.76490237717,\n    \"median\": 1.7559170003700002,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.7011162393700001,\n    \"stddev\": 0.043900302441628104,\n    \"system\": 0.06802973999999999,\n    \"time\": 1.75463339437,\n    \"user\": 1.7520235100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n    \"max\": 1.8081866743700001,\n    \"mean\": 1.76490237717,\n    \"median\": 1.7559170003700002,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.7011162393700001,\n    \"stddev\": 0.043900302441628104,\n    \"system\": 0.06802973999999999,\n    \"time\": 1.8046585773700001,\n    \"user\": 1.7520235100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n    \"max\": 1.8081866743700001,\n    \"mean\": 1.76490237717,\n    \"median\": 1.7559170003700002,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.7011162393700001,\n    \"stddev\": 0.043900302441628104,\n    \"system\": 0.06802973999999999,\n    \"time\": 1.7559170003700002,\n    \"user\": 1.7520235100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n    \"max\": 1.8081866743700001,\n    \"mean\": 1.76490237717,\n    \"median\": 1.7559170003700002,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.7011162393700001,\n    \"stddev\": 0.043900302441628104,\n    \"system\": 0.06802973999999999,\n    \"time\": 1.7011162393700001,\n    \"user\": 1.7520235100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n    \"max\": 1.9902862111300001,\n    \"mean\": 1.8612786607300003,\n    \"median\": 1.8752033651300002,\n    \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n    \"min\": 1.75878981213,\n    \"stddev\": 0.09169724585403145,\n    \"system\": 0.078084115,\n    \"time\": 1.89337758213,\n    \"user\": 1.8257122\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n    \"max\": 1.9902862111300001,\n    \"mean\": 1.8612786607300003,\n    \"median\": 1.8752033651300002,\n    \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n    \"min\": 1.75878981213,\n    \"stddev\": 0.09169724585403145,\n    \"system\": 0.078084115,\n    \"time\": 1.75878981213,\n    \"user\": 1.8257122\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n    \"max\": 1.9902862111300001,\n    \"mean\": 1.8612786607300003,\n    \"median\": 1.8752033651300002,\n    \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n    \"min\": 1.75878981213,\n    \"stddev\": 0.09169724585403145,\n    \"system\": 0.078084115,\n    \"time\": 1.7887363331300001,\n    \"user\": 1.8257122\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n    \"max\": 1.9902862111300001,\n    \"mean\": 1.8612786607300003,\n    \"median\": 1.8752033651300002,\n    \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n    \"min\": 1.75878981213,\n    \"stddev\": 0.09169724585403145,\n    \"system\": 0.078084115,\n    \"time\": 1.8752033651300002,\n    \"user\": 1.8257122\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n    \"max\": 1.9902862111300001,\n    \"mean\": 1.8612786607300003,\n    \"median\": 1.8752033651300002,\n    \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n    \"min\": 1.75878981213,\n    \"stddev\": 0.09169724585403145,\n    \"system\": 0.078084115,\n    \"time\": 1.9902862111300001,\n    \"user\": 1.8257122\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n    \"max\": 1.9700390929400002,\n    \"mean\": 1.79226277614,\n    \"median\": 1.7434098609400002,\n    \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n    \"min\": 1.72549364994,\n    \"stddev\": 0.10134841750749464,\n    \"system\": 0.06945716499999999,\n    \"time\": 1.77996445094,\n    \"user\": 1.7813124949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n    \"max\": 1.9700390929400002,\n    \"mean\": 1.79226277614,\n    \"median\": 1.7434098609400002,\n    \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n    \"min\": 1.72549364994,\n    \"stddev\": 0.10134841750749464,\n    \"system\": 0.06945716499999999,\n    \"time\": 1.9700390929400002,\n    \"user\": 1.7813124949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n    \"max\": 1.9700390929400002,\n    \"mean\": 1.79226277614,\n    \"median\": 1.7434098609400002,\n    \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n    \"min\": 1.72549364994,\n    \"stddev\": 0.10134841750749464,\n    \"system\": 0.06945716499999999,\n    \"time\": 1.72549364994,\n    \"user\": 1.7813124949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n    \"max\": 1.9700390929400002,\n    \"mean\": 1.79226277614,\n    \"median\": 1.7434098609400002,\n    \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n    \"min\": 1.72549364994,\n    \"stddev\": 0.10134841750749464,\n    \"system\": 0.06945716499999999,\n    \"time\": 1.7434098609400002,\n    \"user\": 1.7813124949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n    \"max\": 1.9700390929400002,\n    \"mean\": 1.79226277614,\n    \"median\": 1.7434098609400002,\n    \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n    \"min\": 1.72549364994,\n    \"stddev\": 0.10134841750749464,\n    \"system\": 0.06945716499999999,\n    \"time\": 1.74240682594,\n    \"user\": 1.7813124949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n    \"max\": 1.890860086785,\n    \"mean\": 1.7622859071850001,\n    \"median\": 1.7372634237850002,\n    \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n    \"min\": 1.722321494785,\n    \"stddev\": 0.07226796677091027,\n    \"system\": 0.06874821,\n    \"time\": 1.890860086785,\n    \"user\": 1.7491261949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n    \"max\": 1.890860086785,\n    \"mean\": 1.7622859071850001,\n    \"median\": 1.7372634237850002,\n    \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n    \"min\": 1.722321494785,\n    \"stddev\": 0.07226796677091027,\n    \"system\": 0.06874821,\n    \"time\": 1.7372634237850002,\n    \"user\": 1.7491261949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n    \"max\": 1.890860086785,\n    \"mean\": 1.7622859071850001,\n    \"median\": 1.7372634237850002,\n    \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n    \"min\": 1.722321494785,\n    \"stddev\": 0.07226796677091027,\n    \"system\": 0.06874821,\n    \"time\": 1.7380542147850002,\n    \"user\": 1.7491261949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n    \"max\": 1.890860086785,\n    \"mean\": 1.7622859071850001,\n    \"median\": 1.7372634237850002,\n    \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n    \"min\": 1.722321494785,\n    \"stddev\": 0.07226796677091027,\n    \"system\": 0.06874821,\n    \"time\": 1.722321494785,\n    \"user\": 1.7491261949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n    \"max\": 1.890860086785,\n    \"mean\": 1.7622859071850001,\n    \"median\": 1.7372634237850002,\n    \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n    \"min\": 1.722321494785,\n    \"stddev\": 0.07226796677091027,\n    \"system\": 0.06874821,\n    \"time\": 1.722930315785,\n    \"user\": 1.7491261949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n    \"max\": 1.9355528163800002,\n    \"mean\": 1.77397646518,\n    \"median\": 1.73998661438,\n    \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n    \"min\": 1.71537233238,\n    \"stddev\": 0.09095633994494735,\n    \"system\": 0.067539405,\n    \"time\": 1.7423372963800001,\n    \"user\": 1.7650124799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n    \"max\": 1.9355528163800002,\n    \"mean\": 1.77397646518,\n    \"median\": 1.73998661438,\n    \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n    \"min\": 1.71537233238,\n    \"stddev\": 0.09095633994494735,\n    \"system\": 0.067539405,\n    \"time\": 1.9355528163800002,\n    \"user\": 1.7650124799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n    \"max\": 1.9355528163800002,\n    \"mean\": 1.77397646518,\n    \"median\": 1.73998661438,\n    \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n    \"min\": 1.71537233238,\n    \"stddev\": 0.09095633994494735,\n    \"system\": 0.067539405,\n    \"time\": 1.71537233238,\n    \"user\": 1.7650124799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n    \"max\": 1.9355528163800002,\n    \"mean\": 1.77397646518,\n    \"median\": 1.73998661438,\n    \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n    \"min\": 1.71537233238,\n    \"stddev\": 0.09095633994494735,\n    \"system\": 0.067539405,\n    \"time\": 1.73998661438,\n    \"user\": 1.7650124799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n    \"max\": 1.9355528163800002,\n    \"mean\": 1.77397646518,\n    \"median\": 1.73998661438,\n    \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n    \"min\": 1.71537233238,\n    \"stddev\": 0.09095633994494735,\n    \"system\": 0.067539405,\n    \"time\": 1.73663326638,\n    \"user\": 1.7650124799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n    \"max\": 1.884791069675,\n    \"mean\": 1.752104331875,\n    \"median\": 1.718118490675,\n    \"message\": \"Add unified diff test cases\\n\",\n    \"min\": 1.716816406675,\n    \"stddev\": 0.07421914521535924,\n    \"system\": 0.06718537999999999,\n    \"time\": 1.884791069675,\n    \"user\": 1.742930915\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n    \"max\": 1.884791069675,\n    \"mean\": 1.752104331875,\n    \"median\": 1.718118490675,\n    \"message\": \"Add unified diff test cases\\n\",\n    \"min\": 1.716816406675,\n    \"stddev\": 0.07421914521535924,\n    \"system\": 0.06718537999999999,\n    \"time\": 1.717458616675,\n    \"user\": 1.742930915\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n    \"max\": 1.884791069675,\n    \"mean\": 1.752104331875,\n    \"median\": 1.718118490675,\n    \"message\": \"Add unified diff test cases\\n\",\n    \"min\": 1.716816406675,\n    \"stddev\": 0.07421914521535924,\n    \"system\": 0.06718537999999999,\n    \"time\": 1.716816406675,\n    \"user\": 1.742930915\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n    \"max\": 1.884791069675,\n    \"mean\": 1.752104331875,\n    \"median\": 1.718118490675,\n    \"message\": \"Add unified diff test cases\\n\",\n    \"min\": 1.716816406675,\n    \"stddev\": 0.07421914521535924,\n    \"system\": 0.06718537999999999,\n    \"time\": 1.723337075675,\n    \"user\": 1.742930915\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n    \"max\": 1.884791069675,\n    \"mean\": 1.752104331875,\n    \"median\": 1.718118490675,\n    \"message\": \"Add unified diff test cases\\n\",\n    \"min\": 1.716816406675,\n    \"stddev\": 0.07421914521535924,\n    \"system\": 0.06718537999999999,\n    \"time\": 1.718118490675,\n    \"user\": 1.742930915\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n    \"max\": 2.060141057445,\n    \"mean\": 1.8413991088450001,\n    \"median\": 1.766810911445,\n    \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n    \"min\": 1.741885731445,\n    \"stddev\": 0.13275005202853926,\n    \"system\": 0.07775181,\n    \"time\": 1.766810911445,\n    \"user\": 1.816977485\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n    \"max\": 2.060141057445,\n    \"mean\": 1.8413991088450001,\n    \"median\": 1.766810911445,\n    \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n    \"min\": 1.741885731445,\n    \"stddev\": 0.13275005202853926,\n    \"system\": 0.07775181,\n    \"time\": 2.060141057445,\n    \"user\": 1.816977485\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n    \"max\": 2.060141057445,\n    \"mean\": 1.8413991088450001,\n    \"median\": 1.766810911445,\n    \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n    \"min\": 1.741885731445,\n    \"stddev\": 0.13275005202853926,\n    \"system\": 0.07775181,\n    \"time\": 1.874664766445,\n    \"user\": 1.816977485\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n    \"max\": 2.060141057445,\n    \"mean\": 1.8413991088450001,\n    \"median\": 1.766810911445,\n    \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n    \"min\": 1.741885731445,\n    \"stddev\": 0.13275005202853926,\n    \"system\": 0.07775181,\n    \"time\": 1.763493077445,\n    \"user\": 1.816977485\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n    \"max\": 2.060141057445,\n    \"mean\": 1.8413991088450001,\n    \"median\": 1.766810911445,\n    \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n    \"min\": 1.741885731445,\n    \"stddev\": 0.13275005202853926,\n    \"system\": 0.07775181,\n    \"time\": 1.741885731445,\n    \"user\": 1.816977485\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n    \"max\": 1.81917060991,\n    \"mean\": 1.74973279451,\n    \"median\": 1.7553648489100002,\n    \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n    \"min\": 1.6946826459100002,\n    \"stddev\": 0.04645959314109739,\n    \"system\": 0.06782392999999999,\n    \"time\": 1.81917060991,\n    \"user\": 1.739323015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n    \"max\": 1.81917060991,\n    \"mean\": 1.74973279451,\n    \"median\": 1.7553648489100002,\n    \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n    \"min\": 1.6946826459100002,\n    \"stddev\": 0.04645959314109739,\n    \"system\": 0.06782392999999999,\n    \"time\": 1.72314385891,\n    \"user\": 1.739323015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n    \"max\": 1.81917060991,\n    \"mean\": 1.74973279451,\n    \"median\": 1.7553648489100002,\n    \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n    \"min\": 1.6946826459100002,\n    \"stddev\": 0.04645959314109739,\n    \"system\": 0.06782392999999999,\n    \"time\": 1.6946826459100002,\n    \"user\": 1.739323015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n    \"max\": 1.81917060991,\n    \"mean\": 1.74973279451,\n    \"median\": 1.7553648489100002,\n    \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n    \"min\": 1.6946826459100002,\n    \"stddev\": 0.04645959314109739,\n    \"system\": 0.06782392999999999,\n    \"time\": 1.75630200891,\n    \"user\": 1.739323015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n    \"max\": 1.81917060991,\n    \"mean\": 1.74973279451,\n    \"median\": 1.7553648489100002,\n    \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n    \"min\": 1.6946826459100002,\n    \"stddev\": 0.04645959314109739,\n    \"system\": 0.06782392999999999,\n    \"time\": 1.7553648489100002,\n    \"user\": 1.739323015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n    \"max\": 1.870477839045,\n    \"mean\": 1.7558544434449999,\n    \"median\": 1.739302121045,\n    \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n    \"min\": 1.6877249270449999,\n    \"stddev\": 0.07420234694305905,\n    \"system\": 0.068530495,\n    \"time\": 1.739302121045,\n    \"user\": 1.74372653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n    \"max\": 1.870477839045,\n    \"mean\": 1.7558544434449999,\n    \"median\": 1.739302121045,\n    \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n    \"min\": 1.6877249270449999,\n    \"stddev\": 0.07420234694305905,\n    \"system\": 0.068530495,\n    \"time\": 1.870477839045,\n    \"user\": 1.74372653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n    \"max\": 1.870477839045,\n    \"mean\": 1.7558544434449999,\n    \"median\": 1.739302121045,\n    \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n    \"min\": 1.6877249270449999,\n    \"stddev\": 0.07420234694305905,\n    \"system\": 0.068530495,\n    \"time\": 1.6877249270449999,\n    \"user\": 1.74372653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n    \"max\": 1.870477839045,\n    \"mean\": 1.7558544434449999,\n    \"median\": 1.739302121045,\n    \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n    \"min\": 1.6877249270449999,\n    \"stddev\": 0.07420234694305905,\n    \"system\": 0.068530495,\n    \"time\": 1.6989219470449999,\n    \"user\": 1.74372653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n    \"max\": 1.870477839045,\n    \"mean\": 1.7558544434449999,\n    \"median\": 1.739302121045,\n    \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n    \"min\": 1.6877249270449999,\n    \"stddev\": 0.07420234694305905,\n    \"system\": 0.068530495,\n    \"time\": 1.782845383045,\n    \"user\": 1.74372653\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n    \"max\": 2.0545705884350003,\n    \"mean\": 1.9077855028349997,\n    \"median\": 1.973506168435,\n    \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n    \"min\": 1.7581159424350001,\n    \"stddev\": 0.13255039249359457,\n    \"system\": 0.08406512499999999,\n    \"time\": 1.976462832435,\n    \"user\": 1.872501105\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n    \"max\": 2.0545705884350003,\n    \"mean\": 1.9077855028349997,\n    \"median\": 1.973506168435,\n    \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n    \"min\": 1.7581159424350001,\n    \"stddev\": 0.13255039249359457,\n    \"system\": 0.08406512499999999,\n    \"time\": 2.0545705884350003,\n    \"user\": 1.872501105\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n    \"max\": 2.0545705884350003,\n    \"mean\": 1.9077855028349997,\n    \"median\": 1.973506168435,\n    \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n    \"min\": 1.7581159424350001,\n    \"stddev\": 0.13255039249359457,\n    \"system\": 0.08406512499999999,\n    \"time\": 1.973506168435,\n    \"user\": 1.872501105\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n    \"max\": 2.0545705884350003,\n    \"mean\": 1.9077855028349997,\n    \"median\": 1.973506168435,\n    \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n    \"min\": 1.7581159424350001,\n    \"stddev\": 0.13255039249359457,\n    \"system\": 0.08406512499999999,\n    \"time\": 1.776271982435,\n    \"user\": 1.872501105\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n    \"max\": 2.0545705884350003,\n    \"mean\": 1.9077855028349997,\n    \"median\": 1.973506168435,\n    \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n    \"min\": 1.7581159424350001,\n    \"stddev\": 0.13255039249359457,\n    \"system\": 0.08406512499999999,\n    \"time\": 1.7581159424350001,\n    \"user\": 1.872501105\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n    \"max\": 1.809274956765,\n    \"mean\": 1.775152447765,\n    \"median\": 1.766661709765,\n    \"message\": \"Add `release` Make target\\n\",\n    \"min\": 1.744853069765,\n    \"stddev\": 0.027702905887636672,\n    \"system\": 0.06784535,\n    \"time\": 1.744853069765,\n    \"user\": 1.763628395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n    \"max\": 1.809274956765,\n    \"mean\": 1.775152447765,\n    \"median\": 1.766661709765,\n    \"message\": \"Add `release` Make target\\n\",\n    \"min\": 1.744853069765,\n    \"stddev\": 0.027702905887636672,\n    \"system\": 0.06784535,\n    \"time\": 1.756221019765,\n    \"user\": 1.763628395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n    \"max\": 1.809274956765,\n    \"mean\": 1.775152447765,\n    \"median\": 1.766661709765,\n    \"message\": \"Add `release` Make target\\n\",\n    \"min\": 1.744853069765,\n    \"stddev\": 0.027702905887636672,\n    \"system\": 0.06784535,\n    \"time\": 1.798751482765,\n    \"user\": 1.763628395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n    \"max\": 1.809274956765,\n    \"mean\": 1.775152447765,\n    \"median\": 1.766661709765,\n    \"message\": \"Add `release` Make target\\n\",\n    \"min\": 1.744853069765,\n    \"stddev\": 0.027702905887636672,\n    \"system\": 0.06784535,\n    \"time\": 1.766661709765,\n    \"user\": 1.763628395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n    \"max\": 1.809274956765,\n    \"mean\": 1.775152447765,\n    \"median\": 1.766661709765,\n    \"message\": \"Add `release` Make target\\n\",\n    \"min\": 1.744853069765,\n    \"stddev\": 0.027702905887636672,\n    \"system\": 0.06784535,\n    \"time\": 1.809274956765,\n    \"user\": 1.763628395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n    \"max\": 1.828273901615,\n    \"mean\": 1.782778586415,\n    \"median\": 1.772457287615,\n    \"message\": \"Add testing scripts and example inputs\\n\",\n    \"min\": 1.7631397716150001,\n    \"stddev\": 0.02613422710861564,\n    \"system\": 0.07022519499999999,\n    \"time\": 1.779975061615,\n    \"user\": 1.769133025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n    \"max\": 1.828273901615,\n    \"mean\": 1.782778586415,\n    \"median\": 1.772457287615,\n    \"message\": \"Add testing scripts and example inputs\\n\",\n    \"min\": 1.7631397716150001,\n    \"stddev\": 0.02613422710861564,\n    \"system\": 0.07022519499999999,\n    \"time\": 1.828273901615,\n    \"user\": 1.769133025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n    \"max\": 1.828273901615,\n    \"mean\": 1.782778586415,\n    \"median\": 1.772457287615,\n    \"message\": \"Add testing scripts and example inputs\\n\",\n    \"min\": 1.7631397716150001,\n    \"stddev\": 0.02613422710861564,\n    \"system\": 0.07022519499999999,\n    \"time\": 1.770046909615,\n    \"user\": 1.769133025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n    \"max\": 1.828273901615,\n    \"mean\": 1.782778586415,\n    \"median\": 1.772457287615,\n    \"message\": \"Add testing scripts and example inputs\\n\",\n    \"min\": 1.7631397716150001,\n    \"stddev\": 0.02613422710861564,\n    \"system\": 0.07022519499999999,\n    \"time\": 1.7631397716150001,\n    \"user\": 1.769133025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n    \"max\": 1.828273901615,\n    \"mean\": 1.782778586415,\n    \"median\": 1.772457287615,\n    \"message\": \"Add testing scripts and example inputs\\n\",\n    \"min\": 1.7631397716150001,\n    \"stddev\": 0.02613422710861564,\n    \"system\": 0.07022519499999999,\n    \"time\": 1.772457287615,\n    \"user\": 1.769133025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n    \"max\": 2.16985111498,\n    \"mean\": 2.0500043573799998,\n    \"median\": 2.11232607498,\n    \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n    \"min\": 1.72889610598,\n    \"stddev\": 0.18437660464738737,\n    \"system\": 0.093383365,\n    \"time\": 2.16931924398,\n    \"user\": 2.01654257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n    \"max\": 2.16985111498,\n    \"mean\": 2.0500043573799998,\n    \"median\": 2.11232607498,\n    \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n    \"min\": 1.72889610598,\n    \"stddev\": 0.18437660464738737,\n    \"system\": 0.093383365,\n    \"time\": 1.72889610598,\n    \"user\": 2.01654257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n    \"max\": 2.16985111498,\n    \"mean\": 2.0500043573799998,\n    \"median\": 2.11232607498,\n    \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n    \"min\": 1.72889610598,\n    \"stddev\": 0.18437660464738737,\n    \"system\": 0.093383365,\n    \"time\": 2.16985111498,\n    \"user\": 2.01654257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n    \"max\": 2.16985111498,\n    \"mean\": 2.0500043573799998,\n    \"median\": 2.11232607498,\n    \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n    \"min\": 1.72889610598,\n    \"stddev\": 0.18437660464738737,\n    \"system\": 0.093383365,\n    \"time\": 2.06962924698,\n    \"user\": 2.01654257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n    \"max\": 2.16985111498,\n    \"mean\": 2.0500043573799998,\n    \"median\": 2.11232607498,\n    \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n    \"min\": 1.72889610598,\n    \"stddev\": 0.18437660464738737,\n    \"system\": 0.093383365,\n    \"time\": 2.11232607498,\n    \"user\": 2.01654257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n    \"max\": 1.96139085345,\n    \"mean\": 1.81271288125,\n    \"median\": 1.8343118244499999,\n    \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n    \"min\": 1.71225408945,\n    \"stddev\": 0.10269398230747821,\n    \"system\": 0.06784299499999999,\n    \"time\": 1.83731561745,\n    \"user\": 1.8032660649999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n    \"max\": 1.96139085345,\n    \"mean\": 1.81271288125,\n    \"median\": 1.8343118244499999,\n    \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n    \"min\": 1.71225408945,\n    \"stddev\": 0.10269398230747821,\n    \"system\": 0.06784299499999999,\n    \"time\": 1.96139085345,\n    \"user\": 1.8032660649999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n    \"max\": 1.96139085345,\n    \"mean\": 1.81271288125,\n    \"median\": 1.8343118244499999,\n    \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n    \"min\": 1.71225408945,\n    \"stddev\": 0.10269398230747821,\n    \"system\": 0.06784299499999999,\n    \"time\": 1.8343118244499999,\n    \"user\": 1.8032660649999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n    \"max\": 1.96139085345,\n    \"mean\": 1.81271288125,\n    \"median\": 1.8343118244499999,\n    \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n    \"min\": 1.71225408945,\n    \"stddev\": 0.10269398230747821,\n    \"system\": 0.06784299499999999,\n    \"time\": 1.71829202145,\n    \"user\": 1.8032660649999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n    \"max\": 1.96139085345,\n    \"mean\": 1.81271288125,\n    \"median\": 1.8343118244499999,\n    \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n    \"min\": 1.71225408945,\n    \"stddev\": 0.10269398230747821,\n    \"system\": 0.06784299499999999,\n    \"time\": 1.71225408945,\n    \"user\": 1.8032660649999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n    \"max\": 1.784067283005,\n    \"mean\": 1.736962495205,\n    \"median\": 1.7136084640050002,\n    \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n    \"min\": 1.7087975180050001,\n    \"stddev\": 0.03500146699463659,\n    \"system\": 0.06350882999999999,\n    \"time\": 1.784067283005,\n    \"user\": 1.73129475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n    \"max\": 1.784067283005,\n    \"mean\": 1.736962495205,\n    \"median\": 1.7136084640050002,\n    \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n    \"min\": 1.7087975180050001,\n    \"stddev\": 0.03500146699463659,\n    \"system\": 0.06350882999999999,\n    \"time\": 1.713351682005,\n    \"user\": 1.73129475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n    \"max\": 1.784067283005,\n    \"mean\": 1.736962495205,\n    \"median\": 1.7136084640050002,\n    \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n    \"min\": 1.7087975180050001,\n    \"stddev\": 0.03500146699463659,\n    \"system\": 0.06350882999999999,\n    \"time\": 1.7136084640050002,\n    \"user\": 1.73129475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n    \"max\": 1.784067283005,\n    \"mean\": 1.736962495205,\n    \"median\": 1.7136084640050002,\n    \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n    \"min\": 1.7087975180050001,\n    \"stddev\": 0.03500146699463659,\n    \"system\": 0.06350882999999999,\n    \"time\": 1.7087975180050001,\n    \"user\": 1.73129475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n    \"max\": 1.784067283005,\n    \"mean\": 1.736962495205,\n    \"median\": 1.7136084640050002,\n    \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n    \"min\": 1.7087975180050001,\n    \"stddev\": 0.03500146699463659,\n    \"system\": 0.06350882999999999,\n    \"time\": 1.764987529005,\n    \"user\": 1.73129475\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n    \"max\": 2.0646388873349997,\n    \"mean\": 1.863203477735,\n    \"median\": 1.8274146003350002,\n    \"message\": \"Fix typo\\n\",\n    \"min\": 1.783246688335,\n    \"stddev\": 0.11494586209844614,\n    \"system\": 0.07677693000000001,\n    \"time\": 1.8274146003350002,\n    \"user\": 1.83561598\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n    \"max\": 2.0646388873349997,\n    \"mean\": 1.863203477735,\n    \"median\": 1.8274146003350002,\n    \"message\": \"Fix typo\\n\",\n    \"min\": 1.783246688335,\n    \"stddev\": 0.11494586209844614,\n    \"system\": 0.07677693000000001,\n    \"time\": 1.783246688335,\n    \"user\": 1.83561598\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n    \"max\": 2.0646388873349997,\n    \"mean\": 1.863203477735,\n    \"median\": 1.8274146003350002,\n    \"message\": \"Fix typo\\n\",\n    \"min\": 1.783246688335,\n    \"stddev\": 0.11494586209844614,\n    \"system\": 0.07677693000000001,\n    \"time\": 1.7988100253350001,\n    \"user\": 1.83561598\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n    \"max\": 2.0646388873349997,\n    \"mean\": 1.863203477735,\n    \"median\": 1.8274146003350002,\n    \"message\": \"Fix typo\\n\",\n    \"min\": 1.783246688335,\n    \"stddev\": 0.11494586209844614,\n    \"system\": 0.07677693000000001,\n    \"time\": 2.0646388873349997,\n    \"user\": 1.83561598\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n    \"max\": 2.0646388873349997,\n    \"mean\": 1.863203477735,\n    \"median\": 1.8274146003350002,\n    \"message\": \"Fix typo\\n\",\n    \"min\": 1.783246688335,\n    \"stddev\": 0.11494586209844614,\n    \"system\": 0.07677693000000001,\n    \"time\": 1.8419071873350001,\n    \"user\": 1.83561598\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n    \"max\": 2.01648766941,\n    \"mean\": 1.8405199820100002,\n    \"median\": 1.75377974741,\n    \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n    \"min\": 1.7467903144099999,\n    \"stddev\": 0.12755702497827326,\n    \"system\": 0.07597980999999998,\n    \"time\": 1.74843313941,\n    \"user\": 1.8220800449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n    \"max\": 2.01648766941,\n    \"mean\": 1.8405199820100002,\n    \"median\": 1.75377974741,\n    \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n    \"min\": 1.7467903144099999,\n    \"stddev\": 0.12755702497827326,\n    \"system\": 0.07597980999999998,\n    \"time\": 1.93710903941,\n    \"user\": 1.8220800449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n    \"max\": 2.01648766941,\n    \"mean\": 1.8405199820100002,\n    \"median\": 1.75377974741,\n    \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n    \"min\": 1.7467903144099999,\n    \"stddev\": 0.12755702497827326,\n    \"system\": 0.07597980999999998,\n    \"time\": 1.75377974741,\n    \"user\": 1.8220800449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n    \"max\": 2.01648766941,\n    \"mean\": 1.8405199820100002,\n    \"median\": 1.75377974741,\n    \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n    \"min\": 1.7467903144099999,\n    \"stddev\": 0.12755702497827326,\n    \"system\": 0.07597980999999998,\n    \"time\": 1.7467903144099999,\n    \"user\": 1.8220800449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n    \"max\": 2.01648766941,\n    \"mean\": 1.8405199820100002,\n    \"median\": 1.75377974741,\n    \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n    \"min\": 1.7467903144099999,\n    \"stddev\": 0.12755702497827326,\n    \"system\": 0.07597980999999998,\n    \"time\": 2.01648766941,\n    \"user\": 1.8220800449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n    \"max\": 1.887194778835,\n    \"mean\": 1.834970631235,\n    \"median\": 1.828786328835,\n    \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n    \"min\": 1.776720745835,\n    \"stddev\": 0.043072186059372346,\n    \"system\": 0.074128835,\n    \"time\": 1.828786328835,\n    \"user\": 1.813339605\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n    \"max\": 1.887194778835,\n    \"mean\": 1.834970631235,\n    \"median\": 1.828786328835,\n    \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n    \"min\": 1.776720745835,\n    \"stddev\": 0.043072186059372346,\n    \"system\": 0.074128835,\n    \"time\": 1.887194778835,\n    \"user\": 1.813339605\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n    \"max\": 1.887194778835,\n    \"mean\": 1.834970631235,\n    \"median\": 1.828786328835,\n    \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n    \"min\": 1.776720745835,\n    \"stddev\": 0.043072186059372346,\n    \"system\": 0.074128835,\n    \"time\": 1.865444216835,\n    \"user\": 1.813339605\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n    \"max\": 1.887194778835,\n    \"mean\": 1.834970631235,\n    \"median\": 1.828786328835,\n    \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n    \"min\": 1.776720745835,\n    \"stddev\": 0.043072186059372346,\n    \"system\": 0.074128835,\n    \"time\": 1.816707085835,\n    \"user\": 1.813339605\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n    \"max\": 1.887194778835,\n    \"mean\": 1.834970631235,\n    \"median\": 1.828786328835,\n    \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n    \"min\": 1.776720745835,\n    \"stddev\": 0.043072186059372346,\n    \"system\": 0.074128835,\n    \"time\": 1.776720745835,\n    \"user\": 1.813339605\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n    \"max\": 1.885550187925,\n    \"mean\": 1.7691039499250003,\n    \"median\": 1.742845110925,\n    \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n    \"min\": 1.732916669925,\n    \"stddev\": 0.06523831620027269,\n    \"system\": 0.07034281499999999,\n    \"time\": 1.7440239129250001,\n    \"user\": 1.7555570449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n    \"max\": 1.885550187925,\n    \"mean\": 1.7691039499250003,\n    \"median\": 1.742845110925,\n    \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n    \"min\": 1.732916669925,\n    \"stddev\": 0.06523831620027269,\n    \"system\": 0.07034281499999999,\n    \"time\": 1.732916669925,\n    \"user\": 1.7555570449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n    \"max\": 1.885550187925,\n    \"mean\": 1.7691039499250003,\n    \"median\": 1.742845110925,\n    \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n    \"min\": 1.732916669925,\n    \"stddev\": 0.06523831620027269,\n    \"system\": 0.07034281499999999,\n    \"time\": 1.7401838679250001,\n    \"user\": 1.7555570449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n    \"max\": 1.885550187925,\n    \"mean\": 1.7691039499250003,\n    \"median\": 1.742845110925,\n    \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n    \"min\": 1.732916669925,\n    \"stddev\": 0.06523831620027269,\n    \"system\": 0.07034281499999999,\n    \"time\": 1.885550187925,\n    \"user\": 1.7555570449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n    \"max\": 1.885550187925,\n    \"mean\": 1.7691039499250003,\n    \"median\": 1.742845110925,\n    \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n    \"min\": 1.732916669925,\n    \"stddev\": 0.06523831620027269,\n    \"system\": 0.07034281499999999,\n    \"time\": 1.742845110925,\n    \"user\": 1.7555570449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n    \"max\": 1.9593360822750001,\n    \"mean\": 1.785638008075,\n    \"median\": 1.716234251275,\n    \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n    \"min\": 1.7022954162750001,\n    \"stddev\": 0.11321223283905828,\n    \"system\": 0.07020551,\n    \"time\": 1.707654141275,\n    \"user\": 1.773688775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n    \"max\": 1.9593360822750001,\n    \"mean\": 1.785638008075,\n    \"median\": 1.716234251275,\n    \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n    \"min\": 1.7022954162750001,\n    \"stddev\": 0.11321223283905828,\n    \"system\": 0.07020551,\n    \"time\": 1.842670149275,\n    \"user\": 1.773688775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n    \"max\": 1.9593360822750001,\n    \"mean\": 1.785638008075,\n    \"median\": 1.716234251275,\n    \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n    \"min\": 1.7022954162750001,\n    \"stddev\": 0.11321223283905828,\n    \"system\": 0.07020551,\n    \"time\": 1.9593360822750001,\n    \"user\": 1.773688775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n    \"max\": 1.9593360822750001,\n    \"mean\": 1.785638008075,\n    \"median\": 1.716234251275,\n    \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n    \"min\": 1.7022954162750001,\n    \"stddev\": 0.11321223283905828,\n    \"system\": 0.07020551,\n    \"time\": 1.716234251275,\n    \"user\": 1.773688775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n    \"max\": 1.9593360822750001,\n    \"mean\": 1.785638008075,\n    \"median\": 1.716234251275,\n    \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n    \"min\": 1.7022954162750001,\n    \"stddev\": 0.11321223283905828,\n    \"system\": 0.07020551,\n    \"time\": 1.7022954162750001,\n    \"user\": 1.773688775\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n    \"max\": 1.969366948235,\n    \"mean\": 1.8611125406350002,\n    \"median\": 1.876465716235,\n    \"message\": \"[refactor] change zip to enumerate\\n\",\n    \"min\": 1.752953839235,\n    \"stddev\": 0.07919639947236763,\n    \"system\": 0.08015589999999999,\n    \"time\": 1.876465716235,\n    \"user\": 1.822921505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n    \"max\": 1.969366948235,\n    \"mean\": 1.8611125406350002,\n    \"median\": 1.876465716235,\n    \"message\": \"[refactor] change zip to enumerate\\n\",\n    \"min\": 1.752953839235,\n    \"stddev\": 0.07919639947236763,\n    \"system\": 0.08015589999999999,\n    \"time\": 1.879038668235,\n    \"user\": 1.822921505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n    \"max\": 1.969366948235,\n    \"mean\": 1.8611125406350002,\n    \"median\": 1.876465716235,\n    \"message\": \"[refactor] change zip to enumerate\\n\",\n    \"min\": 1.752953839235,\n    \"stddev\": 0.07919639947236763,\n    \"system\": 0.08015589999999999,\n    \"time\": 1.752953839235,\n    \"user\": 1.822921505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n    \"max\": 1.969366948235,\n    \"mean\": 1.8611125406350002,\n    \"median\": 1.876465716235,\n    \"message\": \"[refactor] change zip to enumerate\\n\",\n    \"min\": 1.752953839235,\n    \"stddev\": 0.07919639947236763,\n    \"system\": 0.08015589999999999,\n    \"time\": 1.827737531235,\n    \"user\": 1.822921505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n    \"max\": 1.969366948235,\n    \"mean\": 1.8611125406350002,\n    \"median\": 1.876465716235,\n    \"message\": \"[refactor] change zip to enumerate\\n\",\n    \"min\": 1.752953839235,\n    \"stddev\": 0.07919639947236763,\n    \"system\": 0.08015589999999999,\n    \"time\": 1.969366948235,\n    \"user\": 1.822921505\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n    \"max\": 1.765968552865,\n    \"mean\": 1.7152383274650003,\n    \"median\": 1.699851156865,\n    \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n    \"min\": 1.691852727865,\n    \"stddev\": 0.030396615957156956,\n    \"system\": 0.06347913499999999,\n    \"time\": 1.697702791865,\n    \"user\": 1.70972853\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n    \"max\": 1.765968552865,\n    \"mean\": 1.7152383274650003,\n    \"median\": 1.699851156865,\n    \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n    \"min\": 1.691852727865,\n    \"stddev\": 0.030396615957156956,\n    \"system\": 0.06347913499999999,\n    \"time\": 1.720816407865,\n    \"user\": 1.70972853\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n    \"max\": 1.765968552865,\n    \"mean\": 1.7152383274650003,\n    \"median\": 1.699851156865,\n    \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n    \"min\": 1.691852727865,\n    \"stddev\": 0.030396615957156956,\n    \"system\": 0.06347913499999999,\n    \"time\": 1.765968552865,\n    \"user\": 1.70972853\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n    \"max\": 1.765968552865,\n    \"mean\": 1.7152383274650003,\n    \"median\": 1.699851156865,\n    \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n    \"min\": 1.691852727865,\n    \"stddev\": 0.030396615957156956,\n    \"system\": 0.06347913499999999,\n    \"time\": 1.691852727865,\n    \"user\": 1.70972853\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n    \"max\": 1.765968552865,\n    \"mean\": 1.7152383274650003,\n    \"median\": 1.699851156865,\n    \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n    \"min\": 1.691852727865,\n    \"stddev\": 0.030396615957156956,\n    \"system\": 0.06347913499999999,\n    \"time\": 1.699851156865,\n    \"user\": 1.70972853\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n    \"max\": 1.800449760755,\n    \"mean\": 1.7152615567550005,\n    \"median\": 1.6917130417550001,\n    \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n    \"min\": 1.6837314047550003,\n    \"stddev\": 0.04931830137512596,\n    \"system\": 0.063203425,\n    \"time\": 1.800449760755,\n    \"user\": 1.71076731\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n    \"max\": 1.800449760755,\n    \"mean\": 1.7152615567550005,\n    \"median\": 1.6917130417550001,\n    \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n    \"min\": 1.6837314047550003,\n    \"stddev\": 0.04931830137512596,\n    \"system\": 0.063203425,\n    \"time\": 1.6917130417550001,\n    \"user\": 1.71076731\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n    \"max\": 1.800449760755,\n    \"mean\": 1.7152615567550005,\n    \"median\": 1.6917130417550001,\n    \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n    \"min\": 1.6837314047550003,\n    \"stddev\": 0.04931830137512596,\n    \"system\": 0.063203425,\n    \"time\": 1.7155393377550001,\n    \"user\": 1.71076731\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n    \"max\": 1.800449760755,\n    \"mean\": 1.7152615567550005,\n    \"median\": 1.6917130417550001,\n    \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n    \"min\": 1.6837314047550003,\n    \"stddev\": 0.04931830137512596,\n    \"system\": 0.063203425,\n    \"time\": 1.6848742387550002,\n    \"user\": 1.71076731\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n    \"max\": 1.800449760755,\n    \"mean\": 1.7152615567550005,\n    \"median\": 1.6917130417550001,\n    \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n    \"min\": 1.6837314047550003,\n    \"stddev\": 0.04931830137512596,\n    \"system\": 0.063203425,\n    \"time\": 1.6837314047550003,\n    \"user\": 1.71076731\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n    \"max\": 1.8090117241750001,\n    \"mean\": 1.733292647575,\n    \"median\": 1.725534336175,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6876825821750001,\n    \"stddev\": 0.04726681904727656,\n    \"system\": 0.06506543,\n    \"time\": 1.701955653175,\n    \"user\": 1.72709733\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n    \"max\": 1.8090117241750001,\n    \"mean\": 1.733292647575,\n    \"median\": 1.725534336175,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6876825821750001,\n    \"stddev\": 0.04726681904727656,\n    \"system\": 0.06506543,\n    \"time\": 1.8090117241750001,\n    \"user\": 1.72709733\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n    \"max\": 1.8090117241750001,\n    \"mean\": 1.733292647575,\n    \"median\": 1.725534336175,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6876825821750001,\n    \"stddev\": 0.04726681904727656,\n    \"system\": 0.06506543,\n    \"time\": 1.725534336175,\n    \"user\": 1.72709733\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n    \"max\": 1.8090117241750001,\n    \"mean\": 1.733292647575,\n    \"median\": 1.725534336175,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6876825821750001,\n    \"stddev\": 0.04726681904727656,\n    \"system\": 0.06506543,\n    \"time\": 1.742278942175,\n    \"user\": 1.72709733\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n    \"max\": 1.8090117241750001,\n    \"mean\": 1.733292647575,\n    \"median\": 1.725534336175,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.6876825821750001,\n    \"stddev\": 0.04726681904727656,\n    \"system\": 0.06506543,\n    \"time\": 1.6876825821750001,\n    \"user\": 1.72709733\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n    \"max\": 1.74080273796,\n    \"mean\": 1.70424271676,\n    \"median\": 1.69727591496,\n    \"message\": \"Bug fix: fix .deb file release\\n\",\n    \"min\": 1.6851659689599998,\n    \"stddev\": 0.021331010631207792,\n    \"system\": 0.06232525499999999,\n    \"time\": 1.69618660796,\n    \"user\": 1.7007375100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n    \"max\": 1.74080273796,\n    \"mean\": 1.70424271676,\n    \"median\": 1.69727591496,\n    \"message\": \"Bug fix: fix .deb file release\\n\",\n    \"min\": 1.6851659689599998,\n    \"stddev\": 0.021331010631207792,\n    \"system\": 0.06232525499999999,\n    \"time\": 1.70178235396,\n    \"user\": 1.7007375100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n    \"max\": 1.74080273796,\n    \"mean\": 1.70424271676,\n    \"median\": 1.69727591496,\n    \"message\": \"Bug fix: fix .deb file release\\n\",\n    \"min\": 1.6851659689599998,\n    \"stddev\": 0.021331010631207792,\n    \"system\": 0.06232525499999999,\n    \"time\": 1.74080273796,\n    \"user\": 1.7007375100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n    \"max\": 1.74080273796,\n    \"mean\": 1.70424271676,\n    \"median\": 1.69727591496,\n    \"message\": \"Bug fix: fix .deb file release\\n\",\n    \"min\": 1.6851659689599998,\n    \"stddev\": 0.021331010631207792,\n    \"system\": 0.06232525499999999,\n    \"time\": 1.6851659689599998,\n    \"user\": 1.7007375100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n    \"max\": 1.74080273796,\n    \"mean\": 1.70424271676,\n    \"median\": 1.69727591496,\n    \"message\": \"Bug fix: fix .deb file release\\n\",\n    \"min\": 1.6851659689599998,\n    \"stddev\": 0.021331010631207792,\n    \"system\": 0.06232525499999999,\n    \"time\": 1.69727591496,\n    \"user\": 1.7007375100000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n    \"max\": 1.7841092898900002,\n    \"mean\": 1.7053419582899998,\n    \"median\": 1.68682390489,\n    \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n    \"min\": 1.6783637848900002,\n    \"stddev\": 0.044336377519811426,\n    \"system\": 0.062467695000000004,\n    \"time\": 1.7841092898900002,\n    \"user\": 1.70167516\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n    \"max\": 1.7841092898900002,\n    \"mean\": 1.7053419582899998,\n    \"median\": 1.68682390489,\n    \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n    \"min\": 1.6783637848900002,\n    \"stddev\": 0.044336377519811426,\n    \"system\": 0.062467695000000004,\n    \"time\": 1.68682390489,\n    \"user\": 1.70167516\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n    \"max\": 1.7841092898900002,\n    \"mean\": 1.7053419582899998,\n    \"median\": 1.68682390489,\n    \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n    \"min\": 1.6783637848900002,\n    \"stddev\": 0.044336377519811426,\n    \"system\": 0.062467695000000004,\n    \"time\": 1.6783637848900002,\n    \"user\": 1.70167516\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n    \"max\": 1.7841092898900002,\n    \"mean\": 1.7053419582899998,\n    \"median\": 1.68682390489,\n    \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n    \"min\": 1.6783637848900002,\n    \"stddev\": 0.044336377519811426,\n    \"system\": 0.062467695000000004,\n    \"time\": 1.69285017289,\n    \"user\": 1.70167516\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n    \"max\": 1.7841092898900002,\n    \"mean\": 1.7053419582899998,\n    \"median\": 1.68682390489,\n    \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n    \"min\": 1.6783637848900002,\n    \"stddev\": 0.044336377519811426,\n    \"system\": 0.062467695000000004,\n    \"time\": 1.6845626388900001,\n    \"user\": 1.70167516\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n    \"max\": 1.7856152301550001,\n    \"mean\": 1.733343594355,\n    \"median\": 1.7426877171550001,\n    \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6800599231550002,\n    \"stddev\": 0.043710934060250034,\n    \"system\": 0.06354481000000001,\n    \"time\": 1.7426877171550001,\n    \"user\": 1.7293809\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n    \"max\": 1.7856152301550001,\n    \"mean\": 1.733343594355,\n    \"median\": 1.7426877171550001,\n    \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6800599231550002,\n    \"stddev\": 0.043710934060250034,\n    \"system\": 0.06354481000000001,\n    \"time\": 1.760395214155,\n    \"user\": 1.7293809\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n    \"max\": 1.7856152301550001,\n    \"mean\": 1.733343594355,\n    \"median\": 1.7426877171550001,\n    \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6800599231550002,\n    \"stddev\": 0.043710934060250034,\n    \"system\": 0.06354481000000001,\n    \"time\": 1.7856152301550001,\n    \"user\": 1.7293809\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n    \"max\": 1.7856152301550001,\n    \"mean\": 1.733343594355,\n    \"median\": 1.7426877171550001,\n    \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6800599231550002,\n    \"stddev\": 0.043710934060250034,\n    \"system\": 0.06354481000000001,\n    \"time\": 1.6979598871550001,\n    \"user\": 1.7293809\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n    \"max\": 1.7856152301550001,\n    \"mean\": 1.733343594355,\n    \"median\": 1.7426877171550001,\n    \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6800599231550002,\n    \"stddev\": 0.043710934060250034,\n    \"system\": 0.06354481000000001,\n    \"time\": 1.6800599231550002,\n    \"user\": 1.7293809\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n    \"max\": 1.7031450742300003,\n    \"mean\": 1.6847794086300003,\n    \"median\": 1.68249237823,\n    \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6708220792300001,\n    \"stddev\": 0.011673269086068241,\n    \"system\": 0.061481799999999996,\n    \"time\": 1.7031450742300003,\n    \"user\": 1.682657115\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n    \"max\": 1.7031450742300003,\n    \"mean\": 1.6847794086300003,\n    \"median\": 1.68249237823,\n    \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6708220792300001,\n    \"stddev\": 0.011673269086068241,\n    \"system\": 0.061481799999999996,\n    \"time\": 1.68249237823,\n    \"user\": 1.682657115\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n    \"max\": 1.7031450742300003,\n    \"mean\": 1.6847794086300003,\n    \"median\": 1.68249237823,\n    \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6708220792300001,\n    \"stddev\": 0.011673269086068241,\n    \"system\": 0.061481799999999996,\n    \"time\": 1.6708220792300001,\n    \"user\": 1.682657115\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n    \"max\": 1.7031450742300003,\n    \"mean\": 1.6847794086300003,\n    \"median\": 1.68249237823,\n    \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6708220792300001,\n    \"stddev\": 0.011673269086068241,\n    \"system\": 0.061481799999999996,\n    \"time\": 1.6853733932300001,\n    \"user\": 1.682657115\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n    \"max\": 1.7031450742300003,\n    \"mean\": 1.6847794086300003,\n    \"median\": 1.68249237823,\n    \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n    \"min\": 1.6708220792300001,\n    \"stddev\": 0.011673269086068241,\n    \"system\": 0.061481799999999996,\n    \"time\": 1.6820641182300002,\n    \"user\": 1.682657115\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n    \"max\": 1.7630251715750003,\n    \"mean\": 1.705127332975,\n    \"median\": 1.691320345575,\n    \"message\": \"Output hash of source tar.gz\\n\",\n    \"min\": 1.6891258525750001,\n    \"stddev\": 0.0323852598602117,\n    \"system\": 0.062575225,\n    \"time\": 1.7630251715750003,\n    \"user\": 1.701169025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n    \"max\": 1.7630251715750003,\n    \"mean\": 1.705127332975,\n    \"median\": 1.691320345575,\n    \"message\": \"Output hash of source tar.gz\\n\",\n    \"min\": 1.6891258525750001,\n    \"stddev\": 0.0323852598602117,\n    \"system\": 0.062575225,\n    \"time\": 1.691320345575,\n    \"user\": 1.701169025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n    \"max\": 1.7630251715750003,\n    \"mean\": 1.705127332975,\n    \"median\": 1.691320345575,\n    \"message\": \"Output hash of source tar.gz\\n\",\n    \"min\": 1.6891258525750001,\n    \"stddev\": 0.0323852598602117,\n    \"system\": 0.062575225,\n    \"time\": 1.692050598575,\n    \"user\": 1.701169025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n    \"max\": 1.7630251715750003,\n    \"mean\": 1.705127332975,\n    \"median\": 1.691320345575,\n    \"message\": \"Output hash of source tar.gz\\n\",\n    \"min\": 1.6891258525750001,\n    \"stddev\": 0.0323852598602117,\n    \"system\": 0.062575225,\n    \"time\": 1.6891258525750001,\n    \"user\": 1.701169025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n    \"max\": 1.7630251715750003,\n    \"mean\": 1.705127332975,\n    \"median\": 1.691320345575,\n    \"message\": \"Output hash of source tar.gz\\n\",\n    \"min\": 1.6891258525750001,\n    \"stddev\": 0.0323852598602117,\n    \"system\": 0.062575225,\n    \"time\": 1.6901146965750002,\n    \"user\": 1.701169025\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n    \"max\": 1.76307804303,\n    \"mean\": 1.73264567383,\n    \"median\": 1.72891147703,\n    \"message\": \"Add homebrew check formula commands\\n\",\n    \"min\": 1.70626188503,\n    \"stddev\": 0.02065705858815224,\n    \"system\": 0.06599477,\n    \"time\": 1.72654587203,\n    \"user\": 1.72582778\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n    \"max\": 1.76307804303,\n    \"mean\": 1.73264567383,\n    \"median\": 1.72891147703,\n    \"message\": \"Add homebrew check formula commands\\n\",\n    \"min\": 1.70626188503,\n    \"stddev\": 0.02065705858815224,\n    \"system\": 0.06599477,\n    \"time\": 1.76307804303,\n    \"user\": 1.72582778\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n    \"max\": 1.76307804303,\n    \"mean\": 1.73264567383,\n    \"median\": 1.72891147703,\n    \"message\": \"Add homebrew check formula commands\\n\",\n    \"min\": 1.70626188503,\n    \"stddev\": 0.02065705858815224,\n    \"system\": 0.06599477,\n    \"time\": 1.7384310920300001,\n    \"user\": 1.72582778\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n    \"max\": 1.76307804303,\n    \"mean\": 1.73264567383,\n    \"median\": 1.72891147703,\n    \"message\": \"Add homebrew check formula commands\\n\",\n    \"min\": 1.70626188503,\n    \"stddev\": 0.02065705858815224,\n    \"system\": 0.06599477,\n    \"time\": 1.70626188503,\n    \"user\": 1.72582778\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n    \"max\": 1.76307804303,\n    \"mean\": 1.73264567383,\n    \"median\": 1.72891147703,\n    \"message\": \"Add homebrew check formula commands\\n\",\n    \"min\": 1.70626188503,\n    \"stddev\": 0.02065705858815224,\n    \"system\": 0.06599477,\n    \"time\": 1.72891147703,\n    \"user\": 1.72582778\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n    \"max\": 1.80142779966,\n    \"mean\": 1.7328176036600003,\n    \"median\": 1.7180291196600002,\n    \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n    \"min\": 1.7056153856600003,\n    \"stddev\": 0.03906584602123567,\n    \"system\": 0.06480214,\n    \"time\": 1.80142779966,\n    \"user\": 1.72563931\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n    \"max\": 1.80142779966,\n    \"mean\": 1.7328176036600003,\n    \"median\": 1.7180291196600002,\n    \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n    \"min\": 1.7056153856600003,\n    \"stddev\": 0.03906584602123567,\n    \"system\": 0.06480214,\n    \"time\": 1.7056153856600003,\n    \"user\": 1.72563931\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n    \"max\": 1.80142779966,\n    \"mean\": 1.7328176036600003,\n    \"median\": 1.7180291196600002,\n    \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n    \"min\": 1.7056153856600003,\n    \"stddev\": 0.03906584602123567,\n    \"system\": 0.06480214,\n    \"time\": 1.7259979896600002,\n    \"user\": 1.72563931\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n    \"max\": 1.80142779966,\n    \"mean\": 1.7328176036600003,\n    \"median\": 1.7180291196600002,\n    \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n    \"min\": 1.7056153856600003,\n    \"stddev\": 0.03906584602123567,\n    \"system\": 0.06480214,\n    \"time\": 1.7130177236600002,\n    \"user\": 1.72563931\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n    \"max\": 1.80142779966,\n    \"mean\": 1.7328176036600003,\n    \"median\": 1.7180291196600002,\n    \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n    \"min\": 1.7056153856600003,\n    \"stddev\": 0.03906584602123567,\n    \"system\": 0.06480214,\n    \"time\": 1.7180291196600002,\n    \"user\": 1.72563931\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n    \"max\": 1.83259020187,\n    \"mean\": 1.74815591167,\n    \"median\": 1.7394092028700001,\n    \"message\": \"Mention unified diff handling in README\\n\",\n    \"min\": 1.7062481948700001,\n    \"stddev\": 0.049442940578773686,\n    \"system\": 0.06614155999999999,\n    \"time\": 1.72017618987,\n    \"user\": 1.7399936249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n    \"max\": 1.83259020187,\n    \"mean\": 1.74815591167,\n    \"median\": 1.7394092028700001,\n    \"message\": \"Mention unified diff handling in README\\n\",\n    \"min\": 1.7062481948700001,\n    \"stddev\": 0.049442940578773686,\n    \"system\": 0.06614155999999999,\n    \"time\": 1.83259020187,\n    \"user\": 1.7399936249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n    \"max\": 1.83259020187,\n    \"mean\": 1.74815591167,\n    \"median\": 1.7394092028700001,\n    \"message\": \"Mention unified diff handling in README\\n\",\n    \"min\": 1.7062481948700001,\n    \"stddev\": 0.049442940578773686,\n    \"system\": 0.06614155999999999,\n    \"time\": 1.74235576887,\n    \"user\": 1.7399936249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n    \"max\": 1.83259020187,\n    \"mean\": 1.74815591167,\n    \"median\": 1.7394092028700001,\n    \"message\": \"Mention unified diff handling in README\\n\",\n    \"min\": 1.7062481948700001,\n    \"stddev\": 0.049442940578773686,\n    \"system\": 0.06614155999999999,\n    \"time\": 1.7394092028700001,\n    \"user\": 1.7399936249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n    \"max\": 1.83259020187,\n    \"mean\": 1.74815591167,\n    \"median\": 1.7394092028700001,\n    \"message\": \"Mention unified diff handling in README\\n\",\n    \"min\": 1.7062481948700001,\n    \"stddev\": 0.049442940578773686,\n    \"system\": 0.06614155999999999,\n    \"time\": 1.7062481948700001,\n    \"user\": 1.7399936249999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n    \"max\": 1.7813807281499998,\n    \"mean\": 1.73829926795,\n    \"median\": 1.72278341315,\n    \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n    \"min\": 1.71043814015,\n    \"stddev\": 0.030534840258810456,\n    \"system\": 0.066705545,\n    \"time\": 1.7813807281499998,\n    \"user\": 1.7305669599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n    \"max\": 1.7813807281499998,\n    \"mean\": 1.73829926795,\n    \"median\": 1.72278341315,\n    \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n    \"min\": 1.71043814015,\n    \"stddev\": 0.030534840258810456,\n    \"system\": 0.066705545,\n    \"time\": 1.71775324015,\n    \"user\": 1.7305669599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n    \"max\": 1.7813807281499998,\n    \"mean\": 1.73829926795,\n    \"median\": 1.72278341315,\n    \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n    \"min\": 1.71043814015,\n    \"stddev\": 0.030534840258810456,\n    \"system\": 0.066705545,\n    \"time\": 1.71043814015,\n    \"user\": 1.7305669599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n    \"max\": 1.7813807281499998,\n    \"mean\": 1.73829926795,\n    \"median\": 1.72278341315,\n    \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n    \"min\": 1.71043814015,\n    \"stddev\": 0.030534840258810456,\n    \"system\": 0.066705545,\n    \"time\": 1.72278341315,\n    \"user\": 1.7305669599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n    \"max\": 1.7813807281499998,\n    \"mean\": 1.73829926795,\n    \"median\": 1.72278341315,\n    \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n    \"min\": 1.71043814015,\n    \"stddev\": 0.030534840258810456,\n    \"system\": 0.066705545,\n    \"time\": 1.7591408181500001,\n    \"user\": 1.7305669599999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n    \"max\": 1.773982492885,\n    \"mean\": 1.7364383394850003,\n    \"median\": 1.718406510885,\n    \"message\": \"Update README.md for Windows\\n\",\n    \"min\": 1.702438013885,\n    \"stddev\": 0.033384415968986725,\n    \"system\": 0.06561997,\n    \"time\": 1.770722988885,\n    \"user\": 1.7278135899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n    \"max\": 1.773982492885,\n    \"mean\": 1.7364383394850003,\n    \"median\": 1.718406510885,\n    \"message\": \"Update README.md for Windows\\n\",\n    \"min\": 1.702438013885,\n    \"stddev\": 0.033384415968986725,\n    \"system\": 0.06561997,\n    \"time\": 1.773982492885,\n    \"user\": 1.7278135899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n    \"max\": 1.773982492885,\n    \"mean\": 1.7364383394850003,\n    \"median\": 1.718406510885,\n    \"message\": \"Update README.md for Windows\\n\",\n    \"min\": 1.702438013885,\n    \"stddev\": 0.033384415968986725,\n    \"system\": 0.06561997,\n    \"time\": 1.702438013885,\n    \"user\": 1.7278135899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n    \"max\": 1.773982492885,\n    \"mean\": 1.7364383394850003,\n    \"median\": 1.718406510885,\n    \"message\": \"Update README.md for Windows\\n\",\n    \"min\": 1.702438013885,\n    \"stddev\": 0.033384415968986725,\n    \"system\": 0.06561997,\n    \"time\": 1.716641690885,\n    \"user\": 1.7278135899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n    \"max\": 1.773982492885,\n    \"mean\": 1.7364383394850003,\n    \"median\": 1.718406510885,\n    \"message\": \"Update README.md for Windows\\n\",\n    \"min\": 1.702438013885,\n    \"stddev\": 0.033384415968986725,\n    \"system\": 0.06561997,\n    \"time\": 1.718406510885,\n    \"user\": 1.7278135899999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n    \"max\": 1.75708569261,\n    \"mean\": 1.72663583161,\n    \"median\": 1.71604613461,\n    \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n    \"min\": 1.71270060761,\n    \"stddev\": 0.019071966398996724,\n    \"system\": 0.06469340999999998,\n    \"time\": 1.73376991961,\n    \"user\": 1.7196566400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n    \"max\": 1.75708569261,\n    \"mean\": 1.72663583161,\n    \"median\": 1.71604613461,\n    \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n    \"min\": 1.71270060761,\n    \"stddev\": 0.019071966398996724,\n    \"system\": 0.06469340999999998,\n    \"time\": 1.71270060761,\n    \"user\": 1.7196566400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n    \"max\": 1.75708569261,\n    \"mean\": 1.72663583161,\n    \"median\": 1.71604613461,\n    \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n    \"min\": 1.71270060761,\n    \"stddev\": 0.019071966398996724,\n    \"system\": 0.06469340999999998,\n    \"time\": 1.75708569261,\n    \"user\": 1.7196566400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n    \"max\": 1.75708569261,\n    \"mean\": 1.72663583161,\n    \"median\": 1.71604613461,\n    \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n    \"min\": 1.71270060761,\n    \"stddev\": 0.019071966398996724,\n    \"system\": 0.06469340999999998,\n    \"time\": 1.71604613461,\n    \"user\": 1.7196566400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n    \"max\": 1.75708569261,\n    \"mean\": 1.72663583161,\n    \"median\": 1.71604613461,\n    \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n    \"min\": 1.71270060761,\n    \"stddev\": 0.019071966398996724,\n    \"system\": 0.06469340999999998,\n    \"time\": 1.7135768036099999,\n    \"user\": 1.7196566400000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n    \"max\": 1.7902104083400001,\n    \"mean\": 1.73799640774,\n    \"median\": 1.73215136334,\n    \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n    \"min\": 1.7130974163400001,\n    \"stddev\": 0.030517402018895363,\n    \"system\": 0.066181725,\n    \"time\": 1.7902104083400001,\n    \"user\": 1.730201215\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n    \"max\": 1.7902104083400001,\n    \"mean\": 1.73799640774,\n    \"median\": 1.73215136334,\n    \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n    \"min\": 1.7130974163400001,\n    \"stddev\": 0.030517402018895363,\n    \"system\": 0.066181725,\n    \"time\": 1.73215136334,\n    \"user\": 1.730201215\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n    \"max\": 1.7902104083400001,\n    \"mean\": 1.73799640774,\n    \"median\": 1.73215136334,\n    \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n    \"min\": 1.7130974163400001,\n    \"stddev\": 0.030517402018895363,\n    \"system\": 0.066181725,\n    \"time\": 1.7130974163400001,\n    \"user\": 1.730201215\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n    \"max\": 1.7902104083400001,\n    \"mean\": 1.73799640774,\n    \"median\": 1.73215136334,\n    \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n    \"min\": 1.7130974163400001,\n    \"stddev\": 0.030517402018895363,\n    \"system\": 0.066181725,\n    \"time\": 1.73482255734,\n    \"user\": 1.730201215\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n    \"max\": 1.7902104083400001,\n    \"mean\": 1.73799640774,\n    \"median\": 1.73215136334,\n    \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n    \"min\": 1.7130974163400001,\n    \"stddev\": 0.030517402018895363,\n    \"system\": 0.066181725,\n    \"time\": 1.71970029334,\n    \"user\": 1.730201215\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n    \"max\": 1.762584821845,\n    \"mean\": 1.737005596045,\n    \"median\": 1.7246944238450002,\n    \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n    \"min\": 1.716915029845,\n    \"stddev\": 0.021277979500375143,\n    \"system\": 0.066701575,\n    \"time\": 1.7246944238450002,\n    \"user\": 1.7277869049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n    \"max\": 1.762584821845,\n    \"mean\": 1.737005596045,\n    \"median\": 1.7246944238450002,\n    \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n    \"min\": 1.716915029845,\n    \"stddev\": 0.021277979500375143,\n    \"system\": 0.066701575,\n    \"time\": 1.757420435845,\n    \"user\": 1.7277869049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n    \"max\": 1.762584821845,\n    \"mean\": 1.737005596045,\n    \"median\": 1.7246944238450002,\n    \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n    \"min\": 1.716915029845,\n    \"stddev\": 0.021277979500375143,\n    \"system\": 0.066701575,\n    \"time\": 1.762584821845,\n    \"user\": 1.7277869049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n    \"max\": 1.762584821845,\n    \"mean\": 1.737005596045,\n    \"median\": 1.7246944238450002,\n    \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n    \"min\": 1.716915029845,\n    \"stddev\": 0.021277979500375143,\n    \"system\": 0.066701575,\n    \"time\": 1.716915029845,\n    \"user\": 1.7277869049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n    \"max\": 1.762584821845,\n    \"mean\": 1.737005596045,\n    \"median\": 1.7246944238450002,\n    \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n    \"min\": 1.716915029845,\n    \"stddev\": 0.021277979500375143,\n    \"system\": 0.066701575,\n    \"time\": 1.7234132688450001,\n    \"user\": 1.7277869049999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n    \"max\": 2.029071802765,\n    \"mean\": 1.8137771207650002,\n    \"median\": 1.747259987765,\n    \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n    \"min\": 1.703194684765,\n    \"stddev\": 0.13824184725612948,\n    \"system\": 0.07512369999999999,\n    \"time\": 2.029071802765,\n    \"user\": 1.792600075\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n    \"max\": 2.029071802765,\n    \"mean\": 1.8137771207650002,\n    \"median\": 1.747259987765,\n    \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n    \"min\": 1.703194684765,\n    \"stddev\": 0.13824184725612948,\n    \"system\": 0.07512369999999999,\n    \"time\": 1.8743946687650002,\n    \"user\": 1.792600075\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n    \"max\": 2.029071802765,\n    \"mean\": 1.8137771207650002,\n    \"median\": 1.747259987765,\n    \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n    \"min\": 1.703194684765,\n    \"stddev\": 0.13824184725612948,\n    \"system\": 0.07512369999999999,\n    \"time\": 1.747259987765,\n    \"user\": 1.792600075\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n    \"max\": 2.029071802765,\n    \"mean\": 1.8137771207650002,\n    \"median\": 1.747259987765,\n    \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n    \"min\": 1.703194684765,\n    \"stddev\": 0.13824184725612948,\n    \"system\": 0.07512369999999999,\n    \"time\": 1.703194684765,\n    \"user\": 1.792600075\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n    \"max\": 2.029071802765,\n    \"mean\": 1.8137771207650002,\n    \"median\": 1.747259987765,\n    \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n    \"min\": 1.703194684765,\n    \"stddev\": 0.13824184725612948,\n    \"system\": 0.07512369999999999,\n    \"time\": 1.714964459765,\n    \"user\": 1.792600075\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n    \"max\": 1.7709951682700003,\n    \"mean\": 1.7493819816700005,\n    \"median\": 1.75624770227,\n    \"message\": \"Bug fix: bash completion\\n\",\n    \"min\": 1.7136161862700001,\n    \"stddev\": 0.02329886541173713,\n    \"system\": 0.06791496,\n    \"time\": 1.7397713872700002,\n    \"user\": 1.7383158399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n    \"max\": 1.7709951682700003,\n    \"mean\": 1.7493819816700005,\n    \"median\": 1.75624770227,\n    \"message\": \"Bug fix: bash completion\\n\",\n    \"min\": 1.7136161862700001,\n    \"stddev\": 0.02329886541173713,\n    \"system\": 0.06791496,\n    \"time\": 1.7709951682700003,\n    \"user\": 1.7383158399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n    \"max\": 1.7709951682700003,\n    \"mean\": 1.7493819816700005,\n    \"median\": 1.75624770227,\n    \"message\": \"Bug fix: bash completion\\n\",\n    \"min\": 1.7136161862700001,\n    \"stddev\": 0.02329886541173713,\n    \"system\": 0.06791496,\n    \"time\": 1.7662794642700002,\n    \"user\": 1.7383158399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n    \"max\": 1.7709951682700003,\n    \"mean\": 1.7493819816700005,\n    \"median\": 1.75624770227,\n    \"message\": \"Bug fix: bash completion\\n\",\n    \"min\": 1.7136161862700001,\n    \"stddev\": 0.02329886541173713,\n    \"system\": 0.06791496,\n    \"time\": 1.7136161862700001,\n    \"user\": 1.7383158399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n    \"max\": 1.7709951682700003,\n    \"mean\": 1.7493819816700005,\n    \"median\": 1.75624770227,\n    \"message\": \"Bug fix: bash completion\\n\",\n    \"min\": 1.7136161862700001,\n    \"stddev\": 0.02329886541173713,\n    \"system\": 0.06791496,\n    \"time\": 1.75624770227,\n    \"user\": 1.7383158399999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n    \"max\": 1.785348839515,\n    \"mean\": 1.739504648315,\n    \"median\": 1.729359575515,\n    \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n    \"min\": 1.721856755515,\n    \"stddev\": 0.025989271241545375,\n    \"system\": 0.067212735,\n    \"time\": 1.785348839515,\n    \"user\": 1.731041015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n    \"max\": 1.785348839515,\n    \"mean\": 1.739504648315,\n    \"median\": 1.729359575515,\n    \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n    \"min\": 1.721856755515,\n    \"stddev\": 0.025989271241545375,\n    \"system\": 0.067212735,\n    \"time\": 1.733854314515,\n    \"user\": 1.731041015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n    \"max\": 1.785348839515,\n    \"mean\": 1.739504648315,\n    \"median\": 1.729359575515,\n    \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n    \"min\": 1.721856755515,\n    \"stddev\": 0.025989271241545375,\n    \"system\": 0.067212735,\n    \"time\": 1.727103756515,\n    \"user\": 1.731041015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n    \"max\": 1.785348839515,\n    \"mean\": 1.739504648315,\n    \"median\": 1.729359575515,\n    \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n    \"min\": 1.721856755515,\n    \"stddev\": 0.025989271241545375,\n    \"system\": 0.067212735,\n    \"time\": 1.721856755515,\n    \"user\": 1.731041015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n    \"max\": 1.785348839515,\n    \"mean\": 1.739504648315,\n    \"median\": 1.729359575515,\n    \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n    \"min\": 1.721856755515,\n    \"stddev\": 0.025989271241545375,\n    \"system\": 0.067212735,\n    \"time\": 1.729359575515,\n    \"user\": 1.731041015\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n    \"max\": 1.78181453441,\n    \"mean\": 1.74100094581,\n    \"median\": 1.72459607541,\n    \"message\": \"Fix formatting of RGB hex codes\\n\",\n    \"min\": 1.7199766324099999,\n    \"stddev\": 0.026612427072925448,\n    \"system\": 0.067176985,\n    \"time\": 1.75431320041,\n    \"user\": 1.7318469799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n    \"max\": 1.78181453441,\n    \"mean\": 1.74100094581,\n    \"median\": 1.72459607541,\n    \"message\": \"Fix formatting of RGB hex codes\\n\",\n    \"min\": 1.7199766324099999,\n    \"stddev\": 0.026612427072925448,\n    \"system\": 0.067176985,\n    \"time\": 1.78181453441,\n    \"user\": 1.7318469799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n    \"max\": 1.78181453441,\n    \"mean\": 1.74100094581,\n    \"median\": 1.72459607541,\n    \"message\": \"Fix formatting of RGB hex codes\\n\",\n    \"min\": 1.7199766324099999,\n    \"stddev\": 0.026612427072925448,\n    \"system\": 0.067176985,\n    \"time\": 1.72459607541,\n    \"user\": 1.7318469799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n    \"max\": 1.78181453441,\n    \"mean\": 1.74100094581,\n    \"median\": 1.72459607541,\n    \"message\": \"Fix formatting of RGB hex codes\\n\",\n    \"min\": 1.7199766324099999,\n    \"stddev\": 0.026612427072925448,\n    \"system\": 0.067176985,\n    \"time\": 1.72430428641,\n    \"user\": 1.7318469799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n    \"max\": 1.78181453441,\n    \"mean\": 1.74100094581,\n    \"median\": 1.72459607541,\n    \"message\": \"Fix formatting of RGB hex codes\\n\",\n    \"min\": 1.7199766324099999,\n    \"stddev\": 0.026612427072925448,\n    \"system\": 0.067176985,\n    \"time\": 1.7199766324099999,\n    \"user\": 1.7318469799999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n    \"max\": 1.8150611729400001,\n    \"mean\": 1.7481442321400003,\n    \"median\": 1.73992402594,\n    \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n    \"min\": 1.7167127469399999,\n    \"stddev\": 0.03965354382224564,\n    \"system\": 0.06724778000000001,\n    \"time\": 1.8150611729400001,\n    \"user\": 1.7382797349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n    \"max\": 1.8150611729400001,\n    \"mean\": 1.7481442321400003,\n    \"median\": 1.73992402594,\n    \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n    \"min\": 1.7167127469399999,\n    \"stddev\": 0.03965354382224564,\n    \"system\": 0.06724778000000001,\n    \"time\": 1.7483775769399998,\n    \"user\": 1.7382797349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n    \"max\": 1.8150611729400001,\n    \"mean\": 1.7481442321400003,\n    \"median\": 1.73992402594,\n    \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n    \"min\": 1.7167127469399999,\n    \"stddev\": 0.03965354382224564,\n    \"system\": 0.06724778000000001,\n    \"time\": 1.73992402594,\n    \"user\": 1.7382797349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n    \"max\": 1.8150611729400001,\n    \"mean\": 1.7481442321400003,\n    \"median\": 1.73992402594,\n    \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n    \"min\": 1.7167127469399999,\n    \"stddev\": 0.03965354382224564,\n    \"system\": 0.06724778000000001,\n    \"time\": 1.7206456379400001,\n    \"user\": 1.7382797349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n    \"max\": 1.8150611729400001,\n    \"mean\": 1.7481442321400003,\n    \"median\": 1.73992402594,\n    \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n    \"min\": 1.7167127469399999,\n    \"stddev\": 0.03965354382224564,\n    \"system\": 0.06724778000000001,\n    \"time\": 1.7167127469399999,\n    \"user\": 1.7382797349999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n    \"max\": 1.80250005202,\n    \"mean\": 1.75376824002,\n    \"median\": 1.74391234702,\n    \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n    \"min\": 1.72759804402,\n    \"stddev\": 0.029683839831726542,\n    \"system\": 0.06561909,\n    \"time\": 1.7593944520200002,\n    \"user\": 1.74534529\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n    \"max\": 1.80250005202,\n    \"mean\": 1.75376824002,\n    \"median\": 1.74391234702,\n    \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n    \"min\": 1.72759804402,\n    \"stddev\": 0.029683839831726542,\n    \"system\": 0.06561909,\n    \"time\": 1.80250005202,\n    \"user\": 1.74534529\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n    \"max\": 1.80250005202,\n    \"mean\": 1.75376824002,\n    \"median\": 1.74391234702,\n    \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n    \"min\": 1.72759804402,\n    \"stddev\": 0.029683839831726542,\n    \"system\": 0.06561909,\n    \"time\": 1.72759804402,\n    \"user\": 1.74534529\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n    \"max\": 1.80250005202,\n    \"mean\": 1.75376824002,\n    \"median\": 1.74391234702,\n    \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n    \"min\": 1.72759804402,\n    \"stddev\": 0.029683839831726542,\n    \"system\": 0.06561909,\n    \"time\": 1.74391234702,\n    \"user\": 1.74534529\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n    \"max\": 1.80250005202,\n    \"mean\": 1.75376824002,\n    \"median\": 1.74391234702,\n    \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n    \"min\": 1.72759804402,\n    \"stddev\": 0.029683839831726542,\n    \"system\": 0.06561909,\n    \"time\": 1.7354363050200001,\n    \"user\": 1.74534529\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n    \"max\": 1.810342420905,\n    \"mean\": 1.763795519105,\n    \"median\": 1.758598795905,\n    \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n    \"min\": 1.7348098699049999,\n    \"stddev\": 0.02801153745946587,\n    \"system\": 0.068354355,\n    \"time\": 1.7538478679049998,\n    \"user\": 1.7527845750000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n    \"max\": 1.810342420905,\n    \"mean\": 1.763795519105,\n    \"median\": 1.758598795905,\n    \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n    \"min\": 1.7348098699049999,\n    \"stddev\": 0.02801153745946587,\n    \"system\": 0.068354355,\n    \"time\": 1.7613786409049998,\n    \"user\": 1.7527845750000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n    \"max\": 1.810342420905,\n    \"mean\": 1.763795519105,\n    \"median\": 1.758598795905,\n    \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n    \"min\": 1.7348098699049999,\n    \"stddev\": 0.02801153745946587,\n    \"system\": 0.068354355,\n    \"time\": 1.810342420905,\n    \"user\": 1.7527845750000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n    \"max\": 1.810342420905,\n    \"mean\": 1.763795519105,\n    \"median\": 1.758598795905,\n    \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n    \"min\": 1.7348098699049999,\n    \"stddev\": 0.02801153745946587,\n    \"system\": 0.068354355,\n    \"time\": 1.7348098699049999,\n    \"user\": 1.7527845750000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n    \"max\": 1.810342420905,\n    \"mean\": 1.763795519105,\n    \"median\": 1.758598795905,\n    \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n    \"min\": 1.7348098699049999,\n    \"stddev\": 0.02801153745946587,\n    \"system\": 0.068354355,\n    \"time\": 1.758598795905,\n    \"user\": 1.7527845750000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n    \"max\": 1.8086778144900002,\n    \"mean\": 1.76091374189,\n    \"median\": 1.7569221994900002,\n    \"message\": \"Delete credit line\\n\",\n    \"min\": 1.7383521754900002,\n    \"stddev\": 0.028471066843524486,\n    \"system\": 0.06801810999999999,\n    \"time\": 1.8086778144900002,\n    \"user\": 1.7494496300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n    \"max\": 1.8086778144900002,\n    \"mean\": 1.76091374189,\n    \"median\": 1.7569221994900002,\n    \"message\": \"Delete credit line\\n\",\n    \"min\": 1.7383521754900002,\n    \"stddev\": 0.028471066843524486,\n    \"system\": 0.06801810999999999,\n    \"time\": 1.7605817884900001,\n    \"user\": 1.7494496300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n    \"max\": 1.8086778144900002,\n    \"mean\": 1.76091374189,\n    \"median\": 1.7569221994900002,\n    \"message\": \"Delete credit line\\n\",\n    \"min\": 1.7383521754900002,\n    \"stddev\": 0.028471066843524486,\n    \"system\": 0.06801810999999999,\n    \"time\": 1.7569221994900002,\n    \"user\": 1.7494496300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n    \"max\": 1.8086778144900002,\n    \"mean\": 1.76091374189,\n    \"median\": 1.7569221994900002,\n    \"message\": \"Delete credit line\\n\",\n    \"min\": 1.7383521754900002,\n    \"stddev\": 0.028471066843524486,\n    \"system\": 0.06801810999999999,\n    \"time\": 1.7383521754900002,\n    \"user\": 1.7494496300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n    \"max\": 1.8086778144900002,\n    \"mean\": 1.76091374189,\n    \"median\": 1.7569221994900002,\n    \"message\": \"Delete credit line\\n\",\n    \"min\": 1.7383521754900002,\n    \"stddev\": 0.028471066843524486,\n    \"system\": 0.06801810999999999,\n    \"time\": 1.7400347314900002,\n    \"user\": 1.7494496300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n    \"max\": 1.797192426,\n    \"mean\": 1.7535994206,\n    \"median\": 1.7399863320000002,\n    \"message\": \"Change theme demo input\\n\",\n    \"min\": 1.735913007,\n    \"stddev\": 0.02588635240249829,\n    \"system\": 0.06732950000000001,\n    \"time\": 1.797192426,\n    \"user\": 1.7449345700000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n    \"max\": 1.797192426,\n    \"mean\": 1.7535994206,\n    \"median\": 1.7399863320000002,\n    \"message\": \"Change theme demo input\\n\",\n    \"min\": 1.735913007,\n    \"stddev\": 0.02588635240249829,\n    \"system\": 0.06732950000000001,\n    \"time\": 1.735913007,\n    \"user\": 1.7449345700000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n    \"max\": 1.797192426,\n    \"mean\": 1.7535994206,\n    \"median\": 1.7399863320000002,\n    \"message\": \"Change theme demo input\\n\",\n    \"min\": 1.735913007,\n    \"stddev\": 0.02588635240249829,\n    \"system\": 0.06732950000000001,\n    \"time\": 1.7399863320000002,\n    \"user\": 1.7449345700000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n    \"max\": 1.797192426,\n    \"mean\": 1.7535994206,\n    \"median\": 1.7399863320000002,\n    \"message\": \"Change theme demo input\\n\",\n    \"min\": 1.735913007,\n    \"stddev\": 0.02588635240249829,\n    \"system\": 0.06732950000000001,\n    \"time\": 1.7576107280000002,\n    \"user\": 1.7449345700000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n    \"max\": 1.797192426,\n    \"mean\": 1.7535994206,\n    \"median\": 1.7399863320000002,\n    \"message\": \"Change theme demo input\\n\",\n    \"min\": 1.735913007,\n    \"stddev\": 0.02588635240249829,\n    \"system\": 0.06732950000000001,\n    \"time\": 1.73729461,\n    \"user\": 1.7449345700000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n    \"max\": 1.7913811534350002,\n    \"mean\": 1.7575240146350002,\n    \"median\": 1.744569561435,\n    \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n    \"min\": 1.734361796435,\n    \"stddev\": 0.02392081974234167,\n    \"system\": 0.06653098500000001,\n    \"time\": 1.744569561435,\n    \"user\": 1.748133625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n    \"max\": 1.7913811534350002,\n    \"mean\": 1.7575240146350002,\n    \"median\": 1.744569561435,\n    \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n    \"min\": 1.734361796435,\n    \"stddev\": 0.02392081974234167,\n    \"system\": 0.06653098500000001,\n    \"time\": 1.773412806435,\n    \"user\": 1.748133625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n    \"max\": 1.7913811534350002,\n    \"mean\": 1.7575240146350002,\n    \"median\": 1.744569561435,\n    \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n    \"min\": 1.734361796435,\n    \"stddev\": 0.02392081974234167,\n    \"system\": 0.06653098500000001,\n    \"time\": 1.7913811534350002,\n    \"user\": 1.748133625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n    \"max\": 1.7913811534350002,\n    \"mean\": 1.7575240146350002,\n    \"median\": 1.744569561435,\n    \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n    \"min\": 1.734361796435,\n    \"stddev\": 0.02392081974234167,\n    \"system\": 0.06653098500000001,\n    \"time\": 1.743894755435,\n    \"user\": 1.748133625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n    \"max\": 1.7913811534350002,\n    \"mean\": 1.7575240146350002,\n    \"median\": 1.744569561435,\n    \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n    \"min\": 1.734361796435,\n    \"stddev\": 0.02392081974234167,\n    \"system\": 0.06653098500000001,\n    \"time\": 1.734361796435,\n    \"user\": 1.748133625\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n    \"max\": 1.877290501555,\n    \"mean\": 1.8136028509549997,\n    \"median\": 1.8093861275549998,\n    \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n    \"min\": 1.7800130375549998,\n    \"stddev\": 0.037761238056712616,\n    \"system\": 0.07216732,\n    \"time\": 1.7800130375549998,\n    \"user\": 1.7972332300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n    \"max\": 1.877290501555,\n    \"mean\": 1.8136028509549997,\n    \"median\": 1.8093861275549998,\n    \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n    \"min\": 1.7800130375549998,\n    \"stddev\": 0.037761238056712616,\n    \"system\": 0.07216732,\n    \"time\": 1.7915366375550001,\n    \"user\": 1.7972332300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n    \"max\": 1.877290501555,\n    \"mean\": 1.8136028509549997,\n    \"median\": 1.8093861275549998,\n    \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n    \"min\": 1.7800130375549998,\n    \"stddev\": 0.037761238056712616,\n    \"system\": 0.07216732,\n    \"time\": 1.809787950555,\n    \"user\": 1.7972332300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n    \"max\": 1.877290501555,\n    \"mean\": 1.8136028509549997,\n    \"median\": 1.8093861275549998,\n    \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n    \"min\": 1.7800130375549998,\n    \"stddev\": 0.037761238056712616,\n    \"system\": 0.07216732,\n    \"time\": 1.877290501555,\n    \"user\": 1.7972332300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n    \"max\": 1.877290501555,\n    \"mean\": 1.8136028509549997,\n    \"median\": 1.8093861275549998,\n    \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n    \"min\": 1.7800130375549998,\n    \"stddev\": 0.037761238056712616,\n    \"system\": 0.07216732,\n    \"time\": 1.8093861275549998,\n    \"user\": 1.7972332300000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n    \"max\": 1.7453558771300002,\n    \"mean\": 1.71368296433,\n    \"median\": 1.70568084013,\n    \"message\": \"read themes from bat's cache as well\\n\",\n    \"min\": 1.6995923621300002,\n    \"stddev\": 0.018322650685448385,\n    \"system\": 0.06203837999999999,\n    \"time\": 1.7453558771300002,\n    \"user\": 1.7079396000000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n    \"max\": 1.7453558771300002,\n    \"mean\": 1.71368296433,\n    \"median\": 1.70568084013,\n    \"message\": \"read themes from bat's cache as well\\n\",\n    \"min\": 1.6995923621300002,\n    \"stddev\": 0.018322650685448385,\n    \"system\": 0.06203837999999999,\n    \"time\": 1.70568084013,\n    \"user\": 1.7079396000000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n    \"max\": 1.7453558771300002,\n    \"mean\": 1.71368296433,\n    \"median\": 1.70568084013,\n    \"message\": \"read themes from bat's cache as well\\n\",\n    \"min\": 1.6995923621300002,\n    \"stddev\": 0.018322650685448385,\n    \"system\": 0.06203837999999999,\n    \"time\": 1.7049409311300001,\n    \"user\": 1.7079396000000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n    \"max\": 1.7453558771300002,\n    \"mean\": 1.71368296433,\n    \"median\": 1.70568084013,\n    \"message\": \"read themes from bat's cache as well\\n\",\n    \"min\": 1.6995923621300002,\n    \"stddev\": 0.018322650685448385,\n    \"system\": 0.06203837999999999,\n    \"time\": 1.71284481113,\n    \"user\": 1.7079396000000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n    \"max\": 1.7453558771300002,\n    \"mean\": 1.71368296433,\n    \"median\": 1.70568084013,\n    \"message\": \"read themes from bat's cache as well\\n\",\n    \"min\": 1.6995923621300002,\n    \"stddev\": 0.018322650685448385,\n    \"system\": 0.06203837999999999,\n    \"time\": 1.6995923621300002,\n    \"user\": 1.7079396000000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n    \"max\": 1.98083996069,\n    \"mean\": 1.8181036060900002,\n    \"median\": 1.7810805156900003,\n    \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n    \"min\": 1.76932616669,\n    \"stddev\": 0.09122061598546864,\n    \"system\": 0.07496427000000001,\n    \"time\": 1.98083996069,\n    \"user\": 1.8008996949999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n    \"max\": 1.98083996069,\n    \"mean\": 1.8181036060900002,\n    \"median\": 1.7810805156900003,\n    \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n    \"min\": 1.76932616669,\n    \"stddev\": 0.09122061598546864,\n    \"system\": 0.07496427000000001,\n    \"time\": 1.7728469666900002,\n    \"user\": 1.8008996949999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n    \"max\": 1.98083996069,\n    \"mean\": 1.8181036060900002,\n    \"median\": 1.7810805156900003,\n    \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n    \"min\": 1.76932616669,\n    \"stddev\": 0.09122061598546864,\n    \"system\": 0.07496427000000001,\n    \"time\": 1.7864244206900002,\n    \"user\": 1.8008996949999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n    \"max\": 1.98083996069,\n    \"mean\": 1.8181036060900002,\n    \"median\": 1.7810805156900003,\n    \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n    \"min\": 1.76932616669,\n    \"stddev\": 0.09122061598546864,\n    \"system\": 0.07496427000000001,\n    \"time\": 1.76932616669,\n    \"user\": 1.8008996949999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n    \"max\": 1.98083996069,\n    \"mean\": 1.8181036060900002,\n    \"median\": 1.7810805156900003,\n    \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n    \"min\": 1.76932616669,\n    \"stddev\": 0.09122061598546864,\n    \"system\": 0.07496427000000001,\n    \"time\": 1.7810805156900003,\n    \"user\": 1.8008996949999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n    \"max\": 1.7527428231350002,\n    \"mean\": 1.709586381735,\n    \"median\": 1.6993984421350001,\n    \"message\": \"[README] document mercurial configuration\",\n    \"min\": 1.6962721201350002,\n    \"stddev\": 0.024287431286105988,\n    \"system\": 0.06250958,\n    \"time\": 1.7527428231350002,\n    \"user\": 1.7055425100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n    \"max\": 1.7527428231350002,\n    \"mean\": 1.709586381735,\n    \"median\": 1.6993984421350001,\n    \"message\": \"[README] document mercurial configuration\",\n    \"min\": 1.6962721201350002,\n    \"stddev\": 0.024287431286105988,\n    \"system\": 0.06250958,\n    \"time\": 1.6963806091350002,\n    \"user\": 1.7055425100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n    \"max\": 1.7527428231350002,\n    \"mean\": 1.709586381735,\n    \"median\": 1.6993984421350001,\n    \"message\": \"[README] document mercurial configuration\",\n    \"min\": 1.6962721201350002,\n    \"stddev\": 0.024287431286105988,\n    \"system\": 0.06250958,\n    \"time\": 1.6962721201350002,\n    \"user\": 1.7055425100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n    \"max\": 1.7527428231350002,\n    \"mean\": 1.709586381735,\n    \"median\": 1.6993984421350001,\n    \"message\": \"[README] document mercurial configuration\",\n    \"min\": 1.6962721201350002,\n    \"stddev\": 0.024287431286105988,\n    \"system\": 0.06250958,\n    \"time\": 1.703137914135,\n    \"user\": 1.7055425100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n    \"max\": 1.7527428231350002,\n    \"mean\": 1.709586381735,\n    \"median\": 1.6993984421350001,\n    \"message\": \"[README] document mercurial configuration\",\n    \"min\": 1.6962721201350002,\n    \"stddev\": 0.024287431286105988,\n    \"system\": 0.06250958,\n    \"time\": 1.6993984421350001,\n    \"user\": 1.7055425100000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n    \"max\": 1.78598752604,\n    \"mean\": 1.7264466846399997,\n    \"median\": 1.71512951404,\n    \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n    \"min\": 1.6953918150399998,\n    \"stddev\": 0.03552083561847007,\n    \"system\": 0.06473171999999999,\n    \"time\": 1.70641806904,\n    \"user\": 1.719856895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n    \"max\": 1.78598752604,\n    \"mean\": 1.7264466846399997,\n    \"median\": 1.71512951404,\n    \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n    \"min\": 1.6953918150399998,\n    \"stddev\": 0.03552083561847007,\n    \"system\": 0.06473171999999999,\n    \"time\": 1.78598752604,\n    \"user\": 1.719856895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n    \"max\": 1.78598752604,\n    \"mean\": 1.7264466846399997,\n    \"median\": 1.71512951404,\n    \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n    \"min\": 1.6953918150399998,\n    \"stddev\": 0.03552083561847007,\n    \"system\": 0.06473171999999999,\n    \"time\": 1.6953918150399998,\n    \"user\": 1.719856895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n    \"max\": 1.78598752604,\n    \"mean\": 1.7264466846399997,\n    \"median\": 1.71512951404,\n    \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n    \"min\": 1.6953918150399998,\n    \"stddev\": 0.03552083561847007,\n    \"system\": 0.06473171999999999,\n    \"time\": 1.72930649904,\n    \"user\": 1.719856895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n    \"max\": 1.78598752604,\n    \"mean\": 1.7264466846399997,\n    \"median\": 1.71512951404,\n    \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n    \"min\": 1.6953918150399998,\n    \"stddev\": 0.03552083561847007,\n    \"system\": 0.06473171999999999,\n    \"time\": 1.71512951404,\n    \"user\": 1.719856895\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n    \"max\": 1.722760595005,\n    \"mean\": 1.7065114014050002,\n    \"median\": 1.706559638005,\n    \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n    \"min\": 1.692520849005,\n    \"stddev\": 0.012274768216726661,\n    \"system\": 0.06274336,\n    \"time\": 1.706559638005,\n    \"user\": 1.700643255\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n    \"max\": 1.722760595005,\n    \"mean\": 1.7065114014050002,\n    \"median\": 1.706559638005,\n    \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n    \"min\": 1.692520849005,\n    \"stddev\": 0.012274768216726661,\n    \"system\": 0.06274336,\n    \"time\": 1.696984053005,\n    \"user\": 1.700643255\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n    \"max\": 1.722760595005,\n    \"mean\": 1.7065114014050002,\n    \"median\": 1.706559638005,\n    \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n    \"min\": 1.692520849005,\n    \"stddev\": 0.012274768216726661,\n    \"system\": 0.06274336,\n    \"time\": 1.722760595005,\n    \"user\": 1.700643255\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n    \"max\": 1.722760595005,\n    \"mean\": 1.7065114014050002,\n    \"median\": 1.706559638005,\n    \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n    \"min\": 1.692520849005,\n    \"stddev\": 0.012274768216726661,\n    \"system\": 0.06274336,\n    \"time\": 1.692520849005,\n    \"user\": 1.700643255\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n    \"max\": 1.722760595005,\n    \"mean\": 1.7065114014050002,\n    \"median\": 1.706559638005,\n    \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n    \"min\": 1.692520849005,\n    \"stddev\": 0.012274768216726661,\n    \"system\": 0.06274336,\n    \"time\": 1.713731872005,\n    \"user\": 1.700643255\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n    \"max\": 1.73321229866,\n    \"mean\": 1.7026571012600002,\n    \"median\": 1.69749542166,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.68269648866,\n    \"stddev\": 0.02010799400830877,\n    \"system\": 0.063197515,\n    \"time\": 1.73321229866,\n    \"user\": 1.69779991\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n    \"max\": 1.73321229866,\n    \"mean\": 1.7026571012600002,\n    \"median\": 1.69749542166,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.68269648866,\n    \"stddev\": 0.02010799400830877,\n    \"system\": 0.063197515,\n    \"time\": 1.71098325666,\n    \"user\": 1.69779991\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n    \"max\": 1.73321229866,\n    \"mean\": 1.7026571012600002,\n    \"median\": 1.69749542166,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.68269648866,\n    \"stddev\": 0.02010799400830877,\n    \"system\": 0.063197515,\n    \"time\": 1.69749542166,\n    \"user\": 1.69779991\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n    \"max\": 1.73321229866,\n    \"mean\": 1.7026571012600002,\n    \"median\": 1.69749542166,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.68269648866,\n    \"stddev\": 0.02010799400830877,\n    \"system\": 0.063197515,\n    \"time\": 1.68889804066,\n    \"user\": 1.69779991\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n    \"max\": 1.73321229866,\n    \"mean\": 1.7026571012600002,\n    \"median\": 1.69749542166,\n    \"message\": \"Update bash completion\\n\",\n    \"min\": 1.68269648866,\n    \"stddev\": 0.02010799400830877,\n    \"system\": 0.063197515,\n    \"time\": 1.68269648866,\n    \"user\": 1.69779991\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n    \"max\": 1.7625388730350002,\n    \"mean\": 1.7179560954350002,\n    \"median\": 1.710845849035,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.6817819560350002,\n    \"stddev\": 0.0373450009165691,\n    \"system\": 0.064136475,\n    \"time\": 1.7625388730350002,\n    \"user\": 1.7131403199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n    \"max\": 1.7625388730350002,\n    \"mean\": 1.7179560954350002,\n    \"median\": 1.710845849035,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.6817819560350002,\n    \"stddev\": 0.0373450009165691,\n    \"system\": 0.064136475,\n    \"time\": 1.683907757035,\n    \"user\": 1.7131403199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n    \"max\": 1.7625388730350002,\n    \"mean\": 1.7179560954350002,\n    \"median\": 1.710845849035,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.6817819560350002,\n    \"stddev\": 0.0373450009165691,\n    \"system\": 0.064136475,\n    \"time\": 1.710845849035,\n    \"user\": 1.7131403199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n    \"max\": 1.7625388730350002,\n    \"mean\": 1.7179560954350002,\n    \"median\": 1.710845849035,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.6817819560350002,\n    \"stddev\": 0.0373450009165691,\n    \"system\": 0.064136475,\n    \"time\": 1.7507060420350002,\n    \"user\": 1.7131403199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n    \"max\": 1.7625388730350002,\n    \"mean\": 1.7179560954350002,\n    \"median\": 1.710845849035,\n    \"message\": \"Update README\\n\",\n    \"min\": 1.6817819560350002,\n    \"stddev\": 0.0373450009165691,\n    \"system\": 0.064136475,\n    \"time\": 1.6817819560350002,\n    \"user\": 1.7131403199999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n    \"max\": 1.7776440166550003,\n    \"mean\": 1.760375952055,\n    \"median\": 1.759354909655,\n    \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n    \"min\": 1.7467981056550002,\n    \"stddev\": 0.01105077745537346,\n    \"system\": 0.068363855,\n    \"time\": 1.759856834655,\n    \"user\": 1.7510739649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n    \"max\": 1.7776440166550003,\n    \"mean\": 1.760375952055,\n    \"median\": 1.759354909655,\n    \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n    \"min\": 1.7467981056550002,\n    \"stddev\": 0.01105077745537346,\n    \"system\": 0.068363855,\n    \"time\": 1.7776440166550003,\n    \"user\": 1.7510739649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n    \"max\": 1.7776440166550003,\n    \"mean\": 1.760375952055,\n    \"median\": 1.759354909655,\n    \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n    \"min\": 1.7467981056550002,\n    \"stddev\": 0.01105077745537346,\n    \"system\": 0.068363855,\n    \"time\": 1.7467981056550002,\n    \"user\": 1.7510739649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n    \"max\": 1.7776440166550003,\n    \"mean\": 1.760375952055,\n    \"median\": 1.759354909655,\n    \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n    \"min\": 1.7467981056550002,\n    \"stddev\": 0.01105077745537346,\n    \"system\": 0.068363855,\n    \"time\": 1.7582258936550001,\n    \"user\": 1.7510739649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n    \"max\": 1.7776440166550003,\n    \"mean\": 1.760375952055,\n    \"median\": 1.759354909655,\n    \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n    \"min\": 1.7467981056550002,\n    \"stddev\": 0.01105077745537346,\n    \"system\": 0.068363855,\n    \"time\": 1.759354909655,\n    \"user\": 1.7510739649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n    \"max\": 1.78841082833,\n    \"mean\": 1.72063597253,\n    \"median\": 1.69705451033,\n    \"message\": \"Add failing test for issue #89\\n\",\n    \"min\": 1.6923187633299999,\n    \"stddev\": 0.041416469603081554,\n    \"system\": 0.06328825,\n    \"time\": 1.73249546133,\n    \"user\": 1.7162025800000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n    \"max\": 1.78841082833,\n    \"mean\": 1.72063597253,\n    \"median\": 1.69705451033,\n    \"message\": \"Add failing test for issue #89\\n\",\n    \"min\": 1.6923187633299999,\n    \"stddev\": 0.041416469603081554,\n    \"system\": 0.06328825,\n    \"time\": 1.78841082833,\n    \"user\": 1.7162025800000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n    \"max\": 1.78841082833,\n    \"mean\": 1.72063597253,\n    \"median\": 1.69705451033,\n    \"message\": \"Add failing test for issue #89\\n\",\n    \"min\": 1.6923187633299999,\n    \"stddev\": 0.041416469603081554,\n    \"system\": 0.06328825,\n    \"time\": 1.6923187633299999,\n    \"user\": 1.7162025800000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n    \"max\": 1.78841082833,\n    \"mean\": 1.72063597253,\n    \"median\": 1.69705451033,\n    \"message\": \"Add failing test for issue #89\\n\",\n    \"min\": 1.6923187633299999,\n    \"stddev\": 0.041416469603081554,\n    \"system\": 0.06328825,\n    \"time\": 1.69705451033,\n    \"user\": 1.7162025800000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n    \"max\": 1.78841082833,\n    \"mean\": 1.72063597253,\n    \"median\": 1.69705451033,\n    \"message\": \"Add failing test for issue #89\\n\",\n    \"min\": 1.6923187633299999,\n    \"stddev\": 0.041416469603081554,\n    \"system\": 0.06328825,\n    \"time\": 1.69290029933,\n    \"user\": 1.7162025800000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n    \"max\": 1.75497858829,\n    \"mean\": 1.72749685009,\n    \"median\": 1.7324663392900002,\n    \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n    \"min\": 1.70078651229,\n    \"stddev\": 0.020347833287244467,\n    \"system\": 0.064247185,\n    \"time\": 1.71607437429,\n    \"user\": 1.721554395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n    \"max\": 1.75497858829,\n    \"mean\": 1.72749685009,\n    \"median\": 1.7324663392900002,\n    \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n    \"min\": 1.70078651229,\n    \"stddev\": 0.020347833287244467,\n    \"system\": 0.064247185,\n    \"time\": 1.7324663392900002,\n    \"user\": 1.721554395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n    \"max\": 1.75497858829,\n    \"mean\": 1.72749685009,\n    \"median\": 1.7324663392900002,\n    \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n    \"min\": 1.70078651229,\n    \"stddev\": 0.020347833287244467,\n    \"system\": 0.064247185,\n    \"time\": 1.75497858829,\n    \"user\": 1.721554395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n    \"max\": 1.75497858829,\n    \"mean\": 1.72749685009,\n    \"median\": 1.7324663392900002,\n    \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n    \"min\": 1.70078651229,\n    \"stddev\": 0.020347833287244467,\n    \"system\": 0.064247185,\n    \"time\": 1.73317843629,\n    \"user\": 1.721554395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n    \"max\": 1.75497858829,\n    \"mean\": 1.72749685009,\n    \"median\": 1.7324663392900002,\n    \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n    \"min\": 1.70078651229,\n    \"stddev\": 0.020347833287244467,\n    \"system\": 0.064247185,\n    \"time\": 1.70078651229,\n    \"user\": 1.721554395\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n    \"max\": 1.74286421015,\n    \"mean\": 1.7158173933500003,\n    \"median\": 1.70289755115,\n    \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n    \"min\": 1.70046906015,\n    \"stddev\": 0.019568731419090046,\n    \"system\": 0.06236265999999999,\n    \"time\": 1.73051656415,\n    \"user\": 1.7106476050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n    \"max\": 1.74286421015,\n    \"mean\": 1.7158173933500003,\n    \"median\": 1.70289755115,\n    \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n    \"min\": 1.70046906015,\n    \"stddev\": 0.019568731419090046,\n    \"system\": 0.06236265999999999,\n    \"time\": 1.70233958115,\n    \"user\": 1.7106476050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n    \"max\": 1.74286421015,\n    \"mean\": 1.7158173933500003,\n    \"median\": 1.70289755115,\n    \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n    \"min\": 1.70046906015,\n    \"stddev\": 0.019568731419090046,\n    \"system\": 0.06236265999999999,\n    \"time\": 1.74286421015,\n    \"user\": 1.7106476050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n    \"max\": 1.74286421015,\n    \"mean\": 1.7158173933500003,\n    \"median\": 1.70289755115,\n    \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n    \"min\": 1.70046906015,\n    \"stddev\": 0.019568731419090046,\n    \"system\": 0.06236265999999999,\n    \"time\": 1.70289755115,\n    \"user\": 1.7106476050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n    \"max\": 1.74286421015,\n    \"mean\": 1.7158173933500003,\n    \"median\": 1.70289755115,\n    \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n    \"min\": 1.70046906015,\n    \"stddev\": 0.019568731419090046,\n    \"system\": 0.06236265999999999,\n    \"time\": 1.70046906015,\n    \"user\": 1.7106476050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n    \"max\": 1.72426911564,\n    \"mean\": 1.70646791524,\n    \"median\": 1.70480218164,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.68782391264,\n    \"stddev\": 0.01685551654045634,\n    \"system\": 0.062619335,\n    \"time\": 1.70480218164,\n    \"user\": 1.7023503650000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n    \"max\": 1.72426911564,\n    \"mean\": 1.70646791524,\n    \"median\": 1.70480218164,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.68782391264,\n    \"stddev\": 0.01685551654045634,\n    \"system\": 0.062619335,\n    \"time\": 1.68782391264,\n    \"user\": 1.7023503650000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n    \"max\": 1.72426911564,\n    \"mean\": 1.70646791524,\n    \"median\": 1.70480218164,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.68782391264,\n    \"stddev\": 0.01685551654045634,\n    \"system\": 0.062619335,\n    \"time\": 1.72426911564,\n    \"user\": 1.7023503650000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n    \"max\": 1.72426911564,\n    \"mean\": 1.70646791524,\n    \"median\": 1.70480218164,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.68782391264,\n    \"stddev\": 0.01685551654045634,\n    \"system\": 0.062619335,\n    \"time\": 1.6924573356400001,\n    \"user\": 1.7023503650000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n    \"max\": 1.72426911564,\n    \"mean\": 1.70646791524,\n    \"median\": 1.70480218164,\n    \"message\": \"Bump version\\n\",\n    \"min\": 1.68782391264,\n    \"stddev\": 0.01685551654045634,\n    \"system\": 0.062619335,\n    \"time\": 1.7229870306400001,\n    \"user\": 1.7023503650000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n    \"max\": 1.73247464523,\n    \"mean\": 1.7067824378300003,\n    \"median\": 1.69497844823,\n    \"message\": \"Stop running Windows build since it is broken\\n\",\n    \"min\": 1.68995150223,\n    \"stddev\": 0.019080193185594303,\n    \"system\": 0.061649659999999995,\n    \"time\": 1.73247464523,\n    \"user\": 1.7038774500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n    \"max\": 1.73247464523,\n    \"mean\": 1.7067824378300003,\n    \"median\": 1.69497844823,\n    \"message\": \"Stop running Windows build since it is broken\\n\",\n    \"min\": 1.68995150223,\n    \"stddev\": 0.019080193185594303,\n    \"system\": 0.061649659999999995,\n    \"time\": 1.69497844823,\n    \"user\": 1.7038774500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n    \"max\": 1.73247464523,\n    \"mean\": 1.7067824378300003,\n    \"median\": 1.69497844823,\n    \"message\": \"Stop running Windows build since it is broken\\n\",\n    \"min\": 1.68995150223,\n    \"stddev\": 0.019080193185594303,\n    \"system\": 0.061649659999999995,\n    \"time\": 1.69466738423,\n    \"user\": 1.7038774500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n    \"max\": 1.73247464523,\n    \"mean\": 1.7067824378300003,\n    \"median\": 1.69497844823,\n    \"message\": \"Stop running Windows build since it is broken\\n\",\n    \"min\": 1.68995150223,\n    \"stddev\": 0.019080193185594303,\n    \"system\": 0.061649659999999995,\n    \"time\": 1.68995150223,\n    \"user\": 1.7038774500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n    \"max\": 1.73247464523,\n    \"mean\": 1.7067824378300003,\n    \"median\": 1.69497844823,\n    \"message\": \"Stop running Windows build since it is broken\\n\",\n    \"min\": 1.68995150223,\n    \"stddev\": 0.019080193185594303,\n    \"system\": 0.061649659999999995,\n    \"time\": 1.72184020923,\n    \"user\": 1.7038774500000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n    \"max\": 1.7729502163800002,\n    \"mean\": 1.73819716098,\n    \"median\": 1.72126373238,\n    \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n    \"min\": 1.70840724538,\n    \"stddev\": 0.03164390351922424,\n    \"system\": 0.06304179000000001,\n    \"time\": 1.7729502163800002,\n    \"user\": 1.7319566600000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n    \"max\": 1.7729502163800002,\n    \"mean\": 1.73819716098,\n    \"median\": 1.72126373238,\n    \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n    \"min\": 1.70840724538,\n    \"stddev\": 0.03164390351922424,\n    \"system\": 0.06304179000000001,\n    \"time\": 1.71632779338,\n    \"user\": 1.7319566600000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n    \"max\": 1.7729502163800002,\n    \"mean\": 1.73819716098,\n    \"median\": 1.72126373238,\n    \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n    \"min\": 1.70840724538,\n    \"stddev\": 0.03164390351922424,\n    \"system\": 0.06304179000000001,\n    \"time\": 1.70840724538,\n    \"user\": 1.7319566600000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n    \"max\": 1.7729502163800002,\n    \"mean\": 1.73819716098,\n    \"median\": 1.72126373238,\n    \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n    \"min\": 1.70840724538,\n    \"stddev\": 0.03164390351922424,\n    \"system\": 0.06304179000000001,\n    \"time\": 1.72126373238,\n    \"user\": 1.7319566600000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n    \"max\": 1.7729502163800002,\n    \"mean\": 1.73819716098,\n    \"median\": 1.72126373238,\n    \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n    \"min\": 1.70840724538,\n    \"stddev\": 0.03164390351922424,\n    \"system\": 0.06304179000000001,\n    \"time\": 1.77203681738,\n    \"user\": 1.7319566600000003\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n    \"max\": 1.820126484695,\n    \"mean\": 1.744022566095,\n    \"median\": 1.726617566695,\n    \"message\": \"Change to white terminal background in screenshot\\n\",\n    \"min\": 1.712128090695,\n    \"stddev\": 0.04357715279388712,\n    \"system\": 0.06727332499999998,\n    \"time\": 1.820126484695,\n    \"user\": 1.7341709\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n    \"max\": 1.820126484695,\n    \"mean\": 1.744022566095,\n    \"median\": 1.726617566695,\n    \"message\": \"Change to white terminal background in screenshot\\n\",\n    \"min\": 1.712128090695,\n    \"stddev\": 0.04357715279388712,\n    \"system\": 0.06727332499999998,\n    \"time\": 1.712128090695,\n    \"user\": 1.7341709\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n    \"max\": 1.820126484695,\n    \"mean\": 1.744022566095,\n    \"median\": 1.726617566695,\n    \"message\": \"Change to white terminal background in screenshot\\n\",\n    \"min\": 1.712128090695,\n    \"stddev\": 0.04357715279388712,\n    \"system\": 0.06727332499999998,\n    \"time\": 1.722726172695,\n    \"user\": 1.7341709\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n    \"max\": 1.820126484695,\n    \"mean\": 1.744022566095,\n    \"median\": 1.726617566695,\n    \"message\": \"Change to white terminal background in screenshot\\n\",\n    \"min\": 1.712128090695,\n    \"stddev\": 0.04357715279388712,\n    \"system\": 0.06727332499999998,\n    \"time\": 1.738514515695,\n    \"user\": 1.7341709\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n    \"max\": 1.820126484695,\n    \"mean\": 1.744022566095,\n    \"median\": 1.726617566695,\n    \"message\": \"Change to white terminal background in screenshot\\n\",\n    \"min\": 1.712128090695,\n    \"stddev\": 0.04357715279388712,\n    \"system\": 0.06727332499999998,\n    \"time\": 1.726617566695,\n    \"user\": 1.7341709\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n    \"max\": 1.78346546804,\n    \"mean\": 1.7498244660399997,\n    \"median\": 1.7440130560399998,\n    \"message\": \"Simplify README title\\n\",\n    \"min\": 1.73370229204,\n    \"stddev\": 0.019431245965050054,\n    \"system\": 0.06446849,\n    \"time\": 1.7468297310399998,\n    \"user\": 1.7436783649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n    \"max\": 1.78346546804,\n    \"mean\": 1.7498244660399997,\n    \"median\": 1.7440130560399998,\n    \"message\": \"Simplify README title\\n\",\n    \"min\": 1.73370229204,\n    \"stddev\": 0.019431245965050054,\n    \"system\": 0.06446849,\n    \"time\": 1.78346546804,\n    \"user\": 1.7436783649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n    \"max\": 1.78346546804,\n    \"mean\": 1.7498244660399997,\n    \"median\": 1.7440130560399998,\n    \"message\": \"Simplify README title\\n\",\n    \"min\": 1.73370229204,\n    \"stddev\": 0.019431245965050054,\n    \"system\": 0.06446849,\n    \"time\": 1.7411117830399998,\n    \"user\": 1.7436783649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n    \"max\": 1.78346546804,\n    \"mean\": 1.7498244660399997,\n    \"median\": 1.7440130560399998,\n    \"message\": \"Simplify README title\\n\",\n    \"min\": 1.73370229204,\n    \"stddev\": 0.019431245965050054,\n    \"system\": 0.06446849,\n    \"time\": 1.73370229204,\n    \"user\": 1.7436783649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n    \"max\": 1.78346546804,\n    \"mean\": 1.7498244660399997,\n    \"median\": 1.7440130560399998,\n    \"message\": \"Simplify README title\\n\",\n    \"min\": 1.73370229204,\n    \"stddev\": 0.019431245965050054,\n    \"system\": 0.06446849,\n    \"time\": 1.7440130560399998,\n    \"user\": 1.7436783649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n    \"max\": 1.79507545206,\n    \"mean\": 1.77534611106,\n    \"median\": 1.78801427306,\n    \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n    \"min\": 1.73912308706,\n    \"stddev\": 0.024341445238032444,\n    \"system\": 0.06784201,\n    \"time\": 1.76143373606,\n    \"user\": 1.7657405449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n    \"max\": 1.79507545206,\n    \"mean\": 1.77534611106,\n    \"median\": 1.78801427306,\n    \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n    \"min\": 1.73912308706,\n    \"stddev\": 0.024341445238032444,\n    \"system\": 0.06784201,\n    \"time\": 1.79507545206,\n    \"user\": 1.7657405449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n    \"max\": 1.79507545206,\n    \"mean\": 1.77534611106,\n    \"median\": 1.78801427306,\n    \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n    \"min\": 1.73912308706,\n    \"stddev\": 0.024341445238032444,\n    \"system\": 0.06784201,\n    \"time\": 1.78801427306,\n    \"user\": 1.7657405449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n    \"max\": 1.79507545206,\n    \"mean\": 1.77534611106,\n    \"median\": 1.78801427306,\n    \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n    \"min\": 1.73912308706,\n    \"stddev\": 0.024341445238032444,\n    \"system\": 0.06784201,\n    \"time\": 1.7930840070599998,\n    \"user\": 1.7657405449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n    \"max\": 1.79507545206,\n    \"mean\": 1.77534611106,\n    \"median\": 1.78801427306,\n    \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n    \"min\": 1.73912308706,\n    \"stddev\": 0.024341445238032444,\n    \"system\": 0.06784201,\n    \"time\": 1.73912308706,\n    \"user\": 1.7657405449999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n    \"max\": 1.8189877566050001,\n    \"mean\": 1.7599466058050002,\n    \"median\": 1.7444405356050001,\n    \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n    \"min\": 1.7396441826050002,\n    \"stddev\": 0.033337833882278504,\n    \"system\": 0.06701742,\n    \"time\": 1.8189877566050001,\n    \"user\": 1.7502270399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n    \"max\": 1.8189877566050001,\n    \"mean\": 1.7599466058050002,\n    \"median\": 1.7444405356050001,\n    \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n    \"min\": 1.7396441826050002,\n    \"stddev\": 0.033337833882278504,\n    \"system\": 0.06701742,\n    \"time\": 1.7444405356050001,\n    \"user\": 1.7502270399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n    \"max\": 1.8189877566050001,\n    \"mean\": 1.7599466058050002,\n    \"median\": 1.7444405356050001,\n    \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n    \"min\": 1.7396441826050002,\n    \"stddev\": 0.033337833882278504,\n    \"system\": 0.06701742,\n    \"time\": 1.7396441826050002,\n    \"user\": 1.7502270399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n    \"max\": 1.8189877566050001,\n    \"mean\": 1.7599466058050002,\n    \"median\": 1.7444405356050001,\n    \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n    \"min\": 1.7396441826050002,\n    \"stddev\": 0.033337833882278504,\n    \"system\": 0.06701742,\n    \"time\": 1.7526478226050002,\n    \"user\": 1.7502270399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n    \"max\": 1.8189877566050001,\n    \"mean\": 1.7599466058050002,\n    \"median\": 1.7444405356050001,\n    \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n    \"min\": 1.7396441826050002,\n    \"stddev\": 0.033337833882278504,\n    \"system\": 0.06701742,\n    \"time\": 1.7440127316050003,\n    \"user\": 1.7502270399999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n    \"max\": 1.807111046465,\n    \"mean\": 1.749977554265,\n    \"median\": 1.733875897465,\n    \"message\": \"Add test script for #93\\n\",\n    \"min\": 1.727958317465,\n    \"stddev\": 0.032717061954397074,\n    \"system\": 0.06583560499999999,\n    \"time\": 1.807111046465,\n    \"user\": 1.7431830199999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n    \"max\": 1.807111046465,\n    \"mean\": 1.749977554265,\n    \"median\": 1.733875897465,\n    \"message\": \"Add test script for #93\\n\",\n    \"min\": 1.727958317465,\n    \"stddev\": 0.032717061954397074,\n    \"system\": 0.06583560499999999,\n    \"time\": 1.727958317465,\n    \"user\": 1.7431830199999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n    \"max\": 1.807111046465,\n    \"mean\": 1.749977554265,\n    \"median\": 1.733875897465,\n    \"message\": \"Add test script for #93\\n\",\n    \"min\": 1.727958317465,\n    \"stddev\": 0.032717061954397074,\n    \"system\": 0.06583560499999999,\n    \"time\": 1.747273425465,\n    \"user\": 1.7431830199999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n    \"max\": 1.807111046465,\n    \"mean\": 1.749977554265,\n    \"median\": 1.733875897465,\n    \"message\": \"Add test script for #93\\n\",\n    \"min\": 1.727958317465,\n    \"stddev\": 0.032717061954397074,\n    \"system\": 0.06583560499999999,\n    \"time\": 1.733875897465,\n    \"user\": 1.7431830199999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n    \"max\": 1.807111046465,\n    \"mean\": 1.749977554265,\n    \"median\": 1.733875897465,\n    \"message\": \"Add test script for #93\\n\",\n    \"min\": 1.727958317465,\n    \"stddev\": 0.032717061954397074,\n    \"system\": 0.06583560499999999,\n    \"time\": 1.733669084465,\n    \"user\": 1.7431830199999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n    \"max\": 1.82447647995,\n    \"mean\": 1.7803297211499998,\n    \"median\": 1.7806307179499998,\n    \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n    \"min\": 1.7397373699499998,\n    \"stddev\": 0.030265335050387025,\n    \"system\": 0.06610395499999999,\n    \"time\": 1.7729355729499998,\n    \"user\": 1.772994965\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n    \"max\": 1.82447647995,\n    \"mean\": 1.7803297211499998,\n    \"median\": 1.7806307179499998,\n    \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n    \"min\": 1.7397373699499998,\n    \"stddev\": 0.030265335050387025,\n    \"system\": 0.06610395499999999,\n    \"time\": 1.82447647995,\n    \"user\": 1.772994965\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n    \"max\": 1.82447647995,\n    \"mean\": 1.7803297211499998,\n    \"median\": 1.7806307179499998,\n    \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n    \"min\": 1.7397373699499998,\n    \"stddev\": 0.030265335050387025,\n    \"system\": 0.06610395499999999,\n    \"time\": 1.7806307179499998,\n    \"user\": 1.772994965\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n    \"max\": 1.82447647995,\n    \"mean\": 1.7803297211499998,\n    \"median\": 1.7806307179499998,\n    \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n    \"min\": 1.7397373699499998,\n    \"stddev\": 0.030265335050387025,\n    \"system\": 0.06610395499999999,\n    \"time\": 1.7838684649499998,\n    \"user\": 1.772994965\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n    \"max\": 1.82447647995,\n    \"mean\": 1.7803297211499998,\n    \"median\": 1.7806307179499998,\n    \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n    \"min\": 1.7397373699499998,\n    \"stddev\": 0.030265335050387025,\n    \"system\": 0.06610395499999999,\n    \"time\": 1.7397373699499998,\n    \"user\": 1.772994965\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n    \"max\": 1.7724654352050002,\n    \"mean\": 1.752796854405,\n    \"median\": 1.748965909205,\n    \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n    \"min\": 1.7396820292050001,\n    \"stddev\": 0.01261198114884924,\n    \"system\": 0.065383025,\n    \"time\": 1.748965909205,\n    \"user\": 1.745210305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n    \"max\": 1.7724654352050002,\n    \"mean\": 1.752796854405,\n    \"median\": 1.748965909205,\n    \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n    \"min\": 1.7396820292050001,\n    \"stddev\": 0.01261198114884924,\n    \"system\": 0.065383025,\n    \"time\": 1.7724654352050002,\n    \"user\": 1.745210305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n    \"max\": 1.7724654352050002,\n    \"mean\": 1.752796854405,\n    \"median\": 1.748965909205,\n    \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n    \"min\": 1.7396820292050001,\n    \"stddev\": 0.01261198114884924,\n    \"system\": 0.065383025,\n    \"time\": 1.7568674642050002,\n    \"user\": 1.745210305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n    \"max\": 1.7724654352050002,\n    \"mean\": 1.752796854405,\n    \"median\": 1.748965909205,\n    \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n    \"min\": 1.7396820292050001,\n    \"stddev\": 0.01261198114884924,\n    \"system\": 0.065383025,\n    \"time\": 1.7460034342050001,\n    \"user\": 1.745210305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n    \"max\": 1.7724654352050002,\n    \"mean\": 1.752796854405,\n    \"median\": 1.748965909205,\n    \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n    \"min\": 1.7396820292050001,\n    \"stddev\": 0.01261198114884924,\n    \"system\": 0.065383025,\n    \"time\": 1.7396820292050001,\n    \"user\": 1.745210305\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n    \"max\": 1.74129294465,\n    \"mean\": 1.7384661490500002,\n    \"median\": 1.73848461965,\n    \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n    \"min\": 1.73536997165,\n    \"stddev\": 0.0026622768449931136,\n    \"system\": 0.06494129500000001,\n    \"time\": 1.74090914265,\n    \"user\": 1.73163197\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n    \"max\": 1.74129294465,\n    \"mean\": 1.7384661490500002,\n    \"median\": 1.73848461965,\n    \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n    \"min\": 1.73536997165,\n    \"stddev\": 0.0026622768449931136,\n    \"system\": 0.06494129500000001,\n    \"time\": 1.73848461965,\n    \"user\": 1.73163197\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n    \"max\": 1.74129294465,\n    \"mean\": 1.7384661490500002,\n    \"median\": 1.73848461965,\n    \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n    \"min\": 1.73536997165,\n    \"stddev\": 0.0026622768449931136,\n    \"system\": 0.06494129500000001,\n    \"time\": 1.73536997165,\n    \"user\": 1.73163197\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n    \"max\": 1.74129294465,\n    \"mean\": 1.7384661490500002,\n    \"median\": 1.73848461965,\n    \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n    \"min\": 1.73536997165,\n    \"stddev\": 0.0026622768449931136,\n    \"system\": 0.06494129500000001,\n    \"time\": 1.73627406665,\n    \"user\": 1.73163197\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n    \"max\": 1.74129294465,\n    \"mean\": 1.7384661490500002,\n    \"median\": 1.73848461965,\n    \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n    \"min\": 1.73536997165,\n    \"stddev\": 0.0026622768449931136,\n    \"system\": 0.06494129500000001,\n    \"time\": 1.74129294465,\n    \"user\": 1.73163197\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n    \"max\": 1.78541630298,\n    \"mean\": 1.7542504703800001,\n    \"median\": 1.7516690649800002,\n    \"message\": \"Add Archlinux installation instructions\\n\",\n    \"min\": 1.73482217198,\n    \"stddev\": 0.021237342140144735,\n    \"system\": 0.06564145,\n    \"time\": 1.78541630298,\n    \"user\": 1.74720257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n    \"max\": 1.78541630298,\n    \"mean\": 1.7542504703800001,\n    \"median\": 1.7516690649800002,\n    \"message\": \"Add Archlinux installation instructions\\n\",\n    \"min\": 1.73482217198,\n    \"stddev\": 0.021237342140144735,\n    \"system\": 0.06564145,\n    \"time\": 1.7639333649800002,\n    \"user\": 1.74720257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n    \"max\": 1.78541630298,\n    \"mean\": 1.7542504703800001,\n    \"median\": 1.7516690649800002,\n    \"message\": \"Add Archlinux installation instructions\\n\",\n    \"min\": 1.73482217198,\n    \"stddev\": 0.021237342140144735,\n    \"system\": 0.06564145,\n    \"time\": 1.73482217198,\n    \"user\": 1.74720257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n    \"max\": 1.78541630298,\n    \"mean\": 1.7542504703800001,\n    \"median\": 1.7516690649800002,\n    \"message\": \"Add Archlinux installation instructions\\n\",\n    \"min\": 1.73482217198,\n    \"stddev\": 0.021237342140144735,\n    \"system\": 0.06564145,\n    \"time\": 1.7354114469800002,\n    \"user\": 1.74720257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n    \"max\": 1.78541630298,\n    \"mean\": 1.7542504703800001,\n    \"median\": 1.7516690649800002,\n    \"message\": \"Add Archlinux installation instructions\\n\",\n    \"min\": 1.73482217198,\n    \"stddev\": 0.021237342140144735,\n    \"system\": 0.06564145,\n    \"time\": 1.7516690649800002,\n    \"user\": 1.74720257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n    \"max\": 1.8105418114549998,\n    \"mean\": 1.761891984655,\n    \"median\": 1.756427933455,\n    \"message\": \"Add Gitter badge\\n\",\n    \"min\": 1.731991894455,\n    \"stddev\": 0.03281350915294803,\n    \"system\": 0.067055665,\n    \"time\": 1.8105418114549998,\n    \"user\": 1.7526797250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n    \"max\": 1.8105418114549998,\n    \"mean\": 1.761891984655,\n    \"median\": 1.756427933455,\n    \"message\": \"Add Gitter badge\\n\",\n    \"min\": 1.731991894455,\n    \"stddev\": 0.03281350915294803,\n    \"system\": 0.067055665,\n    \"time\": 1.776789498455,\n    \"user\": 1.7526797250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n    \"max\": 1.8105418114549998,\n    \"mean\": 1.761891984655,\n    \"median\": 1.756427933455,\n    \"message\": \"Add Gitter badge\\n\",\n    \"min\": 1.731991894455,\n    \"stddev\": 0.03281350915294803,\n    \"system\": 0.067055665,\n    \"time\": 1.731991894455,\n    \"user\": 1.7526797250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n    \"max\": 1.8105418114549998,\n    \"mean\": 1.761891984655,\n    \"median\": 1.756427933455,\n    \"message\": \"Add Gitter badge\\n\",\n    \"min\": 1.731991894455,\n    \"stddev\": 0.03281350915294803,\n    \"system\": 0.067055665,\n    \"time\": 1.733708785455,\n    \"user\": 1.7526797250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n    \"max\": 1.8105418114549998,\n    \"mean\": 1.761891984655,\n    \"median\": 1.756427933455,\n    \"message\": \"Add Gitter badge\\n\",\n    \"min\": 1.731991894455,\n    \"stddev\": 0.03281350915294803,\n    \"system\": 0.067055665,\n    \"time\": 1.756427933455,\n    \"user\": 1.7526797250000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n    \"max\": 1.781338758385,\n    \"mean\": 1.7585527807850003,\n    \"median\": 1.761574628385,\n    \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n    \"min\": 1.7358546603850002,\n    \"stddev\": 0.020248035373183575,\n    \"system\": 0.05670252,\n    \"time\": 1.7397996783850003,\n    \"user\": 1.7555504999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n    \"max\": 1.781338758385,\n    \"mean\": 1.7585527807850003,\n    \"median\": 1.761574628385,\n    \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n    \"min\": 1.7358546603850002,\n    \"stddev\": 0.020248035373183575,\n    \"system\": 0.05670252,\n    \"time\": 1.761574628385,\n    \"user\": 1.7555504999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n    \"max\": 1.781338758385,\n    \"mean\": 1.7585527807850003,\n    \"median\": 1.761574628385,\n    \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n    \"min\": 1.7358546603850002,\n    \"stddev\": 0.020248035373183575,\n    \"system\": 0.05670252,\n    \"time\": 1.774196178385,\n    \"user\": 1.7555504999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n    \"max\": 1.781338758385,\n    \"mean\": 1.7585527807850003,\n    \"median\": 1.761574628385,\n    \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n    \"min\": 1.7358546603850002,\n    \"stddev\": 0.020248035373183575,\n    \"system\": 0.05670252,\n    \"time\": 1.781338758385,\n    \"user\": 1.7555504999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n    \"max\": 1.781338758385,\n    \"mean\": 1.7585527807850003,\n    \"median\": 1.761574628385,\n    \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n    \"min\": 1.7358546603850002,\n    \"stddev\": 0.020248035373183575,\n    \"system\": 0.05670252,\n    \"time\": 1.7358546603850002,\n    \"user\": 1.7555504999999996\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n    \"max\": 1.78592160629,\n    \"mean\": 1.7483632726900002,\n    \"median\": 1.7382024182900002,\n    \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n    \"min\": 1.7326807292900002,\n    \"stddev\": 0.022369706507801967,\n    \"system\": 0.053887725,\n    \"time\": 1.78592160629,\n    \"user\": 1.7480655549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n    \"max\": 1.78592160629,\n    \"mean\": 1.7483632726900002,\n    \"median\": 1.7382024182900002,\n    \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n    \"min\": 1.7326807292900002,\n    \"stddev\": 0.022369706507801967,\n    \"system\": 0.053887725,\n    \"time\": 1.7518112242900001,\n    \"user\": 1.7480655549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n    \"max\": 1.78592160629,\n    \"mean\": 1.7483632726900002,\n    \"median\": 1.7382024182900002,\n    \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n    \"min\": 1.7326807292900002,\n    \"stddev\": 0.022369706507801967,\n    \"system\": 0.053887725,\n    \"time\": 1.73320038529,\n    \"user\": 1.7480655549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n    \"max\": 1.78592160629,\n    \"mean\": 1.7483632726900002,\n    \"median\": 1.7382024182900002,\n    \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n    \"min\": 1.7326807292900002,\n    \"stddev\": 0.022369706507801967,\n    \"system\": 0.053887725,\n    \"time\": 1.7382024182900002,\n    \"user\": 1.7480655549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n    \"max\": 1.78592160629,\n    \"mean\": 1.7483632726900002,\n    \"median\": 1.7382024182900002,\n    \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n    \"min\": 1.7326807292900002,\n    \"stddev\": 0.022369706507801967,\n    \"system\": 0.053887725,\n    \"time\": 1.7326807292900002,\n    \"user\": 1.7480655549999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n    \"max\": 1.88366411861,\n    \"mean\": 1.8051976622099999,\n    \"median\": 1.7908447006100001,\n    \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.77231446761,\n    \"stddev\": 0.04580286019441076,\n    \"system\": 0.07409187999999998,\n    \"time\": 1.80474241661,\n    \"user\": 1.7913832150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n    \"max\": 1.88366411861,\n    \"mean\": 1.8051976622099999,\n    \"median\": 1.7908447006100001,\n    \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.77231446761,\n    \"stddev\": 0.04580286019441076,\n    \"system\": 0.07409187999999998,\n    \"time\": 1.88366411861,\n    \"user\": 1.7913832150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n    \"max\": 1.88366411861,\n    \"mean\": 1.8051976622099999,\n    \"median\": 1.7908447006100001,\n    \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.77231446761,\n    \"stddev\": 0.04580286019441076,\n    \"system\": 0.07409187999999998,\n    \"time\": 1.77442260761,\n    \"user\": 1.7913832150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n    \"max\": 1.88366411861,\n    \"mean\": 1.8051976622099999,\n    \"median\": 1.7908447006100001,\n    \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.77231446761,\n    \"stddev\": 0.04580286019441076,\n    \"system\": 0.07409187999999998,\n    \"time\": 1.77231446761,\n    \"user\": 1.7913832150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n    \"max\": 1.88366411861,\n    \"mean\": 1.8051976622099999,\n    \"median\": 1.7908447006100001,\n    \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.77231446761,\n    \"stddev\": 0.04580286019441076,\n    \"system\": 0.07409187999999998,\n    \"time\": 1.7908447006100001,\n    \"user\": 1.7913832150000002\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n    \"max\": 1.7693582972900002,\n    \"mean\": 1.7393603072900004,\n    \"median\": 1.7315381042900002,\n    \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n    \"min\": 1.7230221242900001,\n    \"stddev\": 0.019709785338008462,\n    \"system\": 0.054321049999999996,\n    \"time\": 1.7693582972900002,\n    \"user\": 1.738519325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n    \"max\": 1.7693582972900002,\n    \"mean\": 1.7393603072900004,\n    \"median\": 1.7315381042900002,\n    \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n    \"min\": 1.7230221242900001,\n    \"stddev\": 0.019709785338008462,\n    \"system\": 0.054321049999999996,\n    \"time\": 1.7240144932900001,\n    \"user\": 1.738519325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n    \"max\": 1.7693582972900002,\n    \"mean\": 1.7393603072900004,\n    \"median\": 1.7315381042900002,\n    \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n    \"min\": 1.7230221242900001,\n    \"stddev\": 0.019709785338008462,\n    \"system\": 0.054321049999999996,\n    \"time\": 1.7315381042900002,\n    \"user\": 1.738519325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n    \"max\": 1.7693582972900002,\n    \"mean\": 1.7393603072900004,\n    \"median\": 1.7315381042900002,\n    \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n    \"min\": 1.7230221242900001,\n    \"stddev\": 0.019709785338008462,\n    \"system\": 0.054321049999999996,\n    \"time\": 1.74886851729,\n    \"user\": 1.738519325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n    \"max\": 1.7693582972900002,\n    \"mean\": 1.7393603072900004,\n    \"median\": 1.7315381042900002,\n    \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n    \"min\": 1.7230221242900001,\n    \"stddev\": 0.019709785338008462,\n    \"system\": 0.054321049999999996,\n    \"time\": 1.7230221242900001,\n    \"user\": 1.738519325\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n    \"max\": 1.765705451565,\n    \"mean\": 1.7468450071650001,\n    \"median\": 1.7394878845650001,\n    \"message\": \"Build release version in Makefile\\n\",\n    \"min\": 1.7266577945650001,\n    \"stddev\": 0.01690419338411752,\n    \"system\": 0.05379511,\n    \"time\": 1.763185595565,\n    \"user\": 1.7467932050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n    \"max\": 1.765705451565,\n    \"mean\": 1.7468450071650001,\n    \"median\": 1.7394878845650001,\n    \"message\": \"Build release version in Makefile\\n\",\n    \"min\": 1.7266577945650001,\n    \"stddev\": 0.01690419338411752,\n    \"system\": 0.05379511,\n    \"time\": 1.765705451565,\n    \"user\": 1.7467932050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n    \"max\": 1.765705451565,\n    \"mean\": 1.7468450071650001,\n    \"median\": 1.7394878845650001,\n    \"message\": \"Build release version in Makefile\\n\",\n    \"min\": 1.7266577945650001,\n    \"stddev\": 0.01690419338411752,\n    \"system\": 0.05379511,\n    \"time\": 1.7266577945650001,\n    \"user\": 1.7467932050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n    \"max\": 1.765705451565,\n    \"mean\": 1.7468450071650001,\n    \"median\": 1.7394878845650001,\n    \"message\": \"Build release version in Makefile\\n\",\n    \"min\": 1.7266577945650001,\n    \"stddev\": 0.01690419338411752,\n    \"system\": 0.05379511,\n    \"time\": 1.739188309565,\n    \"user\": 1.7467932050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n    \"max\": 1.765705451565,\n    \"mean\": 1.7468450071650001,\n    \"median\": 1.7394878845650001,\n    \"message\": \"Build release version in Makefile\\n\",\n    \"min\": 1.7266577945650001,\n    \"stddev\": 0.01690419338411752,\n    \"system\": 0.05379511,\n    \"time\": 1.7394878845650001,\n    \"user\": 1.7467932050000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n    \"max\": 1.830103265705,\n    \"mean\": 1.7974901237049998,\n    \"median\": 1.7990933757049998,\n    \"message\": \"Remove extra space characters\\n\",\n    \"min\": 1.7683434277049999,\n    \"stddev\": 0.024682147969833673,\n    \"system\": 0.07268667999999998,\n    \"time\": 1.810896815705,\n    \"user\": 1.7847512399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n    \"max\": 1.830103265705,\n    \"mean\": 1.7974901237049998,\n    \"median\": 1.7990933757049998,\n    \"message\": \"Remove extra space characters\\n\",\n    \"min\": 1.7683434277049999,\n    \"stddev\": 0.024682147969833673,\n    \"system\": 0.07268667999999998,\n    \"time\": 1.830103265705,\n    \"user\": 1.7847512399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n    \"max\": 1.830103265705,\n    \"mean\": 1.7974901237049998,\n    \"median\": 1.7990933757049998,\n    \"message\": \"Remove extra space characters\\n\",\n    \"min\": 1.7683434277049999,\n    \"stddev\": 0.024682147969833673,\n    \"system\": 0.07268667999999998,\n    \"time\": 1.7683434277049999,\n    \"user\": 1.7847512399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n    \"max\": 1.830103265705,\n    \"mean\": 1.7974901237049998,\n    \"median\": 1.7990933757049998,\n    \"message\": \"Remove extra space characters\\n\",\n    \"min\": 1.7683434277049999,\n    \"stddev\": 0.024682147969833673,\n    \"system\": 0.07268667999999998,\n    \"time\": 1.779013733705,\n    \"user\": 1.7847512399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n    \"max\": 1.830103265705,\n    \"mean\": 1.7974901237049998,\n    \"median\": 1.7990933757049998,\n    \"message\": \"Remove extra space characters\\n\",\n    \"min\": 1.7683434277049999,\n    \"stddev\": 0.024682147969833673,\n    \"system\": 0.07268667999999998,\n    \"time\": 1.7990933757049998,\n    \"user\": 1.7847512399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n    \"max\": 1.8903376101300002,\n    \"mean\": 1.80079330613,\n    \"median\": 1.77637100213,\n    \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n    \"min\": 1.7697518711300002,\n    \"stddev\": 0.0507921957524227,\n    \"system\": 0.072303735,\n    \"time\": 1.8903376101300002,\n    \"user\": 1.7879836550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n    \"max\": 1.8903376101300002,\n    \"mean\": 1.80079330613,\n    \"median\": 1.77637100213,\n    \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n    \"min\": 1.7697518711300002,\n    \"stddev\": 0.0507921957524227,\n    \"system\": 0.072303735,\n    \"time\": 1.77637100213,\n    \"user\": 1.7879836550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n    \"max\": 1.8903376101300002,\n    \"mean\": 1.80079330613,\n    \"median\": 1.77637100213,\n    \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n    \"min\": 1.7697518711300002,\n    \"stddev\": 0.0507921957524227,\n    \"system\": 0.072303735,\n    \"time\": 1.7697518711300002,\n    \"user\": 1.7879836550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n    \"max\": 1.8903376101300002,\n    \"mean\": 1.80079330613,\n    \"median\": 1.77637100213,\n    \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n    \"min\": 1.7697518711300002,\n    \"stddev\": 0.0507921957524227,\n    \"system\": 0.072303735,\n    \"time\": 1.79270970113,\n    \"user\": 1.7879836550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n    \"max\": 1.8903376101300002,\n    \"mean\": 1.80079330613,\n    \"median\": 1.77637100213,\n    \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n    \"min\": 1.7697518711300002,\n    \"stddev\": 0.0507921957524227,\n    \"system\": 0.072303735,\n    \"time\": 1.77479634613,\n    \"user\": 1.7879836550000001\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n    \"max\": 1.8264574080299998,\n    \"mean\": 1.7871120938299998,\n    \"median\": 1.77992174103,\n    \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.7670551830299999,\n    \"stddev\": 0.02335444267185184,\n    \"system\": 0.059764384999999996,\n    \"time\": 1.78836046403,\n    \"user\": 1.7808466649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n    \"max\": 1.8264574080299998,\n    \"mean\": 1.7871120938299998,\n    \"median\": 1.77992174103,\n    \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.7670551830299999,\n    \"stddev\": 0.02335444267185184,\n    \"system\": 0.059764384999999996,\n    \"time\": 1.8264574080299998,\n    \"user\": 1.7808466649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n    \"max\": 1.8264574080299998,\n    \"mean\": 1.7871120938299998,\n    \"median\": 1.77992174103,\n    \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.7670551830299999,\n    \"stddev\": 0.02335444267185184,\n    \"system\": 0.059764384999999996,\n    \"time\": 1.7670551830299999,\n    \"user\": 1.7808466649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n    \"max\": 1.8264574080299998,\n    \"mean\": 1.7871120938299998,\n    \"median\": 1.77992174103,\n    \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.7670551830299999,\n    \"stddev\": 0.02335444267185184,\n    \"system\": 0.059764384999999996,\n    \"time\": 1.77992174103,\n    \"user\": 1.7808466649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n    \"max\": 1.8264574080299998,\n    \"mean\": 1.7871120938299998,\n    \"median\": 1.77992174103,\n    \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n    \"min\": 1.7670551830299999,\n    \"stddev\": 0.02335444267185184,\n    \"system\": 0.059764384999999996,\n    \"time\": 1.77376567303,\n    \"user\": 1.7808466649999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n    \"max\": 1.75845217594,\n    \"mean\": 1.7413905167400003,\n    \"median\": 1.7374429079400002,\n    \"message\": \"add paging mode option\\n\",\n    \"min\": 1.7315199519400002,\n    \"stddev\": 0.010349256164918346,\n    \"system\": 0.055303635,\n    \"time\": 1.7366819929400001,\n    \"user\": 1.74028961\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n    \"max\": 1.75845217594,\n    \"mean\": 1.7413905167400003,\n    \"median\": 1.7374429079400002,\n    \"message\": \"add paging mode option\\n\",\n    \"min\": 1.7315199519400002,\n    \"stddev\": 0.010349256164918346,\n    \"system\": 0.055303635,\n    \"time\": 1.75845217594,\n    \"user\": 1.74028961\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n    \"max\": 1.75845217594,\n    \"mean\": 1.7413905167400003,\n    \"median\": 1.7374429079400002,\n    \"message\": \"add paging mode option\\n\",\n    \"min\": 1.7315199519400002,\n    \"stddev\": 0.010349256164918346,\n    \"system\": 0.055303635,\n    \"time\": 1.7374429079400002,\n    \"user\": 1.74028961\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n    \"max\": 1.75845217594,\n    \"mean\": 1.7413905167400003,\n    \"median\": 1.7374429079400002,\n    \"message\": \"add paging mode option\\n\",\n    \"min\": 1.7315199519400002,\n    \"stddev\": 0.010349256164918346,\n    \"system\": 0.055303635,\n    \"time\": 1.7428555549400002,\n    \"user\": 1.74028961\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n    \"max\": 1.75845217594,\n    \"mean\": 1.7413905167400003,\n    \"median\": 1.7374429079400002,\n    \"message\": \"add paging mode option\\n\",\n    \"min\": 1.7315199519400002,\n    \"stddev\": 0.010349256164918346,\n    \"system\": 0.055303635,\n    \"time\": 1.7315199519400002,\n    \"user\": 1.74028961\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n    \"max\": 1.8376985693799999,\n    \"mean\": 1.80868724238,\n    \"median\": 1.8230524713799998,\n    \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n    \"min\": 1.75458930638,\n    \"stddev\": 0.03517112659295339,\n    \"system\": 0.06136492,\n    \"time\": 1.8230524713799998,\n    \"user\": 1.7983985099999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n    \"max\": 1.8376985693799999,\n    \"mean\": 1.80868724238,\n    \"median\": 1.8230524713799998,\n    \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n    \"min\": 1.75458930638,\n    \"stddev\": 0.03517112659295339,\n    \"system\": 0.06136492,\n    \"time\": 1.75458930638,\n    \"user\": 1.7983985099999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n    \"max\": 1.8376985693799999,\n    \"mean\": 1.80868724238,\n    \"median\": 1.8230524713799998,\n    \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n    \"min\": 1.75458930638,\n    \"stddev\": 0.03517112659295339,\n    \"system\": 0.06136492,\n    \"time\": 1.83544834138,\n    \"user\": 1.7983985099999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n    \"max\": 1.8376985693799999,\n    \"mean\": 1.80868724238,\n    \"median\": 1.8230524713799998,\n    \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n    \"min\": 1.75458930638,\n    \"stddev\": 0.03517112659295339,\n    \"system\": 0.06136492,\n    \"time\": 1.79264752338,\n    \"user\": 1.7983985099999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n    \"max\": 1.8376985693799999,\n    \"mean\": 1.80868724238,\n    \"median\": 1.8230524713799998,\n    \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n    \"min\": 1.75458930638,\n    \"stddev\": 0.03517112659295339,\n    \"system\": 0.06136492,\n    \"time\": 1.8376985693799999,\n    \"user\": 1.7983985099999997\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n    \"max\": 2.042758140655,\n    \"mean\": 1.8529119274549999,\n    \"median\": 1.761144485655,\n    \"message\": \"Demand valid command line value\\n\",\n    \"min\": 1.719908376655,\n    \"stddev\": 0.14995691335349326,\n    \"system\": 0.064689725,\n    \"time\": 1.761144485655,\n    \"user\": 1.8259569949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n    \"max\": 2.042758140655,\n    \"mean\": 1.8529119274549999,\n    \"median\": 1.761144485655,\n    \"message\": \"Demand valid command line value\\n\",\n    \"min\": 1.719908376655,\n    \"stddev\": 0.14995691335349326,\n    \"system\": 0.064689725,\n    \"time\": 1.719908376655,\n    \"user\": 1.8259569949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n    \"max\": 2.042758140655,\n    \"mean\": 1.8529119274549999,\n    \"median\": 1.761144485655,\n    \"message\": \"Demand valid command line value\\n\",\n    \"min\": 1.719908376655,\n    \"stddev\": 0.14995691335349326,\n    \"system\": 0.064689725,\n    \"time\": 1.986962568655,\n    \"user\": 1.8259569949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n    \"max\": 2.042758140655,\n    \"mean\": 1.8529119274549999,\n    \"median\": 1.761144485655,\n    \"message\": \"Demand valid command line value\\n\",\n    \"min\": 1.719908376655,\n    \"stddev\": 0.14995691335349326,\n    \"system\": 0.064689725,\n    \"time\": 1.753786065655,\n    \"user\": 1.8259569949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n    \"max\": 2.042758140655,\n    \"mean\": 1.8529119274549999,\n    \"median\": 1.761144485655,\n    \"message\": \"Demand valid command line value\\n\",\n    \"min\": 1.719908376655,\n    \"stddev\": 0.14995691335349326,\n    \"system\": 0.064689725,\n    \"time\": 2.042758140655,\n    \"user\": 1.8259569949999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n    \"max\": 1.78045797481,\n    \"mean\": 1.74773789401,\n    \"median\": 1.74113776181,\n    \"message\": \"Edit help text\\n\",\n    \"min\": 1.72281283581,\n    \"stddev\": 0.02651668314998145,\n    \"system\": 0.0553663,\n    \"time\": 1.78045797481,\n    \"user\": 1.74657257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n    \"max\": 1.78045797481,\n    \"mean\": 1.74773789401,\n    \"median\": 1.74113776181,\n    \"message\": \"Edit help text\\n\",\n    \"min\": 1.72281283581,\n    \"stddev\": 0.02651668314998145,\n    \"system\": 0.0553663,\n    \"time\": 1.77033958781,\n    \"user\": 1.74657257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n    \"max\": 1.78045797481,\n    \"mean\": 1.74773789401,\n    \"median\": 1.74113776181,\n    \"message\": \"Edit help text\\n\",\n    \"min\": 1.72281283581,\n    \"stddev\": 0.02651668314998145,\n    \"system\": 0.0553663,\n    \"time\": 1.74113776181,\n    \"user\": 1.74657257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n    \"max\": 1.78045797481,\n    \"mean\": 1.74773789401,\n    \"median\": 1.74113776181,\n    \"message\": \"Edit help text\\n\",\n    \"min\": 1.72281283581,\n    \"stddev\": 0.02651668314998145,\n    \"system\": 0.0553663,\n    \"time\": 1.7239413098099998,\n    \"user\": 1.74657257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n    \"max\": 1.78045797481,\n    \"mean\": 1.74773789401,\n    \"median\": 1.74113776181,\n    \"message\": \"Edit help text\\n\",\n    \"min\": 1.72281283581,\n    \"stddev\": 0.02651668314998145,\n    \"system\": 0.0553663,\n    \"time\": 1.72281283581,\n    \"user\": 1.74657257\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n    \"max\": 1.762202821665,\n    \"mean\": 1.7416039896650002,\n    \"median\": 1.7388914056650002,\n    \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n    \"min\": 1.7180258076650001,\n    \"stddev\": 0.01667367613971032,\n    \"system\": 0.05429662999999999,\n    \"time\": 1.7518067966650002,\n    \"user\": 1.740105195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n    \"max\": 1.762202821665,\n    \"mean\": 1.7416039896650002,\n    \"median\": 1.7388914056650002,\n    \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n    \"min\": 1.7180258076650001,\n    \"stddev\": 0.01667367613971032,\n    \"system\": 0.05429662999999999,\n    \"time\": 1.762202821665,\n    \"user\": 1.740105195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n    \"max\": 1.762202821665,\n    \"mean\": 1.7416039896650002,\n    \"median\": 1.7388914056650002,\n    \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n    \"min\": 1.7180258076650001,\n    \"stddev\": 0.01667367613971032,\n    \"system\": 0.05429662999999999,\n    \"time\": 1.7180258076650001,\n    \"user\": 1.740105195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n    \"max\": 1.762202821665,\n    \"mean\": 1.7416039896650002,\n    \"median\": 1.7388914056650002,\n    \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n    \"min\": 1.7180258076650001,\n    \"stddev\": 0.01667367613971032,\n    \"system\": 0.05429662999999999,\n    \"time\": 1.737093116665,\n    \"user\": 1.740105195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n    \"max\": 1.762202821665,\n    \"mean\": 1.7416039896650002,\n    \"median\": 1.7388914056650002,\n    \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n    \"min\": 1.7180258076650001,\n    \"stddev\": 0.01667367613971032,\n    \"system\": 0.05429662999999999,\n    \"time\": 1.7388914056650002,\n    \"user\": 1.740105195\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n    \"max\": 2.1697659624849996,\n    \"mean\": 1.9452508282849998,\n    \"median\": 1.9053711374850002,\n    \"message\": \"Change function name\\n\",\n    \"min\": 1.7763392684850001,\n    \"stddev\": 0.16734989462514932,\n    \"system\": 0.0696879,\n    \"time\": 1.8121455664850001,\n    \"user\": 1.937568515\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n    \"max\": 2.1697659624849996,\n    \"mean\": 1.9452508282849998,\n    \"median\": 1.9053711374850002,\n    \"message\": \"Change function name\\n\",\n    \"min\": 1.7763392684850001,\n    \"stddev\": 0.16734989462514932,\n    \"system\": 0.0696879,\n    \"time\": 2.1697659624849996,\n    \"user\": 1.937568515\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n    \"max\": 2.1697659624849996,\n    \"mean\": 1.9452508282849998,\n    \"median\": 1.9053711374850002,\n    \"message\": \"Change function name\\n\",\n    \"min\": 1.7763392684850001,\n    \"stddev\": 0.16734989462514932,\n    \"system\": 0.0696879,\n    \"time\": 2.062632206485,\n    \"user\": 1.937568515\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n    \"max\": 2.1697659624849996,\n    \"mean\": 1.9452508282849998,\n    \"median\": 1.9053711374850002,\n    \"message\": \"Change function name\\n\",\n    \"min\": 1.7763392684850001,\n    \"stddev\": 0.16734989462514932,\n    \"system\": 0.0696879,\n    \"time\": 1.7763392684850001,\n    \"user\": 1.937568515\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n    \"max\": 2.1697659624849996,\n    \"mean\": 1.9452508282849998,\n    \"median\": 1.9053711374850002,\n    \"message\": \"Change function name\\n\",\n    \"min\": 1.7763392684850001,\n    \"stddev\": 0.16734989462514932,\n    \"system\": 0.0696879,\n    \"time\": 1.9053711374850002,\n    \"user\": 1.937568515\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n    \"max\": 1.901437887425,\n    \"mean\": 1.8375553192249998,\n    \"median\": 1.843542233425,\n    \"message\": \"Use lowercase characters in color hex codes\\n\",\n    \"min\": 1.795058579425,\n    \"stddev\": 0.04445840270717323,\n    \"system\": 0.06180339,\n    \"time\": 1.7955072994249999,\n    \"user\": 1.82918613\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n    \"max\": 1.901437887425,\n    \"mean\": 1.8375553192249998,\n    \"median\": 1.843542233425,\n    \"message\": \"Use lowercase characters in color hex codes\\n\",\n    \"min\": 1.795058579425,\n    \"stddev\": 0.04445840270717323,\n    \"system\": 0.06180339,\n    \"time\": 1.901437887425,\n    \"user\": 1.82918613\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n    \"max\": 1.901437887425,\n    \"mean\": 1.8375553192249998,\n    \"median\": 1.843542233425,\n    \"message\": \"Use lowercase characters in color hex codes\\n\",\n    \"min\": 1.795058579425,\n    \"stddev\": 0.04445840270717323,\n    \"system\": 0.06180339,\n    \"time\": 1.843542233425,\n    \"user\": 1.82918613\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n    \"max\": 1.901437887425,\n    \"mean\": 1.8375553192249998,\n    \"median\": 1.843542233425,\n    \"message\": \"Use lowercase characters in color hex codes\\n\",\n    \"min\": 1.795058579425,\n    \"stddev\": 0.04445840270717323,\n    \"system\": 0.06180339,\n    \"time\": 1.8522305964249999,\n    \"user\": 1.82918613\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n    \"max\": 1.901437887425,\n    \"mean\": 1.8375553192249998,\n    \"median\": 1.843542233425,\n    \"message\": \"Use lowercase characters in color hex codes\\n\",\n    \"min\": 1.795058579425,\n    \"stddev\": 0.04445840270717323,\n    \"system\": 0.06180339,\n    \"time\": 1.795058579425,\n    \"user\": 1.82918613\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n    \"max\": 1.8471992786350002,\n    \"mean\": 1.765532444835,\n    \"median\": 1.747796594635,\n    \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n    \"min\": 1.731898041635,\n    \"stddev\": 0.046612503646523834,\n    \"system\": 0.05763302499999999,\n    \"time\": 1.731898041635,\n    \"user\": 1.76114125\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n    \"max\": 1.8471992786350002,\n    \"mean\": 1.765532444835,\n    \"median\": 1.747796594635,\n    \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n    \"min\": 1.731898041635,\n    \"stddev\": 0.046612503646523834,\n    \"system\": 0.05763302499999999,\n    \"time\": 1.742746897635,\n    \"user\": 1.76114125\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n    \"max\": 1.8471992786350002,\n    \"mean\": 1.765532444835,\n    \"median\": 1.747796594635,\n    \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n    \"min\": 1.731898041635,\n    \"stddev\": 0.046612503646523834,\n    \"system\": 0.05763302499999999,\n    \"time\": 1.8471992786350002,\n    \"user\": 1.76114125\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n    \"max\": 1.8471992786350002,\n    \"mean\": 1.765532444835,\n    \"median\": 1.747796594635,\n    \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n    \"min\": 1.731898041635,\n    \"stddev\": 0.046612503646523834,\n    \"system\": 0.05763302499999999,\n    \"time\": 1.7580214116350001,\n    \"user\": 1.76114125\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n    \"max\": 1.8471992786350002,\n    \"mean\": 1.765532444835,\n    \"median\": 1.747796594635,\n    \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n    \"min\": 1.731898041635,\n    \"stddev\": 0.046612503646523834,\n    \"system\": 0.05763302499999999,\n    \"time\": 1.747796594635,\n    \"user\": 1.76114125\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n    \"max\": 1.868441498195,\n    \"mean\": 1.759433710795,\n    \"median\": 1.7407650641949999,\n    \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n    \"min\": 1.703264207195,\n    \"stddev\": 0.06400967260182078,\n    \"system\": 0.054517815000000004,\n    \"time\": 1.868441498195,\n    \"user\": 1.7565349449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n    \"max\": 1.868441498195,\n    \"mean\": 1.759433710795,\n    \"median\": 1.7407650641949999,\n    \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n    \"min\": 1.703264207195,\n    \"stddev\": 0.06400967260182078,\n    \"system\": 0.054517815000000004,\n    \"time\": 1.756821996195,\n    \"user\": 1.7565349449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n    \"max\": 1.868441498195,\n    \"mean\": 1.759433710795,\n    \"median\": 1.7407650641949999,\n    \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n    \"min\": 1.703264207195,\n    \"stddev\": 0.06400967260182078,\n    \"system\": 0.054517815000000004,\n    \"time\": 1.7407650641949999,\n    \"user\": 1.7565349449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n    \"max\": 1.868441498195,\n    \"mean\": 1.759433710795,\n    \"median\": 1.7407650641949999,\n    \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n    \"min\": 1.703264207195,\n    \"stddev\": 0.06400967260182078,\n    \"system\": 0.054517815000000004,\n    \"time\": 1.727875788195,\n    \"user\": 1.7565349449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n    \"max\": 1.868441498195,\n    \"mean\": 1.759433710795,\n    \"median\": 1.7407650641949999,\n    \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n    \"min\": 1.703264207195,\n    \"stddev\": 0.06400967260182078,\n    \"system\": 0.054517815000000004,\n    \"time\": 1.703264207195,\n    \"user\": 1.7565349449999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n    \"max\": 1.86750964848,\n    \"mean\": 1.7669502826800003,\n    \"median\": 1.7450286244800002,\n    \"message\": \"Change a function name\\n\",\n    \"min\": 1.73234127048,\n    \"stddev\": 0.05662628748045251,\n    \"system\": 0.05755335500000001,\n    \"time\": 1.73917599348,\n    \"user\": 1.75880148\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n    \"max\": 1.86750964848,\n    \"mean\": 1.7669502826800003,\n    \"median\": 1.7450286244800002,\n    \"message\": \"Change a function name\\n\",\n    \"min\": 1.73234127048,\n    \"stddev\": 0.05662628748045251,\n    \"system\": 0.05755335500000001,\n    \"time\": 1.73234127048,\n    \"user\": 1.75880148\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n    \"max\": 1.86750964848,\n    \"mean\": 1.7669502826800003,\n    \"median\": 1.7450286244800002,\n    \"message\": \"Change a function name\\n\",\n    \"min\": 1.73234127048,\n    \"stddev\": 0.05662628748045251,\n    \"system\": 0.05755335500000001,\n    \"time\": 1.75069587648,\n    \"user\": 1.75880148\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n    \"max\": 1.86750964848,\n    \"mean\": 1.7669502826800003,\n    \"median\": 1.7450286244800002,\n    \"message\": \"Change a function name\\n\",\n    \"min\": 1.73234127048,\n    \"stddev\": 0.05662628748045251,\n    \"system\": 0.05755335500000001,\n    \"time\": 1.7450286244800002,\n    \"user\": 1.75880148\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n    \"max\": 1.86750964848,\n    \"mean\": 1.7669502826800003,\n    \"median\": 1.7450286244800002,\n    \"message\": \"Change a function name\\n\",\n    \"min\": 1.73234127048,\n    \"stddev\": 0.05662628748045251,\n    \"system\": 0.05755335500000001,\n    \"time\": 1.86750964848,\n    \"user\": 1.75880148\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n    \"max\": 1.8462933050850001,\n    \"mean\": 1.7880239548850003,\n    \"median\": 1.776169625085,\n    \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n    \"min\": 1.7594057170850002,\n    \"stddev\": 0.03510996646771722,\n    \"system\": 0.061768449999999996,\n    \"time\": 1.776169625085,\n    \"user\": 1.7790935399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n    \"max\": 1.8462933050850001,\n    \"mean\": 1.7880239548850003,\n    \"median\": 1.776169625085,\n    \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n    \"min\": 1.7594057170850002,\n    \"stddev\": 0.03510996646771722,\n    \"system\": 0.061768449999999996,\n    \"time\": 1.7594057170850002,\n    \"user\": 1.7790935399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n    \"max\": 1.8462933050850001,\n    \"mean\": 1.7880239548850003,\n    \"median\": 1.776169625085,\n    \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n    \"min\": 1.7594057170850002,\n    \"stddev\": 0.03510996646771722,\n    \"system\": 0.061768449999999996,\n    \"time\": 1.764675124085,\n    \"user\": 1.7790935399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n    \"max\": 1.8462933050850001,\n    \"mean\": 1.7880239548850003,\n    \"median\": 1.776169625085,\n    \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n    \"min\": 1.7594057170850002,\n    \"stddev\": 0.03510996646771722,\n    \"system\": 0.061768449999999996,\n    \"time\": 1.793576003085,\n    \"user\": 1.7790935399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n    \"max\": 1.8462933050850001,\n    \"mean\": 1.7880239548850003,\n    \"median\": 1.776169625085,\n    \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n    \"min\": 1.7594057170850002,\n    \"stddev\": 0.03510996646771722,\n    \"system\": 0.061768449999999996,\n    \"time\": 1.8462933050850001,\n    \"user\": 1.7790935399999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n    \"max\": 1.81875688121,\n    \"mean\": 1.78326044381,\n    \"median\": 1.78003317921,\n    \"message\": \"Update chrononologer visualization\\n\",\n    \"min\": 1.7495763572099998,\n    \"stddev\": 0.032097192539472595,\n    \"system\": 0.059447695,\n    \"time\": 1.81875688121,\n    \"user\": 1.7778600199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n    \"max\": 1.81875688121,\n    \"mean\": 1.78326044381,\n    \"median\": 1.78003317921,\n    \"message\": \"Update chrononologer visualization\\n\",\n    \"min\": 1.7495763572099998,\n    \"stddev\": 0.032097192539472595,\n    \"system\": 0.059447695,\n    \"time\": 1.81325004621,\n    \"user\": 1.7778600199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n    \"max\": 1.81875688121,\n    \"mean\": 1.78326044381,\n    \"median\": 1.78003317921,\n    \"message\": \"Update chrononologer visualization\\n\",\n    \"min\": 1.7495763572099998,\n    \"stddev\": 0.032097192539472595,\n    \"system\": 0.059447695,\n    \"time\": 1.7495763572099998,\n    \"user\": 1.7778600199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n    \"max\": 1.81875688121,\n    \"mean\": 1.78326044381,\n    \"median\": 1.78003317921,\n    \"message\": \"Update chrononologer visualization\\n\",\n    \"min\": 1.7495763572099998,\n    \"stddev\": 0.032097192539472595,\n    \"system\": 0.059447695,\n    \"time\": 1.78003317921,\n    \"user\": 1.7778600199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n    \"max\": 1.81875688121,\n    \"mean\": 1.78326044381,\n    \"median\": 1.78003317921,\n    \"message\": \"Update chrononologer visualization\\n\",\n    \"min\": 1.7495763572099998,\n    \"stddev\": 0.032097192539472595,\n    \"system\": 0.059447695,\n    \"time\": 1.75468575521,\n    \"user\": 1.7778600199999999\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n    \"max\": 1.9134250202050003,\n    \"mean\": 1.8351040842050002,\n    \"median\": 1.811679107205,\n    \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n    \"min\": 1.798018370205,\n    \"stddev\": 0.04898688668953369,\n    \"system\": 0.061963975000000004,\n    \"time\": 1.799911996205,\n    \"user\": 1.8240279649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n    \"max\": 1.9134250202050003,\n    \"mean\": 1.8351040842050002,\n    \"median\": 1.811679107205,\n    \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n    \"min\": 1.798018370205,\n    \"stddev\": 0.04898688668953369,\n    \"system\": 0.061963975000000004,\n    \"time\": 1.811679107205,\n    \"user\": 1.8240279649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n    \"max\": 1.9134250202050003,\n    \"mean\": 1.8351040842050002,\n    \"median\": 1.811679107205,\n    \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n    \"min\": 1.798018370205,\n    \"stddev\": 0.04898688668953369,\n    \"system\": 0.061963975000000004,\n    \"time\": 1.798018370205,\n    \"user\": 1.8240279649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n    \"max\": 1.9134250202050003,\n    \"mean\": 1.8351040842050002,\n    \"median\": 1.811679107205,\n    \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n    \"min\": 1.798018370205,\n    \"stddev\": 0.04898688668953369,\n    \"system\": 0.061963975000000004,\n    \"time\": 1.9134250202050003,\n    \"user\": 1.8240279649999998\n  },\n  {\n    \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n    \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n    \"max\": 1.9134250202050003,\n    \"mean\": 1.8351040842050002,\n    \"median\": 1.811679107205,\n    \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n    \"min\": 1.798018370205,\n    \"stddev\": 0.04898688668953369,\n    \"system\": 0.061963975000000004,\n    \"time\": 1.8524859272050003,\n    \"user\": 1.8240279649999998\n  }\n]"
  },
  {
    "path": "etc/performance/chronologer.yaml",
    "content": "benchmarks_dir: /tmp/chronologer/delta/benchmarks\nbenchmark_runs: 5\nbenchmark_task: \"{executable} < /tmp/chronologer/delta/input.gitdiff > /dev/null\"\nbuild_command: cargo build --release\nbuilt_executable: ./target/release/delta\ncombined_benchmark_file: ./performance/all-benchmarks.json\nexecutables_dir: /tmp/chronologer/delta/executables/\nhtml_output_file: ./performance/index.html\nrevision_range: master\n"
  },
  {
    "path": "etc/performance/data/hyperfine-output.json",
    "content": "{\n  \"results\": [\n    {\n      \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.0057371883800000035,\n      \"stddev\": 0.0028569430915206732,\n      \"median\": 0.004347394580000004,\n      \"user\": 0.0012310550000000004,\n      \"system\": 0.0014688300000000002,\n      \"min\": 0.004024913580000004,\n      \"max\": 0.010748769580000005,\n      \"times\": [\n        0.010748769580000005,\n        0.004347394580000004,\n        0.004132040580000005,\n        0.0054328235800000044,\n        0.004024913580000004\n      ]\n    },\n    {\n      \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.004928191580000004,\n      \"stddev\": 0.0013069371692623559,\n      \"median\": 0.004380580580000005,\n      \"user\": 0.0012592550000000001,\n      \"system\": 0.0017418300000000002,\n      \"min\": 0.004253775580000004,\n      \"max\": 0.007263608580000004,\n      \"times\": [\n        0.007263608580000004,\n        0.004380580580000005,\n        0.004414117580000003,\n        0.004328875580000004,\n        0.004253775580000004\n      ]\n    },\n    {\n      \"command\": \"d4130bad3d9892908e5682659d02924c28182471 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.016599384980000003,\n      \"stddev\": 0.0031270626976687404,\n      \"median\": 0.017068487580000003,\n      \"user\": 0.008667455000000001,\n      \"system\": 0.00429603,\n      \"min\": 0.011686788580000005,\n      \"max\": 0.019922397580000004,\n      \"times\": [\n        0.019922397580000004,\n        0.017068487580000003,\n        0.011686788580000005,\n        0.018402660580000004,\n        0.015916590580000004\n      ]\n    },\n    {\n      \"command\": \"ddf41562143d93f8298dfe36d072a9e86f1d2c40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.013836852580000007,\n      \"stddev\": 0.003981579373107487,\n      \"median\": 0.012240853580000004,\n      \"user\": 0.007531454999999999,\n      \"system\": 0.0029748300000000004,\n      \"min\": 0.010729455580000003,\n      \"max\": 0.020409001580000006,\n      \"times\": [\n        0.020409001580000006,\n        0.014672999580000005,\n        0.011131952580000003,\n        0.010729455580000003,\n        0.012240853580000004\n      ]\n    },\n    {\n      \"command\": \"5ce64e9d06c21e3e845c42a94461b7fe1d9752ae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.015037951980000006,\n      \"stddev\": 0.004901360752262509,\n      \"median\": 0.013123071580000003,\n      \"user\": 0.008029055,\n      \"system\": 0.00351563,\n      \"min\": 0.010133063580000004,\n      \"max\": 0.021640213580000005,\n      \"times\": [\n        0.021640213580000005,\n        0.018664882580000004,\n        0.010133063580000004,\n        0.011628528580000004,\n        0.013123071580000003\n      ]\n    },\n    {\n      \"command\": \"673c73532af9dff46ae4193e02e1b21fad294732 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04998774578000001,\n      \"stddev\": 0.008935499186299984,\n      \"median\": 0.04585304658000001,\n      \"user\": 0.038840855,\n      \"system\": 0.006666829999999999,\n      \"min\": 0.04446882958000001,\n      \"max\": 0.06572369858,\n      \"times\": [\n        0.06572369858,\n        0.04863488758000001,\n        0.04446882958000001,\n        0.045258266580000005,\n        0.04585304658000001\n      ]\n    },\n    {\n      \"command\": \"f2a9c6650ada53d5e809cd0d39b3ba5105ae0420 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04828432558000001,\n      \"stddev\": 0.008341291410098466,\n      \"median\": 0.04661169358000001,\n      \"user\": 0.037783255,\n      \"system\": 0.005815829999999999,\n      \"min\": 0.04254813158000001,\n      \"max\": 0.06272496258,\n      \"times\": [\n        0.06272496258,\n        0.04661169358000001,\n        0.04254813158000001,\n        0.04693079958000001,\n        0.042606040580000004\n      ]\n    },\n    {\n      \"command\": \"0c9c948113df0b5fa64bb901a603880822801e7d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04842148418000001,\n      \"stddev\": 0.009109351967826048,\n      \"median\": 0.047009520580000005,\n      \"user\": 0.037772255,\n      \"system\": 0.005474229999999999,\n      \"min\": 0.04163233258000001,\n      \"max\": 0.06395678558000001,\n      \"times\": [\n        0.06395678558000001,\n        0.047546721580000006,\n        0.04163233258000001,\n        0.047009520580000005,\n        0.04196206058000001\n      ]\n    },\n    {\n      \"command\": \"70097af27385be715248e04a8a8952a82b922ba3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.047122430380000004,\n      \"stddev\": 0.010538063199444083,\n      \"median\": 0.042842567580000004,\n      \"user\": 0.037549655,\n      \"system\": 0.00550943,\n      \"min\": 0.04114735558,\n      \"max\": 0.06585242058,\n      \"times\": [\n        0.06585242058,\n        0.042842567580000004,\n        0.04156988158000001,\n        0.04419992658000001,\n        0.04114735558\n      ]\n    },\n    {\n      \"command\": \"5bfe90ea9791eca42bbfb2ff41e6784ec31ed774 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04621313958000001,\n      \"stddev\": 0.006836178223950903,\n      \"median\": 0.044665920580000004,\n      \"user\": 0.036522454999999995,\n      \"system\": 0.0054804300000000005,\n      \"min\": 0.040480019580000005,\n      \"max\": 0.05788732558000001,\n      \"times\": [\n        0.05788732558000001,\n        0.044665920580000004,\n        0.04232340558000001,\n        0.045709026580000006,\n        0.040480019580000005\n      ]\n    },\n    {\n      \"command\": \"9c23378589ac6fc743f4224455b0f2b5f67a0895 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.046380353980000004,\n      \"stddev\": 0.007120869465570325,\n      \"median\": 0.044174551580000006,\n      \"user\": 0.036884455000000003,\n      \"system\": 0.00502943,\n      \"min\": 0.04108842058000001,\n      \"max\": 0.05889777258000001,\n      \"times\": [\n        0.05889777258000001,\n        0.043290586580000005,\n        0.04445043858000001,\n        0.044174551580000006,\n        0.04108842058000001\n      ]\n    },\n    {\n      \"command\": \"0f90659f67558cf05478fc7573814ada46ea13b0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.045913406180000005,\n      \"stddev\": 0.006158765646835964,\n      \"median\": 0.044241561580000005,\n      \"user\": 0.036682655,\n      \"system\": 0.005141430000000001,\n      \"min\": 0.04003981358000001,\n      \"max\": 0.05638086358000001,\n      \"times\": [\n        0.05638086358000001,\n        0.044241561580000005,\n        0.043908954580000006,\n        0.04499583758,\n        0.04003981358000001\n      ]\n    },\n    {\n      \"command\": \"76bf59b8a57bd081f74707c2462bdec18d64c800 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04620386078000001,\n      \"stddev\": 0.007082759550884861,\n      \"median\": 0.044124367580000004,\n      \"user\": 0.036537455,\n      \"system\": 0.00496743,\n      \"min\": 0.040159230580000004,\n      \"max\": 0.05849642958000001,\n      \"times\": [\n        0.05849642958000001,\n        0.044124367580000004,\n        0.04407029758000001,\n        0.044168978580000004,\n        0.040159230580000004\n      ]\n    },\n    {\n      \"command\": \"d216fb3f03641b52b24fb05931b45328bbbff1fa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.04676090818000001,\n      \"stddev\": 0.006643847710881723,\n      \"median\": 0.04466657458000001,\n      \"user\": 0.03708365500000001,\n      \"system\": 0.00529583,\n      \"min\": 0.04178346058000001,\n      \"max\": 0.05843202158000001,\n      \"times\": [\n        0.05843202158000001,\n        0.04390905758000001,\n        0.04466657458000001,\n        0.04501342658000001,\n        0.04178346058000001\n      ]\n    },\n    {\n      \"command\": \"10d1790dc84043cbd6819642692745f1a72b7a35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.21094915098000003,\n      \"stddev\": 0.01095128677282573,\n      \"median\": 0.20664992558000003,\n      \"user\": 0.20069785499999998,\n      \"system\": 0.0059402299999999995,\n      \"min\": 0.20074439958000004,\n      \"max\": 0.22831190158000003,\n      \"times\": [\n        0.21459672358000004,\n        0.22831190158000003,\n        0.20444280458000003,\n        0.20664992558000003,\n        0.20074439958000004\n      ]\n    },\n    {\n      \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.36848439898,\n      \"stddev\": 0.020496361323753393,\n      \"median\": 1.36645537058,\n      \"user\": 1.3457382549999999,\n      \"system\": 0.014986030000000001,\n      \"min\": 1.34590549058,\n      \"max\": 1.39876596558,\n      \"times\": [\n        1.39876596558,\n        1.3764506145800002,\n        1.35484455358,\n        1.36645537058,\n        1.34590549058\n      ]\n    },\n    {\n      \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.30457460598,\n      \"stddev\": 0.019193206493133295,\n      \"median\": 1.30805275458,\n      \"user\": 1.285742255,\n      \"system\": 0.013228229999999999,\n      \"min\": 1.27794371158,\n      \"max\": 1.32412973158,\n      \"times\": [\n        1.29289490958,\n        1.27794371158,\n        1.30805275458,\n        1.32412973158,\n        1.31985192258\n      ]\n    },\n    {\n      \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.05453571978000001,\n      \"stddev\": 0.008221394169507245,\n      \"median\": 0.05129599758000001,\n      \"user\": 0.042214255,\n      \"system\": 0.007802829999999999,\n      \"min\": 0.049473020580000006,\n      \"max\": 0.06912223658000001,\n      \"times\": [\n        0.06912223658000001,\n        0.052322963580000006,\n        0.05129599758000001,\n        0.05046438058000001,\n        0.049473020580000006\n      ]\n    },\n    {\n      \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3005272063800002,\n      \"stddev\": 0.014531176758054664,\n      \"median\": 1.2954239595800001,\n      \"user\": 1.282677255,\n      \"system\": 0.012415230000000003,\n      \"min\": 1.28331508958,\n      \"max\": 1.32027465258,\n      \"times\": [\n        1.2937780595800001,\n        1.30984427058,\n        1.32027465258,\n        1.28331508958,\n        1.2954239595800001\n      ]\n    },\n    {\n      \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3386421725800002,\n      \"stddev\": 0.02539243961010324,\n      \"median\": 1.33458602658,\n      \"user\": 1.316659255,\n      \"system\": 0.01446143,\n      \"min\": 1.31727567658,\n      \"max\": 1.38138722758,\n      \"times\": [\n        1.38138722758,\n        1.33801065358,\n        1.33458602658,\n        1.31727567658,\n        1.32195127858\n      ]\n    },\n    {\n      \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3247792037800001,\n      \"stddev\": 0.030463784568606624,\n      \"median\": 1.3188642135800002,\n      \"user\": 1.304445455,\n      \"system\": 0.01382043,\n      \"min\": 1.2823134415800002,\n      \"max\": 1.3634266645800002,\n      \"times\": [\n        1.3634266645800002,\n        1.34254635158,\n        1.3188642135800002,\n        1.2823134415800002,\n        1.3167453475800002\n      ]\n    },\n    {\n      \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.21027658618,\n      \"stddev\": 0.03685874027230938,\n      \"median\": 1.19598048558,\n      \"user\": 1.188826255,\n      \"system\": 0.013752029999999998,\n      \"min\": 1.1876158515800002,\n      \"max\": 1.27584478158,\n      \"times\": [\n        1.27584478158,\n        1.19598048558,\n        1.19795664758,\n        1.1939851645800001,\n        1.1876158515800002\n      ]\n    },\n    {\n      \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.90366085718,\n      \"stddev\": 0.008688768385093972,\n      \"median\": 0.9064323235800001,\n      \"user\": 0.8819956550000001,\n      \"system\": 0.013556830000000002,\n      \"min\": 0.8886819245800001,\n      \"max\": 0.9106618295800001,\n      \"times\": [\n        0.8886819245800001,\n        0.9043455195800001,\n        0.9106618295800001,\n        0.9081826885800001,\n        0.9064323235800001\n      ]\n    },\n    {\n      \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.9021375341800001,\n      \"stddev\": 0.013239280711404065,\n      \"median\": 0.9048354515800001,\n      \"user\": 0.8802944549999999,\n      \"system\": 0.014199030000000001,\n      \"min\": 0.8893216625800001,\n      \"max\": 0.9209375105800001,\n      \"times\": [\n        0.8893216625800001,\n        0.9048354515800001,\n        0.90611701058,\n        0.9209375105800001,\n        0.8894760355800001\n      ]\n    },\n    {\n      \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.9342394967800001,\n      \"stddev\": 0.026118879942367848,\n      \"median\": 0.9361726815800001,\n      \"user\": 0.909671655,\n      \"system\": 0.01621023,\n      \"min\": 0.8954281705800001,\n      \"max\": 0.9686347565800001,\n      \"times\": [\n        0.93144292658,\n        0.9395189485800001,\n        0.8954281705800001,\n        0.9686347565800001,\n        0.9361726815800001\n      ]\n    },\n    {\n      \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.91785955458,\n      \"stddev\": 0.041758643342313106,\n      \"median\": 0.9278772835800001,\n      \"user\": 0.897875655,\n      \"system\": 0.01312963,\n      \"min\": 0.8735855395800001,\n      \"max\": 0.9629578075800002,\n      \"times\": [\n        0.9629578075800002,\n        0.9278772835800001,\n        0.9500016335800001,\n        0.8748755085800001,\n        0.8735855395800001\n      ]\n    },\n    {\n      \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.8789130757800001,\n      \"stddev\": 0.01898422456827194,\n      \"median\": 0.8714557775800001,\n      \"user\": 0.8620840549999998,\n      \"system\": 0.01157803,\n      \"min\": 0.8614270865800001,\n      \"max\": 0.9092009125800001,\n      \"times\": [\n        0.8848604545800001,\n        0.9092009125800001,\n        0.8614270865800001,\n        0.8714557775800001,\n        0.8676211475800001\n      ]\n    },\n    {\n      \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.14690325578,\n      \"stddev\": 0.018505171093728793,\n      \"median\": 1.13664799658,\n      \"user\": 1.128066255,\n      \"system\": 0.01204403,\n      \"min\": 1.1285754435800002,\n      \"max\": 1.17070288658,\n      \"times\": [\n        1.17070288658,\n        1.1360506695800001,\n        1.16253928258,\n        1.1285754435800002,\n        1.13664799658\n      ]\n    },\n    {\n      \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.15079209558,\n      \"stddev\": 0.03117522876810542,\n      \"median\": 1.14344762958,\n      \"user\": 1.1305344549999998,\n      \"system\": 0.012347829999999999,\n      \"min\": 1.12662479358,\n      \"max\": 1.2038413325800001,\n      \"times\": [\n        1.1501086735800001,\n        1.1299380485800001,\n        1.14344762958,\n        1.12662479358,\n        1.2038413325800001\n      ]\n    },\n    {\n      \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.33110646118,\n      \"stddev\": 0.19376168417387554,\n      \"median\": 1.23799058158,\n      \"user\": 1.267553255,\n      \"system\": 0.02585963,\n      \"min\": 1.15106718158,\n      \"max\": 1.62062786858,\n      \"times\": [\n        1.21082275858,\n        1.15106718158,\n        1.23799058158,\n        1.62062786858,\n        1.4350239155800002\n      ]\n    },\n    {\n      \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3806832149800001,\n      \"stddev\": 0.21321624075450468,\n      \"median\": 1.31376602558,\n      \"user\": 1.3030440549999998,\n      \"system\": 0.02527323,\n      \"min\": 1.2429902425800001,\n      \"max\": 1.7532648405800002,\n      \"times\": [\n        1.31376602558,\n        1.7532648405800002,\n        1.34905740258,\n        1.2429902425800001,\n        1.24433756358\n      ]\n    },\n    {\n      \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.24445320298,\n      \"stddev\": 0.031862550012832926,\n      \"median\": 1.2474160655800002,\n      \"user\": 1.215210255,\n      \"system\": 0.019200429999999997,\n      \"min\": 1.20169201358,\n      \"max\": 1.28057461458,\n      \"times\": [\n        1.28057461458,\n        1.26764668658,\n        1.2474160655800002,\n        1.2249366345800001,\n        1.20169201358\n      ]\n    },\n    {\n      \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3397338597800001,\n      \"stddev\": 0.26088733158865557,\n      \"median\": 1.23304935958,\n      \"user\": 1.256353455,\n      \"system\": 0.019774229999999997,\n      \"min\": 1.18147796158,\n      \"max\": 1.8034730135800001,\n      \"times\": [\n        1.21788663258,\n        1.18147796158,\n        1.23304935958,\n        1.2627823315800002,\n        1.8034730135800001\n      ]\n    },\n    {\n      \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53399928778,\n      \"stddev\": 0.5270553520922746,\n      \"median\": 1.29563271858,\n      \"user\": 1.319960855,\n      \"system\": 0.02915483,\n      \"min\": 1.24268769358,\n      \"max\": 2.4727941155799997,\n      \"times\": [\n        1.24268769358,\n        2.4727941155799997,\n        1.37658095558,\n        1.28230095558,\n        1.29563271858\n      ]\n    },\n    {\n      \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2662743565799999,\n      \"stddev\": 0.01922934506932241,\n      \"median\": 1.27050415458,\n      \"user\": 1.235630255,\n      \"system\": 0.020308029999999998,\n      \"min\": 1.24353853358,\n      \"max\": 1.2916794305800001,\n      \"times\": [\n        1.2916794305800001,\n        1.27455184758,\n        1.27050415458,\n        1.24353853358,\n        1.25109781658\n      ]\n    },\n    {\n      \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.41740499438,\n      \"stddev\": 0.09317621316449008,\n      \"median\": 1.4223204445800002,\n      \"user\": 1.3488044549999998,\n      \"system\": 0.030107629999999996,\n      \"min\": 1.27464596258,\n      \"max\": 1.50976955458,\n      \"times\": [\n        1.27464596258,\n        1.39137186258,\n        1.4223204445800002,\n        1.48891714758,\n        1.50976955458\n      ]\n    },\n    {\n      \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.32533371518,\n      \"stddev\": 0.07122712886583728,\n      \"median\": 1.3270898605800001,\n      \"user\": 1.2824322550000002,\n      \"system\": 0.022929029999999996,\n      \"min\": 1.23618229958,\n      \"max\": 1.41425822058,\n      \"times\": [\n        1.41425822058,\n        1.37165104558,\n        1.27748714958,\n        1.3270898605800001,\n        1.23618229958\n      ]\n    },\n    {\n      \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2932732357799999,\n      \"stddev\": 0.06523994705863108,\n      \"median\": 1.26971104858,\n      \"user\": 1.2460774549999998,\n      \"system\": 0.02140703,\n      \"min\": 1.25552147358,\n      \"max\": 1.40924789158,\n      \"times\": [\n        1.25552147358,\n        1.2588501625800002,\n        1.27303560258,\n        1.40924789158,\n        1.26971104858\n      ]\n    },\n    {\n      \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2876539575800001,\n      \"stddev\": 0.11697813131189513,\n      \"median\": 1.23861149558,\n      \"user\": 1.229652655,\n      \"system\": 0.02046723,\n      \"min\": 1.22385300558,\n      \"max\": 1.4958674815800002,\n      \"times\": [\n        1.4958674815800002,\n        1.23861149558,\n        1.22385300558,\n        1.25337053958,\n        1.2265672655800002\n      ]\n    },\n    {\n      \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6076762345800002,\n      \"stddev\": 0.015138284387894748,\n      \"median\": 1.61261962858,\n      \"user\": 1.5751498549999998,\n      \"system\": 0.01991603,\n      \"min\": 1.5895328615800002,\n      \"max\": 1.6259946175800002,\n      \"times\": [\n        1.6259946175800002,\n        1.61261962858,\n        1.5947635475800002,\n        1.5895328615800002,\n        1.6154705175800002\n      ]\n    },\n    {\n      \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.62900015518,\n      \"stddev\": 0.028544572823720363,\n      \"median\": 1.62219810958,\n      \"user\": 1.578989255,\n      \"system\": 0.02224303,\n      \"min\": 1.5954943695800001,\n      \"max\": 1.66358967358,\n      \"times\": [\n        1.6528054415800002,\n        1.62219810958,\n        1.6109131815800002,\n        1.5954943695800001,\n        1.66358967358\n      ]\n    },\n    {\n      \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6169401803800003,\n      \"stddev\": 0.005155624544073473,\n      \"median\": 1.61757456658,\n      \"user\": 1.5834228549999998,\n      \"system\": 0.02164423,\n      \"min\": 1.6088678255800002,\n      \"max\": 1.62320550258,\n      \"times\": [\n        1.62320550258,\n        1.61757456658,\n        1.6168882685800001,\n        1.6088678255800002,\n        1.6181647385800002\n      ]\n    },\n    {\n      \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6274318435800001,\n      \"stddev\": 0.0073869031318178685,\n      \"median\": 1.62947800358,\n      \"user\": 1.5929308549999999,\n      \"system\": 0.02290143,\n      \"min\": 1.61672263258,\n      \"max\": 1.6346440125800001,\n      \"times\": [\n        1.6346440125800001,\n        1.6329699485800002,\n        1.62947800358,\n        1.62334462058,\n        1.61672263258\n      ]\n    },\n    {\n      \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.62417737598,\n      \"stddev\": 0.017331074601718427,\n      \"median\": 1.62853799958,\n      \"user\": 1.5873616549999998,\n      \"system\": 0.02324763,\n      \"min\": 1.6029578375800002,\n      \"max\": 1.64334302458,\n      \"times\": [\n        1.64334302458,\n        1.6029578375800002,\n        1.62853799958,\n        1.6364813145800001,\n        1.60956670358\n      ]\n    },\n    {\n      \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.32948515578,\n      \"stddev\": 0.024150188959145422,\n      \"median\": 1.32213170658,\n      \"user\": 1.296325655,\n      \"system\": 0.021207629999999998,\n      \"min\": 1.31123815758,\n      \"max\": 1.3715005925800001,\n      \"times\": [\n        1.3715005925800001,\n        1.32606710158,\n        1.32213170658,\n        1.31123815758,\n        1.3164882205800001\n      ]\n    },\n    {\n      \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.32818500898,\n      \"stddev\": 0.01869633960594135,\n      \"median\": 1.33193744758,\n      \"user\": 1.2962680549999999,\n      \"system\": 0.02078063,\n      \"min\": 1.30748905758,\n      \"max\": 1.3483983615800001,\n      \"times\": [\n        1.33193744758,\n        1.3483983615800001,\n        1.34301040058,\n        1.30748905758,\n        1.31008977758\n      ]\n    },\n    {\n      \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3372659513800003,\n      \"stddev\": 0.07346857241237886,\n      \"median\": 1.3176865025800002,\n      \"user\": 1.291745255,\n      \"system\": 0.01962683,\n      \"min\": 1.27345628658,\n      \"max\": 1.46402628958,\n      \"times\": [\n        1.3176865025800002,\n        1.32354216958,\n        1.30761850858,\n        1.46402628958,\n        1.27345628658\n      ]\n    },\n    {\n      \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.29695111698,\n      \"stddev\": 0.028220999604933402,\n      \"median\": 1.29188292458,\n      \"user\": 1.267227655,\n      \"system\": 0.01933283,\n      \"min\": 1.2647041995800001,\n      \"max\": 1.33367812658,\n      \"times\": [\n        1.33367812658,\n        1.29188292458,\n        1.27760970358,\n        1.2647041995800001,\n        1.31688063058\n      ]\n    },\n    {\n      \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.36203606098,\n      \"stddev\": 0.09550810529698499,\n      \"median\": 1.33883425258,\n      \"user\": 1.324246455,\n      \"system\": 0.02277523,\n      \"min\": 1.28805361058,\n      \"max\": 1.5287007535800001,\n      \"times\": [\n        1.28805361058,\n        1.33883425258,\n        1.5287007535800001,\n        1.3392243965800001,\n        1.31536729158\n      ]\n    },\n    {\n      \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.35960159818,\n      \"stddev\": 0.10103769616134195,\n      \"median\": 1.3171252855800002,\n      \"user\": 1.3125810549999999,\n      \"system\": 0.02118063,\n      \"min\": 1.3011867535800001,\n      \"max\": 1.53940694758,\n      \"times\": [\n        1.3171252855800002,\n        1.32947843058,\n        1.3011867535800001,\n        1.3108105735800002,\n        1.53940694758\n      ]\n    },\n    {\n      \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3475911109800003,\n      \"stddev\": 0.10581359053148584,\n      \"median\": 1.33694455658,\n      \"user\": 1.288449255,\n      \"system\": 0.01883303,\n      \"min\": 1.2574961745800002,\n      \"max\": 1.51681470558,\n      \"times\": [\n        1.51681470558,\n        1.33694455658,\n        1.2574961745800002,\n        1.36614254358,\n        1.2605575745800002\n      ]\n    },\n    {\n      \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.36654526938,\n      \"stddev\": 0.11727813437995303,\n      \"median\": 1.33115557258,\n      \"user\": 1.323541255,\n      \"system\": 0.020969830000000002,\n      \"min\": 1.2599292025800002,\n      \"max\": 1.55063460858,\n      \"times\": [\n        1.28376682958,\n        1.2599292025800002,\n        1.55063460858,\n        1.40724013358,\n        1.33115557258\n      ]\n    },\n    {\n      \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.24612392518,\n      \"stddev\": 0.03366548960378458,\n      \"median\": 1.2391850825800002,\n      \"user\": 1.2214996550000001,\n      \"system\": 0.015177430000000002,\n      \"min\": 1.2059799765800001,\n      \"max\": 1.29077811558,\n      \"times\": [\n        1.29077811558,\n        1.2391850825800002,\n        1.26827659758,\n        1.22639985358,\n        1.2059799765800001\n      ]\n    },\n    {\n      \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3033784001800002,\n      \"stddev\": 0.059646996539757795,\n      \"median\": 1.28564337758,\n      \"user\": 1.269540855,\n      \"system\": 0.01903963,\n      \"min\": 1.24578517258,\n      \"max\": 1.37646429858,\n      \"times\": [\n        1.28564337758,\n        1.24578517258,\n        1.2532380735800002,\n        1.35576107858,\n        1.37646429858\n      ]\n    },\n    {\n      \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2644601301800003,\n      \"stddev\": 0.031220955635247512,\n      \"median\": 1.25925535258,\n      \"user\": 1.2414458549999998,\n      \"system\": 0.01642323,\n      \"min\": 1.22395685658,\n      \"max\": 1.3095147715800002,\n      \"times\": [\n        1.3095147715800002,\n        1.2547555535800001,\n        1.27481811658,\n        1.25925535258,\n        1.22395685658\n      ]\n    },\n    {\n      \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.24650197978,\n      \"stddev\": 0.04685942912885733,\n      \"median\": 1.23973286658,\n      \"user\": 1.220630255,\n      \"system\": 0.015009829999999998,\n      \"min\": 1.18739793658,\n      \"max\": 1.30378920658,\n      \"times\": [\n        1.21976729458,\n        1.18739793658,\n        1.23973286658,\n        1.30378920658,\n        1.2818225945800001\n      ]\n    },\n    {\n      \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2220756449799999,\n      \"stddev\": 0.02436865042559819,\n      \"median\": 1.20803172858,\n      \"user\": 1.203665255,\n      \"system\": 0.01298283,\n      \"min\": 1.20031775258,\n      \"max\": 1.25312032458,\n      \"times\": [\n        1.25312032458,\n        1.2435539445800001,\n        1.20535447458,\n        1.20803172858,\n        1.20031775258\n      ]\n    },\n    {\n      \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.20725545598,\n      \"stddev\": 0.01110958617609843,\n      \"median\": 1.20881657858,\n      \"user\": 1.190583855,\n      \"system\": 0.012150830000000001,\n      \"min\": 1.18945592358,\n      \"max\": 1.21720919458,\n      \"times\": [\n        1.20881657858,\n        1.21720919458,\n        1.2051249505800001,\n        1.18945592358,\n        1.21567063258\n      ]\n    },\n    {\n      \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2683019529800001,\n      \"stddev\": 0.07493693215061543,\n      \"median\": 1.23218913258,\n      \"user\": 1.2452010550000001,\n      \"system\": 0.016613430000000002,\n      \"min\": 1.20113222558,\n      \"max\": 1.3628492405800001,\n      \"times\": [\n        1.21074654558,\n        1.20113222558,\n        1.23218913258,\n        1.33459262058,\n        1.3628492405800001\n      ]\n    },\n    {\n      \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.23445490838,\n      \"stddev\": 0.05176115363907902,\n      \"median\": 1.21168055558,\n      \"user\": 1.215794455,\n      \"system\": 0.01418583,\n      \"min\": 1.20944875058,\n      \"max\": 1.3270222735800001,\n      \"times\": [\n        1.3270222735800001,\n        1.21284912258,\n        1.21168055558,\n        1.20944875058,\n        1.21127383958\n      ]\n    },\n    {\n      \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2317921875800004,\n      \"stddev\": 0.033840193285343836,\n      \"median\": 1.22357694858,\n      \"user\": 1.2128272549999999,\n      \"system\": 0.01396183,\n      \"min\": 1.1988347485800002,\n      \"max\": 1.28795735158,\n      \"times\": [\n        1.22357694858,\n        1.2153505875800001,\n        1.1988347485800002,\n        1.28795735158,\n        1.2332413015800001\n      ]\n    },\n    {\n      \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2981787411799999,\n      \"stddev\": 0.03141871200870069,\n      \"median\": 1.3073167835800001,\n      \"user\": 1.2779354550000002,\n      \"system\": 0.015582230000000002,\n      \"min\": 1.25924841958,\n      \"max\": 1.33453119358,\n      \"times\": [\n        1.27246598458,\n        1.33453119358,\n        1.31733132458,\n        1.3073167835800001,\n        1.25924841958\n      ]\n    },\n    {\n      \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2783820779800001,\n      \"stddev\": 0.022140695546713992,\n      \"median\": 1.27184419158,\n      \"user\": 1.254382855,\n      \"system\": 0.014474829999999998,\n      \"min\": 1.26058767558,\n      \"max\": 1.3152787135800001,\n      \"times\": [\n        1.3152787135800001,\n        1.26312316358,\n        1.27184419158,\n        1.26058767558,\n        1.28107664558\n      ]\n    },\n    {\n      \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3088831781799999,\n      \"stddev\": 0.03335503578258712,\n      \"median\": 1.32921559758,\n      \"user\": 1.2808480549999999,\n      \"system\": 0.01773743,\n      \"min\": 1.26291460858,\n      \"max\": 1.33756396058,\n      \"times\": [\n        1.33756396058,\n        1.32921559758,\n        1.33077554558,\n        1.2839461785800002,\n        1.26291460858\n      ]\n    },\n    {\n      \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2931594611800001,\n      \"stddev\": 0.04641328953818192,\n      \"median\": 1.2808378635800002,\n      \"user\": 1.272343255,\n      \"system\": 0.01589203,\n      \"min\": 1.26217019058,\n      \"max\": 1.37385795958,\n      \"times\": [\n        1.37385795958,\n        1.28657869758,\n        1.2808378635800002,\n        1.26235259458,\n        1.26217019058\n      ]\n    },\n    {\n      \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.38617159858,\n      \"stddev\": 0.038078357627281297,\n      \"median\": 1.38287314458,\n      \"user\": 1.349599655,\n      \"system\": 0.02254623,\n      \"min\": 1.33610599258,\n      \"max\": 1.44335097258,\n      \"times\": [\n        1.38287314458,\n        1.44335097258,\n        1.38258443958,\n        1.38594344358,\n        1.33610599258\n      ]\n    },\n    {\n      \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.44643162818,\n      \"stddev\": 0.03567020705793785,\n      \"median\": 1.44707433258,\n      \"user\": 1.401989255,\n      \"system\": 0.02759583,\n      \"min\": 1.39970189058,\n      \"max\": 1.49738521358,\n      \"times\": [\n        1.4318068855800001,\n        1.49738521358,\n        1.4561898185800002,\n        1.44707433258,\n        1.39970189058\n      ]\n    },\n    {\n      \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3410788079800002,\n      \"stddev\": 0.059152894860593254,\n      \"median\": 1.34737839458,\n      \"user\": 1.317266255,\n      \"system\": 0.018279029999999998,\n      \"min\": 1.27592541358,\n      \"max\": 1.42913161658,\n      \"times\": [\n        1.29880240058,\n        1.27592541358,\n        1.3541562145800001,\n        1.34737839458,\n        1.42913161658\n      ]\n    },\n    {\n      \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.9593177351800002,\n      \"stddev\": 0.05486969310442442,\n      \"median\": 0.9393730995800001,\n      \"user\": 0.9383780549999999,\n      \"system\": 0.015311029999999998,\n      \"min\": 0.9027735075800001,\n      \"max\": 1.02753785658,\n      \"times\": [\n        1.00680832658,\n        1.02753785658,\n        0.9393730995800001,\n        0.9027735075800001,\n        0.9200958855800001\n      ]\n    },\n    {\n      \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.9126206553800001,\n      \"stddev\": 0.007821082654937623,\n      \"median\": 0.91217397458,\n      \"user\": 0.8968812549999999,\n      \"system\": 0.012148429999999998,\n      \"min\": 0.9016315475800001,\n      \"max\": 0.9232151215800001,\n      \"times\": [\n        0.9153993555800001,\n        0.91217397458,\n        0.9106832775800001,\n        0.9016315475800001,\n        0.9232151215800001\n      ]\n    },\n    {\n      \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.91413394678,\n      \"stddev\": 0.0074679809256672615,\n      \"median\": 0.9117863525800001,\n      \"user\": 0.898638855,\n      \"system\": 0.012058630000000002,\n      \"min\": 0.9070344785800001,\n      \"max\": 0.9259702515800001,\n      \"times\": [\n        0.90945960158,\n        0.9117863525800001,\n        0.9164190495800001,\n        0.9070344785800001,\n        0.9259702515800001\n      ]\n    },\n    {\n      \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 0.9283165745799999,\n      \"stddev\": 0.0022236648059388666,\n      \"median\": 0.9288232675800001,\n      \"user\": 0.9116104549999999,\n      \"system\": 0.01287843,\n      \"min\": 0.9250756315800001,\n      \"max\": 0.9311348815800001,\n      \"times\": [\n        0.9311348815800001,\n        0.9290066335800001,\n        0.9275424585800001,\n        0.9250756315800001,\n        0.9288232675800001\n      ]\n    },\n    {\n      \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.4170753991800003,\n      \"stddev\": 0.31899877410919614,\n      \"median\": 1.33294455058,\n      \"user\": 1.296304255,\n      \"system\": 0.023569629999999998,\n      \"min\": 1.2134124455800002,\n      \"max\": 1.9766340825800002,\n      \"times\": [\n        1.21619189058,\n        1.2134124455800002,\n        1.33294455058,\n        1.34619402658,\n        1.9766340825800002\n      ]\n    },\n    {\n      \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2596060523800001,\n      \"stddev\": 0.02342969574963548,\n      \"median\": 1.27096581358,\n      \"user\": 1.2360794549999998,\n      \"system\": 0.017896429999999998,\n      \"min\": 1.2229171305800002,\n      \"max\": 1.27850944458,\n      \"times\": [\n        1.27850944458,\n        1.27096581358,\n        1.27590896958,\n        1.24972890358,\n        1.2229171305800002\n      ]\n    },\n    {\n      \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3043690147800002,\n      \"stddev\": 0.13134338202913434,\n      \"median\": 1.23810097658,\n      \"user\": 1.2452322550000001,\n      \"system\": 0.018127429999999996,\n      \"min\": 1.22662249258,\n      \"max\": 1.53355345958,\n      \"times\": [\n        1.29653962658,\n        1.22662249258,\n        1.22702851858,\n        1.23810097658,\n        1.53355345958\n      ]\n    },\n    {\n      \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2356245445800003,\n      \"stddev\": 0.040604780871987066,\n      \"median\": 1.2160595355800001,\n      \"user\": 1.212407255,\n      \"system\": 0.016054030000000004,\n      \"min\": 1.2006306715800001,\n      \"max\": 1.2839529255800002,\n      \"times\": [\n        1.27502057658,\n        1.2006306715800001,\n        1.2024590135800002,\n        1.2160595355800001,\n        1.2839529255800002\n      ]\n    },\n    {\n      \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3406394479800001,\n      \"stddev\": 0.10491641532671422,\n      \"median\": 1.28722968858,\n      \"user\": 1.293215055,\n      \"system\": 0.02248403,\n      \"min\": 1.2545114825800001,\n      \"max\": 1.5053313425800001,\n      \"times\": [\n        1.27185114658,\n        1.2545114825800001,\n        1.5053313425800001,\n        1.28722968858,\n        1.38427357958\n      ]\n    },\n    {\n      \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2331307699800003,\n      \"stddev\": 0.0264263325756844,\n      \"median\": 1.24519680858,\n      \"user\": 1.210079055,\n      \"system\": 0.017274229999999998,\n      \"min\": 1.20232628958,\n      \"max\": 1.2577107085800001,\n      \"times\": [\n        1.24519680858,\n        1.2534227765800001,\n        1.2577107085800001,\n        1.20232628958,\n        1.20699726658\n      ]\n    },\n    {\n      \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.17085900258,\n      \"stddev\": 0.013850011311249254,\n      \"median\": 1.17632468858,\n      \"user\": 1.154530055,\n      \"system\": 0.01294743,\n      \"min\": 1.14964271958,\n      \"max\": 1.1829601465800001,\n      \"times\": [\n        1.1644925775800001,\n        1.17632468858,\n        1.18087488058,\n        1.1829601465800001,\n        1.14964271958\n      ]\n    },\n    {\n      \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2920842777800001,\n      \"stddev\": 0.013700472041378765,\n      \"median\": 1.28604598958,\n      \"user\": 1.299271455,\n      \"system\": 0.08082383,\n      \"min\": 1.28058278858,\n      \"max\": 1.31362271058,\n      \"times\": [\n        1.31362271058,\n        1.28266309558,\n        1.28604598958,\n        1.29750680458,\n        1.28058278858\n      ]\n    },\n    {\n      \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2925176069800002,\n      \"stddev\": 0.019709265420075353,\n      \"median\": 1.28550820258,\n      \"user\": 1.293943055,\n      \"system\": 0.08118942999999998,\n      \"min\": 1.27454685958,\n      \"max\": 1.3259546075800002,\n      \"times\": [\n        1.3259546075800002,\n        1.2845509405800002,\n        1.29202742458,\n        1.28550820258,\n        1.27454685958\n      ]\n    },\n    {\n      \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2740238375800002,\n      \"stddev\": 0.005492093670018539,\n      \"median\": 1.27566976558,\n      \"user\": 1.2827250549999998,\n      \"system\": 0.07636742999999999,\n      \"min\": 1.26700758158,\n      \"max\": 1.27944937158,\n      \"times\": [\n        1.27566976558,\n        1.2695646715800002,\n        1.27842779758,\n        1.27944937158,\n        1.26700758158\n      ]\n    },\n    {\n      \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53613543778,\n      \"stddev\": 0.022226108169866508,\n      \"median\": 1.53373216058,\n      \"user\": 1.545424655,\n      \"system\": 0.08166783,\n      \"min\": 1.51713680358,\n      \"max\": 1.57371275458,\n      \"times\": [\n        1.57371275458,\n        1.53380963958,\n        1.53373216058,\n        1.51713680358,\n        1.5222858305800002\n      ]\n    },\n    {\n      \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5292279187800002,\n      \"stddev\": 0.0125512317293405,\n      \"median\": 1.52586988558,\n      \"user\": 1.539753855,\n      \"system\": 0.08072303,\n      \"min\": 1.51658438858,\n      \"max\": 1.55024479858,\n      \"times\": [\n        1.55024479858,\n        1.52586988558,\n        1.51658438858,\n        1.52825526758,\n        1.5251852535800001\n      ]\n    },\n    {\n      \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5350773975800003,\n      \"stddev\": 0.019950244623983853,\n      \"median\": 1.5301541515800001,\n      \"user\": 1.541547855,\n      \"system\": 0.08046603,\n      \"min\": 1.5182418675800002,\n      \"max\": 1.5663392765800002,\n      \"times\": [\n        1.5663392765800002,\n        1.5182418675800002,\n        1.5301541515800001,\n        1.54176953558,\n        1.51888215658\n      ]\n    },\n    {\n      \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53961306138,\n      \"stddev\": 0.010441331136465816,\n      \"median\": 1.5391150025800002,\n      \"user\": 1.550608855,\n      \"system\": 0.08191722999999998,\n      \"min\": 1.5272002455800002,\n      \"max\": 1.5525889585800001,\n      \"times\": [\n        1.53205115758,\n        1.5272002455800002,\n        1.5391150025800002,\n        1.5525889585800001,\n        1.5471099425800001\n      ]\n    },\n    {\n      \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5320642873800001,\n      \"stddev\": 0.019902615654948413,\n      \"median\": 1.52616148958,\n      \"user\": 1.537667855,\n      \"system\": 0.08008722999999998,\n      \"min\": 1.51951980458,\n      \"max\": 1.5671806805800002,\n      \"times\": [\n        1.5671806805800002,\n        1.51951980458,\n        1.5205549365800002,\n        1.52616148958,\n        1.5269045255800002\n      ]\n    },\n    {\n      \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.52606196318,\n      \"stddev\": 0.007776555243936707,\n      \"median\": 1.52380613058,\n      \"user\": 1.5378554549999999,\n      \"system\": 0.07889942999999999,\n      \"min\": 1.52099799758,\n      \"max\": 1.53966982958,\n      \"times\": [\n        1.5211540145800002,\n        1.52468184358,\n        1.52099799758,\n        1.53966982958,\n        1.52380613058\n      ]\n    },\n    {\n      \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.52633177718,\n      \"stddev\": 0.00725252735765043,\n      \"median\": 1.5269923705800001,\n      \"user\": 1.538134655,\n      \"system\": 0.07814243,\n      \"min\": 1.51487670758,\n      \"max\": 1.53360762058,\n      \"times\": [\n        1.51487670758,\n        1.52495953458,\n        1.5269923705800001,\n        1.53360762058,\n        1.5312226525800001\n      ]\n    },\n    {\n      \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5293607281800001,\n      \"stddev\": 0.008789365257935737,\n      \"median\": 1.53156612758,\n      \"user\": 1.540988055,\n      \"system\": 0.07945463,\n      \"min\": 1.51562298358,\n      \"max\": 1.53765701858,\n      \"times\": [\n        1.53765701858,\n        1.51562298358,\n        1.53156612758,\n        1.5355261665800002,\n        1.52643134458\n      ]\n    },\n    {\n      \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53062093138,\n      \"stddev\": 0.014306799483105646,\n      \"median\": 1.5322839775800001,\n      \"user\": 1.541652655,\n      \"system\": 0.07954183,\n      \"min\": 1.50791957258,\n      \"max\": 1.54446397458,\n      \"times\": [\n        1.54446397458,\n        1.52777244958,\n        1.5406646825800001,\n        1.5322839775800001,\n        1.50791957258\n      ]\n    },\n    {\n      \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53272512158,\n      \"stddev\": 0.011544417745211932,\n      \"median\": 1.53545109358,\n      \"user\": 1.5394480549999998,\n      \"system\": 0.07926682999999998,\n      \"min\": 1.51632175858,\n      \"max\": 1.54712031158,\n      \"times\": [\n        1.54712031158,\n        1.53545109358,\n        1.53732172258,\n        1.51632175858,\n        1.5274107215800001\n      ]\n    },\n    {\n      \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.55053926378,\n      \"stddev\": 0.07036352411201825,\n      \"median\": 1.5239364295800002,\n      \"user\": 1.556329055,\n      \"system\": 0.08383563,\n      \"min\": 1.50848394258,\n      \"max\": 1.6758825515800002,\n      \"times\": [\n        1.50848394258,\n        1.51993845058,\n        1.5244549445800002,\n        1.5239364295800002,\n        1.6758825515800002\n      ]\n    },\n    {\n      \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5610728289800002,\n      \"stddev\": 0.027653315516713777,\n      \"median\": 1.5464451995800002,\n      \"user\": 1.5688990550000002,\n      \"system\": 0.08669582999999999,\n      \"min\": 1.5395471785800001,\n      \"max\": 1.6071645195800002,\n      \"times\": [\n        1.6071645195800002,\n        1.56629362658,\n        1.5464451995800002,\n        1.5395471785800001,\n        1.5459136205800001\n      ]\n    },\n    {\n      \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5650822643800002,\n      \"stddev\": 0.01414203258964725,\n      \"median\": 1.5703710785800002,\n      \"user\": 1.5690704549999999,\n      \"system\": 0.08844622999999999,\n      \"min\": 1.54732114858,\n      \"max\": 1.58196496558,\n      \"times\": [\n        1.57187173358,\n        1.54732114858,\n        1.5703710785800002,\n        1.58196496558,\n        1.55388239558\n      ]\n    },\n    {\n      \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.63839297018,\n      \"stddev\": 0.09254127789250875,\n      \"median\": 1.59231370558,\n      \"user\": 1.6202388549999998,\n      \"system\": 0.09814642999999999,\n      \"min\": 1.5378620435800001,\n      \"max\": 1.75843465358,\n      \"times\": [\n        1.71193848058,\n        1.59231370558,\n        1.75843465358,\n        1.59141596758,\n        1.5378620435800001\n      ]\n    },\n    {\n      \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.58398175318,\n      \"stddev\": 0.03844559335194513,\n      \"median\": 1.5867042235800002,\n      \"user\": 1.5869974550000001,\n      \"system\": 0.09280463,\n      \"min\": 1.54085990258,\n      \"max\": 1.64079464058,\n      \"times\": [\n        1.59425394658,\n        1.54085990258,\n        1.64079464058,\n        1.5867042235800002,\n        1.5572960525800001\n      ]\n    },\n    {\n      \"command\": \"693b68a49e066053638213b597042edb40db65d9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.30561884938,\n      \"stddev\": 0.040300495628085097,\n      \"median\": 0.28715192058,\n      \"user\": 0.295857455,\n      \"system\": 0.01804603,\n      \"min\": 0.28434423358,\n      \"max\": 0.37729791458,\n      \"times\": [\n        0.29489375458,\n        0.28715192058,\n        0.28434423358,\n        0.28440642358,\n        0.37729791458\n      ]\n    },\n    {\n      \"command\": \"c9b08f063a2df46811df1da38e4626af8f660a6d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.30297981898000004,\n      \"stddev\": 0.01532091863102845,\n      \"median\": 0.30260634758,\n      \"user\": 0.291755655,\n      \"system\": 0.019216229999999997,\n      \"min\": 0.28729370758,\n      \"max\": 0.32447610958,\n      \"times\": [\n        0.32447610958,\n        0.30260634758,\n        0.28987254758000003,\n        0.31065038258,\n        0.28729370758\n      ]\n    },\n    {\n      \"command\": \"5dabd73f7871b9e62ea9abbd166e2ca348f4d365 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.29894156858,\n      \"stddev\": 0.011357496866693975,\n      \"median\": 0.29566379158,\n      \"user\": 0.286302255,\n      \"system\": 0.01877583,\n      \"min\": 0.28978497858,\n      \"max\": 0.31837280258,\n      \"times\": [\n        0.31837280258,\n        0.29855223858,\n        0.29566379158,\n        0.29233403158,\n        0.28978497858\n      ]\n    },\n    {\n      \"command\": \"ee02c219b05f1b867e75df5621ec7b9f9e197995 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.29824639178000006,\n      \"stddev\": 0.006386420818705325,\n      \"median\": 0.29627453258,\n      \"user\": 0.288908255,\n      \"system\": 0.019369829999999998,\n      \"min\": 0.29206212558,\n      \"max\": 0.30677413858,\n      \"times\": [\n        0.29206212558,\n        0.30677413858,\n        0.30297080458000003,\n        0.29627453258,\n        0.29315035758\n      ]\n    },\n    {\n      \"command\": \"b81395796e63c88a8827c25c433c5315b6c45f51 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.29301931998,\n      \"stddev\": 0.004385250328256157,\n      \"median\": 0.29110932358,\n      \"user\": 0.284221455,\n      \"system\": 0.018348629999999998,\n      \"min\": 0.28874106958,\n      \"max\": 0.29832297558,\n      \"times\": [\n        0.28874106958,\n        0.29110932358,\n        0.28982498558,\n        0.29832297558,\n        0.29709824558000003\n      ]\n    },\n    {\n      \"command\": \"ddb5c3e2885eddae7e1acece30778b98c1eff54f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.2981858565800001,\n      \"stddev\": 0.005700483110532924,\n      \"median\": 0.29620764158,\n      \"user\": 0.28615225499999997,\n      \"system\": 0.01917683,\n      \"min\": 0.29149527158,\n      \"max\": 0.30664709758,\n      \"times\": [\n        0.30664709758,\n        0.29620764158,\n        0.29608842858,\n        0.30049084358,\n        0.29149527158\n      ]\n    },\n    {\n      \"command\": \"256bd99023b7c4043e6e4b7164a5130e2faf367a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.22463711198,\n      \"stddev\": 0.004520706156549695,\n      \"median\": 0.22248826958000004,\n      \"user\": 0.21618005499999998,\n      \"system\": 0.014077430000000002,\n      \"min\": 0.21997726558000003,\n      \"max\": 0.23133469558000003,\n      \"times\": [\n        0.23133469558000003,\n        0.22698958058000004,\n        0.22239574858000002,\n        0.22248826958000004,\n        0.21997726558000003\n      ]\n    },\n    {\n      \"command\": \"d6a96211f1aa403afa7edf1810a044f64e243ce8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.23654878018,\n      \"stddev\": 0.013019342822837577,\n      \"median\": 0.23047559358000003,\n      \"user\": 0.22268125499999997,\n      \"system\": 0.01619703,\n      \"min\": 0.22666495158000002,\n      \"max\": 0.25861060358,\n      \"times\": [\n        0.25861060358,\n        0.23047559358000003,\n        0.23785992358000002,\n        0.22666495158000002,\n        0.22913282858000003\n      ]\n    },\n    {\n      \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.38844188798,\n      \"stddev\": 0.02113729780761881,\n      \"median\": 1.37464058458,\n      \"user\": 1.3908832549999999,\n      \"system\": 0.07484323,\n      \"min\": 1.37181832558,\n      \"max\": 1.41191584558,\n      \"times\": [\n        1.4112193935800001,\n        1.37181832558,\n        1.37261529058,\n        1.41191584558,\n        1.37464058458\n      ]\n    },\n    {\n      \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.27225418318,\n      \"stddev\": 0.022037719248398212,\n      \"median\": 1.2639250155800001,\n      \"user\": 1.2697592549999999,\n      \"system\": 0.057894230000000005,\n      \"min\": 1.2530245795800001,\n      \"max\": 1.30955951658,\n      \"times\": [\n        1.27305126158,\n        1.2617105425800001,\n        1.2530245795800001,\n        1.2639250155800001,\n        1.30955951658\n      ]\n    },\n    {\n      \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.27002260258,\n      \"stddev\": 0.01533721166388586,\n      \"median\": 1.26673824158,\n      \"user\": 1.2723328549999997,\n      \"system\": 0.05737063,\n      \"min\": 1.2492823425800001,\n      \"max\": 1.28709416758,\n      \"times\": [\n        1.2831002765800001,\n        1.2492823425800001,\n        1.26673824158,\n        1.28709416758,\n        1.26389798458\n      ]\n    },\n    {\n      \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.22134157118,\n      \"stddev\": 0.016981940959353795,\n      \"median\": 1.22018123058,\n      \"user\": 1.2145098549999997,\n      \"system\": 0.05896663,\n      \"min\": 1.20044739658,\n      \"max\": 1.24776178558,\n      \"times\": [\n        1.21714937358,\n        1.20044739658,\n        1.22116806958,\n        1.22018123058,\n        1.24776178558\n      ]\n    },\n    {\n      \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.22446362418,\n      \"stddev\": 0.05386754423934385,\n      \"median\": 1.20120862158,\n      \"user\": 1.2102058549999999,\n      \"system\": 0.05839123,\n      \"min\": 1.16453555158,\n      \"max\": 1.29644333458,\n      \"times\": [\n        1.20120862158,\n        1.19666737358,\n        1.16453555158,\n        1.26346323958,\n        1.29644333458\n      ]\n    },\n    {\n      \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.1799663825800002,\n      \"stddev\": 0.02045577024509444,\n      \"median\": 1.18441419058,\n      \"user\": 1.174559455,\n      \"system\": 0.054143830000000004,\n      \"min\": 1.15123146958,\n      \"max\": 1.20182384958,\n      \"times\": [\n        1.19436405958,\n        1.15123146958,\n        1.18441419058,\n        1.16799834358,\n        1.20182384958\n      ]\n    },\n    {\n      \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.20925884178,\n      \"stddev\": 0.04243235684366209,\n      \"median\": 1.19832233958,\n      \"user\": 1.1998770550000002,\n      \"system\": 0.056508230000000007,\n      \"min\": 1.18122275958,\n      \"max\": 1.28383843758,\n      \"times\": [\n        1.19832233958,\n        1.19853858758,\n        1.18437208458,\n        1.28383843758,\n        1.18122275958\n      ]\n    },\n    {\n      \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.23743179498,\n      \"stddev\": 0.057995195082309665,\n      \"median\": 1.1987639755800001,\n      \"user\": 1.2205680549999998,\n      \"system\": 0.06041503,\n      \"min\": 1.1912071775800002,\n      \"max\": 1.30293184858,\n      \"times\": [\n        1.29881727858,\n        1.1987639755800001,\n        1.30293184858,\n        1.1912071775800002,\n        1.19543869458\n      ]\n    },\n    {\n      \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.18491901838,\n      \"stddev\": 0.0182364561338903,\n      \"median\": 1.17615713358,\n      \"user\": 1.180738655,\n      \"system\": 0.05433543,\n      \"min\": 1.1708611125800001,\n      \"max\": 1.21513693958,\n      \"times\": [\n        1.21513693958,\n        1.1708611125800001,\n        1.18881564458,\n        1.17615713358,\n        1.17362426158\n      ]\n    },\n    {\n      \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.46619964918,\n      \"stddev\": 0.026203020918943668,\n      \"median\": 1.45625170658,\n      \"user\": 1.469126455,\n      \"system\": 0.05240783,\n      \"min\": 1.44840476958,\n      \"max\": 1.51202022658,\n      \"times\": [\n        1.51202022658,\n        1.44840476958,\n        1.46298511658,\n        1.45133642658,\n        1.45625170658\n      ]\n    },\n    {\n      \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.47333501978,\n      \"stddev\": 0.020994666373958252,\n      \"median\": 1.46607898958,\n      \"user\": 1.473675055,\n      \"system\": 0.05172062999999999,\n      \"min\": 1.45765768258,\n      \"max\": 1.51012819058,\n      \"times\": [\n        1.46367650158,\n        1.46913373458,\n        1.46607898958,\n        1.51012819058,\n        1.45765768258\n      ]\n    },\n    {\n      \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.51771261218,\n      \"stddev\": 0.044364715803029864,\n      \"median\": 1.5048782175800002,\n      \"user\": 1.512055655,\n      \"system\": 0.060420629999999996,\n      \"min\": 1.46564575358,\n      \"max\": 1.57057136158,\n      \"times\": [\n        1.49109436158,\n        1.46564575358,\n        1.5563733665800001,\n        1.5048782175800002,\n        1.57057136158\n      ]\n    },\n    {\n      \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.1778957573800002,\n      \"stddev\": 0.011923876408269772,\n      \"median\": 1.18495526058,\n      \"user\": 1.1740266549999998,\n      \"system\": 0.053774430000000005,\n      \"min\": 1.1613939445800001,\n      \"max\": 1.1878764215800002,\n      \"times\": [\n        1.1878764215800002,\n        1.18619426158,\n        1.1613939445800001,\n        1.18495526058,\n        1.1690588985800001\n      ]\n    },\n    {\n      \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.1667153129800003,\n      \"stddev\": 0.01146677254103177,\n      \"median\": 1.16231599058,\n      \"user\": 1.167455055,\n      \"system\": 0.05061103,\n      \"min\": 1.15359630058,\n      \"max\": 1.1832924925800001,\n      \"times\": [\n        1.16231599058,\n        1.1832924925800001,\n        1.15359630058,\n        1.17262827958,\n        1.16174350158\n      ]\n    },\n    {\n      \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.19108776198,\n      \"stddev\": 0.016492238728470873,\n      \"median\": 1.18268540358,\n      \"user\": 1.186483855,\n      \"system\": 0.05319982999999999,\n      \"min\": 1.17734090458,\n      \"max\": 1.21709410358,\n      \"times\": [\n        1.21709410358,\n        1.19766306658,\n        1.18268540358,\n        1.17734090458,\n        1.1806553315800001\n      ]\n    },\n    {\n      \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.20615394398,\n      \"stddev\": 0.027660186235174515,\n      \"median\": 1.2016053875800001,\n      \"user\": 1.197265655,\n      \"system\": 0.05422783,\n      \"min\": 1.17696583958,\n      \"max\": 1.2458893985800001,\n      \"times\": [\n        1.2016053875800001,\n        1.17696583958,\n        1.22034189258,\n        1.18596720158,\n        1.2458893985800001\n      ]\n    },\n    {\n      \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.27749537938,\n      \"stddev\": 0.07057736607392914,\n      \"median\": 1.29446924358,\n      \"user\": 1.262406655,\n      \"system\": 0.06233263,\n      \"min\": 1.1785878865800001,\n      \"max\": 1.3635076995800002,\n      \"times\": [\n        1.3635076995800002,\n        1.24047448758,\n        1.31043757958,\n        1.29446924358,\n        1.1785878865800001\n      ]\n    },\n    {\n      \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.14822543038,\n      \"stddev\": 0.00924099038024328,\n      \"median\": 1.15208629158,\n      \"user\": 1.151059255,\n      \"system\": 0.04130823,\n      \"min\": 1.13370564258,\n      \"max\": 1.15630690758,\n      \"times\": [\n        1.1446550795800001,\n        1.15630690758,\n        1.15208629158,\n        1.13370564258,\n        1.15437323058\n      ]\n    },\n    {\n      \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.22054745218,\n      \"stddev\": 0.061242157919159435,\n      \"median\": 1.1882360815800002,\n      \"user\": 1.213490455,\n      \"system\": 0.04996023,\n      \"min\": 1.16874542858,\n      \"max\": 1.31658947058,\n      \"times\": [\n        1.31658947058,\n        1.1882360815800002,\n        1.16874542858,\n        1.18312111558,\n        1.2460451645800001\n      ]\n    },\n    {\n      \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2365606477800002,\n      \"stddev\": 0.06360472369892207,\n      \"median\": 1.2164631615800001,\n      \"user\": 1.2285682549999999,\n      \"system\": 0.05130882999999999,\n      \"min\": 1.16209440358,\n      \"max\": 1.32931618858,\n      \"times\": [\n        1.2164631615800001,\n        1.32931618858,\n        1.26599444558,\n        1.20893503958,\n        1.16209440358\n      ]\n    },\n    {\n      \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2696973795800002,\n      \"stddev\": 0.04159927459477388,\n      \"median\": 1.27684017858,\n      \"user\": 1.264304255,\n      \"system\": 0.05290583,\n      \"min\": 1.22978968758,\n      \"max\": 1.3299621805800002,\n      \"times\": [\n        1.2307642325800001,\n        1.3299621805800002,\n        1.28113061858,\n        1.22978968758,\n        1.27684017858\n      ]\n    },\n    {\n      \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.27673278158,\n      \"stddev\": 0.06787133377578805,\n      \"median\": 1.25586917758,\n      \"user\": 1.264109855,\n      \"system\": 0.04554643,\n      \"min\": 1.2217248625800001,\n      \"max\": 1.38935475258,\n      \"times\": [\n        1.25586917758,\n        1.23002114458,\n        1.2217248625800001,\n        1.28669397058,\n        1.38935475258\n      ]\n    },\n    {\n      \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.3243956985800003,\n      \"stddev\": 0.10399093275669045,\n      \"median\": 1.2513165835800002,\n      \"user\": 1.303460855,\n      \"system\": 0.051160830000000004,\n      \"min\": 1.24486867658,\n      \"max\": 1.45647382358,\n      \"times\": [\n        1.45647382358,\n        1.4181343155800001,\n        1.25118509358,\n        1.2513165835800002,\n        1.24486867658\n      ]\n    },\n    {\n      \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.29175345518,\n      \"stddev\": 0.06852706785303934,\n      \"median\": 1.26702886858,\n      \"user\": 1.281001255,\n      \"system\": 0.047596629999999994,\n      \"min\": 1.23137537458,\n      \"max\": 1.3960737945800001,\n      \"times\": [\n        1.23137537458,\n        1.24055360058,\n        1.26702886858,\n        1.32373563758,\n        1.3960737945800001\n      ]\n    },\n    {\n      \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.2926468321800002,\n      \"stddev\": 0.05183537391861389,\n      \"median\": 1.2694013315800001,\n      \"user\": 1.297268855,\n      \"system\": 0.04506863,\n      \"min\": 1.25687373158,\n      \"max\": 1.38372343558,\n      \"times\": [\n        1.28432336458,\n        1.25687373158,\n        1.26891229758,\n        1.2694013315800001,\n        1.38372343558\n      ]\n    },\n    {\n      \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.25798030918,\n      \"stddev\": 0.05377448991003862,\n      \"median\": 1.24329144758,\n      \"user\": 1.255981855,\n      \"system\": 0.05220123,\n      \"min\": 1.19797268158,\n      \"max\": 1.34037057058,\n      \"times\": [\n        1.34037057058,\n        1.19797268158,\n        1.24329144758,\n        1.27572454158,\n        1.2325423045800001\n      ]\n    },\n    {\n      \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53696990178,\n      \"stddev\": 0.1586472022264278,\n      \"median\": 1.4769993535800001,\n      \"user\": 1.5339592549999999,\n      \"system\": 0.05444723,\n      \"min\": 1.4178423635800002,\n      \"max\": 1.8067807855800002,\n      \"times\": [\n        1.8067807855800002,\n        1.5462741985800001,\n        1.4769993535800001,\n        1.43695280758,\n        1.4178423635800002\n      ]\n    },\n    {\n      \"command\": \"e88a35825ec599b04047a4b7f85666cda5414a5d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.06796205557999999,\n      \"stddev\": 0.0011758441282876339,\n      \"median\": 0.06780157958000001,\n      \"user\": 0.060050455,\n      \"system\": 0.00713203,\n      \"min\": 0.06668090258,\n      \"max\": 0.06987070458000001,\n      \"times\": [\n        0.06987070458000001,\n        0.06796448758000001,\n        0.06780157958000001,\n        0.06668090258,\n        0.06749260358\n      ]\n    },\n    {\n      \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.48782965878,\n      \"stddev\": 0.04490390433909346,\n      \"median\": 1.4696355335800002,\n      \"user\": 1.488512055,\n      \"system\": 0.05085403000000001,\n      \"min\": 1.44293227758,\n      \"max\": 1.5538213785800001,\n      \"times\": [\n        1.46030726058,\n        1.5538213785800001,\n        1.51245184358,\n        1.4696355335800002,\n        1.44293227758\n      ]\n    },\n    {\n      \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.4686310523800001,\n      \"stddev\": 0.022193585340573068,\n      \"median\": 1.45619453258,\n      \"user\": 1.4745038549999998,\n      \"system\": 0.04746763,\n      \"min\": 1.4486049115800002,\n      \"max\": 1.49463914458,\n      \"times\": [\n        1.4529208605800001,\n        1.4486049115800002,\n        1.45619453258,\n        1.49463914458,\n        1.49079581258\n      ]\n    },\n    {\n      \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.44653690978,\n      \"stddev\": 0.03650362340863509,\n      \"median\": 1.4322318705800001,\n      \"user\": 1.452957055,\n      \"system\": 0.04513203,\n      \"min\": 1.4251714585800002,\n      \"max\": 1.51109271858,\n      \"times\": [\n        1.42560163258,\n        1.4251714585800002,\n        1.43858686858,\n        1.4322318705800001,\n        1.51109271858\n      ]\n    },\n    {\n      \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.51226583578,\n      \"stddev\": 0.06123479335327184,\n      \"median\": 1.5183290425800002,\n      \"user\": 1.501743055,\n      \"system\": 0.05613982999999999,\n      \"min\": 1.41904570558,\n      \"max\": 1.59090929758,\n      \"times\": [\n        1.59090929758,\n        1.5183290425800002,\n        1.5215728595800002,\n        1.5114722735800001,\n        1.41904570558\n      ]\n    },\n    {\n      \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.4240216655800002,\n      \"stddev\": 0.015156863895773132,\n      \"median\": 1.4253404575800002,\n      \"user\": 1.4291824549999999,\n      \"system\": 0.043243430000000006,\n      \"min\": 1.4006557565800002,\n      \"max\": 1.43993097858,\n      \"times\": [\n        1.4200451925800002,\n        1.43993097858,\n        1.4253404575800002,\n        1.4006557565800002,\n        1.43413594258\n      ]\n    },\n    {\n      \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.41899250298,\n      \"stddev\": 0.009239257578298602,\n      \"median\": 1.41748020958,\n      \"user\": 1.425441055,\n      \"system\": 0.04256543,\n      \"min\": 1.41117091658,\n      \"max\": 1.4341263395800001,\n      \"times\": [\n        1.4120838765800001,\n        1.4341263395800001,\n        1.41748020958,\n        1.4201011725800001,\n        1.41117091658\n      ]\n    },\n    {\n      \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.50124341678,\n      \"stddev\": 0.06059730755487976,\n      \"median\": 1.48843395158,\n      \"user\": 1.4929198549999998,\n      \"system\": 0.050351629999999994,\n      \"min\": 1.43508954958,\n      \"max\": 1.5935849555800001,\n      \"times\": [\n        1.52222442558,\n        1.43508954958,\n        1.5935849555800001,\n        1.48843395158,\n        1.46688420158\n      ]\n    },\n    {\n      \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.4961375835800002,\n      \"stddev\": 0.02208509345951612,\n      \"median\": 1.48538952558,\n      \"user\": 1.494979255,\n      \"system\": 0.05379983000000001,\n      \"min\": 1.4763286125800001,\n      \"max\": 1.5221548655800001,\n      \"times\": [\n        1.48538952558,\n        1.4763286125800001,\n        1.4789667045800001,\n        1.51784820958,\n        1.5221548655800001\n      ]\n    },\n    {\n      \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.51050924198,\n      \"stddev\": 0.017434718504715892,\n      \"median\": 1.51514339358,\n      \"user\": 1.5058134550000002,\n      \"system\": 0.05695903,\n      \"min\": 1.48202407058,\n      \"max\": 1.52917544958,\n      \"times\": [\n        1.48202407058,\n        1.52917544958,\n        1.51635194358,\n        1.50985135258,\n        1.51514339358\n      ]\n    },\n    {\n      \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.4908252489800002,\n      \"stddev\": 0.012820966127742714,\n      \"median\": 1.48500713758,\n      \"user\": 1.490410855,\n      \"system\": 0.053952429999999996,\n      \"min\": 1.47742962258,\n      \"max\": 1.50868024158,\n      \"times\": [\n        1.48361502058,\n        1.49939422258,\n        1.47742962258,\n        1.50868024158,\n        1.48500713758\n      ]\n    },\n    {\n      \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.49342522738,\n      \"stddev\": 0.03378549674710587,\n      \"median\": 1.4858383695800002,\n      \"user\": 1.494173255,\n      \"system\": 0.05205683000000001,\n      \"min\": 1.46464398158,\n      \"max\": 1.5503406045800001,\n      \"times\": [\n        1.5503406045800001,\n        1.4858383695800002,\n        1.49386287558,\n        1.46464398158,\n        1.47244030558\n      ]\n    },\n    {\n      \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5360036911800001,\n      \"stddev\": 0.03909402000835751,\n      \"median\": 1.53868055058,\n      \"user\": 1.531859855,\n      \"system\": 0.05631322999999999,\n      \"min\": 1.47091760658,\n      \"max\": 1.57136197358,\n      \"times\": [\n        1.57136197358,\n        1.56079683158,\n        1.53868055058,\n        1.53826149358,\n        1.47091760658\n      ]\n    },\n    {\n      \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.55657878998,\n      \"stddev\": 0.028538310647969543,\n      \"median\": 1.5463382305800002,\n      \"user\": 1.5397538549999998,\n      \"system\": 0.06144543,\n      \"min\": 1.5254535665800002,\n      \"max\": 1.5905943255800001,\n      \"times\": [\n        1.5905943255800001,\n        1.5254535665800002,\n        1.58261484358,\n        1.5378929835800002,\n        1.5463382305800002\n      ]\n    },\n    {\n      \"command\": \"0af852528f2ee3e72d8416376b32801418f80c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.27825830838,\n      \"stddev\": 0.018331629959574627,\n      \"median\": 0.26785268058,\n      \"user\": 0.26424205500000003,\n      \"system\": 0.01488523,\n      \"min\": 0.26141097258,\n      \"max\": 0.30465827658,\n      \"times\": [\n        0.30465827658,\n        0.28997114058,\n        0.26785268058,\n        0.26739847158,\n        0.26141097258\n      ]\n    },\n    {\n      \"command\": \"55b9e5ccb0f77314f3f957fc9f25db1345c0c43a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.27261758038,\n      \"stddev\": 0.00727387458094493,\n      \"median\": 0.27163051358,\n      \"user\": 0.263707855,\n      \"system\": 0.01382003,\n      \"min\": 0.26570178058,\n      \"max\": 0.28434811158,\n      \"times\": [\n        0.28434811158,\n        0.27369569958,\n        0.27163051358,\n        0.26771179658,\n        0.26570178058\n      ]\n    },\n    {\n      \"command\": \"4899923a09dd7b2c918553cb23bdac490e20b41d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.27427315618,\n      \"stddev\": 0.012347407654992393,\n      \"median\": 0.26821901358,\n      \"user\": 0.26087145500000003,\n      \"system\": 0.01366103,\n      \"min\": 0.26602313558,\n      \"max\": 0.29573862058,\n      \"times\": [\n        0.29573862058,\n        0.27375111158,\n        0.26763389958,\n        0.26821901358,\n        0.26602313558\n      ]\n    },\n    {\n      \"command\": \"d2fc9f54a9f670c9007e2c5d2b65cf6e59b0cd08 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.28048201338,\n      \"stddev\": 0.0046944286911807,\n      \"median\": 0.28211461058,\n      \"user\": 0.269114055,\n      \"system\": 0.01475943,\n      \"min\": 0.27292198358,\n      \"max\": 0.28431298058,\n      \"times\": [\n        0.27913678358,\n        0.28211461058,\n        0.28392370858,\n        0.27292198358,\n        0.28431298058\n      ]\n    },\n    {\n      \"command\": \"dcd83c60f4b7f2cca7b931bca1710865e4d52247 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.28689540178,\n      \"stddev\": 0.010207380784992632,\n      \"median\": 0.28673564658,\n      \"user\": 0.274755855,\n      \"system\": 0.016118630000000002,\n      \"min\": 0.27476035558,\n      \"max\": 0.30291325058,\n      \"times\": [\n        0.28676240358,\n        0.28330535258,\n        0.27476035558,\n        0.28673564658,\n        0.30291325058\n      ]\n    },\n    {\n      \"command\": \"7dce98553c301073408005e5b89eac2c3895c898 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.32267164818000005,\n      \"stddev\": 0.08887426479814463,\n      \"median\": 0.28159682858,\n      \"user\": 0.296689655,\n      \"system\": 0.02029223,\n      \"min\": 0.28113703158000003,\n      \"max\": 0.48158234558,\n      \"times\": [\n        0.48158234558,\n        0.28758072458,\n        0.28146131058,\n        0.28159682858,\n        0.28113703158000003\n      ]\n    },\n    {\n      \"command\": \"905fdce351b7704a385a2da0929576f8d7570eb1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null [ERROR]\",\n      \"mean\": 0.29018060718000005,\n      \"stddev\": 0.01313855522051142,\n      \"median\": 0.28229580158,\n      \"user\": 0.273766655,\n      \"system\": 0.01725323,\n      \"min\": 0.27799253458,\n      \"max\": 0.30754120458,\n      \"times\": [\n        0.30754120458,\n        0.28219066058000003,\n        0.30088283458000004,\n        0.28229580158,\n        0.27799253458\n      ]\n    },\n    {\n      \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6075921317800002,\n      \"stddev\": 0.02482752040049641,\n      \"median\": 1.6097004695800001,\n      \"user\": 1.592528055,\n      \"system\": 0.07872182999999999,\n      \"min\": 1.5735891275800002,\n      \"max\": 1.6353979315800002,\n      \"times\": [\n        1.62581450958,\n        1.6353979315800002,\n        1.59345862058,\n        1.6097004695800001,\n        1.5735891275800002\n      ]\n    },\n    {\n      \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6195005977799997,\n      \"stddev\": 0.052679956624063086,\n      \"median\": 1.59846446958,\n      \"user\": 1.6022754549999998,\n      \"system\": 0.08132202999999999,\n      \"min\": 1.5650411555800001,\n      \"max\": 1.6943565145800001,\n      \"times\": [\n        1.6943565145800001,\n        1.65213720758,\n        1.59846446958,\n        1.5875036415800001,\n        1.5650411555800001\n      ]\n    },\n    {\n      \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5898977223800002,\n      \"stddev\": 0.03252346740291128,\n      \"median\": 1.5808211255800002,\n      \"user\": 1.5786608549999999,\n      \"system\": 0.08109902999999999,\n      \"min\": 1.55479807758,\n      \"max\": 1.6257252015800001,\n      \"times\": [\n        1.6223411225800002,\n        1.5808211255800002,\n        1.56580308458,\n        1.6257252015800001,\n        1.55479807758\n      ]\n    },\n    {\n      \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.7000951357800003,\n      \"stddev\": 0.14651052386237404,\n      \"median\": 1.66012202158,\n      \"user\": 1.6589998549999998,\n      \"system\": 0.09158563,\n      \"min\": 1.5833550085800001,\n      \"max\": 1.9552757255800002,\n      \"times\": [\n        1.66012202158,\n        1.63255593658,\n        1.9552757255800002,\n        1.66916698658,\n        1.5833550085800001\n      ]\n    },\n    {\n      \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5900330677799999,\n      \"stddev\": 0.018076386072935272,\n      \"median\": 1.58549991558,\n      \"user\": 1.578905855,\n      \"system\": 0.08079863,\n      \"min\": 1.57619298558,\n      \"max\": 1.6212702645800001,\n      \"times\": [\n        1.58549991558,\n        1.58786854258,\n        1.57933363058,\n        1.57619298558,\n        1.6212702645800001\n      ]\n    },\n    {\n      \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.55420544318,\n      \"stddev\": 0.016226342940447634,\n      \"median\": 1.55923732558,\n      \"user\": 1.5473552549999998,\n      \"system\": 0.07584182999999999,\n      \"min\": 1.5256443475800001,\n      \"max\": 1.56593213958,\n      \"times\": [\n        1.56593213958,\n        1.5256443475800001,\n        1.56168081858,\n        1.5585325845800002,\n        1.55923732558\n      ]\n    },\n    {\n      \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.54248882658,\n      \"stddev\": 0.014052664281207917,\n      \"median\": 1.5388961305800002,\n      \"user\": 1.535532655,\n      \"system\": 0.07499582999999999,\n      \"min\": 1.52580921958,\n      \"max\": 1.5588620435800002,\n      \"times\": [\n        1.52580921958,\n        1.5388961305800002,\n        1.5588620435800002,\n        1.5338764315800002,\n        1.55500030758\n      ]\n    },\n    {\n      \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5480447537800002,\n      \"stddev\": 0.02019516903587461,\n      \"median\": 1.53953411658,\n      \"user\": 1.538138055,\n      \"system\": 0.06567143,\n      \"min\": 1.53198744158,\n      \"max\": 1.5817648875800001,\n      \"times\": [\n        1.5817648875800001,\n        1.5356525715800002,\n        1.53953411658,\n        1.53198744158,\n        1.5512847515800001\n      ]\n    },\n    {\n      \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.6030607979800002,\n      \"stddev\": 0.06686738804669205,\n      \"median\": 1.6483188185800002,\n      \"user\": 1.5894354549999998,\n      \"system\": 0.07092882999999998,\n      \"min\": 1.51736236858,\n      \"max\": 1.6560466015800002,\n      \"times\": [\n        1.54384335458,\n        1.6483188185800002,\n        1.6560466015800002,\n        1.64973284658,\n        1.51736236858\n      ]\n    },\n    {\n      \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.59003066518,\n      \"stddev\": 0.09593648736240547,\n      \"median\": 1.53385256558,\n      \"user\": 1.574337655,\n      \"system\": 0.07155442999999999,\n      \"min\": 1.52742928058,\n      \"max\": 1.75184737658,\n      \"times\": [\n        1.53385256558,\n        1.75184737658,\n        1.60477206158,\n        1.53225204158,\n        1.52742928058\n      ]\n    },\n    {\n      \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.64192069358,\n      \"stddev\": 0.1299287193260086,\n      \"median\": 1.59351967858,\n      \"user\": 1.621307655,\n      \"system\": 0.07358223,\n      \"min\": 1.53542229558,\n      \"max\": 1.84475347258,\n      \"times\": [\n        1.59351967858,\n        1.84475347258,\n        1.69395197558,\n        1.53542229558,\n        1.54195604558\n      ]\n    },\n    {\n      \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5583028099800003,\n      \"stddev\": 0.023870707641931665,\n      \"median\": 1.55928107258,\n      \"user\": 1.5548196549999997,\n      \"system\": 0.06405022999999999,\n      \"min\": 1.52640488258,\n      \"max\": 1.5927494985800001,\n      \"times\": [\n        1.5927494985800001,\n        1.5623708355800001,\n        1.52640488258,\n        1.5507077605800001,\n        1.55928107258\n      ]\n    },\n    {\n      \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.53586379538,\n      \"stddev\": 0.023677366144560192,\n      \"median\": 1.5337978325800001,\n      \"user\": 1.535215855,\n      \"system\": 0.06050082999999999,\n      \"min\": 1.50398111058,\n      \"max\": 1.56071146058,\n      \"times\": [\n        1.55719040758,\n        1.56071146058,\n        1.5337978325800001,\n        1.50398111058,\n        1.5236381655800002\n      ]\n    },\n    {\n      \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.51947943598,\n      \"stddev\": 0.015312028490062775,\n      \"median\": 1.51664484658,\n      \"user\": 1.519510855,\n      \"system\": 0.058511629999999995,\n      \"min\": 1.50248079858,\n      \"max\": 1.54374310658,\n      \"times\": [\n        1.50248079858,\n        1.51664484658,\n        1.51266507458,\n        1.52186335358,\n        1.54374310658\n      ]\n    },\n    {\n      \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.5315615833800003,\n      \"stddev\": 0.022168271457832497,\n      \"median\": 1.5277584675800002,\n      \"user\": 1.5298796549999998,\n      \"system\": 0.06154763,\n      \"min\": 1.5126789795800002,\n      \"max\": 1.5687485325800001,\n      \"times\": [\n        1.5277584675800002,\n        1.53161509758,\n        1.5687485325800001,\n        1.5126789795800002,\n        1.51700683958\n      ]\n    },\n    {\n      \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.32326846678,\n      \"stddev\": 0.033714478343168985,\n      \"median\": 1.31291020758,\n      \"user\": 1.319342655,\n      \"system\": 0.05853243,\n      \"min\": 1.2881143505800001,\n      \"max\": 1.3615462605800002,\n      \"times\": [\n        1.2881143505800001,\n        1.3615462605800002,\n        1.35614494158,\n        1.31291020758,\n        1.29762657358\n      ]\n    },\n    {\n      \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.04893614018,\n      \"stddev\": 0.01770884374312948,\n      \"median\": 1.04957539358,\n      \"user\": 1.039594455,\n      \"system\": 0.06022463,\n      \"min\": 1.03268755958,\n      \"max\": 1.07645372158,\n      \"times\": [\n        1.07645372158,\n        1.03268755958,\n        1.03398570758,\n        1.05197831858,\n        1.04957539358\n      ]\n    },\n    {\n      \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0475512563799998,\n      \"stddev\": 0.020657903601981692,\n      \"median\": 1.03412124558,\n      \"user\": 1.043459255,\n      \"system\": 0.060692029999999994,\n      \"min\": 1.02999665158,\n      \"max\": 1.07180686358,\n      \"times\": [\n        1.02999665158,\n        1.03348744558,\n        1.03412124558,\n        1.06834407558,\n        1.07180686358\n      ]\n    },\n    {\n      \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0674300559800003,\n      \"stddev\": 0.015165956188198526,\n      \"median\": 1.06811843458,\n      \"user\": 1.063904655,\n      \"system\": 0.06054963,\n      \"min\": 1.04880918258,\n      \"max\": 1.0838612835800001,\n      \"times\": [\n        1.0804628305800001,\n        1.0838612835800001,\n        1.04880918258,\n        1.06811843458,\n        1.05589854858\n      ]\n    },\n    {\n      \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0701791571800001,\n      \"stddev\": 0.03158006857854382,\n      \"median\": 1.06500526858,\n      \"user\": 1.0593770550000001,\n      \"system\": 0.059867229999999994,\n      \"min\": 1.04185725758,\n      \"max\": 1.11761889458,\n      \"times\": [\n        1.08336354958,\n        1.04185725758,\n        1.06500526858,\n        1.04305081558,\n        1.11761889458\n      ]\n    },\n    {\n      \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.08202750538,\n      \"stddev\": 0.012037921201915524,\n      \"median\": 1.08622350858,\n      \"user\": 1.0743874549999997,\n      \"system\": 0.06209663,\n      \"min\": 1.06799908758,\n      \"max\": 1.09735358258,\n      \"times\": [\n        1.08687226258,\n        1.09735358258,\n        1.07168908558,\n        1.08622350858,\n        1.06799908758\n      ]\n    },\n    {\n      \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0439616607800002,\n      \"stddev\": 0.007321218683017747,\n      \"median\": 1.04197833858,\n      \"user\": 1.043749455,\n      \"system\": 0.05679423,\n      \"min\": 1.03570287058,\n      \"max\": 1.05240699058,\n      \"times\": [\n        1.03570287058,\n        1.05240699058,\n        1.04197833858,\n        1.05074741058,\n        1.03897269358\n      ]\n    },\n    {\n      \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.05878782598,\n      \"stddev\": 0.005686070135606725,\n      \"median\": 1.05987401458,\n      \"user\": 1.0516796549999998,\n      \"system\": 0.06003463,\n      \"min\": 1.0525309925800002,\n      \"max\": 1.0653659445800001,\n      \"times\": [\n        1.05335462458,\n        1.05987401458,\n        1.06281355358,\n        1.0653659445800001,\n        1.0525309925800002\n      ]\n    },\n    {\n      \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0817769249800002,\n      \"stddev\": 0.04022404983716779,\n      \"median\": 1.0632576605800002,\n      \"user\": 1.0703128549999998,\n      \"system\": 0.06256202999999999,\n      \"min\": 1.04360879358,\n      \"max\": 1.14027342058,\n      \"times\": [\n        1.14027342058,\n        1.10585888058,\n        1.0632576605800002,\n        1.04360879358,\n        1.05588586958\n      ]\n    },\n    {\n      \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0621449479799998,\n      \"stddev\": 0.020584506811388358,\n      \"median\": 1.05505968558,\n      \"user\": 1.058148455,\n      \"system\": 0.05955242999999999,\n      \"min\": 1.03843051258,\n      \"max\": 1.08516674458,\n      \"times\": [\n        1.08219034158,\n        1.0498774555800001,\n        1.03843051258,\n        1.05505968558,\n        1.08516674458\n      ]\n    },\n    {\n      \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.04794046018,\n      \"stddev\": 0.012290620034103824,\n      \"median\": 1.04442604758,\n      \"user\": 1.046487055,\n      \"system\": 0.05953663,\n      \"min\": 1.0359464335800002,\n      \"max\": 1.06609146258,\n      \"times\": [\n        1.04442604758,\n        1.03903369458,\n        1.06609146258,\n        1.0359464335800002,\n        1.0542046625800001\n      ]\n    },\n    {\n      \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0436401823800001,\n      \"stddev\": 0.011010302045737462,\n      \"median\": 1.0421365735800001,\n      \"user\": 1.040214255,\n      \"system\": 0.059505430000000005,\n      \"min\": 1.03044851558,\n      \"max\": 1.05620621058,\n      \"times\": [\n        1.03608929158,\n        1.03044851558,\n        1.0533203205800001,\n        1.0421365735800001,\n        1.05620621058\n      ]\n    },\n    {\n      \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.05874660438,\n      \"stddev\": 0.03897551802018655,\n      \"median\": 1.04071591558,\n      \"user\": 1.0521908549999999,\n      \"system\": 0.05869662999999999,\n      \"min\": 1.02207437458,\n      \"max\": 1.11982614858,\n      \"times\": [\n        1.03745629658,\n        1.04071591558,\n        1.02207437458,\n        1.07366028658,\n        1.11982614858\n      ]\n    },\n    {\n      \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.05513492858,\n      \"stddev\": 0.015168059433790798,\n      \"median\": 1.0549179235800001,\n      \"user\": 1.048584255,\n      \"system\": 0.05890863,\n      \"min\": 1.03816250258,\n      \"max\": 1.0776403805800001,\n      \"times\": [\n        1.0549179235800001,\n        1.04500884058,\n        1.05994499558,\n        1.0776403805800001,\n        1.03816250258\n      ]\n    },\n    {\n      \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0394708177800003,\n      \"stddev\": 0.00434769124782663,\n      \"median\": 1.03907369658,\n      \"user\": 1.037337255,\n      \"system\": 0.05778783,\n      \"min\": 1.0343373605800001,\n      \"max\": 1.04562632558,\n      \"times\": [\n        1.04150505758,\n        1.04562632558,\n        1.03907369658,\n        1.03681164858,\n        1.0343373605800001\n      ]\n    },\n    {\n      \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.03057099178,\n      \"stddev\": 0.014242525023220813,\n      \"median\": 1.02539978658,\n      \"user\": 1.030554055,\n      \"system\": 0.05608463,\n      \"min\": 1.01980208558,\n      \"max\": 1.05404551058,\n      \"times\": [\n        1.05404551058,\n        1.02012356758,\n        1.02539978658,\n        1.01980208558,\n        1.0334840085800001\n      ]\n    },\n    {\n      \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.03840822498,\n      \"stddev\": 0.03336256848348742,\n      \"median\": 1.02451415358,\n      \"user\": 1.037868855,\n      \"system\": 0.05773843000000001,\n      \"min\": 1.01858897458,\n      \"max\": 1.09782657958,\n      \"times\": [\n        1.0239002965800001,\n        1.02451415358,\n        1.01858897458,\n        1.02721112058,\n        1.09782657958\n      ]\n    },\n    {\n      \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.07157882238,\n      \"stddev\": 0.08077955706128657,\n      \"median\": 1.04311381358,\n      \"user\": 1.062875055,\n      \"system\": 0.06407402999999999,\n      \"min\": 1.01367681658,\n      \"max\": 1.21330172458,\n      \"times\": [\n        1.21330172458,\n        1.05656836058,\n        1.04311381358,\n        1.03123339658,\n        1.01367681658\n      ]\n    },\n    {\n      \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.02577256618,\n      \"stddev\": 0.009317561549824735,\n      \"median\": 1.02868306358,\n      \"user\": 1.026838255,\n      \"system\": 0.055152230000000003,\n      \"min\": 1.01520371058,\n      \"max\": 1.03566611558,\n      \"times\": [\n        1.03261473658,\n        1.01669520458,\n        1.03566611558,\n        1.02868306358,\n        1.01520371058\n      ]\n    },\n    {\n      \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.04077268438,\n      \"stddev\": 0.018453723348316294,\n      \"median\": 1.0301236685800002,\n      \"user\": 1.039000255,\n      \"system\": 0.05738343,\n      \"min\": 1.0227548205800001,\n      \"max\": 1.06295057058,\n      \"times\": [\n        1.05835598358,\n        1.06295057058,\n        1.0301236685800002,\n        1.0227548205800001,\n        1.02967837858\n      ]\n    },\n    {\n      \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.0513018039800002,\n      \"stddev\": 0.015348343694921097,\n      \"median\": 1.05291374458,\n      \"user\": 1.044614655,\n      \"system\": 0.059866829999999996,\n      \"min\": 1.0275498115800001,\n      \"max\": 1.06468010458,\n      \"times\": [\n        1.0275498115800001,\n        1.04678975958,\n        1.0645755995800001,\n        1.06468010458,\n        1.05291374458\n      ]\n    },\n    {\n      \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.06912080118,\n      \"stddev\": 0.029232578774572766,\n      \"median\": 1.07097023658,\n      \"user\": 1.0602062549999998,\n      \"system\": 0.06359663,\n      \"min\": 1.03759748658,\n      \"max\": 1.10979508958,\n      \"times\": [\n        1.07097023658,\n        1.03759748658,\n        1.10979508958,\n        1.0824106555800002,\n        1.04483053758\n      ]\n    },\n    {\n      \"command\": \"39fa7aef1ba5eaa2eaf34d1e781d44dd4593a4ea < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.06703313138,\n      \"stddev\": 0.03364674968653869,\n      \"median\": 1.05356882158,\n      \"user\": 1.0617722550000002,\n      \"system\": 0.06224462999999999,\n      \"min\": 1.03575746758,\n      \"max\": 1.12134377158,\n      \"times\": [\n        1.03575746758,\n        1.07591373758,\n        1.12134377158,\n        1.04858185858,\n        1.05356882158\n      ]\n    },\n    {\n      \"command\": \"e0be86752d9aad510c0db335311a6e3dc12ca008 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n      \"mean\": 1.05491258478,\n      \"stddev\": 0.017600258273927166,\n      \"median\": 1.04887280258,\n      \"user\": 1.0516078549999999,\n      \"system\": 0.060388629999999985,\n      \"min\": 1.03694325658,\n      \"max\": 1.08318148858,\n      \"times\": [\n        1.08318148858,\n        1.05876168458,\n        1.04887280258,\n        1.04680369158,\n        1.03694325658\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "etc/performance/data/hyperfine-processed-output.json",
    "content": "[\n  {\n    \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.0057371883800000035,\n    \"stddev\": 0.0028569430915206732,\n    \"median\": 0.004347394580000004,\n    \"user\": 0.0012310550000000004,\n    \"system\": 0.0014688300000000002,\n    \"min\": 0.004024913580000004,\n    \"max\": 0.010748769580000005,\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"message\": \"cargo new delta\\n\",\n    \"time\": 0.010748769580000005\n  },\n  {\n    \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.0057371883800000035,\n    \"stddev\": 0.0028569430915206732,\n    \"median\": 0.004347394580000004,\n    \"user\": 0.0012310550000000004,\n    \"system\": 0.0014688300000000002,\n    \"min\": 0.004024913580000004,\n    \"max\": 0.010748769580000005,\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"message\": \"cargo new delta\\n\",\n    \"time\": 0.004347394580000004\n  },\n  {\n    \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.0057371883800000035,\n    \"stddev\": 0.0028569430915206732,\n    \"median\": 0.004347394580000004,\n    \"user\": 0.0012310550000000004,\n    \"system\": 0.0014688300000000002,\n    \"min\": 0.004024913580000004,\n    \"max\": 0.010748769580000005,\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"message\": \"cargo new delta\\n\",\n    \"time\": 0.004132040580000005\n  },\n  {\n    \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.0057371883800000035,\n    \"stddev\": 0.0028569430915206732,\n    \"median\": 0.004347394580000004,\n    \"user\": 0.0012310550000000004,\n    \"system\": 0.0014688300000000002,\n    \"min\": 0.004024913580000004,\n    \"max\": 0.010748769580000005,\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"message\": \"cargo new delta\\n\",\n    \"time\": 0.0054328235800000044\n  },\n  {\n    \"command\": \"5a4361fa037090adf729ab3f161832d969abc576 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.0057371883800000035,\n    \"stddev\": 0.0028569430915206732,\n    \"median\": 0.004347394580000004,\n    \"user\": 0.0012310550000000004,\n    \"system\": 0.0014688300000000002,\n    \"min\": 0.004024913580000004,\n    \"max\": 0.010748769580000005,\n    \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n    \"message\": \"cargo new delta\\n\",\n    \"time\": 0.004024913580000004\n  },\n  {\n    \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.004928191580000004,\n    \"stddev\": 0.0013069371692623559,\n    \"median\": 0.004380580580000005,\n    \"user\": 0.0012592550000000001,\n    \"system\": 0.0017418300000000002,\n    \"min\": 0.004253775580000004,\n    \"max\": 0.007263608580000004,\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"time\": 0.007263608580000004\n  },\n  {\n    \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.004928191580000004,\n    \"stddev\": 0.0013069371692623559,\n    \"median\": 0.004380580580000005,\n    \"user\": 0.0012592550000000001,\n    \"system\": 0.0017418300000000002,\n    \"min\": 0.004253775580000004,\n    \"max\": 0.007263608580000004,\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"time\": 0.004380580580000005\n  },\n  {\n    \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.004928191580000004,\n    \"stddev\": 0.0013069371692623559,\n    \"median\": 0.004380580580000005,\n    \"user\": 0.0012592550000000001,\n    \"system\": 0.0017418300000000002,\n    \"min\": 0.004253775580000004,\n    \"max\": 0.007263608580000004,\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"time\": 0.004414117580000003\n  },\n  {\n    \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.004928191580000004,\n    \"stddev\": 0.0013069371692623559,\n    \"median\": 0.004380580580000005,\n    \"user\": 0.0012592550000000001,\n    \"system\": 0.0017418300000000002,\n    \"min\": 0.004253775580000004,\n    \"max\": 0.007263608580000004,\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"time\": 0.004328875580000004\n  },\n  {\n    \"command\": \"4404c17c22e593db5758884e26327309c4ccb219 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.004928191580000004,\n    \"stddev\": 0.0013069371692623559,\n    \"median\": 0.004380580580000005,\n    \"user\": 0.0012592550000000001,\n    \"system\": 0.0017418300000000002,\n    \"min\": 0.004253775580000004,\n    \"max\": 0.007263608580000004,\n    \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n    \"message\": \"Read from stdin, write to stdout\\n\",\n    \"time\": 0.004253775580000004\n  },\n  {\n    \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36848439898,\n    \"stddev\": 0.020496361323753393,\n    \"median\": 1.36645537058,\n    \"user\": 1.3457382549999999,\n    \"system\": 0.014986030000000001,\n    \"min\": 1.34590549058,\n    \"max\": 1.39876596558,\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"message\": \"Parse file names and extensions\\n\",\n    \"time\": 1.39876596558\n  },\n  {\n    \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36848439898,\n    \"stddev\": 0.020496361323753393,\n    \"median\": 1.36645537058,\n    \"user\": 1.3457382549999999,\n    \"system\": 0.014986030000000001,\n    \"min\": 1.34590549058,\n    \"max\": 1.39876596558,\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"message\": \"Parse file names and extensions\\n\",\n    \"time\": 1.3764506145800002\n  },\n  {\n    \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36848439898,\n    \"stddev\": 0.020496361323753393,\n    \"median\": 1.36645537058,\n    \"user\": 1.3457382549999999,\n    \"system\": 0.014986030000000001,\n    \"min\": 1.34590549058,\n    \"max\": 1.39876596558,\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"message\": \"Parse file names and extensions\\n\",\n    \"time\": 1.35484455358\n  },\n  {\n    \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36848439898,\n    \"stddev\": 0.020496361323753393,\n    \"median\": 1.36645537058,\n    \"user\": 1.3457382549999999,\n    \"system\": 0.014986030000000001,\n    \"min\": 1.34590549058,\n    \"max\": 1.39876596558,\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"message\": \"Parse file names and extensions\\n\",\n    \"time\": 1.36645537058\n  },\n  {\n    \"command\": \"a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36848439898,\n    \"stddev\": 0.020496361323753393,\n    \"median\": 1.36645537058,\n    \"user\": 1.3457382549999999,\n    \"system\": 0.014986030000000001,\n    \"min\": 1.34590549058,\n    \"max\": 1.39876596558,\n    \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n    \"message\": \"Parse file names and extensions\\n\",\n    \"time\": 1.34590549058\n  },\n  {\n    \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.30457460598,\n    \"stddev\": 0.019193206493133295,\n    \"median\": 1.30805275458,\n    \"user\": 1.285742255,\n    \"system\": 0.013228229999999999,\n    \"min\": 1.27794371158,\n    \"max\": 1.32412973158,\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"message\": \"Output all input lines\\n\",\n    \"time\": 1.29289490958\n  },\n  {\n    \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.30457460598,\n    \"stddev\": 0.019193206493133295,\n    \"median\": 1.30805275458,\n    \"user\": 1.285742255,\n    \"system\": 0.013228229999999999,\n    \"min\": 1.27794371158,\n    \"max\": 1.32412973158,\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"message\": \"Output all input lines\\n\",\n    \"time\": 1.27794371158\n  },\n  {\n    \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.30457460598,\n    \"stddev\": 0.019193206493133295,\n    \"median\": 1.30805275458,\n    \"user\": 1.285742255,\n    \"system\": 0.013228229999999999,\n    \"min\": 1.27794371158,\n    \"max\": 1.32412973158,\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"message\": \"Output all input lines\\n\",\n    \"time\": 1.30805275458\n  },\n  {\n    \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.30457460598,\n    \"stddev\": 0.019193206493133295,\n    \"median\": 1.30805275458,\n    \"user\": 1.285742255,\n    \"system\": 0.013228229999999999,\n    \"min\": 1.27794371158,\n    \"max\": 1.32412973158,\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"message\": \"Output all input lines\\n\",\n    \"time\": 1.32412973158\n  },\n  {\n    \"command\": \"7dc1c93a4057085eed9721b56aa1db472ba7fef3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.30457460598,\n    \"stddev\": 0.019193206493133295,\n    \"median\": 1.30805275458,\n    \"user\": 1.285742255,\n    \"system\": 0.013228229999999999,\n    \"min\": 1.27794371158,\n    \"max\": 1.32412973158,\n    \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n    \"message\": \"Output all input lines\\n\",\n    \"time\": 1.31985192258\n  },\n  {\n    \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.05453571978000001,\n    \"stddev\": 0.008221394169507245,\n    \"median\": 0.05129599758000001,\n    \"user\": 0.042214255,\n    \"system\": 0.007802829999999999,\n    \"min\": 0.049473020580000006,\n    \"max\": 0.06912223658000001,\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"time\": 0.06912223658000001\n  },\n  {\n    \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.05453571978000001,\n    \"stddev\": 0.008221394169507245,\n    \"median\": 0.05129599758000001,\n    \"user\": 0.042214255,\n    \"system\": 0.007802829999999999,\n    \"min\": 0.049473020580000006,\n    \"max\": 0.06912223658000001,\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"time\": 0.052322963580000006\n  },\n  {\n    \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.05453571978000001,\n    \"stddev\": 0.008221394169507245,\n    \"median\": 0.05129599758000001,\n    \"user\": 0.042214255,\n    \"system\": 0.007802829999999999,\n    \"min\": 0.049473020580000006,\n    \"max\": 0.06912223658000001,\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"time\": 0.05129599758000001\n  },\n  {\n    \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.05453571978000001,\n    \"stddev\": 0.008221394169507245,\n    \"median\": 0.05129599758000001,\n    \"user\": 0.042214255,\n    \"system\": 0.007802829999999999,\n    \"min\": 0.049473020580000006,\n    \"max\": 0.06912223658000001,\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"time\": 0.05046438058000001\n  },\n  {\n    \"command\": \"f076e143e4befe7271187ae52652a0079f1733d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.05453571978000001,\n    \"stddev\": 0.008221394169507245,\n    \"median\": 0.05129599758000001,\n    \"user\": 0.042214255,\n    \"system\": 0.007802829999999999,\n    \"min\": 0.049473020580000006,\n    \"max\": 0.06912223658000001,\n    \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n    \"message\": \"Only output color if stdout is a tty\\n\",\n    \"time\": 0.049473020580000006\n  },\n  {\n    \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3005272063800002,\n    \"stddev\": 0.014531176758054664,\n    \"median\": 1.2954239595800001,\n    \"user\": 1.282677255,\n    \"system\": 0.012415230000000003,\n    \"min\": 1.28331508958,\n    \"max\": 1.32027465258,\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"time\": 1.2937780595800001\n  },\n  {\n    \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3005272063800002,\n    \"stddev\": 0.014531176758054664,\n    \"median\": 1.2954239595800001,\n    \"user\": 1.282677255,\n    \"system\": 0.012415230000000003,\n    \"min\": 1.28331508958,\n    \"max\": 1.32027465258,\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"time\": 1.30984427058\n  },\n  {\n    \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3005272063800002,\n    \"stddev\": 0.014531176758054664,\n    \"median\": 1.2954239595800001,\n    \"user\": 1.282677255,\n    \"system\": 0.012415230000000003,\n    \"min\": 1.28331508958,\n    \"max\": 1.32027465258,\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"time\": 1.32027465258\n  },\n  {\n    \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3005272063800002,\n    \"stddev\": 0.014531176758054664,\n    \"median\": 1.2954239595800001,\n    \"user\": 1.282677255,\n    \"system\": 0.012415230000000003,\n    \"min\": 1.28331508958,\n    \"max\": 1.32027465258,\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"time\": 1.28331508958\n  },\n  {\n    \"command\": \"0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3005272063800002,\n    \"stddev\": 0.014531176758054664,\n    \"median\": 1.2954239595800001,\n    \"user\": 1.282677255,\n    \"system\": 0.012415230000000003,\n    \"min\": 1.28331508958,\n    \"max\": 1.32027465258,\n    \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n    \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n    \"time\": 1.2954239595800001\n  },\n  {\n    \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3386421725800002,\n    \"stddev\": 0.02539243961010324,\n    \"median\": 1.33458602658,\n    \"user\": 1.316659255,\n    \"system\": 0.01446143,\n    \"min\": 1.31727567658,\n    \"max\": 1.38138722758,\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"message\": \"Refactor colorizing\\n\",\n    \"time\": 1.38138722758\n  },\n  {\n    \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3386421725800002,\n    \"stddev\": 0.02539243961010324,\n    \"median\": 1.33458602658,\n    \"user\": 1.316659255,\n    \"system\": 0.01446143,\n    \"min\": 1.31727567658,\n    \"max\": 1.38138722758,\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"message\": \"Refactor colorizing\\n\",\n    \"time\": 1.33801065358\n  },\n  {\n    \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3386421725800002,\n    \"stddev\": 0.02539243961010324,\n    \"median\": 1.33458602658,\n    \"user\": 1.316659255,\n    \"system\": 0.01446143,\n    \"min\": 1.31727567658,\n    \"max\": 1.38138722758,\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"message\": \"Refactor colorizing\\n\",\n    \"time\": 1.33458602658\n  },\n  {\n    \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3386421725800002,\n    \"stddev\": 0.02539243961010324,\n    \"median\": 1.33458602658,\n    \"user\": 1.316659255,\n    \"system\": 0.01446143,\n    \"min\": 1.31727567658,\n    \"max\": 1.38138722758,\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"message\": \"Refactor colorizing\\n\",\n    \"time\": 1.31727567658\n  },\n  {\n    \"command\": \"be5f329e1b5394e840012f2d70456cd0422001c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3386421725800002,\n    \"stddev\": 0.02539243961010324,\n    \"median\": 1.33458602658,\n    \"user\": 1.316659255,\n    \"system\": 0.01446143,\n    \"min\": 1.31727567658,\n    \"max\": 1.38138722758,\n    \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n    \"message\": \"Refactor colorizing\\n\",\n    \"time\": 1.32195127858\n  },\n  {\n    \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3247792037800001,\n    \"stddev\": 0.030463784568606624,\n    \"median\": 1.3188642135800002,\n    \"user\": 1.304445455,\n    \"system\": 0.01382043,\n    \"min\": 1.2823134415800002,\n    \"max\": 1.3634266645800002,\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"time\": 1.3634266645800002\n  },\n  {\n    \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3247792037800001,\n    \"stddev\": 0.030463784568606624,\n    \"median\": 1.3188642135800002,\n    \"user\": 1.304445455,\n    \"system\": 0.01382043,\n    \"min\": 1.2823134415800002,\n    \"max\": 1.3634266645800002,\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"time\": 1.34254635158\n  },\n  {\n    \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3247792037800001,\n    \"stddev\": 0.030463784568606624,\n    \"median\": 1.3188642135800002,\n    \"user\": 1.304445455,\n    \"system\": 0.01382043,\n    \"min\": 1.2823134415800002,\n    \"max\": 1.3634266645800002,\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"time\": 1.3188642135800002\n  },\n  {\n    \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3247792037800001,\n    \"stddev\": 0.030463784568606624,\n    \"median\": 1.3188642135800002,\n    \"user\": 1.304445455,\n    \"system\": 0.01382043,\n    \"min\": 1.2823134415800002,\n    \"max\": 1.3634266645800002,\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"time\": 1.2823134415800002\n  },\n  {\n    \"command\": \"c6f1a38bcc9e61aad7598845176817c21bac54cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3247792037800001,\n    \"stddev\": 0.030463784568606624,\n    \"median\": 1.3188642135800002,\n    \"user\": 1.304445455,\n    \"system\": 0.01382043,\n    \"min\": 1.2823134415800002,\n    \"max\": 1.3634266645800002,\n    \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n    \"message\": \"Retain original colors except in diff hunks\\n\",\n    \"time\": 1.3167453475800002\n  },\n  {\n    \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.21027658618,\n    \"stddev\": 0.03685874027230938,\n    \"median\": 1.19598048558,\n    \"user\": 1.188826255,\n    \"system\": 0.013752029999999998,\n    \"min\": 1.1876158515800002,\n    \"max\": 1.27584478158,\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"time\": 1.27584478158\n  },\n  {\n    \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.21027658618,\n    \"stddev\": 0.03685874027230938,\n    \"median\": 1.19598048558,\n    \"user\": 1.188826255,\n    \"system\": 0.013752029999999998,\n    \"min\": 1.1876158515800002,\n    \"max\": 1.27584478158,\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"time\": 1.19598048558\n  },\n  {\n    \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.21027658618,\n    \"stddev\": 0.03685874027230938,\n    \"median\": 1.19598048558,\n    \"user\": 1.188826255,\n    \"system\": 0.013752029999999998,\n    \"min\": 1.1876158515800002,\n    \"max\": 1.27584478158,\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"time\": 1.19795664758\n  },\n  {\n    \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.21027658618,\n    \"stddev\": 0.03685874027230938,\n    \"median\": 1.19598048558,\n    \"user\": 1.188826255,\n    \"system\": 0.013752029999999998,\n    \"min\": 1.1876158515800002,\n    \"max\": 1.27584478158,\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"time\": 1.1939851645800001\n  },\n  {\n    \"command\": \"044913f0bcd319b51733c9f6f91788d72314d40a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.21027658618,\n    \"stddev\": 0.03685874027230938,\n    \"median\": 1.19598048558,\n    \"user\": 1.188826255,\n    \"system\": 0.013752029999999998,\n    \"min\": 1.1876158515800002,\n    \"max\": 1.27584478158,\n    \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n    \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n    \"time\": 1.1876158515800002\n  },\n  {\n    \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.90366085718,\n    \"stddev\": 0.008688768385093972,\n    \"median\": 0.9064323235800001,\n    \"user\": 0.8819956550000001,\n    \"system\": 0.013556830000000002,\n    \"min\": 0.8886819245800001,\n    \"max\": 0.9106618295800001,\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"message\": \"Dark theme\\n\",\n    \"time\": 0.8886819245800001\n  },\n  {\n    \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.90366085718,\n    \"stddev\": 0.008688768385093972,\n    \"median\": 0.9064323235800001,\n    \"user\": 0.8819956550000001,\n    \"system\": 0.013556830000000002,\n    \"min\": 0.8886819245800001,\n    \"max\": 0.9106618295800001,\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"message\": \"Dark theme\\n\",\n    \"time\": 0.9043455195800001\n  },\n  {\n    \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.90366085718,\n    \"stddev\": 0.008688768385093972,\n    \"median\": 0.9064323235800001,\n    \"user\": 0.8819956550000001,\n    \"system\": 0.013556830000000002,\n    \"min\": 0.8886819245800001,\n    \"max\": 0.9106618295800001,\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"message\": \"Dark theme\\n\",\n    \"time\": 0.9106618295800001\n  },\n  {\n    \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.90366085718,\n    \"stddev\": 0.008688768385093972,\n    \"median\": 0.9064323235800001,\n    \"user\": 0.8819956550000001,\n    \"system\": 0.013556830000000002,\n    \"min\": 0.8886819245800001,\n    \"max\": 0.9106618295800001,\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"message\": \"Dark theme\\n\",\n    \"time\": 0.9081826885800001\n  },\n  {\n    \"command\": \"fab69669814b3d88868b5a4f6f0dc03b5165a3aa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.90366085718,\n    \"stddev\": 0.008688768385093972,\n    \"median\": 0.9064323235800001,\n    \"user\": 0.8819956550000001,\n    \"system\": 0.013556830000000002,\n    \"min\": 0.8886819245800001,\n    \"max\": 0.9106618295800001,\n    \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n    \"message\": \"Dark theme\\n\",\n    \"time\": 0.9064323235800001\n  },\n  {\n    \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9021375341800001,\n    \"stddev\": 0.013239280711404065,\n    \"median\": 0.9048354515800001,\n    \"user\": 0.8802944549999999,\n    \"system\": 0.014199030000000001,\n    \"min\": 0.8893216625800001,\n    \"max\": 0.9209375105800001,\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"message\": \"Handle broken pipe\\n\",\n    \"time\": 0.8893216625800001\n  },\n  {\n    \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9021375341800001,\n    \"stddev\": 0.013239280711404065,\n    \"median\": 0.9048354515800001,\n    \"user\": 0.8802944549999999,\n    \"system\": 0.014199030000000001,\n    \"min\": 0.8893216625800001,\n    \"max\": 0.9209375105800001,\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"message\": \"Handle broken pipe\\n\",\n    \"time\": 0.9048354515800001\n  },\n  {\n    \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9021375341800001,\n    \"stddev\": 0.013239280711404065,\n    \"median\": 0.9048354515800001,\n    \"user\": 0.8802944549999999,\n    \"system\": 0.014199030000000001,\n    \"min\": 0.8893216625800001,\n    \"max\": 0.9209375105800001,\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"message\": \"Handle broken pipe\\n\",\n    \"time\": 0.90611701058\n  },\n  {\n    \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9021375341800001,\n    \"stddev\": 0.013239280711404065,\n    \"median\": 0.9048354515800001,\n    \"user\": 0.8802944549999999,\n    \"system\": 0.014199030000000001,\n    \"min\": 0.8893216625800001,\n    \"max\": 0.9209375105800001,\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"message\": \"Handle broken pipe\\n\",\n    \"time\": 0.9209375105800001\n  },\n  {\n    \"command\": \"4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9021375341800001,\n    \"stddev\": 0.013239280711404065,\n    \"median\": 0.9048354515800001,\n    \"user\": 0.8802944549999999,\n    \"system\": 0.014199030000000001,\n    \"min\": 0.8893216625800001,\n    \"max\": 0.9209375105800001,\n    \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n    \"message\": \"Handle broken pipe\\n\",\n    \"time\": 0.8894760355800001\n  },\n  {\n    \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9342394967800001,\n    \"stddev\": 0.026118879942367848,\n    \"median\": 0.9361726815800001,\n    \"user\": 0.909671655,\n    \"system\": 0.01621023,\n    \"min\": 0.8954281705800001,\n    \"max\": 0.9686347565800001,\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"message\": \"Change variable name\\n\",\n    \"time\": 0.93144292658\n  },\n  {\n    \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9342394967800001,\n    \"stddev\": 0.026118879942367848,\n    \"median\": 0.9361726815800001,\n    \"user\": 0.909671655,\n    \"system\": 0.01621023,\n    \"min\": 0.8954281705800001,\n    \"max\": 0.9686347565800001,\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"message\": \"Change variable name\\n\",\n    \"time\": 0.9395189485800001\n  },\n  {\n    \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9342394967800001,\n    \"stddev\": 0.026118879942367848,\n    \"median\": 0.9361726815800001,\n    \"user\": 0.909671655,\n    \"system\": 0.01621023,\n    \"min\": 0.8954281705800001,\n    \"max\": 0.9686347565800001,\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"message\": \"Change variable name\\n\",\n    \"time\": 0.8954281705800001\n  },\n  {\n    \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9342394967800001,\n    \"stddev\": 0.026118879942367848,\n    \"median\": 0.9361726815800001,\n    \"user\": 0.909671655,\n    \"system\": 0.01621023,\n    \"min\": 0.8954281705800001,\n    \"max\": 0.9686347565800001,\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"message\": \"Change variable name\\n\",\n    \"time\": 0.9686347565800001\n  },\n  {\n    \"command\": \"147e923c49c410522b0f1b6372d71254f5015413 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9342394967800001,\n    \"stddev\": 0.026118879942367848,\n    \"median\": 0.9361726815800001,\n    \"user\": 0.909671655,\n    \"system\": 0.01621023,\n    \"min\": 0.8954281705800001,\n    \"max\": 0.9686347565800001,\n    \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n    \"message\": \"Change variable name\\n\",\n    \"time\": 0.9361726815800001\n  },\n  {\n    \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91785955458,\n    \"stddev\": 0.041758643342313106,\n    \"median\": 0.9278772835800001,\n    \"user\": 0.897875655,\n    \"system\": 0.01312963,\n    \"min\": 0.8735855395800001,\n    \"max\": 0.9629578075800002,\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"time\": 0.9629578075800002\n  },\n  {\n    \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91785955458,\n    \"stddev\": 0.041758643342313106,\n    \"median\": 0.9278772835800001,\n    \"user\": 0.897875655,\n    \"system\": 0.01312963,\n    \"min\": 0.8735855395800001,\n    \"max\": 0.9629578075800002,\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"time\": 0.9278772835800001\n  },\n  {\n    \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91785955458,\n    \"stddev\": 0.041758643342313106,\n    \"median\": 0.9278772835800001,\n    \"user\": 0.897875655,\n    \"system\": 0.01312963,\n    \"min\": 0.8735855395800001,\n    \"max\": 0.9629578075800002,\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"time\": 0.9500016335800001\n  },\n  {\n    \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91785955458,\n    \"stddev\": 0.041758643342313106,\n    \"median\": 0.9278772835800001,\n    \"user\": 0.897875655,\n    \"system\": 0.01312963,\n    \"min\": 0.8735855395800001,\n    \"max\": 0.9629578075800002,\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"time\": 0.8748755085800001\n  },\n  {\n    \"command\": \"3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91785955458,\n    \"stddev\": 0.041758643342313106,\n    \"median\": 0.9278772835800001,\n    \"user\": 0.897875655,\n    \"system\": 0.01312963,\n    \"min\": 0.8735855395800001,\n    \"max\": 0.9629578075800002,\n    \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n    \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n    \"time\": 0.8735855395800001\n  },\n  {\n    \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.8789130757800001,\n    \"stddev\": 0.01898422456827194,\n    \"median\": 0.8714557775800001,\n    \"user\": 0.8620840549999998,\n    \"system\": 0.01157803,\n    \"min\": 0.8614270865800001,\n    \"max\": 0.9092009125800001,\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"message\": \"Propagate unexpected error\\n\",\n    \"time\": 0.8848604545800001\n  },\n  {\n    \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.8789130757800001,\n    \"stddev\": 0.01898422456827194,\n    \"median\": 0.8714557775800001,\n    \"user\": 0.8620840549999998,\n    \"system\": 0.01157803,\n    \"min\": 0.8614270865800001,\n    \"max\": 0.9092009125800001,\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"message\": \"Propagate unexpected error\\n\",\n    \"time\": 0.9092009125800001\n  },\n  {\n    \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.8789130757800001,\n    \"stddev\": 0.01898422456827194,\n    \"median\": 0.8714557775800001,\n    \"user\": 0.8620840549999998,\n    \"system\": 0.01157803,\n    \"min\": 0.8614270865800001,\n    \"max\": 0.9092009125800001,\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"message\": \"Propagate unexpected error\\n\",\n    \"time\": 0.8614270865800001\n  },\n  {\n    \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.8789130757800001,\n    \"stddev\": 0.01898422456827194,\n    \"median\": 0.8714557775800001,\n    \"user\": 0.8620840549999998,\n    \"system\": 0.01157803,\n    \"min\": 0.8614270865800001,\n    \"max\": 0.9092009125800001,\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"message\": \"Propagate unexpected error\\n\",\n    \"time\": 0.8714557775800001\n  },\n  {\n    \"command\": \"0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.8789130757800001,\n    \"stddev\": 0.01898422456827194,\n    \"median\": 0.8714557775800001,\n    \"user\": 0.8620840549999998,\n    \"system\": 0.01157803,\n    \"min\": 0.8614270865800001,\n    \"max\": 0.9092009125800001,\n    \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n    \"message\": \"Propagate unexpected error\\n\",\n    \"time\": 0.8676211475800001\n  },\n  {\n    \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14690325578,\n    \"stddev\": 0.018505171093728793,\n    \"median\": 1.13664799658,\n    \"user\": 1.128066255,\n    \"system\": 0.01204403,\n    \"min\": 1.1285754435800002,\n    \"max\": 1.17070288658,\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"time\": 1.17070288658\n  },\n  {\n    \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14690325578,\n    \"stddev\": 0.018505171093728793,\n    \"median\": 1.13664799658,\n    \"user\": 1.128066255,\n    \"system\": 0.01204403,\n    \"min\": 1.1285754435800002,\n    \"max\": 1.17070288658,\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"time\": 1.1360506695800001\n  },\n  {\n    \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14690325578,\n    \"stddev\": 0.018505171093728793,\n    \"median\": 1.13664799658,\n    \"user\": 1.128066255,\n    \"system\": 0.01204403,\n    \"min\": 1.1285754435800002,\n    \"max\": 1.17070288658,\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"time\": 1.16253928258\n  },\n  {\n    \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14690325578,\n    \"stddev\": 0.018505171093728793,\n    \"median\": 1.13664799658,\n    \"user\": 1.128066255,\n    \"system\": 0.01204403,\n    \"min\": 1.1285754435800002,\n    \"max\": 1.17070288658,\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"time\": 1.1285754435800002\n  },\n  {\n    \"command\": \"183eba159f7e79a7addb599e2b52b39442cf9ee0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14690325578,\n    \"stddev\": 0.018505171093728793,\n    \"median\": 1.13664799658,\n    \"user\": 1.128066255,\n    \"system\": 0.01204403,\n    \"min\": 1.1285754435800002,\n    \"max\": 1.17070288658,\n    \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n    \"message\": \"Right pad to 100 char width\\n\",\n    \"time\": 1.13664799658\n  },\n  {\n    \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.15079209558,\n    \"stddev\": 0.03117522876810542,\n    \"median\": 1.14344762958,\n    \"user\": 1.1305344549999998,\n    \"system\": 0.012347829999999999,\n    \"min\": 1.12662479358,\n    \"max\": 1.2038413325800001,\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"time\": 1.1501086735800001\n  },\n  {\n    \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.15079209558,\n    \"stddev\": 0.03117522876810542,\n    \"median\": 1.14344762958,\n    \"user\": 1.1305344549999998,\n    \"system\": 0.012347829999999999,\n    \"min\": 1.12662479358,\n    \"max\": 1.2038413325800001,\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"time\": 1.1299380485800001\n  },\n  {\n    \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.15079209558,\n    \"stddev\": 0.03117522876810542,\n    \"median\": 1.14344762958,\n    \"user\": 1.1305344549999998,\n    \"system\": 0.012347829999999999,\n    \"min\": 1.12662479358,\n    \"max\": 1.2038413325800001,\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"time\": 1.14344762958\n  },\n  {\n    \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.15079209558,\n    \"stddev\": 0.03117522876810542,\n    \"median\": 1.14344762958,\n    \"user\": 1.1305344549999998,\n    \"system\": 0.012347829999999999,\n    \"min\": 1.12662479358,\n    \"max\": 1.2038413325800001,\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"time\": 1.12662479358\n  },\n  {\n    \"command\": \"6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.15079209558,\n    \"stddev\": 0.03117522876810542,\n    \"median\": 1.14344762958,\n    \"user\": 1.1305344549999998,\n    \"system\": 0.012347829999999999,\n    \"min\": 1.12662479358,\n    \"max\": 1.2038413325800001,\n    \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n    \"message\": \"Don't panic unnecessarily\\n\",\n    \"time\": 1.2038413325800001\n  },\n  {\n    \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.33110646118,\n    \"stddev\": 0.19376168417387554,\n    \"median\": 1.23799058158,\n    \"user\": 1.267553255,\n    \"system\": 0.02585963,\n    \"min\": 1.15106718158,\n    \"max\": 1.62062786858,\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"message\": \"Change names\\n\",\n    \"time\": 1.21082275858\n  },\n  {\n    \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.33110646118,\n    \"stddev\": 0.19376168417387554,\n    \"median\": 1.23799058158,\n    \"user\": 1.267553255,\n    \"system\": 0.02585963,\n    \"min\": 1.15106718158,\n    \"max\": 1.62062786858,\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"message\": \"Change names\\n\",\n    \"time\": 1.15106718158\n  },\n  {\n    \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.33110646118,\n    \"stddev\": 0.19376168417387554,\n    \"median\": 1.23799058158,\n    \"user\": 1.267553255,\n    \"system\": 0.02585963,\n    \"min\": 1.15106718158,\n    \"max\": 1.62062786858,\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"message\": \"Change names\\n\",\n    \"time\": 1.23799058158\n  },\n  {\n    \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.33110646118,\n    \"stddev\": 0.19376168417387554,\n    \"median\": 1.23799058158,\n    \"user\": 1.267553255,\n    \"system\": 0.02585963,\n    \"min\": 1.15106718158,\n    \"max\": 1.62062786858,\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"message\": \"Change names\\n\",\n    \"time\": 1.62062786858\n  },\n  {\n    \"command\": \"36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.33110646118,\n    \"stddev\": 0.19376168417387554,\n    \"median\": 1.23799058158,\n    \"user\": 1.267553255,\n    \"system\": 0.02585963,\n    \"min\": 1.15106718158,\n    \"max\": 1.62062786858,\n    \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n    \"message\": \"Change names\\n\",\n    \"time\": 1.4350239155800002\n  },\n  {\n    \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3806832149800001,\n    \"stddev\": 0.21321624075450468,\n    \"median\": 1.31376602558,\n    \"user\": 1.3030440549999998,\n    \"system\": 0.02527323,\n    \"min\": 1.2429902425800001,\n    \"max\": 1.7532648405800002,\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"message\": \"README\\n\",\n    \"time\": 1.31376602558\n  },\n  {\n    \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3806832149800001,\n    \"stddev\": 0.21321624075450468,\n    \"median\": 1.31376602558,\n    \"user\": 1.3030440549999998,\n    \"system\": 0.02527323,\n    \"min\": 1.2429902425800001,\n    \"max\": 1.7532648405800002,\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"message\": \"README\\n\",\n    \"time\": 1.7532648405800002\n  },\n  {\n    \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3806832149800001,\n    \"stddev\": 0.21321624075450468,\n    \"median\": 1.31376602558,\n    \"user\": 1.3030440549999998,\n    \"system\": 0.02527323,\n    \"min\": 1.2429902425800001,\n    \"max\": 1.7532648405800002,\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"message\": \"README\\n\",\n    \"time\": 1.34905740258\n  },\n  {\n    \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3806832149800001,\n    \"stddev\": 0.21321624075450468,\n    \"median\": 1.31376602558,\n    \"user\": 1.3030440549999998,\n    \"system\": 0.02527323,\n    \"min\": 1.2429902425800001,\n    \"max\": 1.7532648405800002,\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"message\": \"README\\n\",\n    \"time\": 1.2429902425800001\n  },\n  {\n    \"command\": \"01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3806832149800001,\n    \"stddev\": 0.21321624075450468,\n    \"median\": 1.31376602558,\n    \"user\": 1.3030440549999998,\n    \"system\": 0.02527323,\n    \"min\": 1.2429902425800001,\n    \"max\": 1.7532648405800002,\n    \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n    \"message\": \"README\\n\",\n    \"time\": 1.24433756358\n  },\n  {\n    \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24445320298,\n    \"stddev\": 0.031862550012832926,\n    \"median\": 1.2474160655800002,\n    \"user\": 1.215210255,\n    \"system\": 0.019200429999999997,\n    \"min\": 1.20169201358,\n    \"max\": 1.28057461458,\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"message\": \"Fix doc comment\\n\",\n    \"time\": 1.28057461458\n  },\n  {\n    \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24445320298,\n    \"stddev\": 0.031862550012832926,\n    \"median\": 1.2474160655800002,\n    \"user\": 1.215210255,\n    \"system\": 0.019200429999999997,\n    \"min\": 1.20169201358,\n    \"max\": 1.28057461458,\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"message\": \"Fix doc comment\\n\",\n    \"time\": 1.26764668658\n  },\n  {\n    \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24445320298,\n    \"stddev\": 0.031862550012832926,\n    \"median\": 1.2474160655800002,\n    \"user\": 1.215210255,\n    \"system\": 0.019200429999999997,\n    \"min\": 1.20169201358,\n    \"max\": 1.28057461458,\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"message\": \"Fix doc comment\\n\",\n    \"time\": 1.2474160655800002\n  },\n  {\n    \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24445320298,\n    \"stddev\": 0.031862550012832926,\n    \"median\": 1.2474160655800002,\n    \"user\": 1.215210255,\n    \"system\": 0.019200429999999997,\n    \"min\": 1.20169201358,\n    \"max\": 1.28057461458,\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"message\": \"Fix doc comment\\n\",\n    \"time\": 1.2249366345800001\n  },\n  {\n    \"command\": \"9f173e03c86cef6c8bc5df61d456797b8a55ca1f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24445320298,\n    \"stddev\": 0.031862550012832926,\n    \"median\": 1.2474160655800002,\n    \"user\": 1.215210255,\n    \"system\": 0.019200429999999997,\n    \"min\": 1.20169201358,\n    \"max\": 1.28057461458,\n    \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n    \"message\": \"Fix doc comment\\n\",\n    \"time\": 1.20169201358\n  },\n  {\n    \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3397338597800001,\n    \"stddev\": 0.26088733158865557,\n    \"median\": 1.23304935958,\n    \"user\": 1.256353455,\n    \"system\": 0.019774229999999997,\n    \"min\": 1.18147796158,\n    \"max\": 1.8034730135800001,\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.21788663258\n  },\n  {\n    \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3397338597800001,\n    \"stddev\": 0.26088733158865557,\n    \"median\": 1.23304935958,\n    \"user\": 1.256353455,\n    \"system\": 0.019774229999999997,\n    \"min\": 1.18147796158,\n    \"max\": 1.8034730135800001,\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.18147796158\n  },\n  {\n    \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3397338597800001,\n    \"stddev\": 0.26088733158865557,\n    \"median\": 1.23304935958,\n    \"user\": 1.256353455,\n    \"system\": 0.019774229999999997,\n    \"min\": 1.18147796158,\n    \"max\": 1.8034730135800001,\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.23304935958\n  },\n  {\n    \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3397338597800001,\n    \"stddev\": 0.26088733158865557,\n    \"median\": 1.23304935958,\n    \"user\": 1.256353455,\n    \"system\": 0.019774229999999997,\n    \"min\": 1.18147796158,\n    \"max\": 1.8034730135800001,\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.2627823315800002\n  },\n  {\n    \"command\": \"c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3397338597800001,\n    \"stddev\": 0.26088733158865557,\n    \"median\": 1.23304935958,\n    \"user\": 1.256353455,\n    \"system\": 0.019774229999999997,\n    \"min\": 1.18147796158,\n    \"max\": 1.8034730135800001,\n    \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.8034730135800001\n  },\n  {\n    \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53399928778,\n    \"stddev\": 0.5270553520922746,\n    \"median\": 1.29563271858,\n    \"user\": 1.319960855,\n    \"system\": 0.02915483,\n    \"min\": 1.24268769358,\n    \"max\": 2.4727941155799997,\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.24268769358\n  },\n  {\n    \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53399928778,\n    \"stddev\": 0.5270553520922746,\n    \"median\": 1.29563271858,\n    \"user\": 1.319960855,\n    \"system\": 0.02915483,\n    \"min\": 1.24268769358,\n    \"max\": 2.4727941155799997,\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 2.4727941155799997\n  },\n  {\n    \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53399928778,\n    \"stddev\": 0.5270553520922746,\n    \"median\": 1.29563271858,\n    \"user\": 1.319960855,\n    \"system\": 0.02915483,\n    \"min\": 1.24268769358,\n    \"max\": 2.4727941155799997,\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.37658095558\n  },\n  {\n    \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53399928778,\n    \"stddev\": 0.5270553520922746,\n    \"median\": 1.29563271858,\n    \"user\": 1.319960855,\n    \"system\": 0.02915483,\n    \"min\": 1.24268769358,\n    \"max\": 2.4727941155799997,\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.28230095558\n  },\n  {\n    \"command\": \"371a342d12e842347fa49522796795eabd181642 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53399928778,\n    \"stddev\": 0.5270553520922746,\n    \"median\": 1.29563271858,\n    \"user\": 1.319960855,\n    \"system\": 0.02915483,\n    \"min\": 1.24268769358,\n    \"max\": 2.4727941155799997,\n    \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.29563271858\n  },\n  {\n    \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2662743565799999,\n    \"stddev\": 0.01922934506932241,\n    \"median\": 1.27050415458,\n    \"user\": 1.235630255,\n    \"system\": 0.020308029999999998,\n    \"min\": 1.24353853358,\n    \"max\": 1.2916794305800001,\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"time\": 1.2916794305800001\n  },\n  {\n    \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2662743565799999,\n    \"stddev\": 0.01922934506932241,\n    \"median\": 1.27050415458,\n    \"user\": 1.235630255,\n    \"system\": 0.020308029999999998,\n    \"min\": 1.24353853358,\n    \"max\": 1.2916794305800001,\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"time\": 1.27455184758\n  },\n  {\n    \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2662743565799999,\n    \"stddev\": 0.01922934506932241,\n    \"median\": 1.27050415458,\n    \"user\": 1.235630255,\n    \"system\": 0.020308029999999998,\n    \"min\": 1.24353853358,\n    \"max\": 1.2916794305800001,\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"time\": 1.27050415458\n  },\n  {\n    \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2662743565799999,\n    \"stddev\": 0.01922934506932241,\n    \"median\": 1.27050415458,\n    \"user\": 1.235630255,\n    \"system\": 0.020308029999999998,\n    \"min\": 1.24353853358,\n    \"max\": 1.2916794305800001,\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"time\": 1.24353853358\n  },\n  {\n    \"command\": \"d682e2fdad335ca189ec0630d6a78243bcfadd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2662743565799999,\n    \"stddev\": 0.01922934506932241,\n    \"median\": 1.27050415458,\n    \"user\": 1.235630255,\n    \"system\": 0.020308029999999998,\n    \"min\": 1.24353853358,\n    \"max\": 1.2916794305800001,\n    \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n    \"message\": \"Add notes about 24 bit color to README\\n\",\n    \"time\": 1.25109781658\n  },\n  {\n    \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41740499438,\n    \"stddev\": 0.09317621316449008,\n    \"median\": 1.4223204445800002,\n    \"user\": 1.3488044549999998,\n    \"system\": 0.030107629999999996,\n    \"min\": 1.27464596258,\n    \"max\": 1.50976955458,\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"message\": \"CLI\\n\",\n    \"time\": 1.27464596258\n  },\n  {\n    \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41740499438,\n    \"stddev\": 0.09317621316449008,\n    \"median\": 1.4223204445800002,\n    \"user\": 1.3488044549999998,\n    \"system\": 0.030107629999999996,\n    \"min\": 1.27464596258,\n    \"max\": 1.50976955458,\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"message\": \"CLI\\n\",\n    \"time\": 1.39137186258\n  },\n  {\n    \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41740499438,\n    \"stddev\": 0.09317621316449008,\n    \"median\": 1.4223204445800002,\n    \"user\": 1.3488044549999998,\n    \"system\": 0.030107629999999996,\n    \"min\": 1.27464596258,\n    \"max\": 1.50976955458,\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"message\": \"CLI\\n\",\n    \"time\": 1.4223204445800002\n  },\n  {\n    \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41740499438,\n    \"stddev\": 0.09317621316449008,\n    \"median\": 1.4223204445800002,\n    \"user\": 1.3488044549999998,\n    \"system\": 0.030107629999999996,\n    \"min\": 1.27464596258,\n    \"max\": 1.50976955458,\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"message\": \"CLI\\n\",\n    \"time\": 1.48891714758\n  },\n  {\n    \"command\": \"598461c1395904f1e7a10414b6ad94fddaf02521 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41740499438,\n    \"stddev\": 0.09317621316449008,\n    \"median\": 1.4223204445800002,\n    \"user\": 1.3488044549999998,\n    \"system\": 0.030107629999999996,\n    \"min\": 1.27464596258,\n    \"max\": 1.50976955458,\n    \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n    \"message\": \"CLI\\n\",\n    \"time\": 1.50976955458\n  },\n  {\n    \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32533371518,\n    \"stddev\": 0.07122712886583728,\n    \"median\": 1.3270898605800001,\n    \"user\": 1.2824322550000002,\n    \"system\": 0.022929029999999996,\n    \"min\": 1.23618229958,\n    \"max\": 1.41425822058,\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"message\": \"Factor out parse module\\n\",\n    \"time\": 1.41425822058\n  },\n  {\n    \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32533371518,\n    \"stddev\": 0.07122712886583728,\n    \"median\": 1.3270898605800001,\n    \"user\": 1.2824322550000002,\n    \"system\": 0.022929029999999996,\n    \"min\": 1.23618229958,\n    \"max\": 1.41425822058,\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"message\": \"Factor out parse module\\n\",\n    \"time\": 1.37165104558\n  },\n  {\n    \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32533371518,\n    \"stddev\": 0.07122712886583728,\n    \"median\": 1.3270898605800001,\n    \"user\": 1.2824322550000002,\n    \"system\": 0.022929029999999996,\n    \"min\": 1.23618229958,\n    \"max\": 1.41425822058,\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"message\": \"Factor out parse module\\n\",\n    \"time\": 1.27748714958\n  },\n  {\n    \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32533371518,\n    \"stddev\": 0.07122712886583728,\n    \"median\": 1.3270898605800001,\n    \"user\": 1.2824322550000002,\n    \"system\": 0.022929029999999996,\n    \"min\": 1.23618229958,\n    \"max\": 1.41425822058,\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"message\": \"Factor out parse module\\n\",\n    \"time\": 1.3270898605800001\n  },\n  {\n    \"command\": \"67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32533371518,\n    \"stddev\": 0.07122712886583728,\n    \"median\": 1.3270898605800001,\n    \"user\": 1.2824322550000002,\n    \"system\": 0.022929029999999996,\n    \"min\": 1.23618229958,\n    \"max\": 1.41425822058,\n    \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n    \"message\": \"Factor out parse module\\n\",\n    \"time\": 1.23618229958\n  },\n  {\n    \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2932732357799999,\n    \"stddev\": 0.06523994705863108,\n    \"median\": 1.26971104858,\n    \"user\": 1.2460774549999998,\n    \"system\": 0.02140703,\n    \"min\": 1.25552147358,\n    \"max\": 1.40924789158,\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"message\": \"Factor out paint module\\n\",\n    \"time\": 1.25552147358\n  },\n  {\n    \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2932732357799999,\n    \"stddev\": 0.06523994705863108,\n    \"median\": 1.26971104858,\n    \"user\": 1.2460774549999998,\n    \"system\": 0.02140703,\n    \"min\": 1.25552147358,\n    \"max\": 1.40924789158,\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"message\": \"Factor out paint module\\n\",\n    \"time\": 1.2588501625800002\n  },\n  {\n    \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2932732357799999,\n    \"stddev\": 0.06523994705863108,\n    \"median\": 1.26971104858,\n    \"user\": 1.2460774549999998,\n    \"system\": 0.02140703,\n    \"min\": 1.25552147358,\n    \"max\": 1.40924789158,\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"message\": \"Factor out paint module\\n\",\n    \"time\": 1.27303560258\n  },\n  {\n    \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2932732357799999,\n    \"stddev\": 0.06523994705863108,\n    \"median\": 1.26971104858,\n    \"user\": 1.2460774549999998,\n    \"system\": 0.02140703,\n    \"min\": 1.25552147358,\n    \"max\": 1.40924789158,\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"message\": \"Factor out paint module\\n\",\n    \"time\": 1.40924789158\n  },\n  {\n    \"command\": \"62c4d298066cf532797a8fadb9fedd6796869005 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2932732357799999,\n    \"stddev\": 0.06523994705863108,\n    \"median\": 1.26971104858,\n    \"user\": 1.2460774549999998,\n    \"system\": 0.02140703,\n    \"min\": 1.25552147358,\n    \"max\": 1.40924789158,\n    \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n    \"message\": \"Factor out paint module\\n\",\n    \"time\": 1.26971104858\n  },\n  {\n    \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2876539575800001,\n    \"stddev\": 0.11697813131189513,\n    \"median\": 1.23861149558,\n    \"user\": 1.229652655,\n    \"system\": 0.02046723,\n    \"min\": 1.22385300558,\n    \"max\": 1.4958674815800002,\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.4958674815800002\n  },\n  {\n    \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2876539575800001,\n    \"stddev\": 0.11697813131189513,\n    \"median\": 1.23861149558,\n    \"user\": 1.229652655,\n    \"system\": 0.02046723,\n    \"min\": 1.22385300558,\n    \"max\": 1.4958674815800002,\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.23861149558\n  },\n  {\n    \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2876539575800001,\n    \"stddev\": 0.11697813131189513,\n    \"median\": 1.23861149558,\n    \"user\": 1.229652655,\n    \"system\": 0.02046723,\n    \"min\": 1.22385300558,\n    \"max\": 1.4958674815800002,\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.22385300558\n  },\n  {\n    \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2876539575800001,\n    \"stddev\": 0.11697813131189513,\n    \"median\": 1.23861149558,\n    \"user\": 1.229652655,\n    \"system\": 0.02046723,\n    \"min\": 1.22385300558,\n    \"max\": 1.4958674815800002,\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.25337053958\n  },\n  {\n    \"command\": \"6a16853b4d17fdb84879882c8a412b26a0b525e9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2876539575800001,\n    \"stddev\": 0.11697813131189513,\n    \"median\": 1.23861149558,\n    \"user\": 1.229652655,\n    \"system\": 0.02046723,\n    \"min\": 1.22385300558,\n    \"max\": 1.4958674815800002,\n    \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.2265672655800002\n  },\n  {\n    \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6076762345800002,\n    \"stddev\": 0.015138284387894748,\n    \"median\": 1.61261962858,\n    \"user\": 1.5751498549999998,\n    \"system\": 0.01991603,\n    \"min\": 1.5895328615800002,\n    \"max\": 1.6259946175800002,\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"message\": \"CLI (Hack)\\n\",\n    \"time\": 1.6259946175800002\n  },\n  {\n    \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6076762345800002,\n    \"stddev\": 0.015138284387894748,\n    \"median\": 1.61261962858,\n    \"user\": 1.5751498549999998,\n    \"system\": 0.01991603,\n    \"min\": 1.5895328615800002,\n    \"max\": 1.6259946175800002,\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"message\": \"CLI (Hack)\\n\",\n    \"time\": 1.61261962858\n  },\n  {\n    \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6076762345800002,\n    \"stddev\": 0.015138284387894748,\n    \"median\": 1.61261962858,\n    \"user\": 1.5751498549999998,\n    \"system\": 0.01991603,\n    \"min\": 1.5895328615800002,\n    \"max\": 1.6259946175800002,\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"message\": \"CLI (Hack)\\n\",\n    \"time\": 1.5947635475800002\n  },\n  {\n    \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6076762345800002,\n    \"stddev\": 0.015138284387894748,\n    \"median\": 1.61261962858,\n    \"user\": 1.5751498549999998,\n    \"system\": 0.01991603,\n    \"min\": 1.5895328615800002,\n    \"max\": 1.6259946175800002,\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"message\": \"CLI (Hack)\\n\",\n    \"time\": 1.5895328615800002\n  },\n  {\n    \"command\": \"6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6076762345800002,\n    \"stddev\": 0.015138284387894748,\n    \"median\": 1.61261962858,\n    \"user\": 1.5751498549999998,\n    \"system\": 0.01991603,\n    \"min\": 1.5895328615800002,\n    \"max\": 1.6259946175800002,\n    \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n    \"message\": \"CLI (Hack)\\n\",\n    \"time\": 1.6154705175800002\n  },\n  {\n    \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62900015518,\n    \"stddev\": 0.028544572823720363,\n    \"median\": 1.62219810958,\n    \"user\": 1.578989255,\n    \"system\": 0.02224303,\n    \"min\": 1.5954943695800001,\n    \"max\": 1.66358967358,\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"time\": 1.6528054415800002\n  },\n  {\n    \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62900015518,\n    \"stddev\": 0.028544572823720363,\n    \"median\": 1.62219810958,\n    \"user\": 1.578989255,\n    \"system\": 0.02224303,\n    \"min\": 1.5954943695800001,\n    \"max\": 1.66358967358,\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"time\": 1.62219810958\n  },\n  {\n    \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62900015518,\n    \"stddev\": 0.028544572823720363,\n    \"median\": 1.62219810958,\n    \"user\": 1.578989255,\n    \"system\": 0.02224303,\n    \"min\": 1.5954943695800001,\n    \"max\": 1.66358967358,\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"time\": 1.6109131815800002\n  },\n  {\n    \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62900015518,\n    \"stddev\": 0.028544572823720363,\n    \"median\": 1.62219810958,\n    \"user\": 1.578989255,\n    \"system\": 0.02224303,\n    \"min\": 1.5954943695800001,\n    \"max\": 1.66358967358,\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"time\": 1.5954943695800001\n  },\n  {\n    \"command\": \"941f87c72315ea4b201e30625e8160cb415bb5c9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62900015518,\n    \"stddev\": 0.028544572823720363,\n    \"median\": 1.62219810958,\n    \"user\": 1.578989255,\n    \"system\": 0.02224303,\n    \"min\": 1.5954943695800001,\n    \"max\": 1.66358967358,\n    \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n    \"message\": \"CLI: --minus-color and --plus-color\\n\",\n    \"time\": 1.66358967358\n  },\n  {\n    \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6169401803800003,\n    \"stddev\": 0.005155624544073473,\n    \"median\": 1.61757456658,\n    \"user\": 1.5834228549999998,\n    \"system\": 0.02164423,\n    \"min\": 1.6088678255800002,\n    \"max\": 1.62320550258,\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"message\": \"Parse color arguments\\n\",\n    \"time\": 1.62320550258\n  },\n  {\n    \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6169401803800003,\n    \"stddev\": 0.005155624544073473,\n    \"median\": 1.61757456658,\n    \"user\": 1.5834228549999998,\n    \"system\": 0.02164423,\n    \"min\": 1.6088678255800002,\n    \"max\": 1.62320550258,\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"message\": \"Parse color arguments\\n\",\n    \"time\": 1.61757456658\n  },\n  {\n    \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6169401803800003,\n    \"stddev\": 0.005155624544073473,\n    \"median\": 1.61757456658,\n    \"user\": 1.5834228549999998,\n    \"system\": 0.02164423,\n    \"min\": 1.6088678255800002,\n    \"max\": 1.62320550258,\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"message\": \"Parse color arguments\\n\",\n    \"time\": 1.6168882685800001\n  },\n  {\n    \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6169401803800003,\n    \"stddev\": 0.005155624544073473,\n    \"median\": 1.61757456658,\n    \"user\": 1.5834228549999998,\n    \"system\": 0.02164423,\n    \"min\": 1.6088678255800002,\n    \"max\": 1.62320550258,\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"message\": \"Parse color arguments\\n\",\n    \"time\": 1.6088678255800002\n  },\n  {\n    \"command\": \"ebdd13c9cba21f0eb4f2006962516f48d532ff8c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6169401803800003,\n    \"stddev\": 0.005155624544073473,\n    \"median\": 1.61757456658,\n    \"user\": 1.5834228549999998,\n    \"system\": 0.02164423,\n    \"min\": 1.6088678255800002,\n    \"max\": 1.62320550258,\n    \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n    \"message\": \"Parse color arguments\\n\",\n    \"time\": 1.6181647385800002\n  },\n  {\n    \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6274318435800001,\n    \"stddev\": 0.0073869031318178685,\n    \"median\": 1.62947800358,\n    \"user\": 1.5929308549999999,\n    \"system\": 0.02290143,\n    \"min\": 1.61672263258,\n    \"max\": 1.6346440125800001,\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"message\": \"Tweak default colors\\n\",\n    \"time\": 1.6346440125800001\n  },\n  {\n    \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6274318435800001,\n    \"stddev\": 0.0073869031318178685,\n    \"median\": 1.62947800358,\n    \"user\": 1.5929308549999999,\n    \"system\": 0.02290143,\n    \"min\": 1.61672263258,\n    \"max\": 1.6346440125800001,\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"message\": \"Tweak default colors\\n\",\n    \"time\": 1.6329699485800002\n  },\n  {\n    \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6274318435800001,\n    \"stddev\": 0.0073869031318178685,\n    \"median\": 1.62947800358,\n    \"user\": 1.5929308549999999,\n    \"system\": 0.02290143,\n    \"min\": 1.61672263258,\n    \"max\": 1.6346440125800001,\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"message\": \"Tweak default colors\\n\",\n    \"time\": 1.62947800358\n  },\n  {\n    \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6274318435800001,\n    \"stddev\": 0.0073869031318178685,\n    \"median\": 1.62947800358,\n    \"user\": 1.5929308549999999,\n    \"system\": 0.02290143,\n    \"min\": 1.61672263258,\n    \"max\": 1.6346440125800001,\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"message\": \"Tweak default colors\\n\",\n    \"time\": 1.62334462058\n  },\n  {\n    \"command\": \"3692e62eb83278e60cf257445589622d7155ec35 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6274318435800001,\n    \"stddev\": 0.0073869031318178685,\n    \"median\": 1.62947800358,\n    \"user\": 1.5929308549999999,\n    \"system\": 0.02290143,\n    \"min\": 1.61672263258,\n    \"max\": 1.6346440125800001,\n    \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n    \"message\": \"Tweak default colors\\n\",\n    \"time\": 1.61672263258\n  },\n  {\n    \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62417737598,\n    \"stddev\": 0.017331074601718427,\n    \"median\": 1.62853799958,\n    \"user\": 1.5873616549999998,\n    \"system\": 0.02324763,\n    \"min\": 1.6029578375800002,\n    \"max\": 1.64334302458,\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"time\": 1.64334302458\n  },\n  {\n    \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62417737598,\n    \"stddev\": 0.017331074601718427,\n    \"median\": 1.62853799958,\n    \"user\": 1.5873616549999998,\n    \"system\": 0.02324763,\n    \"min\": 1.6029578375800002,\n    \"max\": 1.64334302458,\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"time\": 1.6029578375800002\n  },\n  {\n    \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62417737598,\n    \"stddev\": 0.017331074601718427,\n    \"median\": 1.62853799958,\n    \"user\": 1.5873616549999998,\n    \"system\": 0.02324763,\n    \"min\": 1.6029578375800002,\n    \"max\": 1.64334302458,\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"time\": 1.62853799958\n  },\n  {\n    \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62417737598,\n    \"stddev\": 0.017331074601718427,\n    \"median\": 1.62853799958,\n    \"user\": 1.5873616549999998,\n    \"system\": 0.02324763,\n    \"min\": 1.6029578375800002,\n    \"max\": 1.64334302458,\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"time\": 1.6364813145800001\n  },\n  {\n    \"command\": \"d3262c8f76cf93ffe1860916dabf1a38907861e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.62417737598,\n    \"stddev\": 0.017331074601718427,\n    \"median\": 1.62853799958,\n    \"user\": 1.5873616549999998,\n    \"system\": 0.02324763,\n    \"min\": 1.6029578375800002,\n    \"max\": 1.64334302458,\n    \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n    \"message\": \"Set unused alpha values to FF\\n\",\n    \"time\": 1.60956670358\n  },\n  {\n    \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32948515578,\n    \"stddev\": 0.024150188959145422,\n    \"median\": 1.32213170658,\n    \"user\": 1.296325655,\n    \"system\": 0.021207629999999998,\n    \"min\": 1.31123815758,\n    \"max\": 1.3715005925800001,\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"message\": \"Homor --width argument\\n\",\n    \"time\": 1.3715005925800001\n  },\n  {\n    \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32948515578,\n    \"stddev\": 0.024150188959145422,\n    \"median\": 1.32213170658,\n    \"user\": 1.296325655,\n    \"system\": 0.021207629999999998,\n    \"min\": 1.31123815758,\n    \"max\": 1.3715005925800001,\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"message\": \"Homor --width argument\\n\",\n    \"time\": 1.32606710158\n  },\n  {\n    \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32948515578,\n    \"stddev\": 0.024150188959145422,\n    \"median\": 1.32213170658,\n    \"user\": 1.296325655,\n    \"system\": 0.021207629999999998,\n    \"min\": 1.31123815758,\n    \"max\": 1.3715005925800001,\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"message\": \"Homor --width argument\\n\",\n    \"time\": 1.32213170658\n  },\n  {\n    \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32948515578,\n    \"stddev\": 0.024150188959145422,\n    \"median\": 1.32213170658,\n    \"user\": 1.296325655,\n    \"system\": 0.021207629999999998,\n    \"min\": 1.31123815758,\n    \"max\": 1.3715005925800001,\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"message\": \"Homor --width argument\\n\",\n    \"time\": 1.31123815758\n  },\n  {\n    \"command\": \"6a20a593f2fc07049afc3dcc1115431f77f3cd62 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32948515578,\n    \"stddev\": 0.024150188959145422,\n    \"median\": 1.32213170658,\n    \"user\": 1.296325655,\n    \"system\": 0.021207629999999998,\n    \"min\": 1.31123815758,\n    \"max\": 1.3715005925800001,\n    \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n    \"message\": \"Homor --width argument\\n\",\n    \"time\": 1.3164882205800001\n  },\n  {\n    \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32818500898,\n    \"stddev\": 0.01869633960594135,\n    \"median\": 1.33193744758,\n    \"user\": 1.2962680549999999,\n    \"system\": 0.02078063,\n    \"min\": 1.30748905758,\n    \"max\": 1.3483983615800001,\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"message\": \"Help text and README\\n\",\n    \"time\": 1.33193744758\n  },\n  {\n    \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32818500898,\n    \"stddev\": 0.01869633960594135,\n    \"median\": 1.33193744758,\n    \"user\": 1.2962680549999999,\n    \"system\": 0.02078063,\n    \"min\": 1.30748905758,\n    \"max\": 1.3483983615800001,\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"message\": \"Help text and README\\n\",\n    \"time\": 1.3483983615800001\n  },\n  {\n    \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32818500898,\n    \"stddev\": 0.01869633960594135,\n    \"median\": 1.33193744758,\n    \"user\": 1.2962680549999999,\n    \"system\": 0.02078063,\n    \"min\": 1.30748905758,\n    \"max\": 1.3483983615800001,\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"message\": \"Help text and README\\n\",\n    \"time\": 1.34301040058\n  },\n  {\n    \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32818500898,\n    \"stddev\": 0.01869633960594135,\n    \"median\": 1.33193744758,\n    \"user\": 1.2962680549999999,\n    \"system\": 0.02078063,\n    \"min\": 1.30748905758,\n    \"max\": 1.3483983615800001,\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"message\": \"Help text and README\\n\",\n    \"time\": 1.30748905758\n  },\n  {\n    \"command\": \"2c3a9288a3e120246671ccac5348a0d2cbd92664 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32818500898,\n    \"stddev\": 0.01869633960594135,\n    \"median\": 1.33193744758,\n    \"user\": 1.2962680549999999,\n    \"system\": 0.02078063,\n    \"min\": 1.30748905758,\n    \"max\": 1.3483983615800001,\n    \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n    \"message\": \"Help text and README\\n\",\n    \"time\": 1.31008977758\n  },\n  {\n    \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3372659513800003,\n    \"stddev\": 0.07346857241237886,\n    \"median\": 1.3176865025800002,\n    \"user\": 1.291745255,\n    \"system\": 0.01962683,\n    \"min\": 1.27345628658,\n    \"max\": 1.46402628958,\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"message\": \"README\\n\",\n    \"time\": 1.3176865025800002\n  },\n  {\n    \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3372659513800003,\n    \"stddev\": 0.07346857241237886,\n    \"median\": 1.3176865025800002,\n    \"user\": 1.291745255,\n    \"system\": 0.01962683,\n    \"min\": 1.27345628658,\n    \"max\": 1.46402628958,\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"message\": \"README\\n\",\n    \"time\": 1.32354216958\n  },\n  {\n    \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3372659513800003,\n    \"stddev\": 0.07346857241237886,\n    \"median\": 1.3176865025800002,\n    \"user\": 1.291745255,\n    \"system\": 0.01962683,\n    \"min\": 1.27345628658,\n    \"max\": 1.46402628958,\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"message\": \"README\\n\",\n    \"time\": 1.30761850858\n  },\n  {\n    \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3372659513800003,\n    \"stddev\": 0.07346857241237886,\n    \"median\": 1.3176865025800002,\n    \"user\": 1.291745255,\n    \"system\": 0.01962683,\n    \"min\": 1.27345628658,\n    \"max\": 1.46402628958,\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"message\": \"README\\n\",\n    \"time\": 1.46402628958\n  },\n  {\n    \"command\": \"6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3372659513800003,\n    \"stddev\": 0.07346857241237886,\n    \"median\": 1.3176865025800002,\n    \"user\": 1.291745255,\n    \"system\": 0.01962683,\n    \"min\": 1.27345628658,\n    \"max\": 1.46402628958,\n    \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n    \"message\": \"README\\n\",\n    \"time\": 1.27345628658\n  },\n  {\n    \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29695111698,\n    \"stddev\": 0.028220999604933402,\n    \"median\": 1.29188292458,\n    \"user\": 1.267227655,\n    \"system\": 0.01933283,\n    \"min\": 1.2647041995800001,\n    \"max\": 1.33367812658,\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"time\": 1.33367812658\n  },\n  {\n    \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29695111698,\n    \"stddev\": 0.028220999604933402,\n    \"median\": 1.29188292458,\n    \"user\": 1.267227655,\n    \"system\": 0.01933283,\n    \"min\": 1.2647041995800001,\n    \"max\": 1.33367812658,\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"time\": 1.29188292458\n  },\n  {\n    \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29695111698,\n    \"stddev\": 0.028220999604933402,\n    \"median\": 1.29188292458,\n    \"user\": 1.267227655,\n    \"system\": 0.01933283,\n    \"min\": 1.2647041995800001,\n    \"max\": 1.33367812658,\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"time\": 1.27760970358\n  },\n  {\n    \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29695111698,\n    \"stddev\": 0.028220999604933402,\n    \"median\": 1.29188292458,\n    \"user\": 1.267227655,\n    \"system\": 0.01933283,\n    \"min\": 1.2647041995800001,\n    \"max\": 1.33367812658,\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"time\": 1.2647041995800001\n  },\n  {\n    \"command\": \"da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29695111698,\n    \"stddev\": 0.028220999604933402,\n    \"median\": 1.29188292458,\n    \"user\": 1.267227655,\n    \"system\": 0.01933283,\n    \"min\": 1.2647041995800001,\n    \"max\": 1.33367812658,\n    \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n    \"message\": \"Simplify CLI argument handling\\n\",\n    \"time\": 1.31688063058\n  },\n  {\n    \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36203606098,\n    \"stddev\": 0.09550810529698499,\n    \"median\": 1.33883425258,\n    \"user\": 1.324246455,\n    \"system\": 0.02277523,\n    \"min\": 1.28805361058,\n    \"max\": 1.5287007535800001,\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"message\": \"Add image\\n\",\n    \"time\": 1.28805361058\n  },\n  {\n    \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36203606098,\n    \"stddev\": 0.09550810529698499,\n    \"median\": 1.33883425258,\n    \"user\": 1.324246455,\n    \"system\": 0.02277523,\n    \"min\": 1.28805361058,\n    \"max\": 1.5287007535800001,\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"message\": \"Add image\\n\",\n    \"time\": 1.33883425258\n  },\n  {\n    \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36203606098,\n    \"stddev\": 0.09550810529698499,\n    \"median\": 1.33883425258,\n    \"user\": 1.324246455,\n    \"system\": 0.02277523,\n    \"min\": 1.28805361058,\n    \"max\": 1.5287007535800001,\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"message\": \"Add image\\n\",\n    \"time\": 1.5287007535800001\n  },\n  {\n    \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36203606098,\n    \"stddev\": 0.09550810529698499,\n    \"median\": 1.33883425258,\n    \"user\": 1.324246455,\n    \"system\": 0.02277523,\n    \"min\": 1.28805361058,\n    \"max\": 1.5287007535800001,\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"message\": \"Add image\\n\",\n    \"time\": 1.3392243965800001\n  },\n  {\n    \"command\": \"93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36203606098,\n    \"stddev\": 0.09550810529698499,\n    \"median\": 1.33883425258,\n    \"user\": 1.324246455,\n    \"system\": 0.02277523,\n    \"min\": 1.28805361058,\n    \"max\": 1.5287007535800001,\n    \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n    \"message\": \"Add image\\n\",\n    \"time\": 1.31536729158\n  },\n  {\n    \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.35960159818,\n    \"stddev\": 0.10103769616134195,\n    \"median\": 1.3171252855800002,\n    \"user\": 1.3125810549999999,\n    \"system\": 0.02118063,\n    \"min\": 1.3011867535800001,\n    \"max\": 1.53940694758,\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.3171252855800002\n  },\n  {\n    \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.35960159818,\n    \"stddev\": 0.10103769616134195,\n    \"median\": 1.3171252855800002,\n    \"user\": 1.3125810549999999,\n    \"system\": 0.02118063,\n    \"min\": 1.3011867535800001,\n    \"max\": 1.53940694758,\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.32947843058\n  },\n  {\n    \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.35960159818,\n    \"stddev\": 0.10103769616134195,\n    \"median\": 1.3171252855800002,\n    \"user\": 1.3125810549999999,\n    \"system\": 0.02118063,\n    \"min\": 1.3011867535800001,\n    \"max\": 1.53940694758,\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.3011867535800001\n  },\n  {\n    \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.35960159818,\n    \"stddev\": 0.10103769616134195,\n    \"median\": 1.3171252855800002,\n    \"user\": 1.3125810549999999,\n    \"system\": 0.02118063,\n    \"min\": 1.3011867535800001,\n    \"max\": 1.53940694758,\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.3108105735800002\n  },\n  {\n    \"command\": \"a96ad5779c8ed1701b53b01b0beb48639e5404c3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.35960159818,\n    \"stddev\": 0.10103769616134195,\n    \"median\": 1.3171252855800002,\n    \"user\": 1.3125810549999999,\n    \"system\": 0.02118063,\n    \"min\": 1.3011867535800001,\n    \"max\": 1.53940694758,\n    \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n    \"message\": \"Edit README\\n\",\n    \"time\": 1.53940694758\n  },\n  {\n    \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3475911109800003,\n    \"stddev\": 0.10581359053148584,\n    \"median\": 1.33694455658,\n    \"user\": 1.288449255,\n    \"system\": 0.01883303,\n    \"min\": 1.2574961745800002,\n    \"max\": 1.51681470558,\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"time\": 1.51681470558\n  },\n  {\n    \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3475911109800003,\n    \"stddev\": 0.10581359053148584,\n    \"median\": 1.33694455658,\n    \"user\": 1.288449255,\n    \"system\": 0.01883303,\n    \"min\": 1.2574961745800002,\n    \"max\": 1.51681470558,\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"time\": 1.33694455658\n  },\n  {\n    \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3475911109800003,\n    \"stddev\": 0.10581359053148584,\n    \"median\": 1.33694455658,\n    \"user\": 1.288449255,\n    \"system\": 0.01883303,\n    \"min\": 1.2574961745800002,\n    \"max\": 1.51681470558,\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"time\": 1.2574961745800002\n  },\n  {\n    \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3475911109800003,\n    \"stddev\": 0.10581359053148584,\n    \"median\": 1.33694455658,\n    \"user\": 1.288449255,\n    \"system\": 0.01883303,\n    \"min\": 1.2574961745800002,\n    \"max\": 1.51681470558,\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"time\": 1.36614254358\n  },\n  {\n    \"command\": \"8f16a88b20cf8f0267214302babdb1ce4439fb2b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3475911109800003,\n    \"stddev\": 0.10581359053148584,\n    \"median\": 1.33694455658,\n    \"user\": 1.288449255,\n    \"system\": 0.01883303,\n    \"min\": 1.2574961745800002,\n    \"max\": 1.51681470558,\n    \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n    \"message\": \"README: passing arguments in .gitconfig\\n\",\n    \"time\": 1.2605575745800002\n  },\n  {\n    \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36654526938,\n    \"stddev\": 0.11727813437995303,\n    \"median\": 1.33115557258,\n    \"user\": 1.323541255,\n    \"system\": 0.020969830000000002,\n    \"min\": 1.2599292025800002,\n    \"max\": 1.55063460858,\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"message\": \"Tweak usage text\\n\",\n    \"time\": 1.28376682958\n  },\n  {\n    \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36654526938,\n    \"stddev\": 0.11727813437995303,\n    \"median\": 1.33115557258,\n    \"user\": 1.323541255,\n    \"system\": 0.020969830000000002,\n    \"min\": 1.2599292025800002,\n    \"max\": 1.55063460858,\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"message\": \"Tweak usage text\\n\",\n    \"time\": 1.2599292025800002\n  },\n  {\n    \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36654526938,\n    \"stddev\": 0.11727813437995303,\n    \"median\": 1.33115557258,\n    \"user\": 1.323541255,\n    \"system\": 0.020969830000000002,\n    \"min\": 1.2599292025800002,\n    \"max\": 1.55063460858,\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"message\": \"Tweak usage text\\n\",\n    \"time\": 1.55063460858\n  },\n  {\n    \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36654526938,\n    \"stddev\": 0.11727813437995303,\n    \"median\": 1.33115557258,\n    \"user\": 1.323541255,\n    \"system\": 0.020969830000000002,\n    \"min\": 1.2599292025800002,\n    \"max\": 1.55063460858,\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"message\": \"Tweak usage text\\n\",\n    \"time\": 1.40724013358\n  },\n  {\n    \"command\": \"f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.36654526938,\n    \"stddev\": 0.11727813437995303,\n    \"median\": 1.33115557258,\n    \"user\": 1.323541255,\n    \"system\": 0.020969830000000002,\n    \"min\": 1.2599292025800002,\n    \"max\": 1.55063460858,\n    \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n    \"message\": \"Tweak usage text\\n\",\n    \"time\": 1.33115557258\n  },\n  {\n    \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24612392518,\n    \"stddev\": 0.03366548960378458,\n    \"median\": 1.2391850825800002,\n    \"user\": 1.2214996550000001,\n    \"system\": 0.015177430000000002,\n    \"min\": 1.2059799765800001,\n    \"max\": 1.29077811558,\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"time\": 1.29077811558\n  },\n  {\n    \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24612392518,\n    \"stddev\": 0.03366548960378458,\n    \"median\": 1.2391850825800002,\n    \"user\": 1.2214996550000001,\n    \"system\": 0.015177430000000002,\n    \"min\": 1.2059799765800001,\n    \"max\": 1.29077811558,\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"time\": 1.2391850825800002\n  },\n  {\n    \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24612392518,\n    \"stddev\": 0.03366548960378458,\n    \"median\": 1.2391850825800002,\n    \"user\": 1.2214996550000001,\n    \"system\": 0.015177430000000002,\n    \"min\": 1.2059799765800001,\n    \"max\": 1.29077811558,\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"time\": 1.26827659758\n  },\n  {\n    \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24612392518,\n    \"stddev\": 0.03366548960378458,\n    \"median\": 1.2391850825800002,\n    \"user\": 1.2214996550000001,\n    \"system\": 0.015177430000000002,\n    \"min\": 1.2059799765800001,\n    \"max\": 1.29077811558,\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"time\": 1.22639985358\n  },\n  {\n    \"command\": \"4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24612392518,\n    \"stddev\": 0.03366548960378458,\n    \"median\": 1.2391850825800002,\n    \"user\": 1.2214996550000001,\n    \"system\": 0.015177430000000002,\n    \"min\": 1.2059799765800001,\n    \"max\": 1.29077811558,\n    \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n    \"message\": \"Move trait declarations to top level\\n\",\n    \"time\": 1.2059799765800001\n  },\n  {\n    \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3033784001800002,\n    \"stddev\": 0.059646996539757795,\n    \"median\": 1.28564337758,\n    \"user\": 1.269540855,\n    \"system\": 0.01903963,\n    \"min\": 1.24578517258,\n    \"max\": 1.37646429858,\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"time\": 1.28564337758\n  },\n  {\n    \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3033784001800002,\n    \"stddev\": 0.059646996539757795,\n    \"median\": 1.28564337758,\n    \"user\": 1.269540855,\n    \"system\": 0.01903963,\n    \"min\": 1.24578517258,\n    \"max\": 1.37646429858,\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"time\": 1.24578517258\n  },\n  {\n    \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3033784001800002,\n    \"stddev\": 0.059646996539757795,\n    \"median\": 1.28564337758,\n    \"user\": 1.269540855,\n    \"system\": 0.01903963,\n    \"min\": 1.24578517258,\n    \"max\": 1.37646429858,\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"time\": 1.2532380735800002\n  },\n  {\n    \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3033784001800002,\n    \"stddev\": 0.059646996539757795,\n    \"median\": 1.28564337758,\n    \"user\": 1.269540855,\n    \"system\": 0.01903963,\n    \"min\": 1.24578517258,\n    \"max\": 1.37646429858,\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"time\": 1.35576107858\n  },\n  {\n    \"command\": \"87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3033784001800002,\n    \"stddev\": 0.059646996539757795,\n    \"median\": 1.28564337758,\n    \"user\": 1.269540855,\n    \"system\": 0.01903963,\n    \"min\": 1.24578517258,\n    \"max\": 1.37646429858,\n    \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n    \"message\": \"Refactor: store paint config in a struct\\n\",\n    \"time\": 1.37646429858\n  },\n  {\n    \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2644601301800003,\n    \"stddev\": 0.031220955635247512,\n    \"median\": 1.25925535258,\n    \"user\": 1.2414458549999998,\n    \"system\": 0.01642323,\n    \"min\": 1.22395685658,\n    \"max\": 1.3095147715800002,\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"time\": 1.3095147715800002\n  },\n  {\n    \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2644601301800003,\n    \"stddev\": 0.031220955635247512,\n    \"median\": 1.25925535258,\n    \"user\": 1.2414458549999998,\n    \"system\": 0.01642323,\n    \"min\": 1.22395685658,\n    \"max\": 1.3095147715800002,\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"time\": 1.2547555535800001\n  },\n  {\n    \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2644601301800003,\n    \"stddev\": 0.031220955635247512,\n    \"median\": 1.25925535258,\n    \"user\": 1.2414458549999998,\n    \"system\": 0.01642323,\n    \"min\": 1.22395685658,\n    \"max\": 1.3095147715800002,\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"time\": 1.27481811658\n  },\n  {\n    \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2644601301800003,\n    \"stddev\": 0.031220955635247512,\n    \"median\": 1.25925535258,\n    \"user\": 1.2414458549999998,\n    \"system\": 0.01642323,\n    \"min\": 1.22395685658,\n    \"max\": 1.3095147715800002,\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"time\": 1.25925535258\n  },\n  {\n    \"command\": \"4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2644601301800003,\n    \"stddev\": 0.031220955635247512,\n    \"median\": 1.25925535258,\n    \"user\": 1.2414458549999998,\n    \"system\": 0.01642323,\n    \"min\": 1.22395685658,\n    \"max\": 1.3095147715800002,\n    \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n    \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n    \"time\": 1.22395685658\n  },\n  {\n    \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24650197978,\n    \"stddev\": 0.04685942912885733,\n    \"median\": 1.23973286658,\n    \"user\": 1.220630255,\n    \"system\": 0.015009829999999998,\n    \"min\": 1.18739793658,\n    \"max\": 1.30378920658,\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"time\": 1.21976729458\n  },\n  {\n    \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24650197978,\n    \"stddev\": 0.04685942912885733,\n    \"median\": 1.23973286658,\n    \"user\": 1.220630255,\n    \"system\": 0.015009829999999998,\n    \"min\": 1.18739793658,\n    \"max\": 1.30378920658,\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"time\": 1.18739793658\n  },\n  {\n    \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24650197978,\n    \"stddev\": 0.04685942912885733,\n    \"median\": 1.23973286658,\n    \"user\": 1.220630255,\n    \"system\": 0.015009829999999998,\n    \"min\": 1.18739793658,\n    \"max\": 1.30378920658,\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"time\": 1.23973286658\n  },\n  {\n    \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24650197978,\n    \"stddev\": 0.04685942912885733,\n    \"median\": 1.23973286658,\n    \"user\": 1.220630255,\n    \"system\": 0.015009829999999998,\n    \"min\": 1.18739793658,\n    \"max\": 1.30378920658,\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"time\": 1.30378920658\n  },\n  {\n    \"command\": \"adcef5f72363c24b5723536a15d4214b11c5afa5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.24650197978,\n    \"stddev\": 0.04685942912885733,\n    \"median\": 1.23973286658,\n    \"user\": 1.220630255,\n    \"system\": 0.015009829999999998,\n    \"min\": 1.18739793658,\n    \"max\": 1.30378920658,\n    \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n    \"message\": \"Refactor: continue paint config refactor\\n\",\n    \"time\": 1.2818225945800001\n  },\n  {\n    \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2220756449799999,\n    \"stddev\": 0.02436865042559819,\n    \"median\": 1.20803172858,\n    \"user\": 1.203665255,\n    \"system\": 0.01298283,\n    \"min\": 1.20031775258,\n    \"max\": 1.25312032458,\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"time\": 1.25312032458\n  },\n  {\n    \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2220756449799999,\n    \"stddev\": 0.02436865042559819,\n    \"median\": 1.20803172858,\n    \"user\": 1.203665255,\n    \"system\": 0.01298283,\n    \"min\": 1.20031775258,\n    \"max\": 1.25312032458,\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"time\": 1.2435539445800001\n  },\n  {\n    \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2220756449799999,\n    \"stddev\": 0.02436865042559819,\n    \"median\": 1.20803172858,\n    \"user\": 1.203665255,\n    \"system\": 0.01298283,\n    \"min\": 1.20031775258,\n    \"max\": 1.25312032458,\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"time\": 1.20535447458\n  },\n  {\n    \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2220756449799999,\n    \"stddev\": 0.02436865042559819,\n    \"median\": 1.20803172858,\n    \"user\": 1.203665255,\n    \"system\": 0.01298283,\n    \"min\": 1.20031775258,\n    \"max\": 1.25312032458,\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"time\": 1.20803172858\n  },\n  {\n    \"command\": \"de78804c542b00f84db1b97e482eeca256fae36d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2220756449799999,\n    \"stddev\": 0.02436865042559819,\n    \"median\": 1.20803172858,\n    \"user\": 1.203665255,\n    \"system\": 0.01298283,\n    \"min\": 1.20031775258,\n    \"max\": 1.25312032458,\n    \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n    \"message\": \"Refactor: arg parsing\\n\",\n    \"time\": 1.20031775258\n  },\n  {\n    \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20725545598,\n    \"stddev\": 0.01110958617609843,\n    \"median\": 1.20881657858,\n    \"user\": 1.190583855,\n    \"system\": 0.012150830000000001,\n    \"min\": 1.18945592358,\n    \"max\": 1.21720919458,\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"time\": 1.20881657858\n  },\n  {\n    \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20725545598,\n    \"stddev\": 0.01110958617609843,\n    \"median\": 1.20881657858,\n    \"user\": 1.190583855,\n    \"system\": 0.012150830000000001,\n    \"min\": 1.18945592358,\n    \"max\": 1.21720919458,\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"time\": 1.21720919458\n  },\n  {\n    \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20725545598,\n    \"stddev\": 0.01110958617609843,\n    \"median\": 1.20881657858,\n    \"user\": 1.190583855,\n    \"system\": 0.012150830000000001,\n    \"min\": 1.18945592358,\n    \"max\": 1.21720919458,\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"time\": 1.2051249505800001\n  },\n  {\n    \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20725545598,\n    \"stddev\": 0.01110958617609843,\n    \"median\": 1.20881657858,\n    \"user\": 1.190583855,\n    \"system\": 0.012150830000000001,\n    \"min\": 1.18945592358,\n    \"max\": 1.21720919458,\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"time\": 1.18945592358\n  },\n  {\n    \"command\": \"3f39600c3888ece6e2726ea82cc41a1fb09d4ded < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20725545598,\n    \"stddev\": 0.01110958617609843,\n    \"median\": 1.20881657858,\n    \"user\": 1.190583855,\n    \"system\": 0.012150830000000001,\n    \"min\": 1.18945592358,\n    \"max\": 1.21720919458,\n    \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n    \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n    \"time\": 1.21567063258\n  },\n  {\n    \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2683019529800001,\n    \"stddev\": 0.07493693215061543,\n    \"median\": 1.23218913258,\n    \"user\": 1.2452010550000001,\n    \"system\": 0.016613430000000002,\n    \"min\": 1.20113222558,\n    \"max\": 1.3628492405800001,\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"time\": 1.21074654558\n  },\n  {\n    \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2683019529800001,\n    \"stddev\": 0.07493693215061543,\n    \"median\": 1.23218913258,\n    \"user\": 1.2452010550000001,\n    \"system\": 0.016613430000000002,\n    \"min\": 1.20113222558,\n    \"max\": 1.3628492405800001,\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"time\": 1.20113222558\n  },\n  {\n    \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2683019529800001,\n    \"stddev\": 0.07493693215061543,\n    \"median\": 1.23218913258,\n    \"user\": 1.2452010550000001,\n    \"system\": 0.016613430000000002,\n    \"min\": 1.20113222558,\n    \"max\": 1.3628492405800001,\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"time\": 1.23218913258\n  },\n  {\n    \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2683019529800001,\n    \"stddev\": 0.07493693215061543,\n    \"median\": 1.23218913258,\n    \"user\": 1.2452010550000001,\n    \"system\": 0.016613430000000002,\n    \"min\": 1.20113222558,\n    \"max\": 1.3628492405800001,\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"time\": 1.33459262058\n  },\n  {\n    \"command\": \"01e3c321216316aa8d06fd3d1e6055b8df404211 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2683019529800001,\n    \"stddev\": 0.07493693215061543,\n    \"median\": 1.23218913258,\n    \"user\": 1.2452010550000001,\n    \"system\": 0.016613430000000002,\n    \"min\": 1.20113222558,\n    \"max\": 1.3628492405800001,\n    \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n    \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n    \"time\": 1.3628492405800001\n  },\n  {\n    \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23445490838,\n    \"stddev\": 0.05176115363907902,\n    \"median\": 1.21168055558,\n    \"user\": 1.215794455,\n    \"system\": 0.01418583,\n    \"min\": 1.20944875058,\n    \"max\": 1.3270222735800001,\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"time\": 1.3270222735800001\n  },\n  {\n    \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23445490838,\n    \"stddev\": 0.05176115363907902,\n    \"median\": 1.21168055558,\n    \"user\": 1.215794455,\n    \"system\": 0.01418583,\n    \"min\": 1.20944875058,\n    \"max\": 1.3270222735800001,\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"time\": 1.21284912258\n  },\n  {\n    \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23445490838,\n    \"stddev\": 0.05176115363907902,\n    \"median\": 1.21168055558,\n    \"user\": 1.215794455,\n    \"system\": 0.01418583,\n    \"min\": 1.20944875058,\n    \"max\": 1.3270222735800001,\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"time\": 1.21168055558\n  },\n  {\n    \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23445490838,\n    \"stddev\": 0.05176115363907902,\n    \"median\": 1.21168055558,\n    \"user\": 1.215794455,\n    \"system\": 0.01418583,\n    \"min\": 1.20944875058,\n    \"max\": 1.3270222735800001,\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"time\": 1.20944875058\n  },\n  {\n    \"command\": \"8b111cb4496d9250cb0c25d828f03d64274992ed < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23445490838,\n    \"stddev\": 0.05176115363907902,\n    \"median\": 1.21168055558,\n    \"user\": 1.215794455,\n    \"system\": 0.01418583,\n    \"min\": 1.20944875058,\n    \"max\": 1.3270222735800001,\n    \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n    \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n    \"time\": 1.21127383958\n  },\n  {\n    \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2317921875800004,\n    \"stddev\": 0.033840193285343836,\n    \"median\": 1.22357694858,\n    \"user\": 1.2128272549999999,\n    \"system\": 0.01396183,\n    \"min\": 1.1988347485800002,\n    \"max\": 1.28795735158,\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.22357694858\n  },\n  {\n    \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2317921875800004,\n    \"stddev\": 0.033840193285343836,\n    \"median\": 1.22357694858,\n    \"user\": 1.2128272549999999,\n    \"system\": 0.01396183,\n    \"min\": 1.1988347485800002,\n    \"max\": 1.28795735158,\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.2153505875800001\n  },\n  {\n    \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2317921875800004,\n    \"stddev\": 0.033840193285343836,\n    \"median\": 1.22357694858,\n    \"user\": 1.2128272549999999,\n    \"system\": 0.01396183,\n    \"min\": 1.1988347485800002,\n    \"max\": 1.28795735158,\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.1988347485800002\n  },\n  {\n    \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2317921875800004,\n    \"stddev\": 0.033840193285343836,\n    \"median\": 1.22357694858,\n    \"user\": 1.2128272549999999,\n    \"system\": 0.01396183,\n    \"min\": 1.1988347485800002,\n    \"max\": 1.28795735158,\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.28795735158\n  },\n  {\n    \"command\": \"0e82b82fcfb131d658ce4f8d27be63d55711cc6f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2317921875800004,\n    \"stddev\": 0.033840193285343836,\n    \"median\": 1.22357694858,\n    \"user\": 1.2128272549999999,\n    \"system\": 0.01396183,\n    \"min\": 1.1988347485800002,\n    \"max\": 1.28795735158,\n    \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.2332413015800001\n  },\n  {\n    \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2981787411799999,\n    \"stddev\": 0.03141871200870069,\n    \"median\": 1.3073167835800001,\n    \"user\": 1.2779354550000002,\n    \"system\": 0.015582230000000002,\n    \"min\": 1.25924841958,\n    \"max\": 1.33453119358,\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"time\": 1.27246598458\n  },\n  {\n    \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2981787411799999,\n    \"stddev\": 0.03141871200870069,\n    \"median\": 1.3073167835800001,\n    \"user\": 1.2779354550000002,\n    \"system\": 0.015582230000000002,\n    \"min\": 1.25924841958,\n    \"max\": 1.33453119358,\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"time\": 1.33453119358\n  },\n  {\n    \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2981787411799999,\n    \"stddev\": 0.03141871200870069,\n    \"median\": 1.3073167835800001,\n    \"user\": 1.2779354550000002,\n    \"system\": 0.015582230000000002,\n    \"min\": 1.25924841958,\n    \"max\": 1.33453119358,\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"time\": 1.31733132458\n  },\n  {\n    \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2981787411799999,\n    \"stddev\": 0.03141871200870069,\n    \"median\": 1.3073167835800001,\n    \"user\": 1.2779354550000002,\n    \"system\": 0.015582230000000002,\n    \"min\": 1.25924841958,\n    \"max\": 1.33453119358,\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"time\": 1.3073167835800001\n  },\n  {\n    \"command\": \"6a34f9146d4efaae547e9c316c6016c8bbcf1833 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2981787411799999,\n    \"stddev\": 0.03141871200870069,\n    \"median\": 1.3073167835800001,\n    \"user\": 1.2779354550000002,\n    \"system\": 0.015582230000000002,\n    \"min\": 1.25924841958,\n    \"max\": 1.33453119358,\n    \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n    \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n    \"time\": 1.25924841958\n  },\n  {\n    \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2783820779800001,\n    \"stddev\": 0.022140695546713992,\n    \"median\": 1.27184419158,\n    \"user\": 1.254382855,\n    \"system\": 0.014474829999999998,\n    \"min\": 1.26058767558,\n    \"max\": 1.3152787135800001,\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"time\": 1.3152787135800001\n  },\n  {\n    \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2783820779800001,\n    \"stddev\": 0.022140695546713992,\n    \"median\": 1.27184419158,\n    \"user\": 1.254382855,\n    \"system\": 0.014474829999999998,\n    \"min\": 1.26058767558,\n    \"max\": 1.3152787135800001,\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"time\": 1.26312316358\n  },\n  {\n    \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2783820779800001,\n    \"stddev\": 0.022140695546713992,\n    \"median\": 1.27184419158,\n    \"user\": 1.254382855,\n    \"system\": 0.014474829999999998,\n    \"min\": 1.26058767558,\n    \"max\": 1.3152787135800001,\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"time\": 1.27184419158\n  },\n  {\n    \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2783820779800001,\n    \"stddev\": 0.022140695546713992,\n    \"median\": 1.27184419158,\n    \"user\": 1.254382855,\n    \"system\": 0.014474829999999998,\n    \"min\": 1.26058767558,\n    \"max\": 1.3152787135800001,\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"time\": 1.26058767558\n  },\n  {\n    \"command\": \"480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2783820779800001,\n    \"stddev\": 0.022140695546713992,\n    \"median\": 1.27184419158,\n    \"user\": 1.254382855,\n    \"system\": 0.014474829999999998,\n    \"min\": 1.26058767558,\n    \"max\": 1.3152787135800001,\n    \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n    \"message\": \"Make list_languages work. Ref #6\\n\",\n    \"time\": 1.28107664558\n  },\n  {\n    \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3088831781799999,\n    \"stddev\": 0.03335503578258712,\n    \"median\": 1.32921559758,\n    \"user\": 1.2808480549999999,\n    \"system\": 0.01773743,\n    \"min\": 1.26291460858,\n    \"max\": 1.33756396058,\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"time\": 1.33756396058\n  },\n  {\n    \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3088831781799999,\n    \"stddev\": 0.03335503578258712,\n    \"median\": 1.32921559758,\n    \"user\": 1.2808480549999999,\n    \"system\": 0.01773743,\n    \"min\": 1.26291460858,\n    \"max\": 1.33756396058,\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"time\": 1.32921559758\n  },\n  {\n    \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3088831781799999,\n    \"stddev\": 0.03335503578258712,\n    \"median\": 1.32921559758,\n    \"user\": 1.2808480549999999,\n    \"system\": 0.01773743,\n    \"min\": 1.26291460858,\n    \"max\": 1.33756396058,\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"time\": 1.33077554558\n  },\n  {\n    \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3088831781799999,\n    \"stddev\": 0.03335503578258712,\n    \"median\": 1.32921559758,\n    \"user\": 1.2808480549999999,\n    \"system\": 0.01773743,\n    \"min\": 1.26291460858,\n    \"max\": 1.33756396058,\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"time\": 1.2839461785800002\n  },\n  {\n    \"command\": \"a6be51a79ce335978b287bee78453ba30ee8f38f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3088831781799999,\n    \"stddev\": 0.03335503578258712,\n    \"median\": 1.32921559758,\n    \"user\": 1.2808480549999999,\n    \"system\": 0.01773743,\n    \"min\": 1.26291460858,\n    \"max\": 1.33756396058,\n    \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n    \"message\": \"Make list_themes work. Fixes #6\\n\",\n    \"time\": 1.26291460858\n  },\n  {\n    \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2931594611800001,\n    \"stddev\": 0.04641328953818192,\n    \"median\": 1.2808378635800002,\n    \"user\": 1.272343255,\n    \"system\": 0.01589203,\n    \"min\": 1.26217019058,\n    \"max\": 1.37385795958,\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.37385795958\n  },\n  {\n    \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2931594611800001,\n    \"stddev\": 0.04641328953818192,\n    \"median\": 1.2808378635800002,\n    \"user\": 1.272343255,\n    \"system\": 0.01589203,\n    \"min\": 1.26217019058,\n    \"max\": 1.37385795958,\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.28657869758\n  },\n  {\n    \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2931594611800001,\n    \"stddev\": 0.04641328953818192,\n    \"median\": 1.2808378635800002,\n    \"user\": 1.272343255,\n    \"system\": 0.01589203,\n    \"min\": 1.26217019058,\n    \"max\": 1.37385795958,\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.2808378635800002\n  },\n  {\n    \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2931594611800001,\n    \"stddev\": 0.04641328953818192,\n    \"median\": 1.2808378635800002,\n    \"user\": 1.272343255,\n    \"system\": 0.01589203,\n    \"min\": 1.26217019058,\n    \"max\": 1.37385795958,\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.26235259458\n  },\n  {\n    \"command\": \"042f293a202e2f88970cf4615cd352dc01d54776 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2931594611800001,\n    \"stddev\": 0.04641328953818192,\n    \"median\": 1.2808378635800002,\n    \"user\": 1.272343255,\n    \"system\": 0.01589203,\n    \"min\": 1.26217019058,\n    \"max\": 1.37385795958,\n    \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.26217019058\n  },\n  {\n    \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38617159858,\n    \"stddev\": 0.038078357627281297,\n    \"median\": 1.38287314458,\n    \"user\": 1.349599655,\n    \"system\": 0.02254623,\n    \"min\": 1.33610599258,\n    \"max\": 1.44335097258,\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.38287314458\n  },\n  {\n    \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38617159858,\n    \"stddev\": 0.038078357627281297,\n    \"median\": 1.38287314458,\n    \"user\": 1.349599655,\n    \"system\": 0.02254623,\n    \"min\": 1.33610599258,\n    \"max\": 1.44335097258,\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.44335097258\n  },\n  {\n    \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38617159858,\n    \"stddev\": 0.038078357627281297,\n    \"median\": 1.38287314458,\n    \"user\": 1.349599655,\n    \"system\": 0.02254623,\n    \"min\": 1.33610599258,\n    \"max\": 1.44335097258,\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.38258443958\n  },\n  {\n    \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38617159858,\n    \"stddev\": 0.038078357627281297,\n    \"median\": 1.38287314458,\n    \"user\": 1.349599655,\n    \"system\": 0.02254623,\n    \"min\": 1.33610599258,\n    \"max\": 1.44335097258,\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.38594344358\n  },\n  {\n    \"command\": \"62dce186a0c79628c89e09dcbb7eba431a75ccfc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38617159858,\n    \"stddev\": 0.038078357627281297,\n    \"median\": 1.38287314458,\n    \"user\": 1.349599655,\n    \"system\": 0.02254623,\n    \"min\": 1.33610599258,\n    \"max\": 1.44335097258,\n    \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.33610599258\n  },\n  {\n    \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44643162818,\n    \"stddev\": 0.03567020705793785,\n    \"median\": 1.44707433258,\n    \"user\": 1.401989255,\n    \"system\": 0.02759583,\n    \"min\": 1.39970189058,\n    \"max\": 1.49738521358,\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"time\": 1.4318068855800001\n  },\n  {\n    \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44643162818,\n    \"stddev\": 0.03567020705793785,\n    \"median\": 1.44707433258,\n    \"user\": 1.401989255,\n    \"system\": 0.02759583,\n    \"min\": 1.39970189058,\n    \"max\": 1.49738521358,\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"time\": 1.49738521358\n  },\n  {\n    \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44643162818,\n    \"stddev\": 0.03567020705793785,\n    \"median\": 1.44707433258,\n    \"user\": 1.401989255,\n    \"system\": 0.02759583,\n    \"min\": 1.39970189058,\n    \"max\": 1.49738521358,\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"time\": 1.4561898185800002\n  },\n  {\n    \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44643162818,\n    \"stddev\": 0.03567020705793785,\n    \"median\": 1.44707433258,\n    \"user\": 1.401989255,\n    \"system\": 0.02759583,\n    \"min\": 1.39970189058,\n    \"max\": 1.49738521358,\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"time\": 1.44707433258\n  },\n  {\n    \"command\": \"bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44643162818,\n    \"stddev\": 0.03567020705793785,\n    \"median\": 1.44707433258,\n    \"user\": 1.401989255,\n    \"system\": 0.02759583,\n    \"min\": 1.39970189058,\n    \"max\": 1.49738521358,\n    \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n    \"message\": \"Refactor: generic function processing lines of input\\n\",\n    \"time\": 1.39970189058\n  },\n  {\n    \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3410788079800002,\n    \"stddev\": 0.059152894860593254,\n    \"median\": 1.34737839458,\n    \"user\": 1.317266255,\n    \"system\": 0.018279029999999998,\n    \"min\": 1.27592541358,\n    \"max\": 1.42913161658,\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"time\": 1.29880240058\n  },\n  {\n    \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3410788079800002,\n    \"stddev\": 0.059152894860593254,\n    \"median\": 1.34737839458,\n    \"user\": 1.317266255,\n    \"system\": 0.018279029999999998,\n    \"min\": 1.27592541358,\n    \"max\": 1.42913161658,\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"time\": 1.27592541358\n  },\n  {\n    \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3410788079800002,\n    \"stddev\": 0.059152894860593254,\n    \"median\": 1.34737839458,\n    \"user\": 1.317266255,\n    \"system\": 0.018279029999999998,\n    \"min\": 1.27592541358,\n    \"max\": 1.42913161658,\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"time\": 1.3541562145800001\n  },\n  {\n    \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3410788079800002,\n    \"stddev\": 0.059152894860593254,\n    \"median\": 1.34737839458,\n    \"user\": 1.317266255,\n    \"system\": 0.018279029999999998,\n    \"min\": 1.27592541358,\n    \"max\": 1.42913161658,\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"time\": 1.34737839458\n  },\n  {\n    \"command\": \"e096e6d7e6e29309346c3521971b784bbc30ddfd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3410788079800002,\n    \"stddev\": 0.059152894860593254,\n    \"median\": 1.34737839458,\n    \"user\": 1.317266255,\n    \"system\": 0.018279029999999998,\n    \"min\": 1.27592541358,\n    \"max\": 1.42913161658,\n    \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n    \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n    \"time\": 1.42913161658\n  },\n  {\n    \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9593177351800002,\n    \"stddev\": 0.05486969310442442,\n    \"median\": 0.9393730995800001,\n    \"user\": 0.9383780549999999,\n    \"system\": 0.015311029999999998,\n    \"min\": 0.9027735075800001,\n    \"max\": 1.02753785658,\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"time\": 1.00680832658\n  },\n  {\n    \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9593177351800002,\n    \"stddev\": 0.05486969310442442,\n    \"median\": 0.9393730995800001,\n    \"user\": 0.9383780549999999,\n    \"system\": 0.015311029999999998,\n    \"min\": 0.9027735075800001,\n    \"max\": 1.02753785658,\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"time\": 1.02753785658\n  },\n  {\n    \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9593177351800002,\n    \"stddev\": 0.05486969310442442,\n    \"median\": 0.9393730995800001,\n    \"user\": 0.9383780549999999,\n    \"system\": 0.015311029999999998,\n    \"min\": 0.9027735075800001,\n    \"max\": 1.02753785658,\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"time\": 0.9393730995800001\n  },\n  {\n    \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9593177351800002,\n    \"stddev\": 0.05486969310442442,\n    \"median\": 0.9393730995800001,\n    \"user\": 0.9383780549999999,\n    \"system\": 0.015311029999999998,\n    \"min\": 0.9027735075800001,\n    \"max\": 1.02753785658,\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"time\": 0.9027735075800001\n  },\n  {\n    \"command\": \"d2989885a3bae52618a95979bf6bb07f7f764c38 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9593177351800002,\n    \"stddev\": 0.05486969310442442,\n    \"median\": 0.9393730995800001,\n    \"user\": 0.9383780549999999,\n    \"system\": 0.015311029999999998,\n    \"min\": 0.9027735075800001,\n    \"max\": 1.02753785658,\n    \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n    \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n    \"time\": 0.9200958855800001\n  },\n  {\n    \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9126206553800001,\n    \"stddev\": 0.007821082654937623,\n    \"median\": 0.91217397458,\n    \"user\": 0.8968812549999999,\n    \"system\": 0.012148429999999998,\n    \"min\": 0.9016315475800001,\n    \"max\": 0.9232151215800001,\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"time\": 0.9153993555800001\n  },\n  {\n    \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9126206553800001,\n    \"stddev\": 0.007821082654937623,\n    \"median\": 0.91217397458,\n    \"user\": 0.8968812549999999,\n    \"system\": 0.012148429999999998,\n    \"min\": 0.9016315475800001,\n    \"max\": 0.9232151215800001,\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"time\": 0.91217397458\n  },\n  {\n    \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9126206553800001,\n    \"stddev\": 0.007821082654937623,\n    \"median\": 0.91217397458,\n    \"user\": 0.8968812549999999,\n    \"system\": 0.012148429999999998,\n    \"min\": 0.9016315475800001,\n    \"max\": 0.9232151215800001,\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"time\": 0.9106832775800001\n  },\n  {\n    \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9126206553800001,\n    \"stddev\": 0.007821082654937623,\n    \"median\": 0.91217397458,\n    \"user\": 0.8968812549999999,\n    \"system\": 0.012148429999999998,\n    \"min\": 0.9016315475800001,\n    \"max\": 0.9232151215800001,\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"time\": 0.9016315475800001\n  },\n  {\n    \"command\": \"6adc0acb2d53fcb8b945f622c435be8e46287cce < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9126206553800001,\n    \"stddev\": 0.007821082654937623,\n    \"median\": 0.91217397458,\n    \"user\": 0.8968812549999999,\n    \"system\": 0.012148429999999998,\n    \"min\": 0.9016315475800001,\n    \"max\": 0.9232151215800001,\n    \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n    \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n    \"time\": 0.9232151215800001\n  },\n  {\n    \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91413394678,\n    \"stddev\": 0.0074679809256672615,\n    \"median\": 0.9117863525800001,\n    \"user\": 0.898638855,\n    \"system\": 0.012058630000000002,\n    \"min\": 0.9070344785800001,\n    \"max\": 0.9259702515800001,\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 0.90945960158\n  },\n  {\n    \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91413394678,\n    \"stddev\": 0.0074679809256672615,\n    \"median\": 0.9117863525800001,\n    \"user\": 0.898638855,\n    \"system\": 0.012058630000000002,\n    \"min\": 0.9070344785800001,\n    \"max\": 0.9259702515800001,\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 0.9117863525800001\n  },\n  {\n    \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91413394678,\n    \"stddev\": 0.0074679809256672615,\n    \"median\": 0.9117863525800001,\n    \"user\": 0.898638855,\n    \"system\": 0.012058630000000002,\n    \"min\": 0.9070344785800001,\n    \"max\": 0.9259702515800001,\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 0.9164190495800001\n  },\n  {\n    \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91413394678,\n    \"stddev\": 0.0074679809256672615,\n    \"median\": 0.9117863525800001,\n    \"user\": 0.898638855,\n    \"system\": 0.012058630000000002,\n    \"min\": 0.9070344785800001,\n    \"max\": 0.9259702515800001,\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 0.9070344785800001\n  },\n  {\n    \"command\": \"2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.91413394678,\n    \"stddev\": 0.0074679809256672615,\n    \"median\": 0.9117863525800001,\n    \"user\": 0.898638855,\n    \"system\": 0.012058630000000002,\n    \"min\": 0.9070344785800001,\n    \"max\": 0.9259702515800001,\n    \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 0.9259702515800001\n  },\n  {\n    \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9283165745799999,\n    \"stddev\": 0.0022236648059388666,\n    \"median\": 0.9288232675800001,\n    \"user\": 0.9116104549999999,\n    \"system\": 0.01287843,\n    \"min\": 0.9250756315800001,\n    \"max\": 0.9311348815800001,\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"time\": 0.9311348815800001\n  },\n  {\n    \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9283165745799999,\n    \"stddev\": 0.0022236648059388666,\n    \"median\": 0.9288232675800001,\n    \"user\": 0.9116104549999999,\n    \"system\": 0.01287843,\n    \"min\": 0.9250756315800001,\n    \"max\": 0.9311348815800001,\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"time\": 0.9290066335800001\n  },\n  {\n    \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9283165745799999,\n    \"stddev\": 0.0022236648059388666,\n    \"median\": 0.9288232675800001,\n    \"user\": 0.9116104549999999,\n    \"system\": 0.01287843,\n    \"min\": 0.9250756315800001,\n    \"max\": 0.9311348815800001,\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"time\": 0.9275424585800001\n  },\n  {\n    \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9283165745799999,\n    \"stddev\": 0.0022236648059388666,\n    \"median\": 0.9288232675800001,\n    \"user\": 0.9116104549999999,\n    \"system\": 0.01287843,\n    \"min\": 0.9250756315800001,\n    \"max\": 0.9311348815800001,\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"time\": 0.9250756315800001\n  },\n  {\n    \"command\": \"72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 0.9283165745799999,\n    \"stddev\": 0.0022236648059388666,\n    \"median\": 0.9288232675800001,\n    \"user\": 0.9116104549999999,\n    \"system\": 0.01287843,\n    \"min\": 0.9250756315800001,\n    \"max\": 0.9311348815800001,\n    \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n    \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n    \"time\": 0.9288232675800001\n  },\n  {\n    \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4170753991800003,\n    \"stddev\": 0.31899877410919614,\n    \"median\": 1.33294455058,\n    \"user\": 1.296304255,\n    \"system\": 0.023569629999999998,\n    \"min\": 1.2134124455800002,\n    \"max\": 1.9766340825800002,\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"time\": 1.21619189058\n  },\n  {\n    \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4170753991800003,\n    \"stddev\": 0.31899877410919614,\n    \"median\": 1.33294455058,\n    \"user\": 1.296304255,\n    \"system\": 0.023569629999999998,\n    \"min\": 1.2134124455800002,\n    \"max\": 1.9766340825800002,\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"time\": 1.2134124455800002\n  },\n  {\n    \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4170753991800003,\n    \"stddev\": 0.31899877410919614,\n    \"median\": 1.33294455058,\n    \"user\": 1.296304255,\n    \"system\": 0.023569629999999998,\n    \"min\": 1.2134124455800002,\n    \"max\": 1.9766340825800002,\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"time\": 1.33294455058\n  },\n  {\n    \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4170753991800003,\n    \"stddev\": 0.31899877410919614,\n    \"median\": 1.33294455058,\n    \"user\": 1.296304255,\n    \"system\": 0.023569629999999998,\n    \"min\": 1.2134124455800002,\n    \"max\": 1.9766340825800002,\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"time\": 1.34619402658\n  },\n  {\n    \"command\": \"67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4170753991800003,\n    \"stddev\": 0.31899877410919614,\n    \"median\": 1.33294455058,\n    \"user\": 1.296304255,\n    \"system\": 0.023569629999999998,\n    \"min\": 1.2134124455800002,\n    \"max\": 1.9766340825800002,\n    \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n    \"message\": \"Use same default dark theme as bat\\n\",\n    \"time\": 1.9766340825800002\n  },\n  {\n    \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2596060523800001,\n    \"stddev\": 0.02342969574963548,\n    \"median\": 1.27096581358,\n    \"user\": 1.2360794549999998,\n    \"system\": 0.017896429999999998,\n    \"min\": 1.2229171305800002,\n    \"max\": 1.27850944458,\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"message\": \"bash completion\\n\",\n    \"time\": 1.27850944458\n  },\n  {\n    \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2596060523800001,\n    \"stddev\": 0.02342969574963548,\n    \"median\": 1.27096581358,\n    \"user\": 1.2360794549999998,\n    \"system\": 0.017896429999999998,\n    \"min\": 1.2229171305800002,\n    \"max\": 1.27850944458,\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"message\": \"bash completion\\n\",\n    \"time\": 1.27096581358\n  },\n  {\n    \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2596060523800001,\n    \"stddev\": 0.02342969574963548,\n    \"median\": 1.27096581358,\n    \"user\": 1.2360794549999998,\n    \"system\": 0.017896429999999998,\n    \"min\": 1.2229171305800002,\n    \"max\": 1.27850944458,\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"message\": \"bash completion\\n\",\n    \"time\": 1.27590896958\n  },\n  {\n    \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2596060523800001,\n    \"stddev\": 0.02342969574963548,\n    \"median\": 1.27096581358,\n    \"user\": 1.2360794549999998,\n    \"system\": 0.017896429999999998,\n    \"min\": 1.2229171305800002,\n    \"max\": 1.27850944458,\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"message\": \"bash completion\\n\",\n    \"time\": 1.24972890358\n  },\n  {\n    \"command\": \"c2ac72bf6d991f47fcfa971cd69407eec692bf2d < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2596060523800001,\n    \"stddev\": 0.02342969574963548,\n    \"median\": 1.27096581358,\n    \"user\": 1.2360794549999998,\n    \"system\": 0.017896429999999998,\n    \"min\": 1.2229171305800002,\n    \"max\": 1.27850944458,\n    \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n    \"message\": \"bash completion\\n\",\n    \"time\": 1.2229171305800002\n  },\n  {\n    \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3043690147800002,\n    \"stddev\": 0.13134338202913434,\n    \"median\": 1.23810097658,\n    \"user\": 1.2452322550000001,\n    \"system\": 0.018127429999999996,\n    \"min\": 1.22662249258,\n    \"max\": 1.53355345958,\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"message\": \"Improve help text\\n\",\n    \"time\": 1.29653962658\n  },\n  {\n    \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3043690147800002,\n    \"stddev\": 0.13134338202913434,\n    \"median\": 1.23810097658,\n    \"user\": 1.2452322550000001,\n    \"system\": 0.018127429999999996,\n    \"min\": 1.22662249258,\n    \"max\": 1.53355345958,\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"message\": \"Improve help text\\n\",\n    \"time\": 1.22662249258\n  },\n  {\n    \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3043690147800002,\n    \"stddev\": 0.13134338202913434,\n    \"median\": 1.23810097658,\n    \"user\": 1.2452322550000001,\n    \"system\": 0.018127429999999996,\n    \"min\": 1.22662249258,\n    \"max\": 1.53355345958,\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"message\": \"Improve help text\\n\",\n    \"time\": 1.22702851858\n  },\n  {\n    \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3043690147800002,\n    \"stddev\": 0.13134338202913434,\n    \"median\": 1.23810097658,\n    \"user\": 1.2452322550000001,\n    \"system\": 0.018127429999999996,\n    \"min\": 1.22662249258,\n    \"max\": 1.53355345958,\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"message\": \"Improve help text\\n\",\n    \"time\": 1.23810097658\n  },\n  {\n    \"command\": \"cec380c2ee69b17886f56397d1f48b8279c0aa7c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3043690147800002,\n    \"stddev\": 0.13134338202913434,\n    \"median\": 1.23810097658,\n    \"user\": 1.2452322550000001,\n    \"system\": 0.018127429999999996,\n    \"min\": 1.22662249258,\n    \"max\": 1.53355345958,\n    \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n    \"message\": \"Improve help text\\n\",\n    \"time\": 1.53355345958\n  },\n  {\n    \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2356245445800003,\n    \"stddev\": 0.040604780871987066,\n    \"median\": 1.2160595355800001,\n    \"user\": 1.212407255,\n    \"system\": 0.016054030000000004,\n    \"min\": 1.2006306715800001,\n    \"max\": 1.2839529255800002,\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"time\": 1.27502057658\n  },\n  {\n    \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2356245445800003,\n    \"stddev\": 0.040604780871987066,\n    \"median\": 1.2160595355800001,\n    \"user\": 1.212407255,\n    \"system\": 0.016054030000000004,\n    \"min\": 1.2006306715800001,\n    \"max\": 1.2839529255800002,\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"time\": 1.2006306715800001\n  },\n  {\n    \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2356245445800003,\n    \"stddev\": 0.040604780871987066,\n    \"median\": 1.2160595355800001,\n    \"user\": 1.212407255,\n    \"system\": 0.016054030000000004,\n    \"min\": 1.2006306715800001,\n    \"max\": 1.2839529255800002,\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"time\": 1.2024590135800002\n  },\n  {\n    \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2356245445800003,\n    \"stddev\": 0.040604780871987066,\n    \"median\": 1.2160595355800001,\n    \"user\": 1.212407255,\n    \"system\": 0.016054030000000004,\n    \"min\": 1.2006306715800001,\n    \"max\": 1.2839529255800002,\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"time\": 1.2160595355800001\n  },\n  {\n    \"command\": \"299904b493ebc17b586ae4df3cae8312331ae8dc < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2356245445800003,\n    \"stddev\": 0.040604780871987066,\n    \"median\": 1.2160595355800001,\n    \"user\": 1.212407255,\n    \"system\": 0.016054030000000004,\n    \"min\": 1.2006306715800001,\n    \"max\": 1.2839529255800002,\n    \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n    \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n    \"time\": 1.2839529255800002\n  },\n  {\n    \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3406394479800001,\n    \"stddev\": 0.10491641532671422,\n    \"median\": 1.28722968858,\n    \"user\": 1.293215055,\n    \"system\": 0.02248403,\n    \"min\": 1.2545114825800001,\n    \"max\": 1.5053313425800001,\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"time\": 1.27185114658\n  },\n  {\n    \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3406394479800001,\n    \"stddev\": 0.10491641532671422,\n    \"median\": 1.28722968858,\n    \"user\": 1.293215055,\n    \"system\": 0.02248403,\n    \"min\": 1.2545114825800001,\n    \"max\": 1.5053313425800001,\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"time\": 1.2545114825800001\n  },\n  {\n    \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3406394479800001,\n    \"stddev\": 0.10491641532671422,\n    \"median\": 1.28722968858,\n    \"user\": 1.293215055,\n    \"system\": 0.02248403,\n    \"min\": 1.2545114825800001,\n    \"max\": 1.5053313425800001,\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"time\": 1.5053313425800001\n  },\n  {\n    \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3406394479800001,\n    \"stddev\": 0.10491641532671422,\n    \"median\": 1.28722968858,\n    \"user\": 1.293215055,\n    \"system\": 0.02248403,\n    \"min\": 1.2545114825800001,\n    \"max\": 1.5053313425800001,\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"time\": 1.28722968858\n  },\n  {\n    \"command\": \"df892375a0677d4f7b274aff070d1349718883af < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3406394479800001,\n    \"stddev\": 0.10491641532671422,\n    \"median\": 1.28722968858,\n    \"user\": 1.293215055,\n    \"system\": 0.02248403,\n    \"min\": 1.2545114825800001,\n    \"max\": 1.5053313425800001,\n    \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n    \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n    \"time\": 1.38427357958\n  },\n  {\n    \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2331307699800003,\n    \"stddev\": 0.0264263325756844,\n    \"median\": 1.24519680858,\n    \"user\": 1.210079055,\n    \"system\": 0.017274229999999998,\n    \"min\": 1.20232628958,\n    \"max\": 1.2577107085800001,\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"message\": \"Add output.rs from bat\\n\",\n    \"time\": 1.24519680858\n  },\n  {\n    \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2331307699800003,\n    \"stddev\": 0.0264263325756844,\n    \"median\": 1.24519680858,\n    \"user\": 1.210079055,\n    \"system\": 0.017274229999999998,\n    \"min\": 1.20232628958,\n    \"max\": 1.2577107085800001,\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"message\": \"Add output.rs from bat\\n\",\n    \"time\": 1.2534227765800001\n  },\n  {\n    \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2331307699800003,\n    \"stddev\": 0.0264263325756844,\n    \"median\": 1.24519680858,\n    \"user\": 1.210079055,\n    \"system\": 0.017274229999999998,\n    \"min\": 1.20232628958,\n    \"max\": 1.2577107085800001,\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"message\": \"Add output.rs from bat\\n\",\n    \"time\": 1.2577107085800001\n  },\n  {\n    \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2331307699800003,\n    \"stddev\": 0.0264263325756844,\n    \"median\": 1.24519680858,\n    \"user\": 1.210079055,\n    \"system\": 0.017274229999999998,\n    \"min\": 1.20232628958,\n    \"max\": 1.2577107085800001,\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"message\": \"Add output.rs from bat\\n\",\n    \"time\": 1.20232628958\n  },\n  {\n    \"command\": \"9165acded94edd4ab8e40e6e323369f541e747b1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2331307699800003,\n    \"stddev\": 0.0264263325756844,\n    \"median\": 1.24519680858,\n    \"user\": 1.210079055,\n    \"system\": 0.017274229999999998,\n    \"min\": 1.20232628958,\n    \"max\": 1.2577107085800001,\n    \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n    \"message\": \"Add output.rs from bat\\n\",\n    \"time\": 1.20699726658\n  },\n  {\n    \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.17085900258,\n    \"stddev\": 0.013850011311249254,\n    \"median\": 1.17632468858,\n    \"user\": 1.154530055,\n    \"system\": 0.01294743,\n    \"min\": 1.14964271958,\n    \"max\": 1.1829601465800001,\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"message\": \"rustfmt\\n\",\n    \"time\": 1.1644925775800001\n  },\n  {\n    \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.17085900258,\n    \"stddev\": 0.013850011311249254,\n    \"median\": 1.17632468858,\n    \"user\": 1.154530055,\n    \"system\": 0.01294743,\n    \"min\": 1.14964271958,\n    \"max\": 1.1829601465800001,\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"message\": \"rustfmt\\n\",\n    \"time\": 1.17632468858\n  },\n  {\n    \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.17085900258,\n    \"stddev\": 0.013850011311249254,\n    \"median\": 1.17632468858,\n    \"user\": 1.154530055,\n    \"system\": 0.01294743,\n    \"min\": 1.14964271958,\n    \"max\": 1.1829601465800001,\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"message\": \"rustfmt\\n\",\n    \"time\": 1.18087488058\n  },\n  {\n    \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.17085900258,\n    \"stddev\": 0.013850011311249254,\n    \"median\": 1.17632468858,\n    \"user\": 1.154530055,\n    \"system\": 0.01294743,\n    \"min\": 1.14964271958,\n    \"max\": 1.1829601465800001,\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"message\": \"rustfmt\\n\",\n    \"time\": 1.1829601465800001\n  },\n  {\n    \"command\": \"950a78a78d315a08ec95621e329b088fe5284b14 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.17085900258,\n    \"stddev\": 0.013850011311249254,\n    \"median\": 1.17632468858,\n    \"user\": 1.154530055,\n    \"system\": 0.01294743,\n    \"min\": 1.14964271958,\n    \"max\": 1.1829601465800001,\n    \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n    \"message\": \"rustfmt\\n\",\n    \"time\": 1.14964271958\n  },\n  {\n    \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2920842777800001,\n    \"stddev\": 0.013700472041378765,\n    \"median\": 1.28604598958,\n    \"user\": 1.299271455,\n    \"system\": 0.08082383,\n    \"min\": 1.28058278858,\n    \"max\": 1.31362271058,\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"time\": 1.31362271058\n  },\n  {\n    \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2920842777800001,\n    \"stddev\": 0.013700472041378765,\n    \"median\": 1.28604598958,\n    \"user\": 1.299271455,\n    \"system\": 0.08082383,\n    \"min\": 1.28058278858,\n    \"max\": 1.31362271058,\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"time\": 1.28266309558\n  },\n  {\n    \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2920842777800001,\n    \"stddev\": 0.013700472041378765,\n    \"median\": 1.28604598958,\n    \"user\": 1.299271455,\n    \"system\": 0.08082383,\n    \"min\": 1.28058278858,\n    \"max\": 1.31362271058,\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"time\": 1.28604598958\n  },\n  {\n    \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2920842777800001,\n    \"stddev\": 0.013700472041378765,\n    \"median\": 1.28604598958,\n    \"user\": 1.299271455,\n    \"system\": 0.08082383,\n    \"min\": 1.28058278858,\n    \"max\": 1.31362271058,\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"time\": 1.29750680458\n  },\n  {\n    \"command\": \"e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2920842777800001,\n    \"stddev\": 0.013700472041378765,\n    \"median\": 1.28604598958,\n    \"user\": 1.299271455,\n    \"system\": 0.08082383,\n    \"min\": 1.28058278858,\n    \"max\": 1.31362271058,\n    \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n    \"message\": \"Use bat's output.rs to write to pager\\n\",\n    \"time\": 1.28058278858\n  },\n  {\n    \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2925176069800002,\n    \"stddev\": 0.019709265420075353,\n    \"median\": 1.28550820258,\n    \"user\": 1.293943055,\n    \"system\": 0.08118942999999998,\n    \"min\": 1.27454685958,\n    \"max\": 1.3259546075800002,\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"time\": 1.3259546075800002\n  },\n  {\n    \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2925176069800002,\n    \"stddev\": 0.019709265420075353,\n    \"median\": 1.28550820258,\n    \"user\": 1.293943055,\n    \"system\": 0.08118942999999998,\n    \"min\": 1.27454685958,\n    \"max\": 1.3259546075800002,\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"time\": 1.2845509405800002\n  },\n  {\n    \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2925176069800002,\n    \"stddev\": 0.019709265420075353,\n    \"median\": 1.28550820258,\n    \"user\": 1.293943055,\n    \"system\": 0.08118942999999998,\n    \"min\": 1.27454685958,\n    \"max\": 1.3259546075800002,\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"time\": 1.29202742458\n  },\n  {\n    \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2925176069800002,\n    \"stddev\": 0.019709265420075353,\n    \"median\": 1.28550820258,\n    \"user\": 1.293943055,\n    \"system\": 0.08118942999999998,\n    \"min\": 1.27454685958,\n    \"max\": 1.3259546075800002,\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"time\": 1.28550820258\n  },\n  {\n    \"command\": \"e4197550687f14435be3b73afb8507d3b2609dee < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2925176069800002,\n    \"stddev\": 0.019709265420075353,\n    \"median\": 1.28550820258,\n    \"user\": 1.293943055,\n    \"system\": 0.08118942999999998,\n    \"min\": 1.27454685958,\n    \"max\": 1.3259546075800002,\n    \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n    \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n    \"time\": 1.27454685958\n  },\n  {\n    \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2740238375800002,\n    \"stddev\": 0.005492093670018539,\n    \"median\": 1.27566976558,\n    \"user\": 1.2827250549999998,\n    \"system\": 0.07636742999999999,\n    \"min\": 1.26700758158,\n    \"max\": 1.27944937158,\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"time\": 1.27566976558\n  },\n  {\n    \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2740238375800002,\n    \"stddev\": 0.005492093670018539,\n    \"median\": 1.27566976558,\n    \"user\": 1.2827250549999998,\n    \"system\": 0.07636742999999999,\n    \"min\": 1.26700758158,\n    \"max\": 1.27944937158,\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"time\": 1.2695646715800002\n  },\n  {\n    \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2740238375800002,\n    \"stddev\": 0.005492093670018539,\n    \"median\": 1.27566976558,\n    \"user\": 1.2827250549999998,\n    \"system\": 0.07636742999999999,\n    \"min\": 1.26700758158,\n    \"max\": 1.27944937158,\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"time\": 1.27842779758\n  },\n  {\n    \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2740238375800002,\n    \"stddev\": 0.005492093670018539,\n    \"median\": 1.27566976558,\n    \"user\": 1.2827250549999998,\n    \"system\": 0.07636742999999999,\n    \"min\": 1.26700758158,\n    \"max\": 1.27944937158,\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"time\": 1.27944937158\n  },\n  {\n    \"command\": \"cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2740238375800002,\n    \"stddev\": 0.005492093670018539,\n    \"median\": 1.27566976558,\n    \"user\": 1.2827250549999998,\n    \"system\": 0.07636742999999999,\n    \"min\": 1.26700758158,\n    \"max\": 1.27944937158,\n    \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n    \"message\": \"Fix README: default is now a dark theme\\n\",\n    \"time\": 1.26700758158\n  },\n  {\n    \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53613543778,\n    \"stddev\": 0.022226108169866508,\n    \"median\": 1.53373216058,\n    \"user\": 1.545424655,\n    \"system\": 0.08166783,\n    \"min\": 1.51713680358,\n    \"max\": 1.57371275458,\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"message\": \"Default to full terminal width\\n\",\n    \"time\": 1.57371275458\n  },\n  {\n    \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53613543778,\n    \"stddev\": 0.022226108169866508,\n    \"median\": 1.53373216058,\n    \"user\": 1.545424655,\n    \"system\": 0.08166783,\n    \"min\": 1.51713680358,\n    \"max\": 1.57371275458,\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"message\": \"Default to full terminal width\\n\",\n    \"time\": 1.53380963958\n  },\n  {\n    \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53613543778,\n    \"stddev\": 0.022226108169866508,\n    \"median\": 1.53373216058,\n    \"user\": 1.545424655,\n    \"system\": 0.08166783,\n    \"min\": 1.51713680358,\n    \"max\": 1.57371275458,\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"message\": \"Default to full terminal width\\n\",\n    \"time\": 1.53373216058\n  },\n  {\n    \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53613543778,\n    \"stddev\": 0.022226108169866508,\n    \"median\": 1.53373216058,\n    \"user\": 1.545424655,\n    \"system\": 0.08166783,\n    \"min\": 1.51713680358,\n    \"max\": 1.57371275458,\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"message\": \"Default to full terminal width\\n\",\n    \"time\": 1.51713680358\n  },\n  {\n    \"command\": \"d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53613543778,\n    \"stddev\": 0.022226108169866508,\n    \"median\": 1.53373216058,\n    \"user\": 1.545424655,\n    \"system\": 0.08166783,\n    \"min\": 1.51713680358,\n    \"max\": 1.57371275458,\n    \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n    \"message\": \"Default to full terminal width\\n\",\n    \"time\": 1.5222858305800002\n  },\n  {\n    \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5292279187800002,\n    \"stddev\": 0.0125512317293405,\n    \"median\": 1.52586988558,\n    \"user\": 1.539753855,\n    \"system\": 0.08072303,\n    \"min\": 1.51658438858,\n    \"max\": 1.55024479858,\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.55024479858\n  },\n  {\n    \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5292279187800002,\n    \"stddev\": 0.0125512317293405,\n    \"median\": 1.52586988558,\n    \"user\": 1.539753855,\n    \"system\": 0.08072303,\n    \"min\": 1.51658438858,\n    \"max\": 1.55024479858,\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.52586988558\n  },\n  {\n    \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5292279187800002,\n    \"stddev\": 0.0125512317293405,\n    \"median\": 1.52586988558,\n    \"user\": 1.539753855,\n    \"system\": 0.08072303,\n    \"min\": 1.51658438858,\n    \"max\": 1.55024479858,\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.51658438858\n  },\n  {\n    \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5292279187800002,\n    \"stddev\": 0.0125512317293405,\n    \"median\": 1.52586988558,\n    \"user\": 1.539753855,\n    \"system\": 0.08072303,\n    \"min\": 1.51658438858,\n    \"max\": 1.55024479858,\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.52825526758\n  },\n  {\n    \"command\": \"8dd83d321cb803f7180549d82dcff89ed7710814 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5292279187800002,\n    \"stddev\": 0.0125512317293405,\n    \"median\": 1.52586988558,\n    \"user\": 1.539753855,\n    \"system\": 0.08072303,\n    \"min\": 1.51658438858,\n    \"max\": 1.55024479858,\n    \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.5251852535800001\n  },\n  {\n    \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5350773975800003,\n    \"stddev\": 0.019950244623983853,\n    \"median\": 1.5301541515800001,\n    \"user\": 1.541547855,\n    \"system\": 0.08046603,\n    \"min\": 1.5182418675800002,\n    \"max\": 1.5663392765800002,\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"time\": 1.5663392765800002\n  },\n  {\n    \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5350773975800003,\n    \"stddev\": 0.019950244623983853,\n    \"median\": 1.5301541515800001,\n    \"user\": 1.541547855,\n    \"system\": 0.08046603,\n    \"min\": 1.5182418675800002,\n    \"max\": 1.5663392765800002,\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"time\": 1.5182418675800002\n  },\n  {\n    \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5350773975800003,\n    \"stddev\": 0.019950244623983853,\n    \"median\": 1.5301541515800001,\n    \"user\": 1.541547855,\n    \"system\": 0.08046603,\n    \"min\": 1.5182418675800002,\n    \"max\": 1.5663392765800002,\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"time\": 1.5301541515800001\n  },\n  {\n    \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5350773975800003,\n    \"stddev\": 0.019950244623983853,\n    \"median\": 1.5301541515800001,\n    \"user\": 1.541547855,\n    \"system\": 0.08046603,\n    \"min\": 1.5182418675800002,\n    \"max\": 1.5663392765800002,\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"time\": 1.54176953558\n  },\n  {\n    \"command\": \"fe25f99a663027f20aac1a2c719f8af13cce7093 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5350773975800003,\n    \"stddev\": 0.019950244623983853,\n    \"median\": 1.5301541515800001,\n    \"user\": 1.541547855,\n    \"system\": 0.08046603,\n    \"min\": 1.5182418675800002,\n    \"max\": 1.5663392765800002,\n    \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n    \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n    \"time\": 1.51888215658\n  },\n  {\n    \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53961306138,\n    \"stddev\": 0.010441331136465816,\n    \"median\": 1.5391150025800002,\n    \"user\": 1.550608855,\n    \"system\": 0.08191722999999998,\n    \"min\": 1.5272002455800002,\n    \"max\": 1.5525889585800001,\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.53205115758\n  },\n  {\n    \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53961306138,\n    \"stddev\": 0.010441331136465816,\n    \"median\": 1.5391150025800002,\n    \"user\": 1.550608855,\n    \"system\": 0.08191722999999998,\n    \"min\": 1.5272002455800002,\n    \"max\": 1.5525889585800001,\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.5272002455800002\n  },\n  {\n    \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53961306138,\n    \"stddev\": 0.010441331136465816,\n    \"median\": 1.5391150025800002,\n    \"user\": 1.550608855,\n    \"system\": 0.08191722999999998,\n    \"min\": 1.5272002455800002,\n    \"max\": 1.5525889585800001,\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.5391150025800002\n  },\n  {\n    \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53961306138,\n    \"stddev\": 0.010441331136465816,\n    \"median\": 1.5391150025800002,\n    \"user\": 1.550608855,\n    \"system\": 0.08191722999999998,\n    \"min\": 1.5272002455800002,\n    \"max\": 1.5525889585800001,\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.5525889585800001\n  },\n  {\n    \"command\": \"d76d3b4252818aad661b5793c299453f52ede477 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53961306138,\n    \"stddev\": 0.010441331136465816,\n    \"median\": 1.5391150025800002,\n    \"user\": 1.550608855,\n    \"system\": 0.08191722999999998,\n    \"min\": 1.5272002455800002,\n    \"max\": 1.5525889585800001,\n    \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n    \"message\": \"Update README\\n\",\n    \"time\": 1.5471099425800001\n  },\n  {\n    \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5320642873800001,\n    \"stddev\": 0.019902615654948413,\n    \"median\": 1.52616148958,\n    \"user\": 1.537667855,\n    \"system\": 0.08008722999999998,\n    \"min\": 1.51951980458,\n    \"max\": 1.5671806805800002,\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"message\": \"Rename variable\\n\",\n    \"time\": 1.5671806805800002\n  },\n  {\n    \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5320642873800001,\n    \"stddev\": 0.019902615654948413,\n    \"median\": 1.52616148958,\n    \"user\": 1.537667855,\n    \"system\": 0.08008722999999998,\n    \"min\": 1.51951980458,\n    \"max\": 1.5671806805800002,\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"message\": \"Rename variable\\n\",\n    \"time\": 1.51951980458\n  },\n  {\n    \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5320642873800001,\n    \"stddev\": 0.019902615654948413,\n    \"median\": 1.52616148958,\n    \"user\": 1.537667855,\n    \"system\": 0.08008722999999998,\n    \"min\": 1.51951980458,\n    \"max\": 1.5671806805800002,\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"message\": \"Rename variable\\n\",\n    \"time\": 1.5205549365800002\n  },\n  {\n    \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5320642873800001,\n    \"stddev\": 0.019902615654948413,\n    \"median\": 1.52616148958,\n    \"user\": 1.537667855,\n    \"system\": 0.08008722999999998,\n    \"min\": 1.51951980458,\n    \"max\": 1.5671806805800002,\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"message\": \"Rename variable\\n\",\n    \"time\": 1.52616148958\n  },\n  {\n    \"command\": \"f758cadf152518be00675d05486996671b008aef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5320642873800001,\n    \"stddev\": 0.019902615654948413,\n    \"median\": 1.52616148958,\n    \"user\": 1.537667855,\n    \"system\": 0.08008722999999998,\n    \"min\": 1.51951980458,\n    \"max\": 1.5671806805800002,\n    \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n    \"message\": \"Rename variable\\n\",\n    \"time\": 1.5269045255800002\n  },\n  {\n    \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52606196318,\n    \"stddev\": 0.007776555243936707,\n    \"median\": 1.52380613058,\n    \"user\": 1.5378554549999999,\n    \"system\": 0.07889942999999999,\n    \"min\": 1.52099799758,\n    \"max\": 1.53966982958,\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.5211540145800002\n  },\n  {\n    \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52606196318,\n    \"stddev\": 0.007776555243936707,\n    \"median\": 1.52380613058,\n    \"user\": 1.5378554549999999,\n    \"system\": 0.07889942999999999,\n    \"min\": 1.52099799758,\n    \"max\": 1.53966982958,\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.52468184358\n  },\n  {\n    \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52606196318,\n    \"stddev\": 0.007776555243936707,\n    \"median\": 1.52380613058,\n    \"user\": 1.5378554549999999,\n    \"system\": 0.07889942999999999,\n    \"min\": 1.52099799758,\n    \"max\": 1.53966982958,\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.52099799758\n  },\n  {\n    \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52606196318,\n    \"stddev\": 0.007776555243936707,\n    \"median\": 1.52380613058,\n    \"user\": 1.5378554549999999,\n    \"system\": 0.07889942999999999,\n    \"min\": 1.52099799758,\n    \"max\": 1.53966982958,\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.53966982958\n  },\n  {\n    \"command\": \"9b15c892da51ab4f6a183c07b5539c3ea249a924 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52606196318,\n    \"stddev\": 0.007776555243936707,\n    \"median\": 1.52380613058,\n    \"user\": 1.5378554549999999,\n    \"system\": 0.07889942999999999,\n    \"min\": 1.52099799758,\n    \"max\": 1.53966982958,\n    \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.52380613058\n  },\n  {\n    \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52633177718,\n    \"stddev\": 0.00725252735765043,\n    \"median\": 1.5269923705800001,\n    \"user\": 1.538134655,\n    \"system\": 0.07814243,\n    \"min\": 1.51487670758,\n    \"max\": 1.53360762058,\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"message\": \"Add a screenshot\\n\",\n    \"time\": 1.51487670758\n  },\n  {\n    \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52633177718,\n    \"stddev\": 0.00725252735765043,\n    \"median\": 1.5269923705800001,\n    \"user\": 1.538134655,\n    \"system\": 0.07814243,\n    \"min\": 1.51487670758,\n    \"max\": 1.53360762058,\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"message\": \"Add a screenshot\\n\",\n    \"time\": 1.52495953458\n  },\n  {\n    \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52633177718,\n    \"stddev\": 0.00725252735765043,\n    \"median\": 1.5269923705800001,\n    \"user\": 1.538134655,\n    \"system\": 0.07814243,\n    \"min\": 1.51487670758,\n    \"max\": 1.53360762058,\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"message\": \"Add a screenshot\\n\",\n    \"time\": 1.5269923705800001\n  },\n  {\n    \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52633177718,\n    \"stddev\": 0.00725252735765043,\n    \"median\": 1.5269923705800001,\n    \"user\": 1.538134655,\n    \"system\": 0.07814243,\n    \"min\": 1.51487670758,\n    \"max\": 1.53360762058,\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"message\": \"Add a screenshot\\n\",\n    \"time\": 1.53360762058\n  },\n  {\n    \"command\": \"afa02ba11e0bc727218d97d453d7445e12853979 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.52633177718,\n    \"stddev\": 0.00725252735765043,\n    \"median\": 1.5269923705800001,\n    \"user\": 1.538134655,\n    \"system\": 0.07814243,\n    \"min\": 1.51487670758,\n    \"max\": 1.53360762058,\n    \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n    \"message\": \"Add a screenshot\\n\",\n    \"time\": 1.5312226525800001\n  },\n  {\n    \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5293607281800001,\n    \"stddev\": 0.008789365257935737,\n    \"median\": 1.53156612758,\n    \"user\": 1.540988055,\n    \"system\": 0.07945463,\n    \"min\": 1.51562298358,\n    \"max\": 1.53765701858,\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.53765701858\n  },\n  {\n    \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5293607281800001,\n    \"stddev\": 0.008789365257935737,\n    \"median\": 1.53156612758,\n    \"user\": 1.540988055,\n    \"system\": 0.07945463,\n    \"min\": 1.51562298358,\n    \"max\": 1.53765701858,\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.51562298358\n  },\n  {\n    \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5293607281800001,\n    \"stddev\": 0.008789365257935737,\n    \"median\": 1.53156612758,\n    \"user\": 1.540988055,\n    \"system\": 0.07945463,\n    \"min\": 1.51562298358,\n    \"max\": 1.53765701858,\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.53156612758\n  },\n  {\n    \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5293607281800001,\n    \"stddev\": 0.008789365257935737,\n    \"median\": 1.53156612758,\n    \"user\": 1.540988055,\n    \"system\": 0.07945463,\n    \"min\": 1.51562298358,\n    \"max\": 1.53765701858,\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.5355261665800002\n  },\n  {\n    \"command\": \"d75727ff348ef657709bf621810dbc28711359d7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5293607281800001,\n    \"stddev\": 0.008789365257935737,\n    \"median\": 1.53156612758,\n    \"user\": 1.540988055,\n    \"system\": 0.07945463,\n    \"min\": 1.51562298358,\n    \"max\": 1.53765701858,\n    \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n    \"message\": \"Clean up README\\n\",\n    \"time\": 1.52643134458\n  },\n  {\n    \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53062093138,\n    \"stddev\": 0.014306799483105646,\n    \"median\": 1.5322839775800001,\n    \"user\": 1.541652655,\n    \"system\": 0.07954183,\n    \"min\": 1.50791957258,\n    \"max\": 1.54446397458,\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"message\": \"Add license\\n\",\n    \"time\": 1.54446397458\n  },\n  {\n    \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53062093138,\n    \"stddev\": 0.014306799483105646,\n    \"median\": 1.5322839775800001,\n    \"user\": 1.541652655,\n    \"system\": 0.07954183,\n    \"min\": 1.50791957258,\n    \"max\": 1.54446397458,\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"message\": \"Add license\\n\",\n    \"time\": 1.52777244958\n  },\n  {\n    \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53062093138,\n    \"stddev\": 0.014306799483105646,\n    \"median\": 1.5322839775800001,\n    \"user\": 1.541652655,\n    \"system\": 0.07954183,\n    \"min\": 1.50791957258,\n    \"max\": 1.54446397458,\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"message\": \"Add license\\n\",\n    \"time\": 1.5406646825800001\n  },\n  {\n    \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53062093138,\n    \"stddev\": 0.014306799483105646,\n    \"median\": 1.5322839775800001,\n    \"user\": 1.541652655,\n    \"system\": 0.07954183,\n    \"min\": 1.50791957258,\n    \"max\": 1.54446397458,\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"message\": \"Add license\\n\",\n    \"time\": 1.5322839775800001\n  },\n  {\n    \"command\": \"54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53062093138,\n    \"stddev\": 0.014306799483105646,\n    \"median\": 1.5322839775800001,\n    \"user\": 1.541652655,\n    \"system\": 0.07954183,\n    \"min\": 1.50791957258,\n    \"max\": 1.54446397458,\n    \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n    \"message\": \"Add license\\n\",\n    \"time\": 1.50791957258\n  },\n  {\n    \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53272512158,\n    \"stddev\": 0.011544417745211932,\n    \"median\": 1.53545109358,\n    \"user\": 1.5394480549999998,\n    \"system\": 0.07926682999999998,\n    \"min\": 1.51632175858,\n    \"max\": 1.54712031158,\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"time\": 1.54712031158\n  },\n  {\n    \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53272512158,\n    \"stddev\": 0.011544417745211932,\n    \"median\": 1.53545109358,\n    \"user\": 1.5394480549999998,\n    \"system\": 0.07926682999999998,\n    \"min\": 1.51632175858,\n    \"max\": 1.54712031158,\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"time\": 1.53545109358\n  },\n  {\n    \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53272512158,\n    \"stddev\": 0.011544417745211932,\n    \"median\": 1.53545109358,\n    \"user\": 1.5394480549999998,\n    \"system\": 0.07926682999999998,\n    \"min\": 1.51632175858,\n    \"max\": 1.54712031158,\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"time\": 1.53732172258\n  },\n  {\n    \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53272512158,\n    \"stddev\": 0.011544417745211932,\n    \"median\": 1.53545109358,\n    \"user\": 1.5394480549999998,\n    \"system\": 0.07926682999999998,\n    \"min\": 1.51632175858,\n    \"max\": 1.54712031158,\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"time\": 1.51632175858\n  },\n  {\n    \"command\": \"19d688b8c124089e08b25c6a56a5da172a825b20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53272512158,\n    \"stddev\": 0.011544417745211932,\n    \"median\": 1.53545109358,\n    \"user\": 1.5394480549999998,\n    \"system\": 0.07926682999999998,\n    \"min\": 1.51632175858,\n    \"max\": 1.54712031158,\n    \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n    \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n    \"time\": 1.5274107215800001\n  },\n  {\n    \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55053926378,\n    \"stddev\": 0.07036352411201825,\n    \"median\": 1.5239364295800002,\n    \"user\": 1.556329055,\n    \"system\": 0.08383563,\n    \"min\": 1.50848394258,\n    \"max\": 1.6758825515800002,\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"message\": \"Add table headers in README\\n\",\n    \"time\": 1.50848394258\n  },\n  {\n    \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55053926378,\n    \"stddev\": 0.07036352411201825,\n    \"median\": 1.5239364295800002,\n    \"user\": 1.556329055,\n    \"system\": 0.08383563,\n    \"min\": 1.50848394258,\n    \"max\": 1.6758825515800002,\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"message\": \"Add table headers in README\\n\",\n    \"time\": 1.51993845058\n  },\n  {\n    \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55053926378,\n    \"stddev\": 0.07036352411201825,\n    \"median\": 1.5239364295800002,\n    \"user\": 1.556329055,\n    \"system\": 0.08383563,\n    \"min\": 1.50848394258,\n    \"max\": 1.6758825515800002,\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"message\": \"Add table headers in README\\n\",\n    \"time\": 1.5244549445800002\n  },\n  {\n    \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55053926378,\n    \"stddev\": 0.07036352411201825,\n    \"median\": 1.5239364295800002,\n    \"user\": 1.556329055,\n    \"system\": 0.08383563,\n    \"min\": 1.50848394258,\n    \"max\": 1.6758825515800002,\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"message\": \"Add table headers in README\\n\",\n    \"time\": 1.5239364295800002\n  },\n  {\n    \"command\": \"979763ca4a23e82de4934eeec779695859faa429 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55053926378,\n    \"stddev\": 0.07036352411201825,\n    \"median\": 1.5239364295800002,\n    \"user\": 1.556329055,\n    \"system\": 0.08383563,\n    \"min\": 1.50848394258,\n    \"max\": 1.6758825515800002,\n    \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n    \"message\": \"Add table headers in README\\n\",\n    \"time\": 1.6758825515800002\n  },\n  {\n    \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5610728289800002,\n    \"stddev\": 0.027653315516713777,\n    \"median\": 1.5464451995800002,\n    \"user\": 1.5688990550000002,\n    \"system\": 0.08669582999999999,\n    \"min\": 1.5395471785800001,\n    \"max\": 1.6071645195800002,\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"message\": \"Makefile\\n\",\n    \"time\": 1.6071645195800002\n  },\n  {\n    \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5610728289800002,\n    \"stddev\": 0.027653315516713777,\n    \"median\": 1.5464451995800002,\n    \"user\": 1.5688990550000002,\n    \"system\": 0.08669582999999999,\n    \"min\": 1.5395471785800001,\n    \"max\": 1.6071645195800002,\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"message\": \"Makefile\\n\",\n    \"time\": 1.56629362658\n  },\n  {\n    \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5610728289800002,\n    \"stddev\": 0.027653315516713777,\n    \"median\": 1.5464451995800002,\n    \"user\": 1.5688990550000002,\n    \"system\": 0.08669582999999999,\n    \"min\": 1.5395471785800001,\n    \"max\": 1.6071645195800002,\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"message\": \"Makefile\\n\",\n    \"time\": 1.5464451995800002\n  },\n  {\n    \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5610728289800002,\n    \"stddev\": 0.027653315516713777,\n    \"median\": 1.5464451995800002,\n    \"user\": 1.5688990550000002,\n    \"system\": 0.08669582999999999,\n    \"min\": 1.5395471785800001,\n    \"max\": 1.6071645195800002,\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"message\": \"Makefile\\n\",\n    \"time\": 1.5395471785800001\n  },\n  {\n    \"command\": \"a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5610728289800002,\n    \"stddev\": 0.027653315516713777,\n    \"median\": 1.5464451995800002,\n    \"user\": 1.5688990550000002,\n    \"system\": 0.08669582999999999,\n    \"min\": 1.5395471785800001,\n    \"max\": 1.6071645195800002,\n    \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n    \"message\": \"Makefile\\n\",\n    \"time\": 1.5459136205800001\n  },\n  {\n    \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5650822643800002,\n    \"stddev\": 0.01414203258964725,\n    \"median\": 1.5703710785800002,\n    \"user\": 1.5690704549999999,\n    \"system\": 0.08844622999999999,\n    \"min\": 1.54732114858,\n    \"max\": 1.58196496558,\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"message\": \"rustfmt: new version\\n\",\n    \"time\": 1.57187173358\n  },\n  {\n    \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5650822643800002,\n    \"stddev\": 0.01414203258964725,\n    \"median\": 1.5703710785800002,\n    \"user\": 1.5690704549999999,\n    \"system\": 0.08844622999999999,\n    \"min\": 1.54732114858,\n    \"max\": 1.58196496558,\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"message\": \"rustfmt: new version\\n\",\n    \"time\": 1.54732114858\n  },\n  {\n    \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5650822643800002,\n    \"stddev\": 0.01414203258964725,\n    \"median\": 1.5703710785800002,\n    \"user\": 1.5690704549999999,\n    \"system\": 0.08844622999999999,\n    \"min\": 1.54732114858,\n    \"max\": 1.58196496558,\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"message\": \"rustfmt: new version\\n\",\n    \"time\": 1.5703710785800002\n  },\n  {\n    \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5650822643800002,\n    \"stddev\": 0.01414203258964725,\n    \"median\": 1.5703710785800002,\n    \"user\": 1.5690704549999999,\n    \"system\": 0.08844622999999999,\n    \"min\": 1.54732114858,\n    \"max\": 1.58196496558,\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"message\": \"rustfmt: new version\\n\",\n    \"time\": 1.58196496558\n  },\n  {\n    \"command\": \"c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5650822643800002,\n    \"stddev\": 0.01414203258964725,\n    \"median\": 1.5703710785800002,\n    \"user\": 1.5690704549999999,\n    \"system\": 0.08844622999999999,\n    \"min\": 1.54732114858,\n    \"max\": 1.58196496558,\n    \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n    \"message\": \"rustfmt: new version\\n\",\n    \"time\": 1.55388239558\n  },\n  {\n    \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.63839297018,\n    \"stddev\": 0.09254127789250875,\n    \"median\": 1.59231370558,\n    \"user\": 1.6202388549999998,\n    \"system\": 0.09814642999999999,\n    \"min\": 1.5378620435800001,\n    \"max\": 1.75843465358,\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"time\": 1.71193848058\n  },\n  {\n    \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.63839297018,\n    \"stddev\": 0.09254127789250875,\n    \"median\": 1.59231370558,\n    \"user\": 1.6202388549999998,\n    \"system\": 0.09814642999999999,\n    \"min\": 1.5378620435800001,\n    \"max\": 1.75843465358,\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"time\": 1.59231370558\n  },\n  {\n    \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.63839297018,\n    \"stddev\": 0.09254127789250875,\n    \"median\": 1.59231370558,\n    \"user\": 1.6202388549999998,\n    \"system\": 0.09814642999999999,\n    \"min\": 1.5378620435800001,\n    \"max\": 1.75843465358,\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"time\": 1.75843465358\n  },\n  {\n    \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.63839297018,\n    \"stddev\": 0.09254127789250875,\n    \"median\": 1.59231370558,\n    \"user\": 1.6202388549999998,\n    \"system\": 0.09814642999999999,\n    \"min\": 1.5378620435800001,\n    \"max\": 1.75843465358,\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"time\": 1.59141596758\n  },\n  {\n    \"command\": \"07af06513fff5bf5597c5ff106d8a982cb961910 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.63839297018,\n    \"stddev\": 0.09254127789250875,\n    \"median\": 1.59231370558,\n    \"user\": 1.6202388549999998,\n    \"system\": 0.09814642999999999,\n    \"min\": 1.5378620435800001,\n    \"max\": 1.75843465358,\n    \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n    \"message\": \"Fix recognition of language of files with no extension\\n\",\n    \"time\": 1.5378620435800001\n  },\n  {\n    \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.58398175318,\n    \"stddev\": 0.03844559335194513,\n    \"median\": 1.5867042235800002,\n    \"user\": 1.5869974550000001,\n    \"system\": 0.09280463,\n    \"min\": 1.54085990258,\n    \"max\": 1.64079464058,\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"message\": \"Remove unused dependencies\\n\",\n    \"time\": 1.59425394658\n  },\n  {\n    \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.58398175318,\n    \"stddev\": 0.03844559335194513,\n    \"median\": 1.5867042235800002,\n    \"user\": 1.5869974550000001,\n    \"system\": 0.09280463,\n    \"min\": 1.54085990258,\n    \"max\": 1.64079464058,\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"message\": \"Remove unused dependencies\\n\",\n    \"time\": 1.54085990258\n  },\n  {\n    \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.58398175318,\n    \"stddev\": 0.03844559335194513,\n    \"median\": 1.5867042235800002,\n    \"user\": 1.5869974550000001,\n    \"system\": 0.09280463,\n    \"min\": 1.54085990258,\n    \"max\": 1.64079464058,\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"message\": \"Remove unused dependencies\\n\",\n    \"time\": 1.64079464058\n  },\n  {\n    \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.58398175318,\n    \"stddev\": 0.03844559335194513,\n    \"median\": 1.5867042235800002,\n    \"user\": 1.5869974550000001,\n    \"system\": 0.09280463,\n    \"min\": 1.54085990258,\n    \"max\": 1.64079464058,\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"message\": \"Remove unused dependencies\\n\",\n    \"time\": 1.5867042235800002\n  },\n  {\n    \"command\": \"e1912e34f8cc01cddffdffa26ff512304d12ff25 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.58398175318,\n    \"stddev\": 0.03844559335194513,\n    \"median\": 1.5867042235800002,\n    \"user\": 1.5869974550000001,\n    \"system\": 0.09280463,\n    \"min\": 1.54085990258,\n    \"max\": 1.64079464058,\n    \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n    \"message\": \"Remove unused dependencies\\n\",\n    \"time\": 1.5572960525800001\n  },\n  {\n    \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38844188798,\n    \"stddev\": 0.02113729780761881,\n    \"median\": 1.37464058458,\n    \"user\": 1.3908832549999999,\n    \"system\": 0.07484323,\n    \"min\": 1.37181832558,\n    \"max\": 1.41191584558,\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"time\": 1.4112193935800001\n  },\n  {\n    \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38844188798,\n    \"stddev\": 0.02113729780761881,\n    \"median\": 1.37464058458,\n    \"user\": 1.3908832549999999,\n    \"system\": 0.07484323,\n    \"min\": 1.37181832558,\n    \"max\": 1.41191584558,\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"time\": 1.37181832558\n  },\n  {\n    \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38844188798,\n    \"stddev\": 0.02113729780761881,\n    \"median\": 1.37464058458,\n    \"user\": 1.3908832549999999,\n    \"system\": 0.07484323,\n    \"min\": 1.37181832558,\n    \"max\": 1.41191584558,\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"time\": 1.37261529058\n  },\n  {\n    \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38844188798,\n    \"stddev\": 0.02113729780761881,\n    \"median\": 1.37464058458,\n    \"user\": 1.3908832549999999,\n    \"system\": 0.07484323,\n    \"min\": 1.37181832558,\n    \"max\": 1.41191584558,\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"time\": 1.41191584558\n  },\n  {\n    \"command\": \"7794f8730bb6384989396bc21673962fe86b4eaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.38844188798,\n    \"stddev\": 0.02113729780761881,\n    \"median\": 1.37464058458,\n    \"user\": 1.3908832549999999,\n    \"system\": 0.07484323,\n    \"min\": 1.37181832558,\n    \"max\": 1.41191584558,\n    \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n    \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n    \"time\": 1.37464058458\n  },\n  {\n    \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27225418318,\n    \"stddev\": 0.022037719248398212,\n    \"median\": 1.2639250155800001,\n    \"user\": 1.2697592549999999,\n    \"system\": 0.057894230000000005,\n    \"min\": 1.2530245795800001,\n    \"max\": 1.30955951658,\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"message\": \"Simplify flush condition\\n\",\n    \"time\": 1.27305126158\n  },\n  {\n    \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27225418318,\n    \"stddev\": 0.022037719248398212,\n    \"median\": 1.2639250155800001,\n    \"user\": 1.2697592549999999,\n    \"system\": 0.057894230000000005,\n    \"min\": 1.2530245795800001,\n    \"max\": 1.30955951658,\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"message\": \"Simplify flush condition\\n\",\n    \"time\": 1.2617105425800001\n  },\n  {\n    \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27225418318,\n    \"stddev\": 0.022037719248398212,\n    \"median\": 1.2639250155800001,\n    \"user\": 1.2697592549999999,\n    \"system\": 0.057894230000000005,\n    \"min\": 1.2530245795800001,\n    \"max\": 1.30955951658,\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"message\": \"Simplify flush condition\\n\",\n    \"time\": 1.2530245795800001\n  },\n  {\n    \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27225418318,\n    \"stddev\": 0.022037719248398212,\n    \"median\": 1.2639250155800001,\n    \"user\": 1.2697592549999999,\n    \"system\": 0.057894230000000005,\n    \"min\": 1.2530245795800001,\n    \"max\": 1.30955951658,\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"message\": \"Simplify flush condition\\n\",\n    \"time\": 1.2639250155800001\n  },\n  {\n    \"command\": \"c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27225418318,\n    \"stddev\": 0.022037719248398212,\n    \"median\": 1.2639250155800001,\n    \"user\": 1.2697592549999999,\n    \"system\": 0.057894230000000005,\n    \"min\": 1.2530245795800001,\n    \"max\": 1.30955951658,\n    \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n    \"message\": \"Simplify flush condition\\n\",\n    \"time\": 1.30955951658\n  },\n  {\n    \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27002260258,\n    \"stddev\": 0.01533721166388586,\n    \"median\": 1.26673824158,\n    \"user\": 1.2723328549999997,\n    \"system\": 0.05737063,\n    \"min\": 1.2492823425800001,\n    \"max\": 1.28709416758,\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"message\": \"Strengthen test\\n\",\n    \"time\": 1.2831002765800001\n  },\n  {\n    \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27002260258,\n    \"stddev\": 0.01533721166388586,\n    \"median\": 1.26673824158,\n    \"user\": 1.2723328549999997,\n    \"system\": 0.05737063,\n    \"min\": 1.2492823425800001,\n    \"max\": 1.28709416758,\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"message\": \"Strengthen test\\n\",\n    \"time\": 1.2492823425800001\n  },\n  {\n    \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27002260258,\n    \"stddev\": 0.01533721166388586,\n    \"median\": 1.26673824158,\n    \"user\": 1.2723328549999997,\n    \"system\": 0.05737063,\n    \"min\": 1.2492823425800001,\n    \"max\": 1.28709416758,\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"message\": \"Strengthen test\\n\",\n    \"time\": 1.26673824158\n  },\n  {\n    \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27002260258,\n    \"stddev\": 0.01533721166388586,\n    \"median\": 1.26673824158,\n    \"user\": 1.2723328549999997,\n    \"system\": 0.05737063,\n    \"min\": 1.2492823425800001,\n    \"max\": 1.28709416758,\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"message\": \"Strengthen test\\n\",\n    \"time\": 1.28709416758\n  },\n  {\n    \"command\": \"c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27002260258,\n    \"stddev\": 0.01533721166388586,\n    \"median\": 1.26673824158,\n    \"user\": 1.2723328549999997,\n    \"system\": 0.05737063,\n    \"min\": 1.2492823425800001,\n    \"max\": 1.28709416758,\n    \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n    \"message\": \"Strengthen test\\n\",\n    \"time\": 1.26389798458\n  },\n  {\n    \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22134157118,\n    \"stddev\": 0.016981940959353795,\n    \"median\": 1.22018123058,\n    \"user\": 1.2145098549999997,\n    \"system\": 0.05896663,\n    \"min\": 1.20044739658,\n    \"max\": 1.24776178558,\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"time\": 1.21714937358\n  },\n  {\n    \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22134157118,\n    \"stddev\": 0.016981940959353795,\n    \"median\": 1.22018123058,\n    \"user\": 1.2145098549999997,\n    \"system\": 0.05896663,\n    \"min\": 1.20044739658,\n    \"max\": 1.24776178558,\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"time\": 1.20044739658\n  },\n  {\n    \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22134157118,\n    \"stddev\": 0.016981940959353795,\n    \"median\": 1.22018123058,\n    \"user\": 1.2145098549999997,\n    \"system\": 0.05896663,\n    \"min\": 1.20044739658,\n    \"max\": 1.24776178558,\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"time\": 1.22116806958\n  },\n  {\n    \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22134157118,\n    \"stddev\": 0.016981940959353795,\n    \"median\": 1.22018123058,\n    \"user\": 1.2145098549999997,\n    \"system\": 0.05896663,\n    \"min\": 1.20044739658,\n    \"max\": 1.24776178558,\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"time\": 1.22018123058\n  },\n  {\n    \"command\": \"c3458e29960c68d29b0d7080f04e08c5895547c4 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22134157118,\n    \"stddev\": 0.016981940959353795,\n    \"median\": 1.22018123058,\n    \"user\": 1.2145098549999997,\n    \"system\": 0.05896663,\n    \"min\": 1.20044739658,\n    \"max\": 1.24776178558,\n    \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n    \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n    \"time\": 1.24776178558\n  },\n  {\n    \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22446362418,\n    \"stddev\": 0.05386754423934385,\n    \"median\": 1.20120862158,\n    \"user\": 1.2102058549999999,\n    \"system\": 0.05839123,\n    \"min\": 1.16453555158,\n    \"max\": 1.29644333458,\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"message\": \"Move painting code into paint module\\n\",\n    \"time\": 1.20120862158\n  },\n  {\n    \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22446362418,\n    \"stddev\": 0.05386754423934385,\n    \"median\": 1.20120862158,\n    \"user\": 1.2102058549999999,\n    \"system\": 0.05839123,\n    \"min\": 1.16453555158,\n    \"max\": 1.29644333458,\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"message\": \"Move painting code into paint module\\n\",\n    \"time\": 1.19666737358\n  },\n  {\n    \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22446362418,\n    \"stddev\": 0.05386754423934385,\n    \"median\": 1.20120862158,\n    \"user\": 1.2102058549999999,\n    \"system\": 0.05839123,\n    \"min\": 1.16453555158,\n    \"max\": 1.29644333458,\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"message\": \"Move painting code into paint module\\n\",\n    \"time\": 1.16453555158\n  },\n  {\n    \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22446362418,\n    \"stddev\": 0.05386754423934385,\n    \"median\": 1.20120862158,\n    \"user\": 1.2102058549999999,\n    \"system\": 0.05839123,\n    \"min\": 1.16453555158,\n    \"max\": 1.29644333458,\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"message\": \"Move painting code into paint module\\n\",\n    \"time\": 1.26346323958\n  },\n  {\n    \"command\": \"1d00432876cfcb71e0c7cce668723d07431f4418 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22446362418,\n    \"stddev\": 0.05386754423934385,\n    \"median\": 1.20120862158,\n    \"user\": 1.2102058549999999,\n    \"system\": 0.05839123,\n    \"min\": 1.16453555158,\n    \"max\": 1.29644333458,\n    \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n    \"message\": \"Move painting code into paint module\\n\",\n    \"time\": 1.29644333458\n  },\n  {\n    \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1799663825800002,\n    \"stddev\": 0.02045577024509444,\n    \"median\": 1.18441419058,\n    \"user\": 1.174559455,\n    \"system\": 0.054143830000000004,\n    \"min\": 1.15123146958,\n    \"max\": 1.20182384958,\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"message\": \"Rename and unify files\\n\",\n    \"time\": 1.19436405958\n  },\n  {\n    \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1799663825800002,\n    \"stddev\": 0.02045577024509444,\n    \"median\": 1.18441419058,\n    \"user\": 1.174559455,\n    \"system\": 0.054143830000000004,\n    \"min\": 1.15123146958,\n    \"max\": 1.20182384958,\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"message\": \"Rename and unify files\\n\",\n    \"time\": 1.15123146958\n  },\n  {\n    \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1799663825800002,\n    \"stddev\": 0.02045577024509444,\n    \"median\": 1.18441419058,\n    \"user\": 1.174559455,\n    \"system\": 0.054143830000000004,\n    \"min\": 1.15123146958,\n    \"max\": 1.20182384958,\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"message\": \"Rename and unify files\\n\",\n    \"time\": 1.18441419058\n  },\n  {\n    \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1799663825800002,\n    \"stddev\": 0.02045577024509444,\n    \"median\": 1.18441419058,\n    \"user\": 1.174559455,\n    \"system\": 0.054143830000000004,\n    \"min\": 1.15123146958,\n    \"max\": 1.20182384958,\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"message\": \"Rename and unify files\\n\",\n    \"time\": 1.16799834358\n  },\n  {\n    \"command\": \"bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1799663825800002,\n    \"stddev\": 0.02045577024509444,\n    \"median\": 1.18441419058,\n    \"user\": 1.174559455,\n    \"system\": 0.054143830000000004,\n    \"min\": 1.15123146958,\n    \"max\": 1.20182384958,\n    \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n    \"message\": \"Rename and unify files\\n\",\n    \"time\": 1.20182384958\n  },\n  {\n    \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20925884178,\n    \"stddev\": 0.04243235684366209,\n    \"median\": 1.19832233958,\n    \"user\": 1.1998770550000002,\n    \"system\": 0.056508230000000007,\n    \"min\": 1.18122275958,\n    \"max\": 1.28383843758,\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"time\": 1.19832233958\n  },\n  {\n    \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20925884178,\n    \"stddev\": 0.04243235684366209,\n    \"median\": 1.19832233958,\n    \"user\": 1.1998770550000002,\n    \"system\": 0.056508230000000007,\n    \"min\": 1.18122275958,\n    \"max\": 1.28383843758,\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"time\": 1.19853858758\n  },\n  {\n    \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20925884178,\n    \"stddev\": 0.04243235684366209,\n    \"median\": 1.19832233958,\n    \"user\": 1.1998770550000002,\n    \"system\": 0.056508230000000007,\n    \"min\": 1.18122275958,\n    \"max\": 1.28383843758,\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"time\": 1.18437208458\n  },\n  {\n    \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20925884178,\n    \"stddev\": 0.04243235684366209,\n    \"median\": 1.19832233958,\n    \"user\": 1.1998770550000002,\n    \"system\": 0.056508230000000007,\n    \"min\": 1.18122275958,\n    \"max\": 1.28383843758,\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"time\": 1.28383843758\n  },\n  {\n    \"command\": \"cc8e8adf297a2042fe6409d77ff97a41e8747b34 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20925884178,\n    \"stddev\": 0.04243235684366209,\n    \"median\": 1.19832233958,\n    \"user\": 1.1998770550000002,\n    \"system\": 0.056508230000000007,\n    \"min\": 1.18122275958,\n    \"max\": 1.28383843758,\n    \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n    \"message\": \"Create bat directory for bat-derived code\\n\",\n    \"time\": 1.18122275958\n  },\n  {\n    \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23743179498,\n    \"stddev\": 0.057995195082309665,\n    \"median\": 1.1987639755800001,\n    \"user\": 1.2205680549999998,\n    \"system\": 0.06041503,\n    \"min\": 1.1912071775800002,\n    \"max\": 1.30293184858,\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.29881727858\n  },\n  {\n    \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23743179498,\n    \"stddev\": 0.057995195082309665,\n    \"median\": 1.1987639755800001,\n    \"user\": 1.2205680549999998,\n    \"system\": 0.06041503,\n    \"min\": 1.1912071775800002,\n    \"max\": 1.30293184858,\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.1987639755800001\n  },\n  {\n    \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23743179498,\n    \"stddev\": 0.057995195082309665,\n    \"median\": 1.1987639755800001,\n    \"user\": 1.2205680549999998,\n    \"system\": 0.06041503,\n    \"min\": 1.1912071775800002,\n    \"max\": 1.30293184858,\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.30293184858\n  },\n  {\n    \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23743179498,\n    \"stddev\": 0.057995195082309665,\n    \"median\": 1.1987639755800001,\n    \"user\": 1.2205680549999998,\n    \"system\": 0.06041503,\n    \"min\": 1.1912071775800002,\n    \"max\": 1.30293184858,\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.1912071775800002\n  },\n  {\n    \"command\": \"9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.23743179498,\n    \"stddev\": 0.057995195082309665,\n    \"median\": 1.1987639755800001,\n    \"user\": 1.2205680549999998,\n    \"system\": 0.06041503,\n    \"min\": 1.1912071775800002,\n    \"max\": 1.30293184858,\n    \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n    \"message\": \"Clean up\\n\",\n    \"time\": 1.19543869458\n  },\n  {\n    \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.18491901838,\n    \"stddev\": 0.0182364561338903,\n    \"median\": 1.17615713358,\n    \"user\": 1.180738655,\n    \"system\": 0.05433543,\n    \"min\": 1.1708611125800001,\n    \"max\": 1.21513693958,\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"message\": \"Impl function for enum\\n\",\n    \"time\": 1.21513693958\n  },\n  {\n    \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.18491901838,\n    \"stddev\": 0.0182364561338903,\n    \"median\": 1.17615713358,\n    \"user\": 1.180738655,\n    \"system\": 0.05433543,\n    \"min\": 1.1708611125800001,\n    \"max\": 1.21513693958,\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"message\": \"Impl function for enum\\n\",\n    \"time\": 1.1708611125800001\n  },\n  {\n    \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.18491901838,\n    \"stddev\": 0.0182364561338903,\n    \"median\": 1.17615713358,\n    \"user\": 1.180738655,\n    \"system\": 0.05433543,\n    \"min\": 1.1708611125800001,\n    \"max\": 1.21513693958,\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"message\": \"Impl function for enum\\n\",\n    \"time\": 1.18881564458\n  },\n  {\n    \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.18491901838,\n    \"stddev\": 0.0182364561338903,\n    \"median\": 1.17615713358,\n    \"user\": 1.180738655,\n    \"system\": 0.05433543,\n    \"min\": 1.1708611125800001,\n    \"max\": 1.21513693958,\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"message\": \"Impl function for enum\\n\",\n    \"time\": 1.17615713358\n  },\n  {\n    \"command\": \"4d0c296fbc3eb308906fb47505766ac37fb641c2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.18491901838,\n    \"stddev\": 0.0182364561338903,\n    \"median\": 1.17615713358,\n    \"user\": 1.180738655,\n    \"system\": 0.05433543,\n    \"min\": 1.1708611125800001,\n    \"max\": 1.21513693958,\n    \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n    \"message\": \"Impl function for enum\\n\",\n    \"time\": 1.17362426158\n  },\n  {\n    \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.46619964918,\n    \"stddev\": 0.026203020918943668,\n    \"median\": 1.45625170658,\n    \"user\": 1.469126455,\n    \"system\": 0.05240783,\n    \"min\": 1.44840476958,\n    \"max\": 1.51202022658,\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"message\": \"Simplify state transition loop\\n\",\n    \"time\": 1.51202022658\n  },\n  {\n    \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.46619964918,\n    \"stddev\": 0.026203020918943668,\n    \"median\": 1.45625170658,\n    \"user\": 1.469126455,\n    \"system\": 0.05240783,\n    \"min\": 1.44840476958,\n    \"max\": 1.51202022658,\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"message\": \"Simplify state transition loop\\n\",\n    \"time\": 1.44840476958\n  },\n  {\n    \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.46619964918,\n    \"stddev\": 0.026203020918943668,\n    \"median\": 1.45625170658,\n    \"user\": 1.469126455,\n    \"system\": 0.05240783,\n    \"min\": 1.44840476958,\n    \"max\": 1.51202022658,\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"message\": \"Simplify state transition loop\\n\",\n    \"time\": 1.46298511658\n  },\n  {\n    \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.46619964918,\n    \"stddev\": 0.026203020918943668,\n    \"median\": 1.45625170658,\n    \"user\": 1.469126455,\n    \"system\": 0.05240783,\n    \"min\": 1.44840476958,\n    \"max\": 1.51202022658,\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"message\": \"Simplify state transition loop\\n\",\n    \"time\": 1.45133642658\n  },\n  {\n    \"command\": \"69e954adcb090285e54270cfd730a70c568f310b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.46619964918,\n    \"stddev\": 0.026203020918943668,\n    \"median\": 1.45625170658,\n    \"user\": 1.469126455,\n    \"system\": 0.05240783,\n    \"min\": 1.44840476958,\n    \"max\": 1.51202022658,\n    \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n    \"message\": \"Simplify state transition loop\\n\",\n    \"time\": 1.45625170658\n  },\n  {\n    \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.47333501978,\n    \"stddev\": 0.020994666373958252,\n    \"median\": 1.46607898958,\n    \"user\": 1.473675055,\n    \"system\": 0.05172062999999999,\n    \"min\": 1.45765768258,\n    \"max\": 1.51012819058,\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"message\": \"gitignore\\n\",\n    \"time\": 1.46367650158\n  },\n  {\n    \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.47333501978,\n    \"stddev\": 0.020994666373958252,\n    \"median\": 1.46607898958,\n    \"user\": 1.473675055,\n    \"system\": 0.05172062999999999,\n    \"min\": 1.45765768258,\n    \"max\": 1.51012819058,\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"message\": \"gitignore\\n\",\n    \"time\": 1.46913373458\n  },\n  {\n    \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.47333501978,\n    \"stddev\": 0.020994666373958252,\n    \"median\": 1.46607898958,\n    \"user\": 1.473675055,\n    \"system\": 0.05172062999999999,\n    \"min\": 1.45765768258,\n    \"max\": 1.51012819058,\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"message\": \"gitignore\\n\",\n    \"time\": 1.46607898958\n  },\n  {\n    \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.47333501978,\n    \"stddev\": 0.020994666373958252,\n    \"median\": 1.46607898958,\n    \"user\": 1.473675055,\n    \"system\": 0.05172062999999999,\n    \"min\": 1.45765768258,\n    \"max\": 1.51012819058,\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"message\": \"gitignore\\n\",\n    \"time\": 1.51012819058\n  },\n  {\n    \"command\": \"4a83089608e107db9e2814828028f09e601ba300 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.47333501978,\n    \"stddev\": 0.020994666373958252,\n    \"median\": 1.46607898958,\n    \"user\": 1.473675055,\n    \"system\": 0.05172062999999999,\n    \"min\": 1.45765768258,\n    \"max\": 1.51012819058,\n    \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n    \"message\": \"gitignore\\n\",\n    \"time\": 1.45765768258\n  },\n  {\n    \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51771261218,\n    \"stddev\": 0.044364715803029864,\n    \"median\": 1.5048782175800002,\n    \"user\": 1.512055655,\n    \"system\": 0.060420629999999996,\n    \"min\": 1.46564575358,\n    \"max\": 1.57057136158,\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"time\": 1.49109436158\n  },\n  {\n    \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51771261218,\n    \"stddev\": 0.044364715803029864,\n    \"median\": 1.5048782175800002,\n    \"user\": 1.512055655,\n    \"system\": 0.060420629999999996,\n    \"min\": 1.46564575358,\n    \"max\": 1.57057136158,\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"time\": 1.46564575358\n  },\n  {\n    \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51771261218,\n    \"stddev\": 0.044364715803029864,\n    \"median\": 1.5048782175800002,\n    \"user\": 1.512055655,\n    \"system\": 0.060420629999999996,\n    \"min\": 1.46564575358,\n    \"max\": 1.57057136158,\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"time\": 1.5563733665800001\n  },\n  {\n    \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51771261218,\n    \"stddev\": 0.044364715803029864,\n    \"median\": 1.5048782175800002,\n    \"user\": 1.512055655,\n    \"system\": 0.060420629999999996,\n    \"min\": 1.46564575358,\n    \"max\": 1.57057136158,\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"time\": 1.5048782175800002\n  },\n  {\n    \"command\": \"4c0bd12143737716de6130c726a2d071e2004092 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51771261218,\n    \"stddev\": 0.044364715803029864,\n    \"median\": 1.5048782175800002,\n    \"user\": 1.512055655,\n    \"system\": 0.060420629999999996,\n    \"min\": 1.46564575358,\n    \"max\": 1.57057136158,\n    \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n    \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n    \"time\": 1.57057136158\n  },\n  {\n    \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1778957573800002,\n    \"stddev\": 0.011923876408269772,\n    \"median\": 1.18495526058,\n    \"user\": 1.1740266549999998,\n    \"system\": 0.053774430000000005,\n    \"min\": 1.1613939445800001,\n    \"max\": 1.1878764215800002,\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"time\": 1.1878764215800002\n  },\n  {\n    \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1778957573800002,\n    \"stddev\": 0.011923876408269772,\n    \"median\": 1.18495526058,\n    \"user\": 1.1740266549999998,\n    \"system\": 0.053774430000000005,\n    \"min\": 1.1613939445800001,\n    \"max\": 1.1878764215800002,\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"time\": 1.18619426158\n  },\n  {\n    \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1778957573800002,\n    \"stddev\": 0.011923876408269772,\n    \"median\": 1.18495526058,\n    \"user\": 1.1740266549999998,\n    \"system\": 0.053774430000000005,\n    \"min\": 1.1613939445800001,\n    \"max\": 1.1878764215800002,\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"time\": 1.1613939445800001\n  },\n  {\n    \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1778957573800002,\n    \"stddev\": 0.011923876408269772,\n    \"median\": 1.18495526058,\n    \"user\": 1.1740266549999998,\n    \"system\": 0.053774430000000005,\n    \"min\": 1.1613939445800001,\n    \"max\": 1.1878764215800002,\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"time\": 1.18495526058\n  },\n  {\n    \"command\": \"09d631f47b12a202b2db2ed5d34d7b072baffdaa < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1778957573800002,\n    \"stddev\": 0.011923876408269772,\n    \"median\": 1.18495526058,\n    \"user\": 1.1740266549999998,\n    \"system\": 0.053774430000000005,\n    \"min\": 1.1613939445800001,\n    \"max\": 1.1878764215800002,\n    \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n    \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n    \"time\": 1.1690588985800001\n  },\n  {\n    \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1667153129800003,\n    \"stddev\": 0.01146677254103177,\n    \"median\": 1.16231599058,\n    \"user\": 1.167455055,\n    \"system\": 0.05061103,\n    \"min\": 1.15359630058,\n    \"max\": 1.1832924925800001,\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"message\": \"Fix state machine documentation\\n\",\n    \"time\": 1.16231599058\n  },\n  {\n    \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1667153129800003,\n    \"stddev\": 0.01146677254103177,\n    \"median\": 1.16231599058,\n    \"user\": 1.167455055,\n    \"system\": 0.05061103,\n    \"min\": 1.15359630058,\n    \"max\": 1.1832924925800001,\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"message\": \"Fix state machine documentation\\n\",\n    \"time\": 1.1832924925800001\n  },\n  {\n    \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1667153129800003,\n    \"stddev\": 0.01146677254103177,\n    \"median\": 1.16231599058,\n    \"user\": 1.167455055,\n    \"system\": 0.05061103,\n    \"min\": 1.15359630058,\n    \"max\": 1.1832924925800001,\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"message\": \"Fix state machine documentation\\n\",\n    \"time\": 1.15359630058\n  },\n  {\n    \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1667153129800003,\n    \"stddev\": 0.01146677254103177,\n    \"median\": 1.16231599058,\n    \"user\": 1.167455055,\n    \"system\": 0.05061103,\n    \"min\": 1.15359630058,\n    \"max\": 1.1832924925800001,\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"message\": \"Fix state machine documentation\\n\",\n    \"time\": 1.17262827958\n  },\n  {\n    \"command\": \"fff232e28389d9b0a8deb3c5e714df16d992fcf7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.1667153129800003,\n    \"stddev\": 0.01146677254103177,\n    \"median\": 1.16231599058,\n    \"user\": 1.167455055,\n    \"system\": 0.05061103,\n    \"min\": 1.15359630058,\n    \"max\": 1.1832924925800001,\n    \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n    \"message\": \"Fix state machine documentation\\n\",\n    \"time\": 1.16174350158\n  },\n  {\n    \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.19108776198,\n    \"stddev\": 0.016492238728470873,\n    \"median\": 1.18268540358,\n    \"user\": 1.186483855,\n    \"system\": 0.05319982999999999,\n    \"min\": 1.17734090458,\n    \"max\": 1.21709410358,\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"time\": 1.21709410358\n  },\n  {\n    \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.19108776198,\n    \"stddev\": 0.016492238728470873,\n    \"median\": 1.18268540358,\n    \"user\": 1.186483855,\n    \"system\": 0.05319982999999999,\n    \"min\": 1.17734090458,\n    \"max\": 1.21709410358,\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"time\": 1.19766306658\n  },\n  {\n    \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.19108776198,\n    \"stddev\": 0.016492238728470873,\n    \"median\": 1.18268540358,\n    \"user\": 1.186483855,\n    \"system\": 0.05319982999999999,\n    \"min\": 1.17734090458,\n    \"max\": 1.21709410358,\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"time\": 1.18268540358\n  },\n  {\n    \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.19108776198,\n    \"stddev\": 0.016492238728470873,\n    \"median\": 1.18268540358,\n    \"user\": 1.186483855,\n    \"system\": 0.05319982999999999,\n    \"min\": 1.17734090458,\n    \"max\": 1.21709410358,\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"time\": 1.17734090458\n  },\n  {\n    \"command\": \"072d6a6ec2c69a22d786ca3aabb6184c1a257810 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.19108776198,\n    \"stddev\": 0.016492238728470873,\n    \"median\": 1.18268540358,\n    \"user\": 1.186483855,\n    \"system\": 0.05319982999999999,\n    \"min\": 1.17734090458,\n    \"max\": 1.21709410358,\n    \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n    \"message\": \"Store background style sections for removed and added lines\\n\",\n    \"time\": 1.1806553315800001\n  },\n  {\n    \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20615394398,\n    \"stddev\": 0.027660186235174515,\n    \"median\": 1.2016053875800001,\n    \"user\": 1.197265655,\n    \"system\": 0.05422783,\n    \"min\": 1.17696583958,\n    \"max\": 1.2458893985800001,\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"message\": \"Don't join lines\\n\",\n    \"time\": 1.2016053875800001\n  },\n  {\n    \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20615394398,\n    \"stddev\": 0.027660186235174515,\n    \"median\": 1.2016053875800001,\n    \"user\": 1.197265655,\n    \"system\": 0.05422783,\n    \"min\": 1.17696583958,\n    \"max\": 1.2458893985800001,\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"message\": \"Don't join lines\\n\",\n    \"time\": 1.17696583958\n  },\n  {\n    \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20615394398,\n    \"stddev\": 0.027660186235174515,\n    \"median\": 1.2016053875800001,\n    \"user\": 1.197265655,\n    \"system\": 0.05422783,\n    \"min\": 1.17696583958,\n    \"max\": 1.2458893985800001,\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"message\": \"Don't join lines\\n\",\n    \"time\": 1.22034189258\n  },\n  {\n    \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20615394398,\n    \"stddev\": 0.027660186235174515,\n    \"median\": 1.2016053875800001,\n    \"user\": 1.197265655,\n    \"system\": 0.05422783,\n    \"min\": 1.17696583958,\n    \"max\": 1.2458893985800001,\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"message\": \"Don't join lines\\n\",\n    \"time\": 1.18596720158\n  },\n  {\n    \"command\": \"2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.20615394398,\n    \"stddev\": 0.027660186235174515,\n    \"median\": 1.2016053875800001,\n    \"user\": 1.197265655,\n    \"system\": 0.05422783,\n    \"min\": 1.17696583958,\n    \"max\": 1.2458893985800001,\n    \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n    \"message\": \"Don't join lines\\n\",\n    \"time\": 1.2458893985800001\n  },\n  {\n    \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27749537938,\n    \"stddev\": 0.07057736607392914,\n    \"median\": 1.29446924358,\n    \"user\": 1.262406655,\n    \"system\": 0.06233263,\n    \"min\": 1.1785878865800001,\n    \"max\": 1.3635076995800002,\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"time\": 1.3635076995800002\n  },\n  {\n    \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27749537938,\n    \"stddev\": 0.07057736607392914,\n    \"median\": 1.29446924358,\n    \"user\": 1.262406655,\n    \"system\": 0.06233263,\n    \"min\": 1.1785878865800001,\n    \"max\": 1.3635076995800002,\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"time\": 1.24047448758\n  },\n  {\n    \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27749537938,\n    \"stddev\": 0.07057736607392914,\n    \"median\": 1.29446924358,\n    \"user\": 1.262406655,\n    \"system\": 0.06233263,\n    \"min\": 1.1785878865800001,\n    \"max\": 1.3635076995800002,\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"time\": 1.31043757958\n  },\n  {\n    \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27749537938,\n    \"stddev\": 0.07057736607392914,\n    \"median\": 1.29446924358,\n    \"user\": 1.262406655,\n    \"system\": 0.06233263,\n    \"min\": 1.1785878865800001,\n    \"max\": 1.3635076995800002,\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"time\": 1.29446924358\n  },\n  {\n    \"command\": \"6710d1087e43d2adaf75372308732bc15bddf803 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27749537938,\n    \"stddev\": 0.07057736607392914,\n    \"median\": 1.29446924358,\n    \"user\": 1.262406655,\n    \"system\": 0.06233263,\n    \"min\": 1.1785878865800001,\n    \"max\": 1.3635076995800002,\n    \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n    \"message\": \"Convert paint_lines function into method on Painter\\n\",\n    \"time\": 1.1785878865800001\n  },\n  {\n    \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14822543038,\n    \"stddev\": 0.00924099038024328,\n    \"median\": 1.15208629158,\n    \"user\": 1.151059255,\n    \"system\": 0.04130823,\n    \"min\": 1.13370564258,\n    \"max\": 1.15630690758,\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"message\": \"Separate painting and emitting\\n\",\n    \"time\": 1.1446550795800001\n  },\n  {\n    \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14822543038,\n    \"stddev\": 0.00924099038024328,\n    \"median\": 1.15208629158,\n    \"user\": 1.151059255,\n    \"system\": 0.04130823,\n    \"min\": 1.13370564258,\n    \"max\": 1.15630690758,\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"message\": \"Separate painting and emitting\\n\",\n    \"time\": 1.15630690758\n  },\n  {\n    \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14822543038,\n    \"stddev\": 0.00924099038024328,\n    \"median\": 1.15208629158,\n    \"user\": 1.151059255,\n    \"system\": 0.04130823,\n    \"min\": 1.13370564258,\n    \"max\": 1.15630690758,\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"message\": \"Separate painting and emitting\\n\",\n    \"time\": 1.15208629158\n  },\n  {\n    \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14822543038,\n    \"stddev\": 0.00924099038024328,\n    \"median\": 1.15208629158,\n    \"user\": 1.151059255,\n    \"system\": 0.04130823,\n    \"min\": 1.13370564258,\n    \"max\": 1.15630690758,\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"message\": \"Separate painting and emitting\\n\",\n    \"time\": 1.13370564258\n  },\n  {\n    \"command\": \"a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.14822543038,\n    \"stddev\": 0.00924099038024328,\n    \"median\": 1.15208629158,\n    \"user\": 1.151059255,\n    \"system\": 0.04130823,\n    \"min\": 1.13370564258,\n    \"max\": 1.15630690758,\n    \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n    \"message\": \"Separate painting and emitting\\n\",\n    \"time\": 1.15437323058\n  },\n  {\n    \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22054745218,\n    \"stddev\": 0.061242157919159435,\n    \"median\": 1.1882360815800002,\n    \"user\": 1.213490455,\n    \"system\": 0.04996023,\n    \"min\": 1.16874542858,\n    \"max\": 1.31658947058,\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"time\": 1.31658947058\n  },\n  {\n    \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22054745218,\n    \"stddev\": 0.061242157919159435,\n    \"median\": 1.1882360815800002,\n    \"user\": 1.213490455,\n    \"system\": 0.04996023,\n    \"min\": 1.16874542858,\n    \"max\": 1.31658947058,\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"time\": 1.1882360815800002\n  },\n  {\n    \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22054745218,\n    \"stddev\": 0.061242157919159435,\n    \"median\": 1.1882360815800002,\n    \"user\": 1.213490455,\n    \"system\": 0.04996023,\n    \"min\": 1.16874542858,\n    \"max\": 1.31658947058,\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"time\": 1.16874542858\n  },\n  {\n    \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22054745218,\n    \"stddev\": 0.061242157919159435,\n    \"median\": 1.1882360815800002,\n    \"user\": 1.213490455,\n    \"system\": 0.04996023,\n    \"min\": 1.16874542858,\n    \"max\": 1.31658947058,\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"time\": 1.18312111558\n  },\n  {\n    \"command\": \"658a4e81667a4eb94f52829372aa4464881cb6be < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.22054745218,\n    \"stddev\": 0.061242157919159435,\n    \"median\": 1.1882360815800002,\n    \"user\": 1.213490455,\n    \"system\": 0.04996023,\n    \"min\": 1.16874542858,\n    \"max\": 1.31658947058,\n    \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n    \"message\": \"Fix type of buffered line style sections\\n\",\n    \"time\": 1.2460451645800001\n  },\n  {\n    \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2365606477800002,\n    \"stddev\": 0.06360472369892207,\n    \"median\": 1.2164631615800001,\n    \"user\": 1.2285682549999999,\n    \"system\": 0.05130882999999999,\n    \"min\": 1.16209440358,\n    \"max\": 1.32931618858,\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"message\": \"Stub: combine style sections\\n\",\n    \"time\": 1.2164631615800001\n  },\n  {\n    \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2365606477800002,\n    \"stddev\": 0.06360472369892207,\n    \"median\": 1.2164631615800001,\n    \"user\": 1.2285682549999999,\n    \"system\": 0.05130882999999999,\n    \"min\": 1.16209440358,\n    \"max\": 1.32931618858,\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"message\": \"Stub: combine style sections\\n\",\n    \"time\": 1.32931618858\n  },\n  {\n    \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2365606477800002,\n    \"stddev\": 0.06360472369892207,\n    \"median\": 1.2164631615800001,\n    \"user\": 1.2285682549999999,\n    \"system\": 0.05130882999999999,\n    \"min\": 1.16209440358,\n    \"max\": 1.32931618858,\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"message\": \"Stub: combine style sections\\n\",\n    \"time\": 1.26599444558\n  },\n  {\n    \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2365606477800002,\n    \"stddev\": 0.06360472369892207,\n    \"median\": 1.2164631615800001,\n    \"user\": 1.2285682549999999,\n    \"system\": 0.05130882999999999,\n    \"min\": 1.16209440358,\n    \"max\": 1.32931618858,\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"message\": \"Stub: combine style sections\\n\",\n    \"time\": 1.20893503958\n  },\n  {\n    \"command\": \"a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2365606477800002,\n    \"stddev\": 0.06360472369892207,\n    \"median\": 1.2164631615800001,\n    \"user\": 1.2285682549999999,\n    \"system\": 0.05130882999999999,\n    \"min\": 1.16209440358,\n    \"max\": 1.32931618858,\n    \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n    \"message\": \"Stub: combine style sections\\n\",\n    \"time\": 1.16209440358\n  },\n  {\n    \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2696973795800002,\n    \"stddev\": 0.04159927459477388,\n    \"median\": 1.27684017858,\n    \"user\": 1.264304255,\n    \"system\": 0.05290583,\n    \"min\": 1.22978968758,\n    \"max\": 1.3299621805800002,\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"time\": 1.2307642325800001\n  },\n  {\n    \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2696973795800002,\n    \"stddev\": 0.04159927459477388,\n    \"median\": 1.27684017858,\n    \"user\": 1.264304255,\n    \"system\": 0.05290583,\n    \"min\": 1.22978968758,\n    \"max\": 1.3299621805800002,\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"time\": 1.3299621805800002\n  },\n  {\n    \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2696973795800002,\n    \"stddev\": 0.04159927459477388,\n    \"median\": 1.27684017858,\n    \"user\": 1.264304255,\n    \"system\": 0.05290583,\n    \"min\": 1.22978968758,\n    \"max\": 1.3299621805800002,\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"time\": 1.28113061858\n  },\n  {\n    \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2696973795800002,\n    \"stddev\": 0.04159927459477388,\n    \"median\": 1.27684017858,\n    \"user\": 1.264304255,\n    \"system\": 0.05290583,\n    \"min\": 1.22978968758,\n    \"max\": 1.3299621805800002,\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"time\": 1.22978968758\n  },\n  {\n    \"command\": \"55547d7d623a8817264d94f239719e73114b7414 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2696973795800002,\n    \"stddev\": 0.04159927459477388,\n    \"median\": 1.27684017858,\n    \"user\": 1.264304255,\n    \"system\": 0.05290583,\n    \"min\": 1.22978968758,\n    \"max\": 1.3299621805800002,\n    \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n    \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n    \"time\": 1.27684017858\n  },\n  {\n    \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27673278158,\n    \"stddev\": 0.06787133377578805,\n    \"median\": 1.25586917758,\n    \"user\": 1.264109855,\n    \"system\": 0.04554643,\n    \"min\": 1.2217248625800001,\n    \"max\": 1.38935475258,\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"message\": \"Superimpose styles\\n\",\n    \"time\": 1.25586917758\n  },\n  {\n    \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27673278158,\n    \"stddev\": 0.06787133377578805,\n    \"median\": 1.25586917758,\n    \"user\": 1.264109855,\n    \"system\": 0.04554643,\n    \"min\": 1.2217248625800001,\n    \"max\": 1.38935475258,\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"message\": \"Superimpose styles\\n\",\n    \"time\": 1.23002114458\n  },\n  {\n    \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27673278158,\n    \"stddev\": 0.06787133377578805,\n    \"median\": 1.25586917758,\n    \"user\": 1.264109855,\n    \"system\": 0.04554643,\n    \"min\": 1.2217248625800001,\n    \"max\": 1.38935475258,\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"message\": \"Superimpose styles\\n\",\n    \"time\": 1.2217248625800001\n  },\n  {\n    \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27673278158,\n    \"stddev\": 0.06787133377578805,\n    \"median\": 1.25586917758,\n    \"user\": 1.264109855,\n    \"system\": 0.04554643,\n    \"min\": 1.2217248625800001,\n    \"max\": 1.38935475258,\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"message\": \"Superimpose styles\\n\",\n    \"time\": 1.28669397058\n  },\n  {\n    \"command\": \"1c3b265ca497131307f18816ebf1de7c01678e9e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.27673278158,\n    \"stddev\": 0.06787133377578805,\n    \"median\": 1.25586917758,\n    \"user\": 1.264109855,\n    \"system\": 0.04554643,\n    \"min\": 1.2217248625800001,\n    \"max\": 1.38935475258,\n    \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n    \"message\": \"Superimpose styles\\n\",\n    \"time\": 1.38935475258\n  },\n  {\n    \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3243956985800003,\n    \"stddev\": 0.10399093275669045,\n    \"median\": 1.2513165835800002,\n    \"user\": 1.303460855,\n    \"system\": 0.051160830000000004,\n    \"min\": 1.24486867658,\n    \"max\": 1.45647382358,\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"message\": \"Unit tests\\n\",\n    \"time\": 1.45647382358\n  },\n  {\n    \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3243956985800003,\n    \"stddev\": 0.10399093275669045,\n    \"median\": 1.2513165835800002,\n    \"user\": 1.303460855,\n    \"system\": 0.051160830000000004,\n    \"min\": 1.24486867658,\n    \"max\": 1.45647382358,\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"message\": \"Unit tests\\n\",\n    \"time\": 1.4181343155800001\n  },\n  {\n    \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3243956985800003,\n    \"stddev\": 0.10399093275669045,\n    \"median\": 1.2513165835800002,\n    \"user\": 1.303460855,\n    \"system\": 0.051160830000000004,\n    \"min\": 1.24486867658,\n    \"max\": 1.45647382358,\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"message\": \"Unit tests\\n\",\n    \"time\": 1.25118509358\n  },\n  {\n    \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3243956985800003,\n    \"stddev\": 0.10399093275669045,\n    \"median\": 1.2513165835800002,\n    \"user\": 1.303460855,\n    \"system\": 0.051160830000000004,\n    \"min\": 1.24486867658,\n    \"max\": 1.45647382358,\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"message\": \"Unit tests\\n\",\n    \"time\": 1.2513165835800002\n  },\n  {\n    \"command\": \"3136e08bdeecd7ab8b0b651bd134f863a594980a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.3243956985800003,\n    \"stddev\": 0.10399093275669045,\n    \"median\": 1.2513165835800002,\n    \"user\": 1.303460855,\n    \"system\": 0.051160830000000004,\n    \"min\": 1.24486867658,\n    \"max\": 1.45647382358,\n    \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n    \"message\": \"Unit tests\\n\",\n    \"time\": 1.24486867658\n  },\n  {\n    \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29175345518,\n    \"stddev\": 0.06852706785303934,\n    \"median\": 1.26702886858,\n    \"user\": 1.281001255,\n    \"system\": 0.047596629999999994,\n    \"min\": 1.23137537458,\n    \"max\": 1.3960737945800001,\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"message\": \"Refactor: config colors\\n\",\n    \"time\": 1.23137537458\n  },\n  {\n    \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29175345518,\n    \"stddev\": 0.06852706785303934,\n    \"median\": 1.26702886858,\n    \"user\": 1.281001255,\n    \"system\": 0.047596629999999994,\n    \"min\": 1.23137537458,\n    \"max\": 1.3960737945800001,\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"message\": \"Refactor: config colors\\n\",\n    \"time\": 1.24055360058\n  },\n  {\n    \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29175345518,\n    \"stddev\": 0.06852706785303934,\n    \"median\": 1.26702886858,\n    \"user\": 1.281001255,\n    \"system\": 0.047596629999999994,\n    \"min\": 1.23137537458,\n    \"max\": 1.3960737945800001,\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"message\": \"Refactor: config colors\\n\",\n    \"time\": 1.26702886858\n  },\n  {\n    \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29175345518,\n    \"stddev\": 0.06852706785303934,\n    \"median\": 1.26702886858,\n    \"user\": 1.281001255,\n    \"system\": 0.047596629999999994,\n    \"min\": 1.23137537458,\n    \"max\": 1.3960737945800001,\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"message\": \"Refactor: config colors\\n\",\n    \"time\": 1.32373563758\n  },\n  {\n    \"command\": \"80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.29175345518,\n    \"stddev\": 0.06852706785303934,\n    \"median\": 1.26702886858,\n    \"user\": 1.281001255,\n    \"system\": 0.047596629999999994,\n    \"min\": 1.23137537458,\n    \"max\": 1.3960737945800001,\n    \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n    \"message\": \"Refactor: config colors\\n\",\n    \"time\": 1.3960737945800001\n  },\n  {\n    \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2926468321800002,\n    \"stddev\": 0.05183537391861389,\n    \"median\": 1.2694013315800001,\n    \"user\": 1.297268855,\n    \"system\": 0.04506863,\n    \"min\": 1.25687373158,\n    \"max\": 1.38372343558,\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"time\": 1.28432336458\n  },\n  {\n    \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2926468321800002,\n    \"stddev\": 0.05183537391861389,\n    \"median\": 1.2694013315800001,\n    \"user\": 1.297268855,\n    \"system\": 0.04506863,\n    \"min\": 1.25687373158,\n    \"max\": 1.38372343558,\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"time\": 1.25687373158\n  },\n  {\n    \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2926468321800002,\n    \"stddev\": 0.05183537391861389,\n    \"median\": 1.2694013315800001,\n    \"user\": 1.297268855,\n    \"system\": 0.04506863,\n    \"min\": 1.25687373158,\n    \"max\": 1.38372343558,\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"time\": 1.26891229758\n  },\n  {\n    \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2926468321800002,\n    \"stddev\": 0.05183537391861389,\n    \"median\": 1.2694013315800001,\n    \"user\": 1.297268855,\n    \"system\": 0.04506863,\n    \"min\": 1.25687373158,\n    \"max\": 1.38372343558,\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"time\": 1.2694013315800001\n  },\n  {\n    \"command\": \"74fa9706085254ab27d9ea7cff535346af3ab5a0 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.2926468321800002,\n    \"stddev\": 0.05183537391861389,\n    \"median\": 1.2694013315800001,\n    \"user\": 1.297268855,\n    \"system\": 0.04506863,\n    \"min\": 1.25687373158,\n    \"max\": 1.38372343558,\n    \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n    \"message\": \"Switch from Color to Style for specifying background style\\n\",\n    \"time\": 1.38372343558\n  },\n  {\n    \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.25798030918,\n    \"stddev\": 0.05377448991003862,\n    \"median\": 1.24329144758,\n    \"user\": 1.255981855,\n    \"system\": 0.05220123,\n    \"min\": 1.19797268158,\n    \"max\": 1.34037057058,\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"time\": 1.34037057058\n  },\n  {\n    \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.25798030918,\n    \"stddev\": 0.05377448991003862,\n    \"median\": 1.24329144758,\n    \"user\": 1.255981855,\n    \"system\": 0.05220123,\n    \"min\": 1.19797268158,\n    \"max\": 1.34037057058,\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"time\": 1.19797268158\n  },\n  {\n    \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.25798030918,\n    \"stddev\": 0.05377448991003862,\n    \"median\": 1.24329144758,\n    \"user\": 1.255981855,\n    \"system\": 0.05220123,\n    \"min\": 1.19797268158,\n    \"max\": 1.34037057058,\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"time\": 1.24329144758\n  },\n  {\n    \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.25798030918,\n    \"stddev\": 0.05377448991003862,\n    \"median\": 1.24329144758,\n    \"user\": 1.255981855,\n    \"system\": 0.05220123,\n    \"min\": 1.19797268158,\n    \"max\": 1.34037057058,\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"time\": 1.27572454158\n  },\n  {\n    \"command\": \"90874e2134ac5a45263eaa67984c946776ab305e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.25798030918,\n    \"stddev\": 0.05377448991003862,\n    \"median\": 1.24329144758,\n    \"user\": 1.255981855,\n    \"system\": 0.05220123,\n    \"min\": 1.19797268158,\n    \"max\": 1.34037057058,\n    \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n    \"message\": \"Remove -/+ markers in first column\\n\",\n    \"time\": 1.2325423045800001\n  },\n  {\n    \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53696990178,\n    \"stddev\": 0.1586472022264278,\n    \"median\": 1.4769993535800001,\n    \"user\": 1.5339592549999999,\n    \"system\": 0.05444723,\n    \"min\": 1.4178423635800002,\n    \"max\": 1.8067807855800002,\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"message\": \"Honor --width argument\\n\",\n    \"time\": 1.8067807855800002\n  },\n  {\n    \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53696990178,\n    \"stddev\": 0.1586472022264278,\n    \"median\": 1.4769993535800001,\n    \"user\": 1.5339592549999999,\n    \"system\": 0.05444723,\n    \"min\": 1.4178423635800002,\n    \"max\": 1.8067807855800002,\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"message\": \"Honor --width argument\\n\",\n    \"time\": 1.5462741985800001\n  },\n  {\n    \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53696990178,\n    \"stddev\": 0.1586472022264278,\n    \"median\": 1.4769993535800001,\n    \"user\": 1.5339592549999999,\n    \"system\": 0.05444723,\n    \"min\": 1.4178423635800002,\n    \"max\": 1.8067807855800002,\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"message\": \"Honor --width argument\\n\",\n    \"time\": 1.4769993535800001\n  },\n  {\n    \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53696990178,\n    \"stddev\": 0.1586472022264278,\n    \"median\": 1.4769993535800001,\n    \"user\": 1.5339592549999999,\n    \"system\": 0.05444723,\n    \"min\": 1.4178423635800002,\n    \"max\": 1.8067807855800002,\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"message\": \"Honor --width argument\\n\",\n    \"time\": 1.43695280758\n  },\n  {\n    \"command\": \"8a053602c763e64ae88aedd4b0a541b4ca49e863 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53696990178,\n    \"stddev\": 0.1586472022264278,\n    \"median\": 1.4769993535800001,\n    \"user\": 1.5339592549999999,\n    \"system\": 0.05444723,\n    \"min\": 1.4178423635800002,\n    \"max\": 1.8067807855800002,\n    \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n    \"message\": \"Honor --width argument\\n\",\n    \"time\": 1.4178423635800002\n  },\n  {\n    \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.48782965878,\n    \"stddev\": 0.04490390433909346,\n    \"median\": 1.4696355335800002,\n    \"user\": 1.488512055,\n    \"system\": 0.05085403000000001,\n    \"min\": 1.44293227758,\n    \"max\": 1.5538213785800001,\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"time\": 1.46030726058\n  },\n  {\n    \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.48782965878,\n    \"stddev\": 0.04490390433909346,\n    \"median\": 1.4696355335800002,\n    \"user\": 1.488512055,\n    \"system\": 0.05085403000000001,\n    \"min\": 1.44293227758,\n    \"max\": 1.5538213785800001,\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"time\": 1.5538213785800001\n  },\n  {\n    \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.48782965878,\n    \"stddev\": 0.04490390433909346,\n    \"median\": 1.4696355335800002,\n    \"user\": 1.488512055,\n    \"system\": 0.05085403000000001,\n    \"min\": 1.44293227758,\n    \"max\": 1.5538213785800001,\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"time\": 1.51245184358\n  },\n  {\n    \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.48782965878,\n    \"stddev\": 0.04490390433909346,\n    \"median\": 1.4696355335800002,\n    \"user\": 1.488512055,\n    \"system\": 0.05085403000000001,\n    \"min\": 1.44293227758,\n    \"max\": 1.5538213785800001,\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"time\": 1.4696355335800002\n  },\n  {\n    \"command\": \"1313565990f4fcc1745099de0a37078d6ea75d22 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.48782965878,\n    \"stddev\": 0.04490390433909346,\n    \"median\": 1.4696355335800002,\n    \"user\": 1.488512055,\n    \"system\": 0.05085403000000001,\n    \"min\": 1.44293227758,\n    \"max\": 1.5538213785800001,\n    \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n    \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n    \"time\": 1.44293227758\n  },\n  {\n    \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4686310523800001,\n    \"stddev\": 0.022193585340573068,\n    \"median\": 1.45619453258,\n    \"user\": 1.4745038549999998,\n    \"system\": 0.04746763,\n    \"min\": 1.4486049115800002,\n    \"max\": 1.49463914458,\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"message\": \"Only apply background color when desired\\n\",\n    \"time\": 1.4529208605800001\n  },\n  {\n    \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4686310523800001,\n    \"stddev\": 0.022193585340573068,\n    \"median\": 1.45619453258,\n    \"user\": 1.4745038549999998,\n    \"system\": 0.04746763,\n    \"min\": 1.4486049115800002,\n    \"max\": 1.49463914458,\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"message\": \"Only apply background color when desired\\n\",\n    \"time\": 1.4486049115800002\n  },\n  {\n    \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4686310523800001,\n    \"stddev\": 0.022193585340573068,\n    \"median\": 1.45619453258,\n    \"user\": 1.4745038549999998,\n    \"system\": 0.04746763,\n    \"min\": 1.4486049115800002,\n    \"max\": 1.49463914458,\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"message\": \"Only apply background color when desired\\n\",\n    \"time\": 1.45619453258\n  },\n  {\n    \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4686310523800001,\n    \"stddev\": 0.022193585340573068,\n    \"median\": 1.45619453258,\n    \"user\": 1.4745038549999998,\n    \"system\": 0.04746763,\n    \"min\": 1.4486049115800002,\n    \"max\": 1.49463914458,\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"message\": \"Only apply background color when desired\\n\",\n    \"time\": 1.49463914458\n  },\n  {\n    \"command\": \"e65a542056905d25f7bac2b16e737435267697d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4686310523800001,\n    \"stddev\": 0.022193585340573068,\n    \"median\": 1.45619453258,\n    \"user\": 1.4745038549999998,\n    \"system\": 0.04746763,\n    \"min\": 1.4486049115800002,\n    \"max\": 1.49463914458,\n    \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n    \"message\": \"Only apply background color when desired\\n\",\n    \"time\": 1.49079581258\n  },\n  {\n    \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44653690978,\n    \"stddev\": 0.03650362340863509,\n    \"median\": 1.4322318705800001,\n    \"user\": 1.452957055,\n    \"system\": 0.04513203,\n    \"min\": 1.4251714585800002,\n    \"max\": 1.51109271858,\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"time\": 1.42560163258\n  },\n  {\n    \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44653690978,\n    \"stddev\": 0.03650362340863509,\n    \"median\": 1.4322318705800001,\n    \"user\": 1.452957055,\n    \"system\": 0.04513203,\n    \"min\": 1.4251714585800002,\n    \"max\": 1.51109271858,\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"time\": 1.4251714585800002\n  },\n  {\n    \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44653690978,\n    \"stddev\": 0.03650362340863509,\n    \"median\": 1.4322318705800001,\n    \"user\": 1.452957055,\n    \"system\": 0.04513203,\n    \"min\": 1.4251714585800002,\n    \"max\": 1.51109271858,\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"time\": 1.43858686858\n  },\n  {\n    \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44653690978,\n    \"stddev\": 0.03650362340863509,\n    \"median\": 1.4322318705800001,\n    \"user\": 1.452957055,\n    \"system\": 0.04513203,\n    \"min\": 1.4251714585800002,\n    \"max\": 1.51109271858,\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"time\": 1.4322318705800001\n  },\n  {\n    \"command\": \"b1c563f557b0e6e5e331e6402d78ff52efd4a994 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.44653690978,\n    \"stddev\": 0.03650362340863509,\n    \"median\": 1.4322318705800001,\n    \"user\": 1.452957055,\n    \"system\": 0.04513203,\n    \"min\": 1.4251714585800002,\n    \"max\": 1.51109271858,\n    \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n    \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n    \"time\": 1.51109271858\n  },\n  {\n    \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51226583578,\n    \"stddev\": 0.06123479335327184,\n    \"median\": 1.5183290425800002,\n    \"user\": 1.501743055,\n    \"system\": 0.05613982999999999,\n    \"min\": 1.41904570558,\n    \"max\": 1.59090929758,\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"time\": 1.59090929758\n  },\n  {\n    \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51226583578,\n    \"stddev\": 0.06123479335327184,\n    \"median\": 1.5183290425800002,\n    \"user\": 1.501743055,\n    \"system\": 0.05613982999999999,\n    \"min\": 1.41904570558,\n    \"max\": 1.59090929758,\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"time\": 1.5183290425800002\n  },\n  {\n    \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51226583578,\n    \"stddev\": 0.06123479335327184,\n    \"median\": 1.5183290425800002,\n    \"user\": 1.501743055,\n    \"system\": 0.05613982999999999,\n    \"min\": 1.41904570558,\n    \"max\": 1.59090929758,\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"time\": 1.5215728595800002\n  },\n  {\n    \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51226583578,\n    \"stddev\": 0.06123479335327184,\n    \"median\": 1.5183290425800002,\n    \"user\": 1.501743055,\n    \"system\": 0.05613982999999999,\n    \"min\": 1.41904570558,\n    \"max\": 1.59090929758,\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"time\": 1.5114722735800001\n  },\n  {\n    \"command\": \"ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51226583578,\n    \"stddev\": 0.06123479335327184,\n    \"median\": 1.5183290425800002,\n    \"user\": 1.501743055,\n    \"system\": 0.05613982999999999,\n    \"min\": 1.41904570558,\n    \"max\": 1.59090929758,\n    \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n    \"message\": \"Honor --highlight-removed argument\\n\",\n    \"time\": 1.41904570558\n  },\n  {\n    \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4240216655800002,\n    \"stddev\": 0.015156863895773132,\n    \"median\": 1.4253404575800002,\n    \"user\": 1.4291824549999999,\n    \"system\": 0.043243430000000006,\n    \"min\": 1.4006557565800002,\n    \"max\": 1.43993097858,\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.4200451925800002\n  },\n  {\n    \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4240216655800002,\n    \"stddev\": 0.015156863895773132,\n    \"median\": 1.4253404575800002,\n    \"user\": 1.4291824549999999,\n    \"system\": 0.043243430000000006,\n    \"min\": 1.4006557565800002,\n    \"max\": 1.43993097858,\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.43993097858\n  },\n  {\n    \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4240216655800002,\n    \"stddev\": 0.015156863895773132,\n    \"median\": 1.4253404575800002,\n    \"user\": 1.4291824549999999,\n    \"system\": 0.043243430000000006,\n    \"min\": 1.4006557565800002,\n    \"max\": 1.43993097858,\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.4253404575800002\n  },\n  {\n    \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4240216655800002,\n    \"stddev\": 0.015156863895773132,\n    \"median\": 1.4253404575800002,\n    \"user\": 1.4291824549999999,\n    \"system\": 0.043243430000000006,\n    \"min\": 1.4006557565800002,\n    \"max\": 1.43993097858,\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.4006557565800002\n  },\n  {\n    \"command\": \"175e52ee5f6c9486b3807d004660ae78e5a03f3e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4240216655800002,\n    \"stddev\": 0.015156863895773132,\n    \"median\": 1.4253404575800002,\n    \"user\": 1.4291824549999999,\n    \"system\": 0.043243430000000006,\n    \"min\": 1.4006557565800002,\n    \"max\": 1.43993097858,\n    \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.43413594258\n  },\n  {\n    \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41899250298,\n    \"stddev\": 0.009239257578298602,\n    \"median\": 1.41748020958,\n    \"user\": 1.425441055,\n    \"system\": 0.04256543,\n    \"min\": 1.41117091658,\n    \"max\": 1.4341263395800001,\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"time\": 1.4120838765800001\n  },\n  {\n    \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41899250298,\n    \"stddev\": 0.009239257578298602,\n    \"median\": 1.41748020958,\n    \"user\": 1.425441055,\n    \"system\": 0.04256543,\n    \"min\": 1.41117091658,\n    \"max\": 1.4341263395800001,\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"time\": 1.4341263395800001\n  },\n  {\n    \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41899250298,\n    \"stddev\": 0.009239257578298602,\n    \"median\": 1.41748020958,\n    \"user\": 1.425441055,\n    \"system\": 0.04256543,\n    \"min\": 1.41117091658,\n    \"max\": 1.4341263395800001,\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"time\": 1.41748020958\n  },\n  {\n    \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41899250298,\n    \"stddev\": 0.009239257578298602,\n    \"median\": 1.41748020958,\n    \"user\": 1.425441055,\n    \"system\": 0.04256543,\n    \"min\": 1.41117091658,\n    \"max\": 1.4341263395800001,\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"time\": 1.4201011725800001\n  },\n  {\n    \"command\": \"a927d9a478d99586c482965b57ec3b5374f020d1 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.41899250298,\n    \"stddev\": 0.009239257578298602,\n    \"median\": 1.41748020958,\n    \"user\": 1.425441055,\n    \"system\": 0.04256543,\n    \"min\": 1.41117091658,\n    \"max\": 1.4341263395800001,\n    \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n    \"message\": \"Tweak dark theme emph color\\n\",\n    \"time\": 1.41117091658\n  },\n  {\n    \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.50124341678,\n    \"stddev\": 0.06059730755487976,\n    \"median\": 1.48843395158,\n    \"user\": 1.4929198549999998,\n    \"system\": 0.050351629999999994,\n    \"min\": 1.43508954958,\n    \"max\": 1.5935849555800001,\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"time\": 1.52222442558\n  },\n  {\n    \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.50124341678,\n    \"stddev\": 0.06059730755487976,\n    \"median\": 1.48843395158,\n    \"user\": 1.4929198549999998,\n    \"system\": 0.050351629999999994,\n    \"min\": 1.43508954958,\n    \"max\": 1.5935849555800001,\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"time\": 1.43508954958\n  },\n  {\n    \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.50124341678,\n    \"stddev\": 0.06059730755487976,\n    \"median\": 1.48843395158,\n    \"user\": 1.4929198549999998,\n    \"system\": 0.050351629999999994,\n    \"min\": 1.43508954958,\n    \"max\": 1.5935849555800001,\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"time\": 1.5935849555800001\n  },\n  {\n    \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.50124341678,\n    \"stddev\": 0.06059730755487976,\n    \"median\": 1.48843395158,\n    \"user\": 1.4929198549999998,\n    \"system\": 0.050351629999999994,\n    \"min\": 1.43508954958,\n    \"max\": 1.5935849555800001,\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"time\": 1.48843395158\n  },\n  {\n    \"command\": \"2de8b44784131d128a34d84249e66692e18182d8 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.50124341678,\n    \"stddev\": 0.06059730755487976,\n    \"median\": 1.48843395158,\n    \"user\": 1.4929198549999998,\n    \"system\": 0.050351629999999994,\n    \"min\": 1.43508954958,\n    \"max\": 1.5935849555800001,\n    \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n    \"message\": \"Store terminal width in config struct\\n\",\n    \"time\": 1.46688420158\n  },\n  {\n    \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4961375835800002,\n    \"stddev\": 0.02208509345951612,\n    \"median\": 1.48538952558,\n    \"user\": 1.494979255,\n    \"system\": 0.05379983000000001,\n    \"min\": 1.4763286125800001,\n    \"max\": 1.5221548655800001,\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"time\": 1.48538952558\n  },\n  {\n    \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4961375835800002,\n    \"stddev\": 0.02208509345951612,\n    \"median\": 1.48538952558,\n    \"user\": 1.494979255,\n    \"system\": 0.05379983000000001,\n    \"min\": 1.4763286125800001,\n    \"max\": 1.5221548655800001,\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"time\": 1.4763286125800001\n  },\n  {\n    \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4961375835800002,\n    \"stddev\": 0.02208509345951612,\n    \"median\": 1.48538952558,\n    \"user\": 1.494979255,\n    \"system\": 0.05379983000000001,\n    \"min\": 1.4763286125800001,\n    \"max\": 1.5221548655800001,\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"time\": 1.4789667045800001\n  },\n  {\n    \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4961375835800002,\n    \"stddev\": 0.02208509345951612,\n    \"median\": 1.48538952558,\n    \"user\": 1.494979255,\n    \"system\": 0.05379983000000001,\n    \"min\": 1.4763286125800001,\n    \"max\": 1.5221548655800001,\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"time\": 1.51784820958\n  },\n  {\n    \"command\": \"8a50b8289bacc95942771680d7a516284b2714cb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4961375835800002,\n    \"stddev\": 0.02208509345951612,\n    \"median\": 1.48538952558,\n    \"user\": 1.494979255,\n    \"system\": 0.05379983000000001,\n    \"min\": 1.4763286125800001,\n    \"max\": 1.5221548655800001,\n    \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n    \"message\": \"Replace diff metadata with horizontal line\\n\",\n    \"time\": 1.5221548655800001\n  },\n  {\n    \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51050924198,\n    \"stddev\": 0.017434718504715892,\n    \"median\": 1.51514339358,\n    \"user\": 1.5058134550000002,\n    \"system\": 0.05695903,\n    \"min\": 1.48202407058,\n    \"max\": 1.52917544958,\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"time\": 1.48202407058\n  },\n  {\n    \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51050924198,\n    \"stddev\": 0.017434718504715892,\n    \"median\": 1.51514339358,\n    \"user\": 1.5058134550000002,\n    \"system\": 0.05695903,\n    \"min\": 1.48202407058,\n    \"max\": 1.52917544958,\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"time\": 1.52917544958\n  },\n  {\n    \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51050924198,\n    \"stddev\": 0.017434718504715892,\n    \"median\": 1.51514339358,\n    \"user\": 1.5058134550000002,\n    \"system\": 0.05695903,\n    \"min\": 1.48202407058,\n    \"max\": 1.52917544958,\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"time\": 1.51635194358\n  },\n  {\n    \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51050924198,\n    \"stddev\": 0.017434718504715892,\n    \"median\": 1.51514339358,\n    \"user\": 1.5058134550000002,\n    \"system\": 0.05695903,\n    \"min\": 1.48202407058,\n    \"max\": 1.52917544958,\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"time\": 1.50985135258\n  },\n  {\n    \"command\": \"b785f4659223df0c3d7049d7b6e375257f66618a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51050924198,\n    \"stddev\": 0.017434718504715892,\n    \"median\": 1.51514339358,\n    \"user\": 1.5058134550000002,\n    \"system\": 0.05695903,\n    \"min\": 1.48202407058,\n    \"max\": 1.52917544958,\n    \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n    \"message\": \"Add --no-structural-changes argument\\n\",\n    \"time\": 1.51514339358\n  },\n  {\n    \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4908252489800002,\n    \"stddev\": 0.012820966127742714,\n    \"median\": 1.48500713758,\n    \"user\": 1.490410855,\n    \"system\": 0.053952429999999996,\n    \"min\": 1.47742962258,\n    \"max\": 1.50868024158,\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"time\": 1.48361502058\n  },\n  {\n    \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4908252489800002,\n    \"stddev\": 0.012820966127742714,\n    \"median\": 1.48500713758,\n    \"user\": 1.490410855,\n    \"system\": 0.053952429999999996,\n    \"min\": 1.47742962258,\n    \"max\": 1.50868024158,\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"time\": 1.49939422258\n  },\n  {\n    \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4908252489800002,\n    \"stddev\": 0.012820966127742714,\n    \"median\": 1.48500713758,\n    \"user\": 1.490410855,\n    \"system\": 0.053952429999999996,\n    \"min\": 1.47742962258,\n    \"max\": 1.50868024158,\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"time\": 1.47742962258\n  },\n  {\n    \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4908252489800002,\n    \"stddev\": 0.012820966127742714,\n    \"median\": 1.48500713758,\n    \"user\": 1.490410855,\n    \"system\": 0.053952429999999996,\n    \"min\": 1.47742962258,\n    \"max\": 1.50868024158,\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"time\": 1.50868024158\n  },\n  {\n    \"command\": \"2c8e941e9faec0856bf910c4fb32c063689acccf < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.4908252489800002,\n    \"stddev\": 0.012820966127742714,\n    \"median\": 1.48500713758,\n    \"user\": 1.490410855,\n    \"system\": 0.053952429999999996,\n    \"min\": 1.47742962258,\n    \"max\": 1.50868024158,\n    \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n    \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n    \"time\": 1.48500713758\n  },\n  {\n    \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.49342522738,\n    \"stddev\": 0.03378549674710587,\n    \"median\": 1.4858383695800002,\n    \"user\": 1.494173255,\n    \"system\": 0.05205683000000001,\n    \"min\": 1.46464398158,\n    \"max\": 1.5503406045800001,\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"message\": \"Fix file change description text\\n\",\n    \"time\": 1.5503406045800001\n  },\n  {\n    \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.49342522738,\n    \"stddev\": 0.03378549674710587,\n    \"median\": 1.4858383695800002,\n    \"user\": 1.494173255,\n    \"system\": 0.05205683000000001,\n    \"min\": 1.46464398158,\n    \"max\": 1.5503406045800001,\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"message\": \"Fix file change description text\\n\",\n    \"time\": 1.4858383695800002\n  },\n  {\n    \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.49342522738,\n    \"stddev\": 0.03378549674710587,\n    \"median\": 1.4858383695800002,\n    \"user\": 1.494173255,\n    \"system\": 0.05205683000000001,\n    \"min\": 1.46464398158,\n    \"max\": 1.5503406045800001,\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"message\": \"Fix file change description text\\n\",\n    \"time\": 1.49386287558\n  },\n  {\n    \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.49342522738,\n    \"stddev\": 0.03378549674710587,\n    \"median\": 1.4858383695800002,\n    \"user\": 1.494173255,\n    \"system\": 0.05205683000000001,\n    \"min\": 1.46464398158,\n    \"max\": 1.5503406045800001,\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"message\": \"Fix file change description text\\n\",\n    \"time\": 1.46464398158\n  },\n  {\n    \"command\": \"36c9f5717be20da9f60993616bb7e591e8efdffe < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.49342522738,\n    \"stddev\": 0.03378549674710587,\n    \"median\": 1.4858383695800002,\n    \"user\": 1.494173255,\n    \"system\": 0.05205683000000001,\n    \"min\": 1.46464398158,\n    \"max\": 1.5503406045800001,\n    \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n    \"message\": \"Fix file change description text\\n\",\n    \"time\": 1.47244030558\n  },\n  {\n    \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5360036911800001,\n    \"stddev\": 0.03909402000835751,\n    \"median\": 1.53868055058,\n    \"user\": 1.531859855,\n    \"system\": 0.05631322999999999,\n    \"min\": 1.47091760658,\n    \"max\": 1.57136197358,\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"message\": \"Document unicode character\\n\",\n    \"time\": 1.57136197358\n  },\n  {\n    \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5360036911800001,\n    \"stddev\": 0.03909402000835751,\n    \"median\": 1.53868055058,\n    \"user\": 1.531859855,\n    \"system\": 0.05631322999999999,\n    \"min\": 1.47091760658,\n    \"max\": 1.57136197358,\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"message\": \"Document unicode character\\n\",\n    \"time\": 1.56079683158\n  },\n  {\n    \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5360036911800001,\n    \"stddev\": 0.03909402000835751,\n    \"median\": 1.53868055058,\n    \"user\": 1.531859855,\n    \"system\": 0.05631322999999999,\n    \"min\": 1.47091760658,\n    \"max\": 1.57136197358,\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"message\": \"Document unicode character\\n\",\n    \"time\": 1.53868055058\n  },\n  {\n    \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5360036911800001,\n    \"stddev\": 0.03909402000835751,\n    \"median\": 1.53868055058,\n    \"user\": 1.531859855,\n    \"system\": 0.05631322999999999,\n    \"min\": 1.47091760658,\n    \"max\": 1.57136197358,\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"message\": \"Document unicode character\\n\",\n    \"time\": 1.53826149358\n  },\n  {\n    \"command\": \"082d5c059c0a8de0f460b4232f9d509f71d2e6dd < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5360036911800001,\n    \"stddev\": 0.03909402000835751,\n    \"median\": 1.53868055058,\n    \"user\": 1.531859855,\n    \"system\": 0.05631322999999999,\n    \"min\": 1.47091760658,\n    \"max\": 1.57136197358,\n    \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n    \"message\": \"Document unicode character\\n\",\n    \"time\": 1.47091760658\n  },\n  {\n    \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55657878998,\n    \"stddev\": 0.028538310647969543,\n    \"median\": 1.5463382305800002,\n    \"user\": 1.5397538549999998,\n    \"system\": 0.06144543,\n    \"min\": 1.5254535665800002,\n    \"max\": 1.5905943255800001,\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"time\": 1.5905943255800001\n  },\n  {\n    \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55657878998,\n    \"stddev\": 0.028538310647969543,\n    \"median\": 1.5463382305800002,\n    \"user\": 1.5397538549999998,\n    \"system\": 0.06144543,\n    \"min\": 1.5254535665800002,\n    \"max\": 1.5905943255800001,\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"time\": 1.5254535665800002\n  },\n  {\n    \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55657878998,\n    \"stddev\": 0.028538310647969543,\n    \"median\": 1.5463382305800002,\n    \"user\": 1.5397538549999998,\n    \"system\": 0.06144543,\n    \"min\": 1.5254535665800002,\n    \"max\": 1.5905943255800001,\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"time\": 1.58261484358\n  },\n  {\n    \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55657878998,\n    \"stddev\": 0.028538310647969543,\n    \"median\": 1.5463382305800002,\n    \"user\": 1.5397538549999998,\n    \"system\": 0.06144543,\n    \"min\": 1.5254535665800002,\n    \"max\": 1.5905943255800001,\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"time\": 1.5378929835800002\n  },\n  {\n    \"command\": \"d87ec5eccfa6cb376ead0a2753a3130435efe934 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55657878998,\n    \"stddev\": 0.028538310647969543,\n    \"median\": 1.5463382305800002,\n    \"user\": 1.5397538549999998,\n    \"system\": 0.06144543,\n    \"min\": 1.5254535665800002,\n    \"max\": 1.5905943255800001,\n    \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n    \"message\": \"Use heavy box line for file section\\n\",\n    \"time\": 1.5463382305800002\n  },\n  {\n    \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6075921317800002,\n    \"stddev\": 0.02482752040049641,\n    \"median\": 1.6097004695800001,\n    \"user\": 1.592528055,\n    \"system\": 0.07872182999999999,\n    \"min\": 1.5735891275800002,\n    \"max\": 1.6353979315800002,\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"time\": 1.62581450958\n  },\n  {\n    \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6075921317800002,\n    \"stddev\": 0.02482752040049641,\n    \"median\": 1.6097004695800001,\n    \"user\": 1.592528055,\n    \"system\": 0.07872182999999999,\n    \"min\": 1.5735891275800002,\n    \"max\": 1.6353979315800002,\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"time\": 1.6353979315800002\n  },\n  {\n    \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6075921317800002,\n    \"stddev\": 0.02482752040049641,\n    \"median\": 1.6097004695800001,\n    \"user\": 1.592528055,\n    \"system\": 0.07872182999999999,\n    \"min\": 1.5735891275800002,\n    \"max\": 1.6353979315800002,\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"time\": 1.59345862058\n  },\n  {\n    \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6075921317800002,\n    \"stddev\": 0.02482752040049641,\n    \"median\": 1.6097004695800001,\n    \"user\": 1.592528055,\n    \"system\": 0.07872182999999999,\n    \"min\": 1.5735891275800002,\n    \"max\": 1.6353979315800002,\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"time\": 1.6097004695800001\n  },\n  {\n    \"command\": \"58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6075921317800002,\n    \"stddev\": 0.02482752040049641,\n    \"median\": 1.6097004695800001,\n    \"user\": 1.592528055,\n    \"system\": 0.07872182999999999,\n    \"min\": 1.5735891275800002,\n    \"max\": 1.6353979315800002,\n    \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n    \"message\": \"Refactor: box drawing module\\n\",\n    \"time\": 1.5735891275800002\n  },\n  {\n    \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6195005977799997,\n    \"stddev\": 0.052679956624063086,\n    \"median\": 1.59846446958,\n    \"user\": 1.6022754549999998,\n    \"system\": 0.08132202999999999,\n    \"min\": 1.5650411555800001,\n    \"max\": 1.6943565145800001,\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"time\": 1.6943565145800001\n  },\n  {\n    \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6195005977799997,\n    \"stddev\": 0.052679956624063086,\n    \"median\": 1.59846446958,\n    \"user\": 1.6022754549999998,\n    \"system\": 0.08132202999999999,\n    \"min\": 1.5650411555800001,\n    \"max\": 1.6943565145800001,\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"time\": 1.65213720758\n  },\n  {\n    \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6195005977799997,\n    \"stddev\": 0.052679956624063086,\n    \"median\": 1.59846446958,\n    \"user\": 1.6022754549999998,\n    \"system\": 0.08132202999999999,\n    \"min\": 1.5650411555800001,\n    \"max\": 1.6943565145800001,\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"time\": 1.59846446958\n  },\n  {\n    \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6195005977799997,\n    \"stddev\": 0.052679956624063086,\n    \"median\": 1.59846446958,\n    \"user\": 1.6022754549999998,\n    \"system\": 0.08132202999999999,\n    \"min\": 1.5650411555800001,\n    \"max\": 1.6943565145800001,\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"time\": 1.5875036415800001\n  },\n  {\n    \"command\": \"2b8ea87fbee0be021e76efb773bce311ce5e2e20 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6195005977799997,\n    \"stddev\": 0.052679956624063086,\n    \"median\": 1.59846446958,\n    \"user\": 1.6022754549999998,\n    \"system\": 0.08132202999999999,\n    \"min\": 1.5650411555800001,\n    \"max\": 1.6943565145800001,\n    \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n    \"message\": \"Support heavy line weight boxes\\n\",\n    \"time\": 1.5650411555800001\n  },\n  {\n    \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5898977223800002,\n    \"stddev\": 0.03252346740291128,\n    \"median\": 1.5808211255800002,\n    \"user\": 1.5786608549999999,\n    \"system\": 0.08109902999999999,\n    \"min\": 1.55479807758,\n    \"max\": 1.6257252015800001,\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"time\": 1.6223411225800002\n  },\n  {\n    \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5898977223800002,\n    \"stddev\": 0.03252346740291128,\n    \"median\": 1.5808211255800002,\n    \"user\": 1.5786608549999999,\n    \"system\": 0.08109902999999999,\n    \"min\": 1.55479807758,\n    \"max\": 1.6257252015800001,\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"time\": 1.5808211255800002\n  },\n  {\n    \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5898977223800002,\n    \"stddev\": 0.03252346740291128,\n    \"median\": 1.5808211255800002,\n    \"user\": 1.5786608549999999,\n    \"system\": 0.08109902999999999,\n    \"min\": 1.55479807758,\n    \"max\": 1.6257252015800001,\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"time\": 1.56580308458\n  },\n  {\n    \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5898977223800002,\n    \"stddev\": 0.03252346740291128,\n    \"median\": 1.5808211255800002,\n    \"user\": 1.5786608549999999,\n    \"system\": 0.08109902999999999,\n    \"min\": 1.55479807758,\n    \"max\": 1.6257252015800001,\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"time\": 1.6257252015800001\n  },\n  {\n    \"command\": \"130af6c7253b011ccc12b363b1fde8a9cdcfc780 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5898977223800002,\n    \"stddev\": 0.03252346740291128,\n    \"median\": 1.5808211255800002,\n    \"user\": 1.5786608549999999,\n    \"system\": 0.08109902999999999,\n    \"min\": 1.55479807758,\n    \"max\": 1.6257252015800001,\n    \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n    \"message\": \"Decorate commit line with a box\\n\",\n    \"time\": 1.55479807758\n  },\n  {\n    \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.7000951357800003,\n    \"stddev\": 0.14651052386237404,\n    \"median\": 1.66012202158,\n    \"user\": 1.6589998549999998,\n    \"system\": 0.09158563,\n    \"min\": 1.5833550085800001,\n    \"max\": 1.9552757255800002,\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"message\": \"Refactor: cli module\\n\",\n    \"time\": 1.66012202158\n  },\n  {\n    \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.7000951357800003,\n    \"stddev\": 0.14651052386237404,\n    \"median\": 1.66012202158,\n    \"user\": 1.6589998549999998,\n    \"system\": 0.09158563,\n    \"min\": 1.5833550085800001,\n    \"max\": 1.9552757255800002,\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"message\": \"Refactor: cli module\\n\",\n    \"time\": 1.63255593658\n  },\n  {\n    \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.7000951357800003,\n    \"stddev\": 0.14651052386237404,\n    \"median\": 1.66012202158,\n    \"user\": 1.6589998549999998,\n    \"system\": 0.09158563,\n    \"min\": 1.5833550085800001,\n    \"max\": 1.9552757255800002,\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"message\": \"Refactor: cli module\\n\",\n    \"time\": 1.9552757255800002\n  },\n  {\n    \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.7000951357800003,\n    \"stddev\": 0.14651052386237404,\n    \"median\": 1.66012202158,\n    \"user\": 1.6589998549999998,\n    \"system\": 0.09158563,\n    \"min\": 1.5833550085800001,\n    \"max\": 1.9552757255800002,\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"message\": \"Refactor: cli module\\n\",\n    \"time\": 1.66916698658\n  },\n  {\n    \"command\": \"2c1dd918a69da78094787795c149e71c66a48872 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.7000951357800003,\n    \"stddev\": 0.14651052386237404,\n    \"median\": 1.66012202158,\n    \"user\": 1.6589998549999998,\n    \"system\": 0.09158563,\n    \"min\": 1.5833550085800001,\n    \"max\": 1.9552757255800002,\n    \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n    \"message\": \"Refactor: cli module\\n\",\n    \"time\": 1.5833550085800001\n  },\n  {\n    \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5900330677799999,\n    \"stddev\": 0.018076386072935272,\n    \"median\": 1.58549991558,\n    \"user\": 1.578905855,\n    \"system\": 0.08079863,\n    \"min\": 1.57619298558,\n    \"max\": 1.6212702645800001,\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"time\": 1.58549991558\n  },\n  {\n    \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5900330677799999,\n    \"stddev\": 0.018076386072935272,\n    \"median\": 1.58549991558,\n    \"user\": 1.578905855,\n    \"system\": 0.08079863,\n    \"min\": 1.57619298558,\n    \"max\": 1.6212702645800001,\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"time\": 1.58786854258\n  },\n  {\n    \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5900330677799999,\n    \"stddev\": 0.018076386072935272,\n    \"median\": 1.58549991558,\n    \"user\": 1.578905855,\n    \"system\": 0.08079863,\n    \"min\": 1.57619298558,\n    \"max\": 1.6212702645800001,\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"time\": 1.57933363058\n  },\n  {\n    \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5900330677799999,\n    \"stddev\": 0.018076386072935272,\n    \"median\": 1.58549991558,\n    \"user\": 1.578905855,\n    \"system\": 0.08079863,\n    \"min\": 1.57619298558,\n    \"max\": 1.6212702645800001,\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"time\": 1.57619298558\n  },\n  {\n    \"command\": \"c5276b455250404e19e6ae708a8306b214438510 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5900330677799999,\n    \"stddev\": 0.018076386072935272,\n    \"median\": 1.58549991558,\n    \"user\": 1.578905855,\n    \"system\": 0.08079863,\n    \"min\": 1.57619298558,\n    \"max\": 1.6212702645800001,\n    \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n    \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n    \"time\": 1.6212702645800001\n  },\n  {\n    \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55420544318,\n    \"stddev\": 0.016226342940447634,\n    \"median\": 1.55923732558,\n    \"user\": 1.5473552549999998,\n    \"system\": 0.07584182999999999,\n    \"min\": 1.5256443475800001,\n    \"max\": 1.56593213958,\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"time\": 1.56593213958\n  },\n  {\n    \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55420544318,\n    \"stddev\": 0.016226342940447634,\n    \"median\": 1.55923732558,\n    \"user\": 1.5473552549999998,\n    \"system\": 0.07584182999999999,\n    \"min\": 1.5256443475800001,\n    \"max\": 1.56593213958,\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"time\": 1.5256443475800001\n  },\n  {\n    \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55420544318,\n    \"stddev\": 0.016226342940447634,\n    \"median\": 1.55923732558,\n    \"user\": 1.5473552549999998,\n    \"system\": 0.07584182999999999,\n    \"min\": 1.5256443475800001,\n    \"max\": 1.56593213958,\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"time\": 1.56168081858\n  },\n  {\n    \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55420544318,\n    \"stddev\": 0.016226342940447634,\n    \"median\": 1.55923732558,\n    \"user\": 1.5473552549999998,\n    \"system\": 0.07584182999999999,\n    \"min\": 1.5256443475800001,\n    \"max\": 1.56593213958,\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"time\": 1.5585325845800002\n  },\n  {\n    \"command\": \"1561b946edfb4078cedbdd45628f92a39dce8486 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.55420544318,\n    \"stddev\": 0.016226342940447634,\n    \"median\": 1.55923732558,\n    \"user\": 1.5473552549999998,\n    \"system\": 0.07584182999999999,\n    \"min\": 1.5256443475800001,\n    \"max\": 1.56593213958,\n    \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n    \"message\": \"Make raw command line args available on config struct\\n\",\n    \"time\": 1.55923732558\n  },\n  {\n    \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.54248882658,\n    \"stddev\": 0.014052664281207917,\n    \"median\": 1.5388961305800002,\n    \"user\": 1.535532655,\n    \"system\": 0.07499582999999999,\n    \"min\": 1.52580921958,\n    \"max\": 1.5588620435800002,\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"time\": 1.52580921958\n  },\n  {\n    \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.54248882658,\n    \"stddev\": 0.014052664281207917,\n    \"median\": 1.5388961305800002,\n    \"user\": 1.535532655,\n    \"system\": 0.07499582999999999,\n    \"min\": 1.52580921958,\n    \"max\": 1.5588620435800002,\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"time\": 1.5388961305800002\n  },\n  {\n    \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.54248882658,\n    \"stddev\": 0.014052664281207917,\n    \"median\": 1.5388961305800002,\n    \"user\": 1.535532655,\n    \"system\": 0.07499582999999999,\n    \"min\": 1.52580921958,\n    \"max\": 1.5588620435800002,\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"time\": 1.5588620435800002\n  },\n  {\n    \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.54248882658,\n    \"stddev\": 0.014052664281207917,\n    \"median\": 1.5388961305800002,\n    \"user\": 1.535532655,\n    \"system\": 0.07499582999999999,\n    \"min\": 1.52580921958,\n    \"max\": 1.5588620435800002,\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"time\": 1.5338764315800002\n  },\n  {\n    \"command\": \"971601cddb26eb25d423162691915110aef9c61c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.54248882658,\n    \"stddev\": 0.014052664281207917,\n    \"median\": 1.5388961305800002,\n    \"user\": 1.535532655,\n    \"system\": 0.07499582999999999,\n    \"min\": 1.52580921958,\n    \"max\": 1.5588620435800002,\n    \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n    \"message\": \"Refactor: Use field init syntax\\n\",\n    \"time\": 1.55500030758\n  },\n  {\n    \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5480447537800002,\n    \"stddev\": 0.02019516903587461,\n    \"median\": 1.53953411658,\n    \"user\": 1.538138055,\n    \"system\": 0.06567143,\n    \"min\": 1.53198744158,\n    \"max\": 1.5817648875800001,\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"message\": \"Style section arguments\\n\",\n    \"time\": 1.5817648875800001\n  },\n  {\n    \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5480447537800002,\n    \"stddev\": 0.02019516903587461,\n    \"median\": 1.53953411658,\n    \"user\": 1.538138055,\n    \"system\": 0.06567143,\n    \"min\": 1.53198744158,\n    \"max\": 1.5817648875800001,\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"message\": \"Style section arguments\\n\",\n    \"time\": 1.5356525715800002\n  },\n  {\n    \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5480447537800002,\n    \"stddev\": 0.02019516903587461,\n    \"median\": 1.53953411658,\n    \"user\": 1.538138055,\n    \"system\": 0.06567143,\n    \"min\": 1.53198744158,\n    \"max\": 1.5817648875800001,\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"message\": \"Style section arguments\\n\",\n    \"time\": 1.53953411658\n  },\n  {\n    \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5480447537800002,\n    \"stddev\": 0.02019516903587461,\n    \"median\": 1.53953411658,\n    \"user\": 1.538138055,\n    \"system\": 0.06567143,\n    \"min\": 1.53198744158,\n    \"max\": 1.5817648875800001,\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"message\": \"Style section arguments\\n\",\n    \"time\": 1.53198744158\n  },\n  {\n    \"command\": \"07589712d4d5399f1fdcca4de4a762999e2802ca < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5480447537800002,\n    \"stddev\": 0.02019516903587461,\n    \"median\": 1.53953411658,\n    \"user\": 1.538138055,\n    \"system\": 0.06567143,\n    \"min\": 1.53198744158,\n    \"max\": 1.5817648875800001,\n    \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n    \"message\": \"Style section arguments\\n\",\n    \"time\": 1.5512847515800001\n  },\n  {\n    \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6030607979800002,\n    \"stddev\": 0.06686738804669205,\n    \"median\": 1.6483188185800002,\n    \"user\": 1.5894354549999998,\n    \"system\": 0.07092882999999998,\n    \"min\": 1.51736236858,\n    \"max\": 1.6560466015800002,\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.54384335458\n  },\n  {\n    \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6030607979800002,\n    \"stddev\": 0.06686738804669205,\n    \"median\": 1.6483188185800002,\n    \"user\": 1.5894354549999998,\n    \"system\": 0.07092882999999998,\n    \"min\": 1.51736236858,\n    \"max\": 1.6560466015800002,\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.6483188185800002\n  },\n  {\n    \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6030607979800002,\n    \"stddev\": 0.06686738804669205,\n    \"median\": 1.6483188185800002,\n    \"user\": 1.5894354549999998,\n    \"system\": 0.07092882999999998,\n    \"min\": 1.51736236858,\n    \"max\": 1.6560466015800002,\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.6560466015800002\n  },\n  {\n    \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6030607979800002,\n    \"stddev\": 0.06686738804669205,\n    \"median\": 1.6483188185800002,\n    \"user\": 1.5894354549999998,\n    \"system\": 0.07092882999999998,\n    \"min\": 1.51736236858,\n    \"max\": 1.6560466015800002,\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.64973284658\n  },\n  {\n    \"command\": \"6f697782688de6384cc2a4492afc44b7086b739a < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.6030607979800002,\n    \"stddev\": 0.06686738804669205,\n    \"median\": 1.6483188185800002,\n    \"user\": 1.5894354549999998,\n    \"system\": 0.07092882999999998,\n    \"min\": 1.51736236858,\n    \"max\": 1.6560466015800002,\n    \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n    \"message\": \"Rearrange\\n\",\n    \"time\": 1.51736236858\n  },\n  {\n    \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.59003066518,\n    \"stddev\": 0.09593648736240547,\n    \"median\": 1.53385256558,\n    \"user\": 1.574337655,\n    \"system\": 0.07155442999999999,\n    \"min\": 1.52742928058,\n    \"max\": 1.75184737658,\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.53385256558\n  },\n  {\n    \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.59003066518,\n    \"stddev\": 0.09593648736240547,\n    \"median\": 1.53385256558,\n    \"user\": 1.574337655,\n    \"system\": 0.07155442999999999,\n    \"min\": 1.52742928058,\n    \"max\": 1.75184737658,\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.75184737658\n  },\n  {\n    \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.59003066518,\n    \"stddev\": 0.09593648736240547,\n    \"median\": 1.53385256558,\n    \"user\": 1.574337655,\n    \"system\": 0.07155442999999999,\n    \"min\": 1.52742928058,\n    \"max\": 1.75184737658,\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.60477206158\n  },\n  {\n    \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.59003066518,\n    \"stddev\": 0.09593648736240547,\n    \"median\": 1.53385256558,\n    \"user\": 1.574337655,\n    \"system\": 0.07155442999999999,\n    \"min\": 1.52742928058,\n    \"max\": 1.75184737658,\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.53225204158\n  },\n  {\n    \"command\": \"a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.59003066518,\n    \"stddev\": 0.09593648736240547,\n    \"median\": 1.53385256558,\n    \"user\": 1.574337655,\n    \"system\": 0.07155442999999999,\n    \"min\": 1.52742928058,\n    \"max\": 1.75184737658,\n    \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.52742928058\n  },\n  {\n    \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.64192069358,\n    \"stddev\": 0.1299287193260086,\n    \"median\": 1.59351967858,\n    \"user\": 1.621307655,\n    \"system\": 0.07358223,\n    \"min\": 1.53542229558,\n    \"max\": 1.84475347258,\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"message\": \"Refactor: draw module\\n\",\n    \"time\": 1.59351967858\n  },\n  {\n    \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.64192069358,\n    \"stddev\": 0.1299287193260086,\n    \"median\": 1.59351967858,\n    \"user\": 1.621307655,\n    \"system\": 0.07358223,\n    \"min\": 1.53542229558,\n    \"max\": 1.84475347258,\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"message\": \"Refactor: draw module\\n\",\n    \"time\": 1.84475347258\n  },\n  {\n    \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.64192069358,\n    \"stddev\": 0.1299287193260086,\n    \"median\": 1.59351967858,\n    \"user\": 1.621307655,\n    \"system\": 0.07358223,\n    \"min\": 1.53542229558,\n    \"max\": 1.84475347258,\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"message\": \"Refactor: draw module\\n\",\n    \"time\": 1.69395197558\n  },\n  {\n    \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.64192069358,\n    \"stddev\": 0.1299287193260086,\n    \"median\": 1.59351967858,\n    \"user\": 1.621307655,\n    \"system\": 0.07358223,\n    \"min\": 1.53542229558,\n    \"max\": 1.84475347258,\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"message\": \"Refactor: draw module\\n\",\n    \"time\": 1.53542229558\n  },\n  {\n    \"command\": \"118c617a13bbea60a098b0d8e894e4a101067483 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.64192069358,\n    \"stddev\": 0.1299287193260086,\n    \"median\": 1.59351967858,\n    \"user\": 1.621307655,\n    \"system\": 0.07358223,\n    \"min\": 1.53542229558,\n    \"max\": 1.84475347258,\n    \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n    \"message\": \"Refactor: draw module\\n\",\n    \"time\": 1.54195604558\n  },\n  {\n    \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5583028099800003,\n    \"stddev\": 0.023870707641931665,\n    \"median\": 1.55928107258,\n    \"user\": 1.5548196549999997,\n    \"system\": 0.06405022999999999,\n    \"min\": 1.52640488258,\n    \"max\": 1.5927494985800001,\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.5927494985800001\n  },\n  {\n    \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5583028099800003,\n    \"stddev\": 0.023870707641931665,\n    \"median\": 1.55928107258,\n    \"user\": 1.5548196549999997,\n    \"system\": 0.06405022999999999,\n    \"min\": 1.52640488258,\n    \"max\": 1.5927494985800001,\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.5623708355800001\n  },\n  {\n    \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5583028099800003,\n    \"stddev\": 0.023870707641931665,\n    \"median\": 1.55928107258,\n    \"user\": 1.5548196549999997,\n    \"system\": 0.06405022999999999,\n    \"min\": 1.52640488258,\n    \"max\": 1.5927494985800001,\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.52640488258\n  },\n  {\n    \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5583028099800003,\n    \"stddev\": 0.023870707641931665,\n    \"median\": 1.55928107258,\n    \"user\": 1.5548196549999997,\n    \"system\": 0.06405022999999999,\n    \"min\": 1.52640488258,\n    \"max\": 1.5927494985800001,\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.5507077605800001\n  },\n  {\n    \"command\": \"4052b9c47a2f6f45385c71f794494b9b160b8ed9 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5583028099800003,\n    \"stddev\": 0.023870707641931665,\n    \"median\": 1.55928107258,\n    \"user\": 1.5548196549999997,\n    \"system\": 0.06405022999999999,\n    \"min\": 1.52640488258,\n    \"max\": 1.5927494985800001,\n    \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n    \"message\": \"Change name of state in state machine\\n\",\n    \"time\": 1.55928107258\n  },\n  {\n    \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53586379538,\n    \"stddev\": 0.023677366144560192,\n    \"median\": 1.5337978325800001,\n    \"user\": 1.535215855,\n    \"system\": 0.06050082999999999,\n    \"min\": 1.50398111058,\n    \"max\": 1.56071146058,\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"time\": 1.55719040758\n  },\n  {\n    \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53586379538,\n    \"stddev\": 0.023677366144560192,\n    \"median\": 1.5337978325800001,\n    \"user\": 1.535215855,\n    \"system\": 0.06050082999999999,\n    \"min\": 1.50398111058,\n    \"max\": 1.56071146058,\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"time\": 1.56071146058\n  },\n  {\n    \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53586379538,\n    \"stddev\": 0.023677366144560192,\n    \"median\": 1.5337978325800001,\n    \"user\": 1.535215855,\n    \"system\": 0.06050082999999999,\n    \"min\": 1.50398111058,\n    \"max\": 1.56071146058,\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"time\": 1.5337978325800001\n  },\n  {\n    \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53586379538,\n    \"stddev\": 0.023677366144560192,\n    \"median\": 1.5337978325800001,\n    \"user\": 1.535215855,\n    \"system\": 0.06050082999999999,\n    \"min\": 1.50398111058,\n    \"max\": 1.56071146058,\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"time\": 1.50398111058\n  },\n  {\n    \"command\": \"04afcebb1d236ee8178ee0a43fb69cb438cb9337 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.53586379538,\n    \"stddev\": 0.023677366144560192,\n    \"median\": 1.5337978325800001,\n    \"user\": 1.535215855,\n    \"system\": 0.06050082999999999,\n    \"min\": 1.50398111058,\n    \"max\": 1.56071146058,\n    \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n    \"message\": \"Refactor: state machine loop\\n\",\n    \"time\": 1.5236381655800002\n  },\n  {\n    \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51947943598,\n    \"stddev\": 0.015312028490062775,\n    \"median\": 1.51664484658,\n    \"user\": 1.519510855,\n    \"system\": 0.058511629999999995,\n    \"min\": 1.50248079858,\n    \"max\": 1.54374310658,\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"message\": \"Refactor: split file\\n\",\n    \"time\": 1.50248079858\n  },\n  {\n    \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51947943598,\n    \"stddev\": 0.015312028490062775,\n    \"median\": 1.51664484658,\n    \"user\": 1.519510855,\n    \"system\": 0.058511629999999995,\n    \"min\": 1.50248079858,\n    \"max\": 1.54374310658,\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"message\": \"Refactor: split file\\n\",\n    \"time\": 1.51664484658\n  },\n  {\n    \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51947943598,\n    \"stddev\": 0.015312028490062775,\n    \"median\": 1.51664484658,\n    \"user\": 1.519510855,\n    \"system\": 0.058511629999999995,\n    \"min\": 1.50248079858,\n    \"max\": 1.54374310658,\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"message\": \"Refactor: split file\\n\",\n    \"time\": 1.51266507458\n  },\n  {\n    \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51947943598,\n    \"stddev\": 0.015312028490062775,\n    \"median\": 1.51664484658,\n    \"user\": 1.519510855,\n    \"system\": 0.058511629999999995,\n    \"min\": 1.50248079858,\n    \"max\": 1.54374310658,\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"message\": \"Refactor: split file\\n\",\n    \"time\": 1.52186335358\n  },\n  {\n    \"command\": \"8857ced8f03506126607bfb74534c5ff1fbacd23 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.51947943598,\n    \"stddev\": 0.015312028490062775,\n    \"median\": 1.51664484658,\n    \"user\": 1.519510855,\n    \"system\": 0.058511629999999995,\n    \"min\": 1.50248079858,\n    \"max\": 1.54374310658,\n    \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n    \"message\": \"Refactor: split file\\n\",\n    \"time\": 1.54374310658\n  },\n  {\n    \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5315615833800003,\n    \"stddev\": 0.022168271457832497,\n    \"median\": 1.5277584675800002,\n    \"user\": 1.5298796549999998,\n    \"system\": 0.06154763,\n    \"min\": 1.5126789795800002,\n    \"max\": 1.5687485325800001,\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"time\": 1.5277584675800002\n  },\n  {\n    \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5315615833800003,\n    \"stddev\": 0.022168271457832497,\n    \"median\": 1.5277584675800002,\n    \"user\": 1.5298796549999998,\n    \"system\": 0.06154763,\n    \"min\": 1.5126789795800002,\n    \"max\": 1.5687485325800001,\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"time\": 1.53161509758\n  },\n  {\n    \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5315615833800003,\n    \"stddev\": 0.022168271457832497,\n    \"median\": 1.5277584675800002,\n    \"user\": 1.5298796549999998,\n    \"system\": 0.06154763,\n    \"min\": 1.5126789795800002,\n    \"max\": 1.5687485325800001,\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"time\": 1.5687485325800001\n  },\n  {\n    \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5315615833800003,\n    \"stddev\": 0.022168271457832497,\n    \"median\": 1.5277584675800002,\n    \"user\": 1.5298796549999998,\n    \"system\": 0.06154763,\n    \"min\": 1.5126789795800002,\n    \"max\": 1.5687485325800001,\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"time\": 1.5126789795800002\n  },\n  {\n    \"command\": \"44bb12703ff60735a5547ff1ab200da868b36806 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.5315615833800003,\n    \"stddev\": 0.022168271457832497,\n    \"median\": 1.5277584675800002,\n    \"user\": 1.5298796549999998,\n    \"system\": 0.06154763,\n    \"min\": 1.5126789795800002,\n    \"max\": 1.5687485325800001,\n    \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n    \"message\": \"Refactor: create config and style modules\\n\",\n    \"time\": 1.51700683958\n  },\n  {\n    \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32326846678,\n    \"stddev\": 0.033714478343168985,\n    \"median\": 1.31291020758,\n    \"user\": 1.319342655,\n    \"system\": 0.05853243,\n    \"min\": 1.2881143505800001,\n    \"max\": 1.3615462605800002,\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"time\": 1.2881143505800001\n  },\n  {\n    \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32326846678,\n    \"stddev\": 0.033714478343168985,\n    \"median\": 1.31291020758,\n    \"user\": 1.319342655,\n    \"system\": 0.05853243,\n    \"min\": 1.2881143505800001,\n    \"max\": 1.3615462605800002,\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"time\": 1.3615462605800002\n  },\n  {\n    \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32326846678,\n    \"stddev\": 0.033714478343168985,\n    \"median\": 1.31291020758,\n    \"user\": 1.319342655,\n    \"system\": 0.05853243,\n    \"min\": 1.2881143505800001,\n    \"max\": 1.3615462605800002,\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"time\": 1.35614494158\n  },\n  {\n    \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32326846678,\n    \"stddev\": 0.033714478343168985,\n    \"median\": 1.31291020758,\n    \"user\": 1.319342655,\n    \"system\": 0.05853243,\n    \"min\": 1.2881143505800001,\n    \"max\": 1.3615462605800002,\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"time\": 1.31291020758\n  },\n  {\n    \"command\": \"3c621027f256ca9f7d02990648694295683ecb53 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.32326846678,\n    \"stddev\": 0.033714478343168985,\n    \"median\": 1.31291020758,\n    \"user\": 1.319342655,\n    \"system\": 0.05853243,\n    \"min\": 1.2881143505800001,\n    \"max\": 1.3615462605800002,\n    \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n    \"message\": \"Reuse highlighter within hunks\\n\",\n    \"time\": 1.29762657358\n  },\n  {\n    \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04893614018,\n    \"stddev\": 0.01770884374312948,\n    \"median\": 1.04957539358,\n    \"user\": 1.039594455,\n    \"system\": 0.06022463,\n    \"min\": 1.03268755958,\n    \"max\": 1.07645372158,\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"time\": 1.07645372158\n  },\n  {\n    \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04893614018,\n    \"stddev\": 0.01770884374312948,\n    \"median\": 1.04957539358,\n    \"user\": 1.039594455,\n    \"system\": 0.06022463,\n    \"min\": 1.03268755958,\n    \"max\": 1.07645372158,\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"time\": 1.03268755958\n  },\n  {\n    \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04893614018,\n    \"stddev\": 0.01770884374312948,\n    \"median\": 1.04957539358,\n    \"user\": 1.039594455,\n    \"system\": 0.06022463,\n    \"min\": 1.03268755958,\n    \"max\": 1.07645372158,\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"time\": 1.03398570758\n  },\n  {\n    \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04893614018,\n    \"stddev\": 0.01770884374312948,\n    \"median\": 1.04957539358,\n    \"user\": 1.039594455,\n    \"system\": 0.06022463,\n    \"min\": 1.03268755958,\n    \"max\": 1.07645372158,\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"time\": 1.05197831858\n  },\n  {\n    \"command\": \"bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04893614018,\n    \"stddev\": 0.01770884374312948,\n    \"median\": 1.04957539358,\n    \"user\": 1.039594455,\n    \"system\": 0.06022463,\n    \"min\": 1.03268755958,\n    \"max\": 1.07645372158,\n    \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n    \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n    \"time\": 1.04957539358\n  },\n  {\n    \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0475512563799998,\n    \"stddev\": 0.020657903601981692,\n    \"median\": 1.03412124558,\n    \"user\": 1.043459255,\n    \"system\": 0.060692029999999994,\n    \"min\": 1.02999665158,\n    \"max\": 1.07180686358,\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"message\": \"CI: Travis configuration\\n\",\n    \"time\": 1.02999665158\n  },\n  {\n    \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0475512563799998,\n    \"stddev\": 0.020657903601981692,\n    \"median\": 1.03412124558,\n    \"user\": 1.043459255,\n    \"system\": 0.060692029999999994,\n    \"min\": 1.02999665158,\n    \"max\": 1.07180686358,\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"message\": \"CI: Travis configuration\\n\",\n    \"time\": 1.03348744558\n  },\n  {\n    \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0475512563799998,\n    \"stddev\": 0.020657903601981692,\n    \"median\": 1.03412124558,\n    \"user\": 1.043459255,\n    \"system\": 0.060692029999999994,\n    \"min\": 1.02999665158,\n    \"max\": 1.07180686358,\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"message\": \"CI: Travis configuration\\n\",\n    \"time\": 1.03412124558\n  },\n  {\n    \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0475512563799998,\n    \"stddev\": 0.020657903601981692,\n    \"median\": 1.03412124558,\n    \"user\": 1.043459255,\n    \"system\": 0.060692029999999994,\n    \"min\": 1.02999665158,\n    \"max\": 1.07180686358,\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"message\": \"CI: Travis configuration\\n\",\n    \"time\": 1.06834407558\n  },\n  {\n    \"command\": \"9fbb6d63f25831738e467657d46532e0771cfe60 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0475512563799998,\n    \"stddev\": 0.020657903601981692,\n    \"median\": 1.03412124558,\n    \"user\": 1.043459255,\n    \"system\": 0.060692029999999994,\n    \"min\": 1.02999665158,\n    \"max\": 1.07180686358,\n    \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n    \"message\": \"CI: Travis configuration\\n\",\n    \"time\": 1.07180686358\n  },\n  {\n    \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0674300559800003,\n    \"stddev\": 0.015165956188198526,\n    \"median\": 1.06811843458,\n    \"user\": 1.063904655,\n    \"system\": 0.06054963,\n    \"min\": 1.04880918258,\n    \"max\": 1.0838612835800001,\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"time\": 1.0804628305800001\n  },\n  {\n    \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0674300559800003,\n    \"stddev\": 0.015165956188198526,\n    \"median\": 1.06811843458,\n    \"user\": 1.063904655,\n    \"system\": 0.06054963,\n    \"min\": 1.04880918258,\n    \"max\": 1.0838612835800001,\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"time\": 1.0838612835800001\n  },\n  {\n    \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0674300559800003,\n    \"stddev\": 0.015165956188198526,\n    \"median\": 1.06811843458,\n    \"user\": 1.063904655,\n    \"system\": 0.06054963,\n    \"min\": 1.04880918258,\n    \"max\": 1.0838612835800001,\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"time\": 1.04880918258\n  },\n  {\n    \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0674300559800003,\n    \"stddev\": 0.015165956188198526,\n    \"median\": 1.06811843458,\n    \"user\": 1.063904655,\n    \"system\": 0.06054963,\n    \"min\": 1.04880918258,\n    \"max\": 1.0838612835800001,\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"time\": 1.06811843458\n  },\n  {\n    \"command\": \"252df1c1028c98796ebd76ddc1645c10a186f36e < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0674300559800003,\n    \"stddev\": 0.015165956188198526,\n    \"median\": 1.06811843458,\n    \"user\": 1.063904655,\n    \"system\": 0.06054963,\n    \"min\": 1.04880918258,\n    \"max\": 1.0838612835800001,\n    \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n    \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n    \"time\": 1.05589854858\n  },\n  {\n    \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0701791571800001,\n    \"stddev\": 0.03158006857854382,\n    \"median\": 1.06500526858,\n    \"user\": 1.0593770550000001,\n    \"system\": 0.059867229999999994,\n    \"min\": 1.04185725758,\n    \"max\": 1.11761889458,\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"time\": 1.08336354958\n  },\n  {\n    \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0701791571800001,\n    \"stddev\": 0.03158006857854382,\n    \"median\": 1.06500526858,\n    \"user\": 1.0593770550000001,\n    \"system\": 0.059867229999999994,\n    \"min\": 1.04185725758,\n    \"max\": 1.11761889458,\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"time\": 1.04185725758\n  },\n  {\n    \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0701791571800001,\n    \"stddev\": 0.03158006857854382,\n    \"median\": 1.06500526858,\n    \"user\": 1.0593770550000001,\n    \"system\": 0.059867229999999994,\n    \"min\": 1.04185725758,\n    \"max\": 1.11761889458,\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"time\": 1.06500526858\n  },\n  {\n    \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0701791571800001,\n    \"stddev\": 0.03158006857854382,\n    \"median\": 1.06500526858,\n    \"user\": 1.0593770550000001,\n    \"system\": 0.059867229999999994,\n    \"min\": 1.04185725758,\n    \"max\": 1.11761889458,\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"time\": 1.04305081558\n  },\n  {\n    \"command\": \"a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0701791571800001,\n    \"stddev\": 0.03158006857854382,\n    \"median\": 1.06500526858,\n    \"user\": 1.0593770550000001,\n    \"system\": 0.059867229999999994,\n    \"min\": 1.04185725758,\n    \"max\": 1.11761889458,\n    \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n    \"message\": \"Parse file metadata section correctly\\n\",\n    \"time\": 1.11761889458\n  },\n  {\n    \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.08202750538,\n    \"stddev\": 0.012037921201915524,\n    \"median\": 1.08622350858,\n    \"user\": 1.0743874549999997,\n    \"system\": 0.06209663,\n    \"min\": 1.06799908758,\n    \"max\": 1.09735358258,\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"time\": 1.08687226258\n  },\n  {\n    \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.08202750538,\n    \"stddev\": 0.012037921201915524,\n    \"median\": 1.08622350858,\n    \"user\": 1.0743874549999997,\n    \"system\": 0.06209663,\n    \"min\": 1.06799908758,\n    \"max\": 1.09735358258,\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"time\": 1.09735358258\n  },\n  {\n    \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.08202750538,\n    \"stddev\": 0.012037921201915524,\n    \"median\": 1.08622350858,\n    \"user\": 1.0743874549999997,\n    \"system\": 0.06209663,\n    \"min\": 1.06799908758,\n    \"max\": 1.09735358258,\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"time\": 1.07168908558\n  },\n  {\n    \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.08202750538,\n    \"stddev\": 0.012037921201915524,\n    \"median\": 1.08622350858,\n    \"user\": 1.0743874549999997,\n    \"system\": 0.06209663,\n    \"min\": 1.06799908758,\n    \"max\": 1.09735358258,\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"time\": 1.08622350858\n  },\n  {\n    \"command\": \"b46c610f875538b64be275694542f67110f1c287 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.08202750538,\n    \"stddev\": 0.012037921201915524,\n    \"median\": 1.08622350858,\n    \"user\": 1.0743874549999997,\n    \"system\": 0.06209663,\n    \"min\": 1.06799908758,\n    \"max\": 1.09735358258,\n    \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n    \"message\": \"Copy travis CI config from bat\\n\",\n    \"time\": 1.06799908758\n  },\n  {\n    \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0439616607800002,\n    \"stddev\": 0.007321218683017747,\n    \"median\": 1.04197833858,\n    \"user\": 1.043749455,\n    \"system\": 0.05679423,\n    \"min\": 1.03570287058,\n    \"max\": 1.05240699058,\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"time\": 1.03570287058\n  },\n  {\n    \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0439616607800002,\n    \"stddev\": 0.007321218683017747,\n    \"median\": 1.04197833858,\n    \"user\": 1.043749455,\n    \"system\": 0.05679423,\n    \"min\": 1.03570287058,\n    \"max\": 1.05240699058,\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"time\": 1.05240699058\n  },\n  {\n    \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0439616607800002,\n    \"stddev\": 0.007321218683017747,\n    \"median\": 1.04197833858,\n    \"user\": 1.043749455,\n    \"system\": 0.05679423,\n    \"min\": 1.03570287058,\n    \"max\": 1.05240699058,\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"time\": 1.04197833858\n  },\n  {\n    \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0439616607800002,\n    \"stddev\": 0.007321218683017747,\n    \"median\": 1.04197833858,\n    \"user\": 1.043749455,\n    \"system\": 0.05679423,\n    \"min\": 1.03570287058,\n    \"max\": 1.05240699058,\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"time\": 1.05074741058\n  },\n  {\n    \"command\": \"a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0439616607800002,\n    \"stddev\": 0.007321218683017747,\n    \"median\": 1.04197833858,\n    \"user\": 1.043749455,\n    \"system\": 0.05679423,\n    \"min\": 1.03570287058,\n    \"max\": 1.05240699058,\n    \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n    \"message\": \"Modify bat travis build config for delta\\n\",\n    \"time\": 1.03897269358\n  },\n  {\n    \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05878782598,\n    \"stddev\": 0.005686070135606725,\n    \"median\": 1.05987401458,\n    \"user\": 1.0516796549999998,\n    \"system\": 0.06003463,\n    \"min\": 1.0525309925800002,\n    \"max\": 1.0653659445800001,\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"time\": 1.05335462458\n  },\n  {\n    \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05878782598,\n    \"stddev\": 0.005686070135606725,\n    \"median\": 1.05987401458,\n    \"user\": 1.0516796549999998,\n    \"system\": 0.06003463,\n    \"min\": 1.0525309925800002,\n    \"max\": 1.0653659445800001,\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"time\": 1.05987401458\n  },\n  {\n    \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05878782598,\n    \"stddev\": 0.005686070135606725,\n    \"median\": 1.05987401458,\n    \"user\": 1.0516796549999998,\n    \"system\": 0.06003463,\n    \"min\": 1.0525309925800002,\n    \"max\": 1.0653659445800001,\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"time\": 1.06281355358\n  },\n  {\n    \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05878782598,\n    \"stddev\": 0.005686070135606725,\n    \"median\": 1.05987401458,\n    \"user\": 1.0516796549999998,\n    \"system\": 0.06003463,\n    \"min\": 1.0525309925800002,\n    \"max\": 1.0653659445800001,\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"time\": 1.0653659445800001\n  },\n  {\n    \"command\": \"1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05878782598,\n    \"stddev\": 0.005686070135606725,\n    \"median\": 1.05987401458,\n    \"user\": 1.0516796549999998,\n    \"system\": 0.06003463,\n    \"min\": 1.0525309925800002,\n    \"max\": 1.0653659445800001,\n    \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n    \"message\": \"Refactor: syntax and diff highlighting\\n\",\n    \"time\": 1.0525309925800002\n  },\n  {\n    \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0817769249800002,\n    \"stddev\": 0.04022404983716779,\n    \"median\": 1.0632576605800002,\n    \"user\": 1.0703128549999998,\n    \"system\": 0.06256202999999999,\n    \"min\": 1.04360879358,\n    \"max\": 1.14027342058,\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"time\": 1.14027342058\n  },\n  {\n    \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0817769249800002,\n    \"stddev\": 0.04022404983716779,\n    \"median\": 1.0632576605800002,\n    \"user\": 1.0703128549999998,\n    \"system\": 0.06256202999999999,\n    \"min\": 1.04360879358,\n    \"max\": 1.14027342058,\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"time\": 1.10585888058\n  },\n  {\n    \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0817769249800002,\n    \"stddev\": 0.04022404983716779,\n    \"median\": 1.0632576605800002,\n    \"user\": 1.0703128549999998,\n    \"system\": 0.06256202999999999,\n    \"min\": 1.04360879358,\n    \"max\": 1.14027342058,\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"time\": 1.0632576605800002\n  },\n  {\n    \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0817769249800002,\n    \"stddev\": 0.04022404983716779,\n    \"median\": 1.0632576605800002,\n    \"user\": 1.0703128549999998,\n    \"system\": 0.06256202999999999,\n    \"min\": 1.04360879358,\n    \"max\": 1.14027342058,\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"time\": 1.04360879358\n  },\n  {\n    \"command\": \"bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0817769249800002,\n    \"stddev\": 0.04022404983716779,\n    \"median\": 1.0632576605800002,\n    \"user\": 1.0703128549999998,\n    \"system\": 0.06256202999999999,\n    \"min\": 1.04360879358,\n    \"max\": 1.14027342058,\n    \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n    \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n    \"time\": 1.05588586958\n  },\n  {\n    \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0621449479799998,\n    \"stddev\": 0.020584506811388358,\n    \"median\": 1.05505968558,\n    \"user\": 1.058148455,\n    \"system\": 0.05955242999999999,\n    \"min\": 1.03843051258,\n    \"max\": 1.08516674458,\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"message\": \"README\\n\",\n    \"time\": 1.08219034158\n  },\n  {\n    \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0621449479799998,\n    \"stddev\": 0.020584506811388358,\n    \"median\": 1.05505968558,\n    \"user\": 1.058148455,\n    \"system\": 0.05955242999999999,\n    \"min\": 1.03843051258,\n    \"max\": 1.08516674458,\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"message\": \"README\\n\",\n    \"time\": 1.0498774555800001\n  },\n  {\n    \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0621449479799998,\n    \"stddev\": 0.020584506811388358,\n    \"median\": 1.05505968558,\n    \"user\": 1.058148455,\n    \"system\": 0.05955242999999999,\n    \"min\": 1.03843051258,\n    \"max\": 1.08516674458,\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"message\": \"README\\n\",\n    \"time\": 1.03843051258\n  },\n  {\n    \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0621449479799998,\n    \"stddev\": 0.020584506811388358,\n    \"median\": 1.05505968558,\n    \"user\": 1.058148455,\n    \"system\": 0.05955242999999999,\n    \"min\": 1.03843051258,\n    \"max\": 1.08516674458,\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"message\": \"README\\n\",\n    \"time\": 1.05505968558\n  },\n  {\n    \"command\": \"3c63291f50496bbb12b82b185d2487c05e07b38c < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0621449479799998,\n    \"stddev\": 0.020584506811388358,\n    \"median\": 1.05505968558,\n    \"user\": 1.058148455,\n    \"system\": 0.05955242999999999,\n    \"min\": 1.03843051258,\n    \"max\": 1.08516674458,\n    \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n    \"message\": \"README\\n\",\n    \"time\": 1.08516674458\n  },\n  {\n    \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04794046018,\n    \"stddev\": 0.012290620034103824,\n    \"median\": 1.04442604758,\n    \"user\": 1.046487055,\n    \"system\": 0.05953663,\n    \"min\": 1.0359464335800002,\n    \"max\": 1.06609146258,\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"time\": 1.04442604758\n  },\n  {\n    \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04794046018,\n    \"stddev\": 0.012290620034103824,\n    \"median\": 1.04442604758,\n    \"user\": 1.046487055,\n    \"system\": 0.05953663,\n    \"min\": 1.0359464335800002,\n    \"max\": 1.06609146258,\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"time\": 1.03903369458\n  },\n  {\n    \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04794046018,\n    \"stddev\": 0.012290620034103824,\n    \"median\": 1.04442604758,\n    \"user\": 1.046487055,\n    \"system\": 0.05953663,\n    \"min\": 1.0359464335800002,\n    \"max\": 1.06609146258,\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"time\": 1.06609146258\n  },\n  {\n    \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04794046018,\n    \"stddev\": 0.012290620034103824,\n    \"median\": 1.04442604758,\n    \"user\": 1.046487055,\n    \"system\": 0.05953663,\n    \"min\": 1.0359464335800002,\n    \"max\": 1.06609146258,\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"time\": 1.0359464335800002\n  },\n  {\n    \"command\": \"70ddd4a6c5a183297eef65989e652b977602a159 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04794046018,\n    \"stddev\": 0.012290620034103824,\n    \"median\": 1.04442604758,\n    \"user\": 1.046487055,\n    \"system\": 0.05953663,\n    \"min\": 1.0359464335800002,\n    \"max\": 1.06609146258,\n    \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n    \"message\": \"Refactor: string_pair module\\n\",\n    \"time\": 1.0542046625800001\n  },\n  {\n    \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0436401823800001,\n    \"stddev\": 0.011010302045737462,\n    \"median\": 1.0421365735800001,\n    \"user\": 1.040214255,\n    \"system\": 0.059505430000000005,\n    \"min\": 1.03044851558,\n    \"max\": 1.05620621058,\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"time\": 1.03608929158\n  },\n  {\n    \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0436401823800001,\n    \"stddev\": 0.011010302045737462,\n    \"median\": 1.0421365735800001,\n    \"user\": 1.040214255,\n    \"system\": 0.059505430000000005,\n    \"min\": 1.03044851558,\n    \"max\": 1.05620621058,\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"time\": 1.03044851558\n  },\n  {\n    \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0436401823800001,\n    \"stddev\": 0.011010302045737462,\n    \"median\": 1.0421365735800001,\n    \"user\": 1.040214255,\n    \"system\": 0.059505430000000005,\n    \"min\": 1.03044851558,\n    \"max\": 1.05620621058,\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"time\": 1.0533203205800001\n  },\n  {\n    \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0436401823800001,\n    \"stddev\": 0.011010302045737462,\n    \"median\": 1.0421365735800001,\n    \"user\": 1.040214255,\n    \"system\": 0.059505430000000005,\n    \"min\": 1.03044851558,\n    \"max\": 1.05620621058,\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"time\": 1.0421365735800001\n  },\n  {\n    \"command\": \"56dc77f25704fbdeb5b53206c27419137de8263f < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0436401823800001,\n    \"stddev\": 0.011010302045737462,\n    \"median\": 1.0421365735800001,\n    \"user\": 1.040214255,\n    \"system\": 0.059505430000000005,\n    \"min\": 1.03044851558,\n    \"max\": 1.05620621058,\n    \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n    \"message\": \"Unit test: get_diff_style_sections\\n\",\n    \"time\": 1.05620621058\n  },\n  {\n    \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05874660438,\n    \"stddev\": 0.03897551802018655,\n    \"median\": 1.04071591558,\n    \"user\": 1.0521908549999999,\n    \"system\": 0.05869662999999999,\n    \"min\": 1.02207437458,\n    \"max\": 1.11982614858,\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.03745629658\n  },\n  {\n    \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05874660438,\n    \"stddev\": 0.03897551802018655,\n    \"median\": 1.04071591558,\n    \"user\": 1.0521908549999999,\n    \"system\": 0.05869662999999999,\n    \"min\": 1.02207437458,\n    \"max\": 1.11982614858,\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.04071591558\n  },\n  {\n    \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05874660438,\n    \"stddev\": 0.03897551802018655,\n    \"median\": 1.04071591558,\n    \"user\": 1.0521908549999999,\n    \"system\": 0.05869662999999999,\n    \"min\": 1.02207437458,\n    \"max\": 1.11982614858,\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.02207437458\n  },\n  {\n    \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05874660438,\n    \"stddev\": 0.03897551802018655,\n    \"median\": 1.04071591558,\n    \"user\": 1.0521908549999999,\n    \"system\": 0.05869662999999999,\n    \"min\": 1.02207437458,\n    \"max\": 1.11982614858,\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.07366028658\n  },\n  {\n    \"command\": \"40f5119e93f0cd9ad33d843ede71c8a673f5e7df < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05874660438,\n    \"stddev\": 0.03897551802018655,\n    \"median\": 1.04071591558,\n    \"user\": 1.0521908549999999,\n    \"system\": 0.05869662999999999,\n    \"min\": 1.02207437458,\n    \"max\": 1.11982614858,\n    \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n    \"message\": \"Rename module\\n\",\n    \"time\": 1.11982614858\n  },\n  {\n    \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05513492858,\n    \"stddev\": 0.015168059433790798,\n    \"median\": 1.0549179235800001,\n    \"user\": 1.048584255,\n    \"system\": 0.05890863,\n    \"min\": 1.03816250258,\n    \"max\": 1.0776403805800001,\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"time\": 1.0549179235800001\n  },\n  {\n    \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05513492858,\n    \"stddev\": 0.015168059433790798,\n    \"median\": 1.0549179235800001,\n    \"user\": 1.048584255,\n    \"system\": 0.05890863,\n    \"min\": 1.03816250258,\n    \"max\": 1.0776403805800001,\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"time\": 1.04500884058\n  },\n  {\n    \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05513492858,\n    \"stddev\": 0.015168059433790798,\n    \"median\": 1.0549179235800001,\n    \"user\": 1.048584255,\n    \"system\": 0.05890863,\n    \"min\": 1.03816250258,\n    \"max\": 1.0776403805800001,\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"time\": 1.05994499558\n  },\n  {\n    \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05513492858,\n    \"stddev\": 0.015168059433790798,\n    \"median\": 1.0549179235800001,\n    \"user\": 1.048584255,\n    \"system\": 0.05890863,\n    \"min\": 1.03816250258,\n    \"max\": 1.0776403805800001,\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"time\": 1.0776403805800001\n  },\n  {\n    \"command\": \"6939c2867d113df60fe34526c2da52fe446b09ef < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.05513492858,\n    \"stddev\": 0.015168059433790798,\n    \"median\": 1.0549179235800001,\n    \"user\": 1.048584255,\n    \"system\": 0.05890863,\n    \"min\": 1.03816250258,\n    \"max\": 1.0776403805800001,\n    \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n    \"message\": \"Tests fail: Add unit test: edits\\n\",\n    \"time\": 1.03816250258\n  },\n  {\n    \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0394708177800003,\n    \"stddev\": 0.00434769124782663,\n    \"median\": 1.03907369658,\n    \"user\": 1.037337255,\n    \"system\": 0.05778783,\n    \"min\": 1.0343373605800001,\n    \"max\": 1.04562632558,\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"time\": 1.04150505758\n  },\n  {\n    \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0394708177800003,\n    \"stddev\": 0.00434769124782663,\n    \"median\": 1.03907369658,\n    \"user\": 1.037337255,\n    \"system\": 0.05778783,\n    \"min\": 1.0343373605800001,\n    \"max\": 1.04562632558,\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"time\": 1.04562632558\n  },\n  {\n    \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0394708177800003,\n    \"stddev\": 0.00434769124782663,\n    \"median\": 1.03907369658,\n    \"user\": 1.037337255,\n    \"system\": 0.05778783,\n    \"min\": 1.0343373605800001,\n    \"max\": 1.04562632558,\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"time\": 1.03907369658\n  },\n  {\n    \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0394708177800003,\n    \"stddev\": 0.00434769124782663,\n    \"median\": 1.03907369658,\n    \"user\": 1.037337255,\n    \"system\": 0.05778783,\n    \"min\": 1.0343373605800001,\n    \"max\": 1.04562632558,\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"time\": 1.03681164858\n  },\n  {\n    \"command\": \"4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0394708177800003,\n    \"stddev\": 0.00434769124782663,\n    \"median\": 1.03907369658,\n    \"user\": 1.037337255,\n    \"system\": 0.05778783,\n    \"min\": 1.0343373605800001,\n    \"max\": 1.04562632558,\n    \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n    \"message\": \"Fix string pair edits algorithm\\n\",\n    \"time\": 1.0343373605800001\n  },\n  {\n    \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03057099178,\n    \"stddev\": 0.014242525023220813,\n    \"median\": 1.02539978658,\n    \"user\": 1.030554055,\n    \"system\": 0.05608463,\n    \"min\": 1.01980208558,\n    \"max\": 1.05404551058,\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"time\": 1.05404551058\n  },\n  {\n    \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03057099178,\n    \"stddev\": 0.014242525023220813,\n    \"median\": 1.02539978658,\n    \"user\": 1.030554055,\n    \"system\": 0.05608463,\n    \"min\": 1.01980208558,\n    \"max\": 1.05404551058,\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"time\": 1.02012356758\n  },\n  {\n    \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03057099178,\n    \"stddev\": 0.014242525023220813,\n    \"median\": 1.02539978658,\n    \"user\": 1.030554055,\n    \"system\": 0.05608463,\n    \"min\": 1.01980208558,\n    \"max\": 1.05404551058,\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"time\": 1.02539978658\n  },\n  {\n    \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03057099178,\n    \"stddev\": 0.014242525023220813,\n    \"median\": 1.02539978658,\n    \"user\": 1.030554055,\n    \"system\": 0.05608463,\n    \"min\": 1.01980208558,\n    \"max\": 1.05404551058,\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"time\": 1.01980208558\n  },\n  {\n    \"command\": \"48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03057099178,\n    \"stddev\": 0.014242525023220813,\n    \"median\": 1.02539978658,\n    \"user\": 1.030554055,\n    \"system\": 0.05608463,\n    \"min\": 1.01980208558,\n    \"max\": 1.05404551058,\n    \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n    \"message\": \"Fix git config instruction in README\\n\",\n    \"time\": 1.0334840085800001\n  },\n  {\n    \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03840822498,\n    \"stddev\": 0.03336256848348742,\n    \"median\": 1.02451415358,\n    \"user\": 1.037868855,\n    \"system\": 0.05773843000000001,\n    \"min\": 1.01858897458,\n    \"max\": 1.09782657958,\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.0239002965800001\n  },\n  {\n    \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03840822498,\n    \"stddev\": 0.03336256848348742,\n    \"median\": 1.02451415358,\n    \"user\": 1.037868855,\n    \"system\": 0.05773843000000001,\n    \"min\": 1.01858897458,\n    \"max\": 1.09782657958,\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.02451415358\n  },\n  {\n    \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03840822498,\n    \"stddev\": 0.03336256848348742,\n    \"median\": 1.02451415358,\n    \"user\": 1.037868855,\n    \"system\": 0.05773843000000001,\n    \"min\": 1.01858897458,\n    \"max\": 1.09782657958,\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.01858897458\n  },\n  {\n    \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03840822498,\n    \"stddev\": 0.03336256848348742,\n    \"median\": 1.02451415358,\n    \"user\": 1.037868855,\n    \"system\": 0.05773843000000001,\n    \"min\": 1.01858897458,\n    \"max\": 1.09782657958,\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.02721112058\n  },\n  {\n    \"command\": \"5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.03840822498,\n    \"stddev\": 0.03336256848348742,\n    \"median\": 1.02451415358,\n    \"user\": 1.037868855,\n    \"system\": 0.05773843000000001,\n    \"min\": 1.01858897458,\n    \"max\": 1.09782657958,\n    \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.09782657958\n  },\n  {\n    \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.07157882238,\n    \"stddev\": 0.08077955706128657,\n    \"median\": 1.04311381358,\n    \"user\": 1.062875055,\n    \"system\": 0.06407402999999999,\n    \"min\": 1.01367681658,\n    \"max\": 1.21330172458,\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.21330172458\n  },\n  {\n    \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.07157882238,\n    \"stddev\": 0.08077955706128657,\n    \"median\": 1.04311381358,\n    \"user\": 1.062875055,\n    \"system\": 0.06407402999999999,\n    \"min\": 1.01367681658,\n    \"max\": 1.21330172458,\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.05656836058\n  },\n  {\n    \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.07157882238,\n    \"stddev\": 0.08077955706128657,\n    \"median\": 1.04311381358,\n    \"user\": 1.062875055,\n    \"system\": 0.06407402999999999,\n    \"min\": 1.01367681658,\n    \"max\": 1.21330172458,\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.04311381358\n  },\n  {\n    \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.07157882238,\n    \"stddev\": 0.08077955706128657,\n    \"median\": 1.04311381358,\n    \"user\": 1.062875055,\n    \"system\": 0.06407402999999999,\n    \"min\": 1.01367681658,\n    \"max\": 1.21330172458,\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.03123339658\n  },\n  {\n    \"command\": \"f435458438604811309e850b2bed94b8f6dc7270 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.07157882238,\n    \"stddev\": 0.08077955706128657,\n    \"median\": 1.04311381358,\n    \"user\": 1.062875055,\n    \"system\": 0.06407402999999999,\n    \"min\": 1.01367681658,\n    \"max\": 1.21330172458,\n    \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.01367681658\n  },\n  {\n    \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.02577256618,\n    \"stddev\": 0.009317561549824735,\n    \"median\": 1.02868306358,\n    \"user\": 1.026838255,\n    \"system\": 0.055152230000000003,\n    \"min\": 1.01520371058,\n    \"max\": 1.03566611558,\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"message\": \"Bump version\\n\",\n    \"time\": 1.03261473658\n  },\n  {\n    \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.02577256618,\n    \"stddev\": 0.009317561549824735,\n    \"median\": 1.02868306358,\n    \"user\": 1.026838255,\n    \"system\": 0.055152230000000003,\n    \"min\": 1.01520371058,\n    \"max\": 1.03566611558,\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"message\": \"Bump version\\n\",\n    \"time\": 1.01669520458\n  },\n  {\n    \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.02577256618,\n    \"stddev\": 0.009317561549824735,\n    \"median\": 1.02868306358,\n    \"user\": 1.026838255,\n    \"system\": 0.055152230000000003,\n    \"min\": 1.01520371058,\n    \"max\": 1.03566611558,\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"message\": \"Bump version\\n\",\n    \"time\": 1.03566611558\n  },\n  {\n    \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.02577256618,\n    \"stddev\": 0.009317561549824735,\n    \"median\": 1.02868306358,\n    \"user\": 1.026838255,\n    \"system\": 0.055152230000000003,\n    \"min\": 1.01520371058,\n    \"max\": 1.03566611558,\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"message\": \"Bump version\\n\",\n    \"time\": 1.02868306358\n  },\n  {\n    \"command\": \"b617a1431365fcce901beb35c3ce564b97da6031 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.02577256618,\n    \"stddev\": 0.009317561549824735,\n    \"median\": 1.02868306358,\n    \"user\": 1.026838255,\n    \"system\": 0.055152230000000003,\n    \"min\": 1.01520371058,\n    \"max\": 1.03566611558,\n    \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n    \"message\": \"Bump version\\n\",\n    \"time\": 1.01520371058\n  },\n  {\n    \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04077268438,\n    \"stddev\": 0.018453723348316294,\n    \"median\": 1.0301236685800002,\n    \"user\": 1.039000255,\n    \"system\": 0.05738343,\n    \"min\": 1.0227548205800001,\n    \"max\": 1.06295057058,\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"message\": \"README: screenshots\\n\",\n    \"time\": 1.05835598358\n  },\n  {\n    \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04077268438,\n    \"stddev\": 0.018453723348316294,\n    \"median\": 1.0301236685800002,\n    \"user\": 1.039000255,\n    \"system\": 0.05738343,\n    \"min\": 1.0227548205800001,\n    \"max\": 1.06295057058,\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"message\": \"README: screenshots\\n\",\n    \"time\": 1.06295057058\n  },\n  {\n    \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04077268438,\n    \"stddev\": 0.018453723348316294,\n    \"median\": 1.0301236685800002,\n    \"user\": 1.039000255,\n    \"system\": 0.05738343,\n    \"min\": 1.0227548205800001,\n    \"max\": 1.06295057058,\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"message\": \"README: screenshots\\n\",\n    \"time\": 1.0301236685800002\n  },\n  {\n    \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04077268438,\n    \"stddev\": 0.018453723348316294,\n    \"median\": 1.0301236685800002,\n    \"user\": 1.039000255,\n    \"system\": 0.05738343,\n    \"min\": 1.0227548205800001,\n    \"max\": 1.06295057058,\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"message\": \"README: screenshots\\n\",\n    \"time\": 1.0227548205800001\n  },\n  {\n    \"command\": \"ac2bbd19d6af2dd312be162c985c40f471761aa7 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.04077268438,\n    \"stddev\": 0.018453723348316294,\n    \"median\": 1.0301236685800002,\n    \"user\": 1.039000255,\n    \"system\": 0.05738343,\n    \"min\": 1.0227548205800001,\n    \"max\": 1.06295057058,\n    \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n    \"message\": \"README: screenshots\\n\",\n    \"time\": 1.02967837858\n  },\n  {\n    \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0513018039800002,\n    \"stddev\": 0.015348343694921097,\n    \"median\": 1.05291374458,\n    \"user\": 1.044614655,\n    \"system\": 0.059866829999999996,\n    \"min\": 1.0275498115800001,\n    \"max\": 1.06468010458,\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.0275498115800001\n  },\n  {\n    \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0513018039800002,\n    \"stddev\": 0.015348343694921097,\n    \"median\": 1.05291374458,\n    \"user\": 1.044614655,\n    \"system\": 0.059866829999999996,\n    \"min\": 1.0275498115800001,\n    \"max\": 1.06468010458,\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.04678975958\n  },\n  {\n    \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0513018039800002,\n    \"stddev\": 0.015348343694921097,\n    \"median\": 1.05291374458,\n    \"user\": 1.044614655,\n    \"system\": 0.059866829999999996,\n    \"min\": 1.0275498115800001,\n    \"max\": 1.06468010458,\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.0645755995800001\n  },\n  {\n    \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0513018039800002,\n    \"stddev\": 0.015348343694921097,\n    \"median\": 1.05291374458,\n    \"user\": 1.044614655,\n    \"system\": 0.059866829999999996,\n    \"min\": 1.0275498115800001,\n    \"max\": 1.06468010458,\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.06468010458\n  },\n  {\n    \"command\": \"a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.0513018039800002,\n    \"stddev\": 0.015348343694921097,\n    \"median\": 1.05291374458,\n    \"user\": 1.044614655,\n    \"system\": 0.059866829999999996,\n    \"min\": 1.0275498115800001,\n    \"max\": 1.06468010458,\n    \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n    \"message\": \"Homebrew formula\\n\",\n    \"time\": 1.05291374458\n  },\n  {\n    \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.06912080118,\n    \"stddev\": 0.029232578774572766,\n    \"median\": 1.07097023658,\n    \"user\": 1.0602062549999998,\n    \"system\": 0.06359663,\n    \"min\": 1.03759748658,\n    \"max\": 1.10979508958,\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.07097023658\n  },\n  {\n    \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.06912080118,\n    \"stddev\": 0.029232578774572766,\n    \"median\": 1.07097023658,\n    \"user\": 1.0602062549999998,\n    \"system\": 0.06359663,\n    \"min\": 1.03759748658,\n    \"max\": 1.10979508958,\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.03759748658\n  },\n  {\n    \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.06912080118,\n    \"stddev\": 0.029232578774572766,\n    \"median\": 1.07097023658,\n    \"user\": 1.0602062549999998,\n    \"system\": 0.06359663,\n    \"min\": 1.03759748658,\n    \"max\": 1.10979508958,\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.10979508958\n  },\n  {\n    \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.06912080118,\n    \"stddev\": 0.029232578774572766,\n    \"median\": 1.07097023658,\n    \"user\": 1.0602062549999998,\n    \"system\": 0.06359663,\n    \"min\": 1.03759748658,\n    \"max\": 1.10979508958,\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.0824106555800002\n  },\n  {\n    \"command\": \"23c292d3f25c67082a2ba315a187268be1a9b0ab < 23c292d3f25c67082a2ba315a187268be1a9b0ab.gitdiff > /dev/null\",\n    \"mean\": 1.06912080118,\n    \"stddev\": 0.029232578774572766,\n    \"median\": 1.07097023658,\n    \"user\": 1.0602062549999998,\n    \"system\": 0.06359663,\n    \"min\": 1.03759748658,\n    \"max\": 1.10979508958,\n    \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n    \"message\": \"Tweak light theme colors\\n\",\n    \"time\": 1.04483053758\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/003d3c464888f603df63b727adab639b024a6ab3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.079329046595,\n    \"stddev\": 0.004690112775290345,\n    \"median\": 1.077096468595,\n    \"user\": 1.07360525,\n    \"system\": 0.063206615,\n    \"min\": 1.074968920595,\n    \"max\": 1.086883455595,\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"time\": 1.086883455595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/003d3c464888f603df63b727adab639b024a6ab3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.079329046595,\n    \"stddev\": 0.004690112775290345,\n    \"median\": 1.077096468595,\n    \"user\": 1.07360525,\n    \"system\": 0.063206615,\n    \"min\": 1.074968920595,\n    \"max\": 1.086883455595,\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"time\": 1.077050696595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/003d3c464888f603df63b727adab639b024a6ab3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.079329046595,\n    \"stddev\": 0.004690112775290345,\n    \"median\": 1.077096468595,\n    \"user\": 1.07360525,\n    \"system\": 0.063206615,\n    \"min\": 1.074968920595,\n    \"max\": 1.086883455595,\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"time\": 1.080645691595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/003d3c464888f603df63b727adab639b024a6ab3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.079329046595,\n    \"stddev\": 0.004690112775290345,\n    \"median\": 1.077096468595,\n    \"user\": 1.07360525,\n    \"system\": 0.063206615,\n    \"min\": 1.074968920595,\n    \"max\": 1.086883455595,\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"time\": 1.077096468595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/003d3c464888f603df63b727adab639b024a6ab3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.079329046595,\n    \"stddev\": 0.004690112775290345,\n    \"median\": 1.077096468595,\n    \"user\": 1.07360525,\n    \"system\": 0.063206615,\n    \"min\": 1.074968920595,\n    \"max\": 1.086883455595,\n    \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n    \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n    \"time\": 1.074968920595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < input.gitdiff > /dev/null\",\n    \"mean\": 1.072624437795,\n    \"stddev\": 0.0030873117602998514,\n    \"median\": 1.072118326595,\n    \"user\": 1.06933585,\n    \"system\": 0.06128421499999999,\n    \"min\": 1.0684882655949999,\n    \"max\": 1.076486626595,\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"time\": 1.071349983595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < input.gitdiff > /dev/null\",\n    \"mean\": 1.072624437795,\n    \"stddev\": 0.0030873117602998514,\n    \"median\": 1.072118326595,\n    \"user\": 1.06933585,\n    \"system\": 0.06128421499999999,\n    \"min\": 1.0684882655949999,\n    \"max\": 1.076486626595,\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"time\": 1.0684882655949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < input.gitdiff > /dev/null\",\n    \"mean\": 1.072624437795,\n    \"stddev\": 0.0030873117602998514,\n    \"median\": 1.072118326595,\n    \"user\": 1.06933585,\n    \"system\": 0.06128421499999999,\n    \"min\": 1.0684882655949999,\n    \"max\": 1.076486626595,\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"time\": 1.074678986595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < input.gitdiff > /dev/null\",\n    \"mean\": 1.072624437795,\n    \"stddev\": 0.0030873117602998514,\n    \"median\": 1.072118326595,\n    \"user\": 1.06933585,\n    \"system\": 0.06128421499999999,\n    \"min\": 1.0684882655949999,\n    \"max\": 1.076486626595,\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"time\": 1.072118326595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < input.gitdiff > /dev/null\",\n    \"mean\": 1.072624437795,\n    \"stddev\": 0.0030873117602998514,\n    \"median\": 1.072118326595,\n    \"user\": 1.06933585,\n    \"system\": 0.06128421499999999,\n    \"min\": 1.0684882655949999,\n    \"max\": 1.076486626595,\n    \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n    \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n    \"time\": 1.076486626595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/2404597c29f1ca4125740891224216d00e75ac6f < input.gitdiff > /dev/null\",\n    \"mean\": 1.1063696097949998,\n    \"stddev\": 0.004914855331548992,\n    \"median\": 1.106519067595,\n    \"user\": 1.10309265,\n    \"system\": 0.062339015,\n    \"min\": 1.101013648595,\n    \"max\": 1.1123580765949999,\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"time\": 1.109962789595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/2404597c29f1ca4125740891224216d00e75ac6f < input.gitdiff > /dev/null\",\n    \"mean\": 1.1063696097949998,\n    \"stddev\": 0.004914855331548992,\n    \"median\": 1.106519067595,\n    \"user\": 1.10309265,\n    \"system\": 0.062339015,\n    \"min\": 1.101013648595,\n    \"max\": 1.1123580765949999,\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"time\": 1.106519067595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/2404597c29f1ca4125740891224216d00e75ac6f < input.gitdiff > /dev/null\",\n    \"mean\": 1.1063696097949998,\n    \"stddev\": 0.004914855331548992,\n    \"median\": 1.106519067595,\n    \"user\": 1.10309265,\n    \"system\": 0.062339015,\n    \"min\": 1.101013648595,\n    \"max\": 1.1123580765949999,\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"time\": 1.1019944665949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/2404597c29f1ca4125740891224216d00e75ac6f < input.gitdiff > /dev/null\",\n    \"mean\": 1.1063696097949998,\n    \"stddev\": 0.004914855331548992,\n    \"median\": 1.106519067595,\n    \"user\": 1.10309265,\n    \"system\": 0.062339015,\n    \"min\": 1.101013648595,\n    \"max\": 1.1123580765949999,\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"time\": 1.101013648595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/2404597c29f1ca4125740891224216d00e75ac6f < input.gitdiff > /dev/null\",\n    \"mean\": 1.1063696097949998,\n    \"stddev\": 0.004914855331548992,\n    \"median\": 1.106519067595,\n    \"user\": 1.10309265,\n    \"system\": 0.062339015,\n    \"min\": 1.101013648595,\n    \"max\": 1.1123580765949999,\n    \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n    \"message\": \"Use grapheme units for all visible character calculations\\n\",\n    \"time\": 1.1123580765949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/36dda02d8b37e424134eb6b6685f8566c8213ca3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.075709386195,\n    \"stddev\": 0.0061083634489436,\n    \"median\": 1.079370891595,\n    \"user\": 1.07202725,\n    \"system\": 0.06219201499999999,\n    \"min\": 1.068362921595,\n    \"max\": 1.080675481595,\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"time\": 1.080675481595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/36dda02d8b37e424134eb6b6685f8566c8213ca3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.075709386195,\n    \"stddev\": 0.0061083634489436,\n    \"median\": 1.079370891595,\n    \"user\": 1.07202725,\n    \"system\": 0.06219201499999999,\n    \"min\": 1.068362921595,\n    \"max\": 1.080675481595,\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"time\": 1.079370891595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/36dda02d8b37e424134eb6b6685f8566c8213ca3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.075709386195,\n    \"stddev\": 0.0061083634489436,\n    \"median\": 1.079370891595,\n    \"user\": 1.07202725,\n    \"system\": 0.06219201499999999,\n    \"min\": 1.068362921595,\n    \"max\": 1.080675481595,\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"time\": 1.069758992595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/36dda02d8b37e424134eb6b6685f8566c8213ca3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.075709386195,\n    \"stddev\": 0.0061083634489436,\n    \"median\": 1.079370891595,\n    \"user\": 1.07202725,\n    \"system\": 0.06219201499999999,\n    \"min\": 1.068362921595,\n    \"max\": 1.080675481595,\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"time\": 1.068362921595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/36dda02d8b37e424134eb6b6685f8566c8213ca3 < input.gitdiff > /dev/null\",\n    \"mean\": 1.075709386195,\n    \"stddev\": 0.0061083634489436,\n    \"median\": 1.079370891595,\n    \"user\": 1.07202725,\n    \"system\": 0.06219201499999999,\n    \"min\": 1.068362921595,\n    \"max\": 1.080675481595,\n    \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n    \"message\": \"Add option to show command-line arguments for current colors\\n\",\n    \"time\": 1.080378643595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/49f9932f98839ef5341360e94469a2795bb1d620 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0771459831949999,\n    \"stddev\": 0.008877754768077175,\n    \"median\": 1.076847363595,\n    \"user\": 1.0735732500000001,\n    \"system\": 0.061376615,\n    \"min\": 1.067871559595,\n    \"max\": 1.087366545595,\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"time\": 1.084711598595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/49f9932f98839ef5341360e94469a2795bb1d620 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0771459831949999,\n    \"stddev\": 0.008877754768077175,\n    \"median\": 1.076847363595,\n    \"user\": 1.0735732500000001,\n    \"system\": 0.061376615,\n    \"min\": 1.067871559595,\n    \"max\": 1.087366545595,\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"time\": 1.068932848595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/49f9932f98839ef5341360e94469a2795bb1d620 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0771459831949999,\n    \"stddev\": 0.008877754768077175,\n    \"median\": 1.076847363595,\n    \"user\": 1.0735732500000001,\n    \"system\": 0.061376615,\n    \"min\": 1.067871559595,\n    \"max\": 1.087366545595,\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"time\": 1.067871559595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/49f9932f98839ef5341360e94469a2795bb1d620 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0771459831949999,\n    \"stddev\": 0.008877754768077175,\n    \"median\": 1.076847363595,\n    \"user\": 1.0735732500000001,\n    \"system\": 0.061376615,\n    \"min\": 1.067871559595,\n    \"max\": 1.087366545595,\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"time\": 1.076847363595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/49f9932f98839ef5341360e94469a2795bb1d620 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0771459831949999,\n    \"stddev\": 0.008877754768077175,\n    \"median\": 1.076847363595,\n    \"user\": 1.0735732500000001,\n    \"system\": 0.061376615,\n    \"min\": 1.067871559595,\n    \"max\": 1.087366545595,\n    \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n    \"message\": \"Move performance scripts into separate repo\\n\",\n    \"time\": 1.087366545595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/58cddd1861c674a700f0003dcfff1d4896402654 < input.gitdiff > /dev/null\",\n    \"mean\": 1.069224203995,\n    \"stddev\": 0.001978211209677864,\n    \"median\": 1.068384901595,\n    \"user\": 1.06594985,\n    \"system\": 0.06218561499999999,\n    \"min\": 1.067483677595,\n    \"max\": 1.071597129595,\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"message\": \"Autoformat\\n\",\n    \"time\": 1.067557452595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/58cddd1861c674a700f0003dcfff1d4896402654 < input.gitdiff > /dev/null\",\n    \"mean\": 1.069224203995,\n    \"stddev\": 0.001978211209677864,\n    \"median\": 1.068384901595,\n    \"user\": 1.06594985,\n    \"system\": 0.06218561499999999,\n    \"min\": 1.067483677595,\n    \"max\": 1.071597129595,\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"message\": \"Autoformat\\n\",\n    \"time\": 1.068384901595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/58cddd1861c674a700f0003dcfff1d4896402654 < input.gitdiff > /dev/null\",\n    \"mean\": 1.069224203995,\n    \"stddev\": 0.001978211209677864,\n    \"median\": 1.068384901595,\n    \"user\": 1.06594985,\n    \"system\": 0.06218561499999999,\n    \"min\": 1.067483677595,\n    \"max\": 1.071597129595,\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"message\": \"Autoformat\\n\",\n    \"time\": 1.067483677595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/58cddd1861c674a700f0003dcfff1d4896402654 < input.gitdiff > /dev/null\",\n    \"mean\": 1.069224203995,\n    \"stddev\": 0.001978211209677864,\n    \"median\": 1.068384901595,\n    \"user\": 1.06594985,\n    \"system\": 0.06218561499999999,\n    \"min\": 1.067483677595,\n    \"max\": 1.071597129595,\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"message\": \"Autoformat\\n\",\n    \"time\": 1.071097858595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/58cddd1861c674a700f0003dcfff1d4896402654 < input.gitdiff > /dev/null\",\n    \"mean\": 1.069224203995,\n    \"stddev\": 0.001978211209677864,\n    \"median\": 1.068384901595,\n    \"user\": 1.06594985,\n    \"system\": 0.06218561499999999,\n    \"min\": 1.067483677595,\n    \"max\": 1.071597129595,\n    \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n    \"message\": \"Autoformat\\n\",\n    \"time\": 1.071597129595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/62fb930313675f83a010b8a20a4f48cf7a05615b < input.gitdiff > /dev/null\",\n    \"mean\": 1.075575723195,\n    \"stddev\": 0.004510271314262143,\n    \"median\": 1.074417381595,\n    \"user\": 1.0722860500000002,\n    \"system\": 0.062113214999999986,\n    \"min\": 1.070849378595,\n    \"max\": 1.0829986785949999,\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"time\": 1.0829986785949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/62fb930313675f83a010b8a20a4f48cf7a05615b < input.gitdiff > /dev/null\",\n    \"mean\": 1.075575723195,\n    \"stddev\": 0.004510271314262143,\n    \"median\": 1.074417381595,\n    \"user\": 1.0722860500000002,\n    \"system\": 0.062113214999999986,\n    \"min\": 1.070849378595,\n    \"max\": 1.0829986785949999,\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"time\": 1.070849378595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/62fb930313675f83a010b8a20a4f48cf7a05615b < input.gitdiff > /dev/null\",\n    \"mean\": 1.075575723195,\n    \"stddev\": 0.004510271314262143,\n    \"median\": 1.074417381595,\n    \"user\": 1.0722860500000002,\n    \"system\": 0.062113214999999986,\n    \"min\": 1.070849378595,\n    \"max\": 1.0829986785949999,\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"time\": 1.074417381595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/62fb930313675f83a010b8a20a4f48cf7a05615b < input.gitdiff > /dev/null\",\n    \"mean\": 1.075575723195,\n    \"stddev\": 0.004510271314262143,\n    \"median\": 1.074417381595,\n    \"user\": 1.0722860500000002,\n    \"system\": 0.062113214999999986,\n    \"min\": 1.070849378595,\n    \"max\": 1.0829986785949999,\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"time\": 1.073967929595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/62fb930313675f83a010b8a20a4f48cf7a05615b < input.gitdiff > /dev/null\",\n    \"mean\": 1.075575723195,\n    \"stddev\": 0.004510271314262143,\n    \"median\": 1.074417381595,\n    \"user\": 1.0722860500000002,\n    \"system\": 0.062113214999999986,\n    \"min\": 1.070849378595,\n    \"max\": 1.0829986785949999,\n    \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n    \"message\": \"Clean up: move tests, change variable name\\n\",\n    \"time\": 1.075645247595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < input.gitdiff > /dev/null\",\n    \"mean\": 1.074089606595,\n    \"stddev\": 0.005527163094052358,\n    \"median\": 1.072263929595,\n    \"user\": 1.07150365,\n    \"system\": 0.061416614999999994,\n    \"min\": 1.0676576655949999,\n    \"max\": 1.081646737595,\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"time\": 1.072263929595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < input.gitdiff > /dev/null\",\n    \"mean\": 1.074089606595,\n    \"stddev\": 0.005527163094052358,\n    \"median\": 1.072263929595,\n    \"user\": 1.07150365,\n    \"system\": 0.061416614999999994,\n    \"min\": 1.0676576655949999,\n    \"max\": 1.081646737595,\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"time\": 1.081646737595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < input.gitdiff > /dev/null\",\n    \"mean\": 1.074089606595,\n    \"stddev\": 0.005527163094052358,\n    \"median\": 1.072263929595,\n    \"user\": 1.07150365,\n    \"system\": 0.061416614999999994,\n    \"min\": 1.0676576655949999,\n    \"max\": 1.081646737595,\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"time\": 1.077613144595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < input.gitdiff > /dev/null\",\n    \"mean\": 1.074089606595,\n    \"stddev\": 0.005527163094052358,\n    \"median\": 1.072263929595,\n    \"user\": 1.07150365,\n    \"system\": 0.061416614999999994,\n    \"min\": 1.0676576655949999,\n    \"max\": 1.081646737595,\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"time\": 1.071266555595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < input.gitdiff > /dev/null\",\n    \"mean\": 1.074089606595,\n    \"stddev\": 0.005527163094052358,\n    \"median\": 1.072263929595,\n    \"user\": 1.07150365,\n    \"system\": 0.061416614999999994,\n    \"min\": 1.0676576655949999,\n    \"max\": 1.081646737595,\n    \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n    \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n    \"time\": 1.0676576655949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6705228e661250cb3a229954c750a95ce1ffa982 < input.gitdiff > /dev/null\",\n    \"mean\": 1.072044947395,\n    \"stddev\": 0.003230163526853996,\n    \"median\": 1.0708252035949999,\n    \"user\": 1.06927385,\n    \"system\": 0.06141601499999999,\n    \"min\": 1.069235368595,\n    \"max\": 1.076746142595,\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"message\": \"Make edit inference less naive\\n\",\n    \"time\": 1.069469884595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6705228e661250cb3a229954c750a95ce1ffa982 < input.gitdiff > /dev/null\",\n    \"mean\": 1.072044947395,\n    \"stddev\": 0.003230163526853996,\n    \"median\": 1.0708252035949999,\n    \"user\": 1.06927385,\n    \"system\": 0.06141601499999999,\n    \"min\": 1.069235368595,\n    \"max\": 1.076746142595,\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"message\": \"Make edit inference less naive\\n\",\n    \"time\": 1.076746142595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6705228e661250cb3a229954c750a95ce1ffa982 < input.gitdiff > /dev/null\",\n    \"mean\": 1.072044947395,\n    \"stddev\": 0.003230163526853996,\n    \"median\": 1.0708252035949999,\n    \"user\": 1.06927385,\n    \"system\": 0.06141601499999999,\n    \"min\": 1.069235368595,\n    \"max\": 1.076746142595,\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"message\": \"Make edit inference less naive\\n\",\n    \"time\": 1.069235368595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6705228e661250cb3a229954c750a95ce1ffa982 < input.gitdiff > /dev/null\",\n    \"mean\": 1.072044947395,\n    \"stddev\": 0.003230163526853996,\n    \"median\": 1.0708252035949999,\n    \"user\": 1.06927385,\n    \"system\": 0.06141601499999999,\n    \"min\": 1.069235368595,\n    \"max\": 1.076746142595,\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"message\": \"Make edit inference less naive\\n\",\n    \"time\": 1.073948137595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/6705228e661250cb3a229954c750a95ce1ffa982 < input.gitdiff > /dev/null\",\n    \"mean\": 1.072044947395,\n    \"stddev\": 0.003230163526853996,\n    \"median\": 1.0708252035949999,\n    \"user\": 1.06927385,\n    \"system\": 0.06141601499999999,\n    \"min\": 1.069235368595,\n    \"max\": 1.076746142595,\n    \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n    \"message\": \"Make edit inference less naive\\n\",\n    \"time\": 1.0708252035949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0680683657949999,\n    \"stddev\": 0.005002858421820523,\n    \"median\": 1.066768967595,\n    \"user\": 1.06486805,\n    \"system\": 0.06180521499999999,\n    \"min\": 1.063244270595,\n    \"max\": 1.074092318595,\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"time\": 1.066768967595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0680683657949999,\n    \"stddev\": 0.005002858421820523,\n    \"median\": 1.066768967595,\n    \"user\": 1.06486805,\n    \"system\": 0.06180521499999999,\n    \"min\": 1.063244270595,\n    \"max\": 1.074092318595,\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"time\": 1.072526144595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0680683657949999,\n    \"stddev\": 0.005002858421820523,\n    \"median\": 1.066768967595,\n    \"user\": 1.06486805,\n    \"system\": 0.06180521499999999,\n    \"min\": 1.063244270595,\n    \"max\": 1.074092318595,\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"time\": 1.063710127595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0680683657949999,\n    \"stddev\": 0.005002858421820523,\n    \"median\": 1.066768967595,\n    \"user\": 1.06486805,\n    \"system\": 0.06180521499999999,\n    \"min\": 1.063244270595,\n    \"max\": 1.074092318595,\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"time\": 1.074092318595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < input.gitdiff > /dev/null\",\n    \"mean\": 1.0680683657949999,\n    \"stddev\": 0.005002858421820523,\n    \"median\": 1.066768967595,\n    \"user\": 1.06486805,\n    \"system\": 0.06180521499999999,\n    \"min\": 1.063244270595,\n    \"max\": 1.074092318595,\n    \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n    \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n    \"time\": 1.063244270595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < input.gitdiff > /dev/null\",\n    \"mean\": 1.0938958985949998,\n    \"stddev\": 0.02114705852992774,\n    \"median\": 1.088617600595,\n    \"user\": 1.0902340499999998,\n    \"system\": 0.061889814999999994,\n    \"min\": 1.069471487595,\n    \"max\": 1.125581193595,\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"time\": 1.125581193595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < input.gitdiff > /dev/null\",\n    \"mean\": 1.0938958985949998,\n    \"stddev\": 0.02114705852992774,\n    \"median\": 1.088617600595,\n    \"user\": 1.0902340499999998,\n    \"system\": 0.061889814999999994,\n    \"min\": 1.069471487595,\n    \"max\": 1.125581193595,\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"time\": 1.069471487595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < input.gitdiff > /dev/null\",\n    \"mean\": 1.0938958985949998,\n    \"stddev\": 0.02114705852992774,\n    \"median\": 1.088617600595,\n    \"user\": 1.0902340499999998,\n    \"system\": 0.061889814999999994,\n    \"min\": 1.069471487595,\n    \"max\": 1.125581193595,\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"time\": 1.101805639595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < input.gitdiff > /dev/null\",\n    \"mean\": 1.0938958985949998,\n    \"stddev\": 0.02114705852992774,\n    \"median\": 1.088617600595,\n    \"user\": 1.0902340499999998,\n    \"system\": 0.061889814999999994,\n    \"min\": 1.069471487595,\n    \"max\": 1.125581193595,\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"time\": 1.084003571595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < input.gitdiff > /dev/null\",\n    \"mean\": 1.0938958985949998,\n    \"stddev\": 0.02114705852992774,\n    \"median\": 1.088617600595,\n    \"user\": 1.0902340499999998,\n    \"system\": 0.061889814999999994,\n    \"min\": 1.069471487595,\n    \"max\": 1.125581193595,\n    \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n    \"message\": \"Strengthen line identification patterns\\n\",\n    \"time\": 1.088617600595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/94848668f06c9e2c9802e87e2d9bd472914ade98 < input.gitdiff > /dev/null\",\n    \"mean\": 1.073155974595,\n    \"stddev\": 0.00337723854891423,\n    \"median\": 1.071804380595,\n    \"user\": 1.06998885,\n    \"system\": 0.06142881499999999,\n    \"min\": 1.070931454595,\n    \"max\": 1.079143388595,\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"time\": 1.079143388595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/94848668f06c9e2c9802e87e2d9bd472914ade98 < input.gitdiff > /dev/null\",\n    \"mean\": 1.073155974595,\n    \"stddev\": 0.00337723854891423,\n    \"median\": 1.071804380595,\n    \"user\": 1.06998885,\n    \"system\": 0.06142881499999999,\n    \"min\": 1.070931454595,\n    \"max\": 1.079143388595,\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"time\": 1.070931454595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/94848668f06c9e2c9802e87e2d9bd472914ade98 < input.gitdiff > /dev/null\",\n    \"mean\": 1.073155974595,\n    \"stddev\": 0.00337723854891423,\n    \"median\": 1.071804380595,\n    \"user\": 1.06998885,\n    \"system\": 0.06142881499999999,\n    \"min\": 1.070931454595,\n    \"max\": 1.079143388595,\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"time\": 1.072164047595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/94848668f06c9e2c9802e87e2d9bd472914ade98 < input.gitdiff > /dev/null\",\n    \"mean\": 1.073155974595,\n    \"stddev\": 0.00337723854891423,\n    \"median\": 1.071804380595,\n    \"user\": 1.06998885,\n    \"system\": 0.06142881499999999,\n    \"min\": 1.070931454595,\n    \"max\": 1.079143388595,\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"time\": 1.071804380595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/94848668f06c9e2c9802e87e2d9bd472914ade98 < input.gitdiff > /dev/null\",\n    \"mean\": 1.073155974595,\n    \"stddev\": 0.00337723854891423,\n    \"median\": 1.071804380595,\n    \"user\": 1.06998885,\n    \"system\": 0.06142881499999999,\n    \"min\": 1.070931454595,\n    \"max\": 1.079143388595,\n    \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n    \"message\": \"Add more non-ascii tests\\n\",\n    \"time\": 1.071736601595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < input.gitdiff > /dev/null\",\n    \"mean\": 1.073737391795,\n    \"stddev\": 0.0055701397970737,\n    \"median\": 1.073874577595,\n    \"user\": 1.07071445,\n    \"system\": 0.061834815,\n    \"min\": 1.066131805595,\n    \"max\": 1.081342705595,\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"message\": \"Bump version, update README and description\\n\",\n    \"time\": 1.081342705595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < input.gitdiff > /dev/null\",\n    \"mean\": 1.073737391795,\n    \"stddev\": 0.0055701397970737,\n    \"median\": 1.073874577595,\n    \"user\": 1.07071445,\n    \"system\": 0.061834815,\n    \"min\": 1.066131805595,\n    \"max\": 1.081342705595,\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"message\": \"Bump version, update README and description\\n\",\n    \"time\": 1.071620533595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < input.gitdiff > /dev/null\",\n    \"mean\": 1.073737391795,\n    \"stddev\": 0.0055701397970737,\n    \"median\": 1.073874577595,\n    \"user\": 1.07071445,\n    \"system\": 0.061834815,\n    \"min\": 1.066131805595,\n    \"max\": 1.081342705595,\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"message\": \"Bump version, update README and description\\n\",\n    \"time\": 1.073874577595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < input.gitdiff > /dev/null\",\n    \"mean\": 1.073737391795,\n    \"stddev\": 0.0055701397970737,\n    \"median\": 1.073874577595,\n    \"user\": 1.07071445,\n    \"system\": 0.061834815,\n    \"min\": 1.066131805595,\n    \"max\": 1.081342705595,\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"message\": \"Bump version, update README and description\\n\",\n    \"time\": 1.075717336595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < input.gitdiff > /dev/null\",\n    \"mean\": 1.073737391795,\n    \"stddev\": 0.0055701397970737,\n    \"median\": 1.073874577595,\n    \"user\": 1.07071445,\n    \"system\": 0.061834815,\n    \"min\": 1.066131805595,\n    \"max\": 1.081342705595,\n    \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n    \"message\": \"Bump version, update README and description\\n\",\n    \"time\": 1.066131805595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < input.gitdiff > /dev/null\",\n    \"mean\": 1.077803436395,\n    \"stddev\": 0.004211144747951166,\n    \"median\": 1.079683924595,\n    \"user\": 1.07354105,\n    \"system\": 0.06167581499999999,\n    \"min\": 1.0731653295949999,\n    \"max\": 1.082186516595,\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"message\": \"Bump homebrew formula\\n\",\n    \"time\": 1.073430211595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < input.gitdiff > /dev/null\",\n    \"mean\": 1.077803436395,\n    \"stddev\": 0.004211144747951166,\n    \"median\": 1.079683924595,\n    \"user\": 1.07354105,\n    \"system\": 0.06167581499999999,\n    \"min\": 1.0731653295949999,\n    \"max\": 1.082186516595,\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"message\": \"Bump homebrew formula\\n\",\n    \"time\": 1.079683924595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < input.gitdiff > /dev/null\",\n    \"mean\": 1.077803436395,\n    \"stddev\": 0.004211144747951166,\n    \"median\": 1.079683924595,\n    \"user\": 1.07354105,\n    \"system\": 0.06167581499999999,\n    \"min\": 1.0731653295949999,\n    \"max\": 1.082186516595,\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"message\": \"Bump homebrew formula\\n\",\n    \"time\": 1.0731653295949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < input.gitdiff > /dev/null\",\n    \"mean\": 1.077803436395,\n    \"stddev\": 0.004211144747951166,\n    \"median\": 1.079683924595,\n    \"user\": 1.07354105,\n    \"system\": 0.06167581499999999,\n    \"min\": 1.0731653295949999,\n    \"max\": 1.082186516595,\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"message\": \"Bump homebrew formula\\n\",\n    \"time\": 1.080551199595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < input.gitdiff > /dev/null\",\n    \"mean\": 1.077803436395,\n    \"stddev\": 0.004211144747951166,\n    \"median\": 1.079683924595,\n    \"user\": 1.07354105,\n    \"system\": 0.06167581499999999,\n    \"min\": 1.0731653295949999,\n    \"max\": 1.082186516595,\n    \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n    \"message\": \"Bump homebrew formula\\n\",\n    \"time\": 1.082186516595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < input.gitdiff > /dev/null\",\n    \"mean\": 1.080433996795,\n    \"stddev\": 0.009944623644022103,\n    \"median\": 1.076136947595,\n    \"user\": 1.07739285,\n    \"system\": 0.06155741499999999,\n    \"min\": 1.070186581595,\n    \"max\": 1.095662599595,\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"message\": \"Update bash completion\\n\",\n    \"time\": 1.095662599595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < input.gitdiff > /dev/null\",\n    \"mean\": 1.080433996795,\n    \"stddev\": 0.009944623644022103,\n    \"median\": 1.076136947595,\n    \"user\": 1.07739285,\n    \"system\": 0.06155741499999999,\n    \"min\": 1.070186581595,\n    \"max\": 1.095662599595,\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"message\": \"Update bash completion\\n\",\n    \"time\": 1.076136947595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < input.gitdiff > /dev/null\",\n    \"mean\": 1.080433996795,\n    \"stddev\": 0.009944623644022103,\n    \"median\": 1.076136947595,\n    \"user\": 1.07739285,\n    \"system\": 0.06155741499999999,\n    \"min\": 1.070186581595,\n    \"max\": 1.095662599595,\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"message\": \"Update bash completion\\n\",\n    \"time\": 1.075621824595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < input.gitdiff > /dev/null\",\n    \"mean\": 1.080433996795,\n    \"stddev\": 0.009944623644022103,\n    \"median\": 1.076136947595,\n    \"user\": 1.07739285,\n    \"system\": 0.06155741499999999,\n    \"min\": 1.070186581595,\n    \"max\": 1.095662599595,\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"message\": \"Update bash completion\\n\",\n    \"time\": 1.084562030595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < input.gitdiff > /dev/null\",\n    \"mean\": 1.080433996795,\n    \"stddev\": 0.009944623644022103,\n    \"median\": 1.076136947595,\n    \"user\": 1.07739285,\n    \"system\": 0.06155741499999999,\n    \"min\": 1.070186581595,\n    \"max\": 1.095662599595,\n    \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n    \"message\": \"Update bash completion\\n\",\n    \"time\": 1.070186581595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/b6cef9a800e653b3ac079929b848f96b41203d3e < input.gitdiff > /dev/null\",\n    \"mean\": 1.0750585631949998,\n    \"stddev\": 0.007261902739996852,\n    \"median\": 1.076819715595,\n    \"user\": 1.0713806500000003,\n    \"system\": 0.06230141499999999,\n    \"min\": 1.0647822385949999,\n    \"max\": 1.084452840595,\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"message\": \"Report errors to stderr\\n\",\n    \"time\": 1.076819715595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/b6cef9a800e653b3ac079929b848f96b41203d3e < input.gitdiff > /dev/null\",\n    \"mean\": 1.0750585631949998,\n    \"stddev\": 0.007261902739996852,\n    \"median\": 1.076819715595,\n    \"user\": 1.0713806500000003,\n    \"system\": 0.06230141499999999,\n    \"min\": 1.0647822385949999,\n    \"max\": 1.084452840595,\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"message\": \"Report errors to stderr\\n\",\n    \"time\": 1.072011563595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/b6cef9a800e653b3ac079929b848f96b41203d3e < input.gitdiff > /dev/null\",\n    \"mean\": 1.0750585631949998,\n    \"stddev\": 0.007261902739996852,\n    \"median\": 1.076819715595,\n    \"user\": 1.0713806500000003,\n    \"system\": 0.06230141499999999,\n    \"min\": 1.0647822385949999,\n    \"max\": 1.084452840595,\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"message\": \"Report errors to stderr\\n\",\n    \"time\": 1.0647822385949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/b6cef9a800e653b3ac079929b848f96b41203d3e < input.gitdiff > /dev/null\",\n    \"mean\": 1.0750585631949998,\n    \"stddev\": 0.007261902739996852,\n    \"median\": 1.076819715595,\n    \"user\": 1.0713806500000003,\n    \"system\": 0.06230141499999999,\n    \"min\": 1.0647822385949999,\n    \"max\": 1.084452840595,\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"message\": \"Report errors to stderr\\n\",\n    \"time\": 1.077226457595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/b6cef9a800e653b3ac079929b848f96b41203d3e < input.gitdiff > /dev/null\",\n    \"mean\": 1.0750585631949998,\n    \"stddev\": 0.007261902739996852,\n    \"median\": 1.076819715595,\n    \"user\": 1.0713806500000003,\n    \"system\": 0.06230141499999999,\n    \"min\": 1.0647822385949999,\n    \"max\": 1.084452840595,\n    \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n    \"message\": \"Report errors to stderr\\n\",\n    \"time\": 1.084452840595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/d948cb85af8ba94062ee26ae57352de01f7b4f79 < input.gitdiff > /dev/null\",\n    \"mean\": 1.094612638395,\n    \"stddev\": 0.025573381956831558,\n    \"median\": 1.083766867595,\n    \"user\": 1.08990345,\n    \"system\": 0.063811415,\n    \"min\": 1.079268097595,\n    \"max\": 1.1401423045949999,\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"message\": \"Handle file rename\\n\",\n    \"time\": 1.1401423045949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/d948cb85af8ba94062ee26ae57352de01f7b4f79 < input.gitdiff > /dev/null\",\n    \"mean\": 1.094612638395,\n    \"stddev\": 0.025573381956831558,\n    \"median\": 1.083766867595,\n    \"user\": 1.08990345,\n    \"system\": 0.063811415,\n    \"min\": 1.079268097595,\n    \"max\": 1.1401423045949999,\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"message\": \"Handle file rename\\n\",\n    \"time\": 1.083766867595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/d948cb85af8ba94062ee26ae57352de01f7b4f79 < input.gitdiff > /dev/null\",\n    \"mean\": 1.094612638395,\n    \"stddev\": 0.025573381956831558,\n    \"median\": 1.083766867595,\n    \"user\": 1.08990345,\n    \"system\": 0.063811415,\n    \"min\": 1.079268097595,\n    \"max\": 1.1401423045949999,\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"message\": \"Handle file rename\\n\",\n    \"time\": 1.086157448595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/d948cb85af8ba94062ee26ae57352de01f7b4f79 < input.gitdiff > /dev/null\",\n    \"mean\": 1.094612638395,\n    \"stddev\": 0.025573381956831558,\n    \"median\": 1.083766867595,\n    \"user\": 1.08990345,\n    \"system\": 0.063811415,\n    \"min\": 1.079268097595,\n    \"max\": 1.1401423045949999,\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"message\": \"Handle file rename\\n\",\n    \"time\": 1.083728473595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/d948cb85af8ba94062ee26ae57352de01f7b4f79 < input.gitdiff > /dev/null\",\n    \"mean\": 1.094612638395,\n    \"stddev\": 0.025573381956831558,\n    \"median\": 1.083766867595,\n    \"user\": 1.08990345,\n    \"system\": 0.063811415,\n    \"min\": 1.079268097595,\n    \"max\": 1.1401423045949999,\n    \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n    \"message\": \"Handle file rename\\n\",\n    \"time\": 1.079268097595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < input.gitdiff > /dev/null\",\n    \"mean\": 1.076116026395,\n    \"stddev\": 0.008841548977544111,\n    \"median\": 1.077996740595,\n    \"user\": 1.07254325,\n    \"system\": 0.061404215,\n    \"min\": 1.0662157805949999,\n    \"max\": 1.087358374595,\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"time\": 1.087358374595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < input.gitdiff > /dev/null\",\n    \"mean\": 1.076116026395,\n    \"stddev\": 0.008841548977544111,\n    \"median\": 1.077996740595,\n    \"user\": 1.07254325,\n    \"system\": 0.061404215,\n    \"min\": 1.0662157805949999,\n    \"max\": 1.087358374595,\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"time\": 1.080811611595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < input.gitdiff > /dev/null\",\n    \"mean\": 1.076116026395,\n    \"stddev\": 0.008841548977544111,\n    \"median\": 1.077996740595,\n    \"user\": 1.07254325,\n    \"system\": 0.061404215,\n    \"min\": 1.0662157805949999,\n    \"max\": 1.087358374595,\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"time\": 1.068197624595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < input.gitdiff > /dev/null\",\n    \"mean\": 1.076116026395,\n    \"stddev\": 0.008841548977544111,\n    \"median\": 1.077996740595,\n    \"user\": 1.07254325,\n    \"system\": 0.061404215,\n    \"min\": 1.0662157805949999,\n    \"max\": 1.087358374595,\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"time\": 1.0662157805949999\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < input.gitdiff > /dev/null\",\n    \"mean\": 1.076116026395,\n    \"stddev\": 0.008841548977544111,\n    \"median\": 1.077996740595,\n    \"user\": 1.07254325,\n    \"system\": 0.061404215,\n    \"min\": 1.0662157805949999,\n    \"max\": 1.087358374595,\n    \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n    \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n    \"time\": 1.077996740595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < input.gitdiff > /dev/null\",\n    \"mean\": 1.0730755499949998,\n    \"stddev\": 0.0026176390913243393,\n    \"median\": 1.072729949595,\n    \"user\": 1.07013825,\n    \"system\": 0.061201414999999995,\n    \"min\": 1.069761566595,\n    \"max\": 1.076213111595,\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"time\": 1.069761566595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < input.gitdiff > /dev/null\",\n    \"mean\": 1.0730755499949998,\n    \"stddev\": 0.0026176390913243393,\n    \"median\": 1.072729949595,\n    \"user\": 1.07013825,\n    \"system\": 0.061201414999999995,\n    \"min\": 1.069761566595,\n    \"max\": 1.076213111595,\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"time\": 1.076213111595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < input.gitdiff > /dev/null\",\n    \"mean\": 1.0730755499949998,\n    \"stddev\": 0.0026176390913243393,\n    \"median\": 1.072729949595,\n    \"user\": 1.07013825,\n    \"system\": 0.061201414999999995,\n    \"min\": 1.069761566595,\n    \"max\": 1.076213111595,\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"time\": 1.071558125595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < input.gitdiff > /dev/null\",\n    \"mean\": 1.0730755499949998,\n    \"stddev\": 0.0026176390913243393,\n    \"median\": 1.072729949595,\n    \"user\": 1.07013825,\n    \"system\": 0.061201414999999995,\n    \"min\": 1.069761566595,\n    \"max\": 1.076213111595,\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"time\": 1.075114996595\n  },\n  {\n    \"command\": \"/Users/dan/tmp/tempo/delta/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < input.gitdiff > /dev/null\",\n    \"mean\": 1.0730755499949998,\n    \"stddev\": 0.0026176390913243393,\n    \"median\": 1.072729949595,\n    \"user\": 1.07013825,\n    \"system\": 0.061201414999999995,\n    \"min\": 1.069761566595,\n    \"max\": 1.076213111595,\n    \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n    \"message\": \"Create default input for --compare-themes\\n\",\n    \"time\": 1.072729949595\n  }\n]\n"
  },
  {
    "path": "etc/performance/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"shortcut icon\" href=\"#\" />\n    <script src=\"https://cdn.jsdelivr.net/npm/vega@5.4.0/build/vega.js\"></script>\n    <script src=\"https://cdn.jsdelivr.net/npm/vega-lite@3.3.0/build/vega-lite.js\"></script>\n    <script src=\"https://cdn.jsdelivr.net/npm/vega-embed@4.2.0/build/vega-embed.js\"></script>\n    <style media=\"screen\">\n      .vega-actions a {\n        margin-right: 5px;\n      }\n    </style>\n  </head>\n  <body>\n    <div id=\"vis\"></div>\n    <script>\n      var boxplotSpec = {\n  \"$schema\": \"https://vega.github.io/schema/vega-lite/v3.json\",\n  \"data\": {\n    \"values\": [\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n        \"max\": 0.013288195465,\n        \"mean\": 0.006001176865,\n        \"median\": 0.004928057465000001,\n        \"message\": \"cargo new delta\\n\",\n        \"min\": 0.003220796465,\n        \"stddev\": 0.004157057519168492,\n        \"system\": 0.0016010150000000001,\n        \"time\": 0.013288195465,\n        \"user\": 0.0013687749999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n        \"max\": 0.013288195465,\n        \"mean\": 0.006001176865,\n        \"median\": 0.004928057465000001,\n        \"message\": \"cargo new delta\\n\",\n        \"min\": 0.003220796465,\n        \"stddev\": 0.004157057519168492,\n        \"system\": 0.0016010150000000001,\n        \"time\": 0.0050741144650000005,\n        \"user\": 0.0013687749999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n        \"max\": 0.013288195465,\n        \"mean\": 0.006001176865,\n        \"median\": 0.004928057465000001,\n        \"message\": \"cargo new delta\\n\",\n        \"min\": 0.003220796465,\n        \"stddev\": 0.004157057519168492,\n        \"system\": 0.0016010150000000001,\n        \"time\": 0.003494720465,\n        \"user\": 0.0013687749999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n        \"max\": 0.013288195465,\n        \"mean\": 0.006001176865,\n        \"median\": 0.004928057465000001,\n        \"message\": \"cargo new delta\\n\",\n        \"min\": 0.003220796465,\n        \"stddev\": 0.004157057519168492,\n        \"system\": 0.0016010150000000001,\n        \"time\": 0.003220796465,\n        \"user\": 0.0013687749999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a4361fa037090adf729ab3f161832d969abc576 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561325305-5a4361fa037090adf729ab3f161832d969abc576\",\n        \"max\": 0.013288195465,\n        \"mean\": 0.006001176865,\n        \"median\": 0.004928057465000001,\n        \"message\": \"cargo new delta\\n\",\n        \"min\": 0.003220796465,\n        \"stddev\": 0.004157057519168492,\n        \"system\": 0.0016010150000000001,\n        \"time\": 0.004928057465000001,\n        \"user\": 0.0013687749999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n        \"max\": 0.007402604130000001,\n        \"mean\": 0.005181866930000002,\n        \"median\": 0.003981811130000001,\n        \"message\": \"Read from stdin, write to stdout\\n\",\n        \"min\": 0.003600826130000001,\n        \"stddev\": 0.001971755776176325,\n        \"system\": 0.0016420699999999996,\n        \"time\": 0.007267979130000002,\n        \"user\": 0.001356285\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n        \"max\": 0.007402604130000001,\n        \"mean\": 0.005181866930000002,\n        \"median\": 0.003981811130000001,\n        \"message\": \"Read from stdin, write to stdout\\n\",\n        \"min\": 0.003600826130000001,\n        \"stddev\": 0.001971755776176325,\n        \"system\": 0.0016420699999999996,\n        \"time\": 0.003981811130000001,\n        \"user\": 0.001356285\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n        \"max\": 0.007402604130000001,\n        \"mean\": 0.005181866930000002,\n        \"median\": 0.003981811130000001,\n        \"message\": \"Read from stdin, write to stdout\\n\",\n        \"min\": 0.003600826130000001,\n        \"stddev\": 0.001971755776176325,\n        \"system\": 0.0016420699999999996,\n        \"time\": 0.003600826130000001,\n        \"user\": 0.001356285\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n        \"max\": 0.007402604130000001,\n        \"mean\": 0.005181866930000002,\n        \"median\": 0.003981811130000001,\n        \"message\": \"Read from stdin, write to stdout\\n\",\n        \"min\": 0.003600826130000001,\n        \"stddev\": 0.001971755776176325,\n        \"system\": 0.0016420699999999996,\n        \"time\": 0.0036561141300000006,\n        \"user\": 0.001356285\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4404c17c22e593db5758884e26327309c4ccb219 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561327607-4404c17c22e593db5758884e26327309c4ccb219\",\n        \"max\": 0.007402604130000001,\n        \"mean\": 0.005181866930000002,\n        \"median\": 0.003981811130000001,\n        \"message\": \"Read from stdin, write to stdout\\n\",\n        \"min\": 0.003600826130000001,\n        \"stddev\": 0.001971755776176325,\n        \"system\": 0.0016420699999999996,\n        \"time\": 0.007402604130000001,\n        \"user\": 0.001356285\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n        \"max\": 1.231345354705,\n        \"mean\": 1.200578412105,\n        \"median\": 1.196810656705,\n        \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n        \"min\": 1.183300461705,\n        \"stddev\": 0.01951776441841003,\n        \"system\": 0.013284755,\n        \"time\": 1.231345354705,\n        \"user\": 1.1792355799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n        \"max\": 1.231345354705,\n        \"mean\": 1.200578412105,\n        \"median\": 1.196810656705,\n        \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n        \"min\": 1.183300461705,\n        \"stddev\": 0.01951776441841003,\n        \"system\": 0.013284755,\n        \"time\": 1.183300461705,\n        \"user\": 1.1792355799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n        \"max\": 1.231345354705,\n        \"mean\": 1.200578412105,\n        \"median\": 1.196810656705,\n        \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n        \"min\": 1.183300461705,\n        \"stddev\": 0.01951776441841003,\n        \"system\": 0.013284755,\n        \"time\": 1.185296829705,\n        \"user\": 1.1792355799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n        \"max\": 1.231345354705,\n        \"mean\": 1.200578412105,\n        \"median\": 1.196810656705,\n        \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n        \"min\": 1.183300461705,\n        \"stddev\": 0.01951776441841003,\n        \"system\": 0.013284755,\n        \"time\": 1.196810656705,\n        \"user\": 1.1792355799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/044913f0bcd319b51733c9f6f91788d72314d40a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-044913f0bcd319b51733c9f6f91788d72314d40a\",\n        \"max\": 1.231345354705,\n        \"mean\": 1.200578412105,\n        \"median\": 1.196810656705,\n        \"message\": \"Don't output +/- at beginning of diff lines\\n\",\n        \"min\": 1.183300461705,\n        \"stddev\": 0.01951776441841003,\n        \"system\": 0.013284755,\n        \"time\": 1.206138757705,\n        \"user\": 1.1792355799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n        \"max\": 1.3078658624650001,\n        \"mean\": 1.283300375665,\n        \"median\": 1.282167388465,\n        \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n        \"min\": 1.2680449394650002,\n        \"stddev\": 0.01586539302076975,\n        \"system\": 0.013374965000000003,\n        \"time\": 1.3078658624650001,\n        \"user\": 1.2625939699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n        \"max\": 1.3078658624650001,\n        \"mean\": 1.283300375665,\n        \"median\": 1.282167388465,\n        \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n        \"min\": 1.2680449394650002,\n        \"stddev\": 0.01586539302076975,\n        \"system\": 0.013374965000000003,\n        \"time\": 1.270967589465,\n        \"user\": 1.2625939699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n        \"max\": 1.3078658624650001,\n        \"mean\": 1.283300375665,\n        \"median\": 1.282167388465,\n        \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n        \"min\": 1.2680449394650002,\n        \"stddev\": 0.01586539302076975,\n        \"system\": 0.013374965000000003,\n        \"time\": 1.2680449394650002,\n        \"user\": 1.2625939699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n        \"max\": 1.3078658624650001,\n        \"mean\": 1.283300375665,\n        \"median\": 1.282167388465,\n        \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n        \"min\": 1.2680449394650002,\n        \"stddev\": 0.01586539302076975,\n        \"system\": 0.013374965000000003,\n        \"time\": 1.287456098465,\n        \"user\": 1.2625939699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-0cabaa4b4a3d55857fa3cda445ad066b8dac5d1c\",\n        \"max\": 1.3078658624650001,\n        \"mean\": 1.283300375665,\n        \"median\": 1.282167388465,\n        \"message\": \"Revert \\\"Only output color if stdout is a tty\\\"\\n\\nThis reverts commit e0e2d5fb1ea52294afb0d7ed4ab59752b13b3c41.\\n\\nPipe to ansifilter if this is needed\\n\",\n        \"min\": 1.2680449394650002,\n        \"stddev\": 0.01586539302076975,\n        \"system\": 0.013374965000000003,\n        \"time\": 1.282167388465,\n        \"user\": 1.2625939699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n        \"max\": 1.306779272585,\n        \"mean\": 1.281321168185,\n        \"median\": 1.279478721585,\n        \"message\": \"Output all input lines\\n\",\n        \"min\": 1.263003205585,\n        \"stddev\": 0.015890256363835502,\n        \"system\": 0.013057825,\n        \"time\": 1.306779272585,\n        \"user\": 1.261532095\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n        \"max\": 1.306779272585,\n        \"mean\": 1.281321168185,\n        \"median\": 1.279478721585,\n        \"message\": \"Output all input lines\\n\",\n        \"min\": 1.263003205585,\n        \"stddev\": 0.015890256363835502,\n        \"system\": 0.013057825,\n        \"time\": 1.280783097585,\n        \"user\": 1.261532095\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n        \"max\": 1.306779272585,\n        \"mean\": 1.281321168185,\n        \"median\": 1.279478721585,\n        \"message\": \"Output all input lines\\n\",\n        \"min\": 1.263003205585,\n        \"stddev\": 0.015890256363835502,\n        \"system\": 0.013057825,\n        \"time\": 1.279478721585,\n        \"user\": 1.261532095\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n        \"max\": 1.306779272585,\n        \"mean\": 1.281321168185,\n        \"median\": 1.279478721585,\n        \"message\": \"Output all input lines\\n\",\n        \"min\": 1.263003205585,\n        \"stddev\": 0.015890256363835502,\n        \"system\": 0.013057825,\n        \"time\": 1.263003205585,\n        \"user\": 1.261532095\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7dc1c93a4057085eed9721b56aa1db472ba7fef3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-7dc1c93a4057085eed9721b56aa1db472ba7fef3\",\n        \"max\": 1.306779272585,\n        \"mean\": 1.281321168185,\n        \"median\": 1.279478721585,\n        \"message\": \"Output all input lines\\n\",\n        \"min\": 1.263003205585,\n        \"stddev\": 0.015890256363835502,\n        \"system\": 0.013057825,\n        \"time\": 1.2765615435850002,\n        \"user\": 1.261532095\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n        \"max\": 1.3170821103950001,\n        \"mean\": 1.2875588453950002,\n        \"median\": 1.279567914395,\n        \"message\": \"Parse file names and extensions\\n\",\n        \"min\": 1.2679314053950002,\n        \"stddev\": 0.019607706847450848,\n        \"system\": 0.012664169999999999,\n        \"time\": 1.3170821103950001,\n        \"user\": 1.2671468399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n        \"max\": 1.3170821103950001,\n        \"mean\": 1.2875588453950002,\n        \"median\": 1.279567914395,\n        \"message\": \"Parse file names and extensions\\n\",\n        \"min\": 1.2679314053950002,\n        \"stddev\": 0.019607706847450848,\n        \"system\": 0.012664169999999999,\n        \"time\": 1.279567914395,\n        \"user\": 1.2671468399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n        \"max\": 1.3170821103950001,\n        \"mean\": 1.2875588453950002,\n        \"median\": 1.279567914395,\n        \"message\": \"Parse file names and extensions\\n\",\n        \"min\": 1.2679314053950002,\n        \"stddev\": 0.019607706847450848,\n        \"system\": 0.012664169999999999,\n        \"time\": 1.2762304693950002,\n        \"user\": 1.2671468399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n        \"max\": 1.3170821103950001,\n        \"mean\": 1.2875588453950002,\n        \"median\": 1.279567914395,\n        \"message\": \"Parse file names and extensions\\n\",\n        \"min\": 1.2679314053950002,\n        \"stddev\": 0.019607706847450848,\n        \"system\": 0.012664169999999999,\n        \"time\": 1.2679314053950002,\n        \"user\": 1.2671468399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a81c86cc4cf42f23ea2ef83459e2a54933ccdda1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-a81c86cc4cf42f23ea2ef83459e2a54933ccdda1\",\n        \"max\": 1.3170821103950001,\n        \"mean\": 1.2875588453950002,\n        \"median\": 1.279567914395,\n        \"message\": \"Parse file names and extensions\\n\",\n        \"min\": 1.2679314053950002,\n        \"stddev\": 0.019607706847450848,\n        \"system\": 0.012664169999999999,\n        \"time\": 1.296982327395,\n        \"user\": 1.2671468399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n        \"max\": 1.337927386085,\n        \"mean\": 1.2936735486850002,\n        \"median\": 1.285242003085,\n        \"message\": \"Refactor colorizing\\n\",\n        \"min\": 1.268432733085,\n        \"stddev\": 0.02733443283849715,\n        \"system\": 0.01306481,\n        \"time\": 1.2999177400850002,\n        \"user\": 1.27318684\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n        \"max\": 1.337927386085,\n        \"mean\": 1.2936735486850002,\n        \"median\": 1.285242003085,\n        \"message\": \"Refactor colorizing\\n\",\n        \"min\": 1.268432733085,\n        \"stddev\": 0.02733443283849715,\n        \"system\": 0.01306481,\n        \"time\": 1.337927386085,\n        \"user\": 1.27318684\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n        \"max\": 1.337927386085,\n        \"mean\": 1.2936735486850002,\n        \"median\": 1.285242003085,\n        \"message\": \"Refactor colorizing\\n\",\n        \"min\": 1.268432733085,\n        \"stddev\": 0.02733443283849715,\n        \"system\": 0.01306481,\n        \"time\": 1.268432733085,\n        \"user\": 1.27318684\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n        \"max\": 1.337927386085,\n        \"mean\": 1.2936735486850002,\n        \"median\": 1.285242003085,\n        \"message\": \"Refactor colorizing\\n\",\n        \"min\": 1.268432733085,\n        \"stddev\": 0.02733443283849715,\n        \"system\": 0.01306481,\n        \"time\": 1.2768478810850001,\n        \"user\": 1.27318684\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/be5f329e1b5394e840012f2d70456cd0422001c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-be5f329e1b5394e840012f2d70456cd0422001c2\",\n        \"max\": 1.337927386085,\n        \"mean\": 1.2936735486850002,\n        \"median\": 1.285242003085,\n        \"message\": \"Refactor colorizing\\n\",\n        \"min\": 1.268432733085,\n        \"stddev\": 0.02733443283849715,\n        \"system\": 0.01306481,\n        \"time\": 1.285242003085,\n        \"user\": 1.27318684\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n        \"max\": 1.3504896123,\n        \"mean\": 1.2965328481,\n        \"median\": 1.2871109893,\n        \"message\": \"Retain original colors except in diff hunks\\n\",\n        \"min\": 1.2725778293,\n        \"stddev\": 0.03119221013734713,\n        \"system\": 0.013726579999999999,\n        \"time\": 1.3504896123,\n        \"user\": 1.2743089250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n        \"max\": 1.3504896123,\n        \"mean\": 1.2965328481,\n        \"median\": 1.2871109893,\n        \"message\": \"Retain original colors except in diff hunks\\n\",\n        \"min\": 1.2725778293,\n        \"stddev\": 0.03119221013734713,\n        \"system\": 0.013726579999999999,\n        \"time\": 1.2871109893,\n        \"user\": 1.2743089250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n        \"max\": 1.3504896123,\n        \"mean\": 1.2965328481,\n        \"median\": 1.2871109893,\n        \"message\": \"Retain original colors except in diff hunks\\n\",\n        \"min\": 1.2725778293,\n        \"stddev\": 0.03119221013734713,\n        \"system\": 0.013726579999999999,\n        \"time\": 1.2725778293,\n        \"user\": 1.2743089250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n        \"max\": 1.3504896123,\n        \"mean\": 1.2965328481,\n        \"median\": 1.2871109893,\n        \"message\": \"Retain original colors except in diff hunks\\n\",\n        \"min\": 1.2725778293,\n        \"stddev\": 0.03119221013734713,\n        \"system\": 0.013726579999999999,\n        \"time\": 1.2935265603000001,\n        \"user\": 1.2743089250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6f1a38bcc9e61aad7598845176817c21bac54cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-c6f1a38bcc9e61aad7598845176817c21bac54cd\",\n        \"max\": 1.3504896123,\n        \"mean\": 1.2965328481,\n        \"median\": 1.2871109893,\n        \"message\": \"Retain original colors except in diff hunks\\n\",\n        \"min\": 1.2725778293,\n        \"stddev\": 0.03119221013734713,\n        \"system\": 0.013726579999999999,\n        \"time\": 1.2789592493000002,\n        \"user\": 1.2743089250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n        \"max\": 0.07290294816000001,\n        \"mean\": 0.05615010436000001,\n        \"median\": 0.05160438316,\n        \"message\": \"Only output color if stdout is a tty\\n\",\n        \"min\": 0.05028951316000001,\n        \"stddev\": 0.009612273891511088,\n        \"system\": 0.00856352,\n        \"time\": 0.07290294816000001,\n        \"user\": 0.04225882999999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n        \"max\": 0.07290294816000001,\n        \"mean\": 0.05615010436000001,\n        \"median\": 0.05160438316,\n        \"message\": \"Only output color if stdout is a tty\\n\",\n        \"min\": 0.05028951316000001,\n        \"stddev\": 0.009612273891511088,\n        \"system\": 0.00856352,\n        \"time\": 0.05028951316000001,\n        \"user\": 0.04225882999999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n        \"max\": 0.07290294816000001,\n        \"mean\": 0.05615010436000001,\n        \"median\": 0.05160438316,\n        \"message\": \"Only output color if stdout is a tty\\n\",\n        \"min\": 0.05028951316000001,\n        \"stddev\": 0.009612273891511088,\n        \"system\": 0.00856352,\n        \"time\": 0.05035232716000001,\n        \"user\": 0.04225882999999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n        \"max\": 0.07290294816000001,\n        \"mean\": 0.05615010436000001,\n        \"median\": 0.05160438316,\n        \"message\": \"Only output color if stdout is a tty\\n\",\n        \"min\": 0.05028951316000001,\n        \"stddev\": 0.009612273891511088,\n        \"system\": 0.00856352,\n        \"time\": 0.05560135016000001,\n        \"user\": 0.04225882999999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f076e143e4befe7271187ae52652a0079f1733d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561557541-f076e143e4befe7271187ae52652a0079f1733d3\",\n        \"max\": 0.07290294816000001,\n        \"mean\": 0.05615010436000001,\n        \"median\": 0.05160438316,\n        \"message\": \"Only output color if stdout is a tty\\n\",\n        \"min\": 0.05028951316000001,\n        \"stddev\": 0.009612273891511088,\n        \"system\": 0.00856352,\n        \"time\": 0.05160438316,\n        \"user\": 0.04225882999999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n        \"max\": 0.90688154825,\n        \"mean\": 0.8898036314500001,\n        \"median\": 0.89191407325,\n        \"message\": \"Propagate unexpected error\\n\",\n        \"min\": 0.86352095825,\n        \"stddev\": 0.01758747299300613,\n        \"system\": 0.01220984,\n        \"time\": 0.90688154825,\n        \"user\": 0.8695821799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n        \"max\": 0.90688154825,\n        \"mean\": 0.8898036314500001,\n        \"median\": 0.89191407325,\n        \"message\": \"Propagate unexpected error\\n\",\n        \"min\": 0.86352095825,\n        \"stddev\": 0.01758747299300613,\n        \"system\": 0.01220984,\n        \"time\": 0.88273890725,\n        \"user\": 0.8695821799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n        \"max\": 0.90688154825,\n        \"mean\": 0.8898036314500001,\n        \"median\": 0.89191407325,\n        \"message\": \"Propagate unexpected error\\n\",\n        \"min\": 0.86352095825,\n        \"stddev\": 0.01758747299300613,\n        \"system\": 0.01220984,\n        \"time\": 0.86352095825,\n        \"user\": 0.8695821799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n        \"max\": 0.90688154825,\n        \"mean\": 0.8898036314500001,\n        \"median\": 0.89191407325,\n        \"message\": \"Propagate unexpected error\\n\",\n        \"min\": 0.86352095825,\n        \"stddev\": 0.01758747299300613,\n        \"system\": 0.01220984,\n        \"time\": 0.90396267025,\n        \"user\": 0.8695821799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-0f7ef3cdac2fdff0536a37e56a5d4cd05cba7dae\",\n        \"max\": 0.90688154825,\n        \"mean\": 0.8898036314500001,\n        \"median\": 0.89191407325,\n        \"message\": \"Propagate unexpected error\\n\",\n        \"min\": 0.86352095825,\n        \"stddev\": 0.01758747299300613,\n        \"system\": 0.01220984,\n        \"time\": 0.89191407325,\n        \"user\": 0.8695821799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n        \"max\": 0.9140197943300001,\n        \"mean\": 0.8720106193300001,\n        \"median\": 0.8633942953300001,\n        \"message\": \"Change variable name\\n\",\n        \"min\": 0.85137515233,\n        \"stddev\": 0.02492324659284292,\n        \"system\": 0.012058609999999999,\n        \"time\": 0.9140197943300001,\n        \"user\": 0.85166689\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n        \"max\": 0.9140197943300001,\n        \"mean\": 0.8720106193300001,\n        \"median\": 0.8633942953300001,\n        \"message\": \"Change variable name\\n\",\n        \"min\": 0.85137515233,\n        \"stddev\": 0.02492324659284292,\n        \"system\": 0.012058609999999999,\n        \"time\": 0.8633942953300001,\n        \"user\": 0.85166689\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n        \"max\": 0.9140197943300001,\n        \"mean\": 0.8720106193300001,\n        \"median\": 0.8633942953300001,\n        \"message\": \"Change variable name\\n\",\n        \"min\": 0.85137515233,\n        \"stddev\": 0.02492324659284292,\n        \"system\": 0.012058609999999999,\n        \"time\": 0.85137515233,\n        \"user\": 0.85166689\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n        \"max\": 0.9140197943300001,\n        \"mean\": 0.8720106193300001,\n        \"median\": 0.8633942953300001,\n        \"message\": \"Change variable name\\n\",\n        \"min\": 0.85137515233,\n        \"stddev\": 0.02492324659284292,\n        \"system\": 0.012058609999999999,\n        \"time\": 0.8573113763300001,\n        \"user\": 0.85166689\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/147e923c49c410522b0f1b6372d71254f5015413 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-147e923c49c410522b0f1b6372d71254f5015413\",\n        \"max\": 0.9140197943300001,\n        \"mean\": 0.8720106193300001,\n        \"median\": 0.8633942953300001,\n        \"message\": \"Change variable name\\n\",\n        \"min\": 0.85137515233,\n        \"stddev\": 0.02492324659284292,\n        \"system\": 0.012058609999999999,\n        \"time\": 0.8739524783300001,\n        \"user\": 0.85166689\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n        \"max\": 1.1736815141999999,\n        \"mean\": 1.14287729,\n        \"median\": 1.1343865582,\n        \"message\": \"Right pad to 100 char width\\n\",\n        \"min\": 1.1333326322,\n        \"stddev\": 0.017353996285769453,\n        \"system\": 0.013226374999999999,\n        \"time\": 1.1736815141999999,\n        \"user\": 1.12190921\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n        \"max\": 1.1736815141999999,\n        \"mean\": 1.14287729,\n        \"median\": 1.1343865582,\n        \"message\": \"Right pad to 100 char width\\n\",\n        \"min\": 1.1333326322,\n        \"stddev\": 0.017353996285769453,\n        \"system\": 0.013226374999999999,\n        \"time\": 1.1388412691999998,\n        \"user\": 1.12190921\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n        \"max\": 1.1736815141999999,\n        \"mean\": 1.14287729,\n        \"median\": 1.1343865582,\n        \"message\": \"Right pad to 100 char width\\n\",\n        \"min\": 1.1333326322,\n        \"stddev\": 0.017353996285769453,\n        \"system\": 0.013226374999999999,\n        \"time\": 1.1341444762,\n        \"user\": 1.12190921\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n        \"max\": 1.1736815141999999,\n        \"mean\": 1.14287729,\n        \"median\": 1.1343865582,\n        \"message\": \"Right pad to 100 char width\\n\",\n        \"min\": 1.1333326322,\n        \"stddev\": 0.017353996285769453,\n        \"system\": 0.013226374999999999,\n        \"time\": 1.1333326322,\n        \"user\": 1.12190921\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/183eba159f7e79a7addb599e2b52b39442cf9ee0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-183eba159f7e79a7addb599e2b52b39442cf9ee0\",\n        \"max\": 1.1736815141999999,\n        \"mean\": 1.14287729,\n        \"median\": 1.1343865582,\n        \"message\": \"Right pad to 100 char width\\n\",\n        \"min\": 1.1333326322,\n        \"stddev\": 0.017353996285769453,\n        \"system\": 0.013226374999999999,\n        \"time\": 1.1343865582,\n        \"user\": 1.12190921\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n        \"max\": 1.229544771405,\n        \"mean\": 1.1897444654049998,\n        \"median\": 1.178834927405,\n        \"message\": \"Change names\\n\",\n        \"min\": 1.169623287405,\n        \"stddev\": 0.024081288435104632,\n        \"system\": 0.01159385,\n        \"time\": 1.176052770405,\n        \"user\": 1.174339325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n        \"max\": 1.229544771405,\n        \"mean\": 1.1897444654049998,\n        \"median\": 1.178834927405,\n        \"message\": \"Change names\\n\",\n        \"min\": 1.169623287405,\n        \"stddev\": 0.024081288435104632,\n        \"system\": 0.01159385,\n        \"time\": 1.229544771405,\n        \"user\": 1.174339325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n        \"max\": 1.229544771405,\n        \"mean\": 1.1897444654049998,\n        \"median\": 1.178834927405,\n        \"message\": \"Change names\\n\",\n        \"min\": 1.169623287405,\n        \"stddev\": 0.024081288435104632,\n        \"system\": 0.01159385,\n        \"time\": 1.178834927405,\n        \"user\": 1.174339325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n        \"max\": 1.229544771405,\n        \"mean\": 1.1897444654049998,\n        \"median\": 1.178834927405,\n        \"message\": \"Change names\\n\",\n        \"min\": 1.169623287405,\n        \"stddev\": 0.024081288435104632,\n        \"system\": 0.01159385,\n        \"time\": 1.169623287405,\n        \"user\": 1.174339325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36d1de25e92a5e07bc18f4ec052bf5ca62894ccb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-36d1de25e92a5e07bc18f4ec052bf5ca62894ccb\",\n        \"max\": 1.229544771405,\n        \"mean\": 1.1897444654049998,\n        \"median\": 1.178834927405,\n        \"message\": \"Change names\\n\",\n        \"min\": 1.169623287405,\n        \"stddev\": 0.024081288435104632,\n        \"system\": 0.01159385,\n        \"time\": 1.194666570405,\n        \"user\": 1.174339325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n        \"max\": 0.9181808724050001,\n        \"mean\": 0.8896215520050001,\n        \"median\": 0.8926811844050001,\n        \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n        \"min\": 0.8688448094050001,\n        \"stddev\": 0.0203802270974175,\n        \"system\": 0.014323454999999999,\n        \"time\": 0.9181808724050001,\n        \"user\": 0.8675435049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n        \"max\": 0.9181808724050001,\n        \"mean\": 0.8896215520050001,\n        \"median\": 0.8926811844050001,\n        \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n        \"min\": 0.8688448094050001,\n        \"stddev\": 0.0203802270974175,\n        \"system\": 0.014323454999999999,\n        \"time\": 0.8710480954050001,\n        \"user\": 0.8675435049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n        \"max\": 0.9181808724050001,\n        \"mean\": 0.8896215520050001,\n        \"median\": 0.8926811844050001,\n        \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n        \"min\": 0.8688448094050001,\n        \"stddev\": 0.0203802270974175,\n        \"system\": 0.014323454999999999,\n        \"time\": 0.8688448094050001,\n        \"user\": 0.8675435049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n        \"max\": 0.9181808724050001,\n        \"mean\": 0.8896215520050001,\n        \"median\": 0.8926811844050001,\n        \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n        \"min\": 0.8688448094050001,\n        \"stddev\": 0.0203802270974175,\n        \"system\": 0.014323454999999999,\n        \"time\": 0.8973527984050002,\n        \"user\": 0.8675435049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3d927f4ffa9d871240b7f02fb2c7a206646d0ba2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-3d927f4ffa9d871240b7f02fb2c7a206646d0ba2\",\n        \"max\": 0.9181808724050001,\n        \"mean\": 0.8896215520050001,\n        \"median\": 0.8926811844050001,\n        \"message\": \"Only replace a space character if we removed a {+,-}\\n\",\n        \"min\": 0.8688448094050001,\n        \"stddev\": 0.0203802270974175,\n        \"system\": 0.014323454999999999,\n        \"time\": 0.8926811844050001,\n        \"user\": 0.8675435049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n        \"max\": 0.8790327780350001,\n        \"mean\": 0.868378139435,\n        \"median\": 0.8654903110350001,\n        \"message\": \"Handle broken pipe\\n\",\n        \"min\": 0.861418168035,\n        \"stddev\": 0.006924769788771303,\n        \"system\": 0.012166674999999998,\n        \"time\": 0.8790327780350001,\n        \"user\": 0.84826893\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n        \"max\": 0.8790327780350001,\n        \"mean\": 0.868378139435,\n        \"median\": 0.8654903110350001,\n        \"message\": \"Handle broken pipe\\n\",\n        \"min\": 0.861418168035,\n        \"stddev\": 0.006924769788771303,\n        \"system\": 0.012166674999999998,\n        \"time\": 0.8712291150350001,\n        \"user\": 0.84826893\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n        \"max\": 0.8790327780350001,\n        \"mean\": 0.868378139435,\n        \"median\": 0.8654903110350001,\n        \"message\": \"Handle broken pipe\\n\",\n        \"min\": 0.861418168035,\n        \"stddev\": 0.006924769788771303,\n        \"system\": 0.012166674999999998,\n        \"time\": 0.8647203250350001,\n        \"user\": 0.84826893\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n        \"max\": 0.8790327780350001,\n        \"mean\": 0.868378139435,\n        \"median\": 0.8654903110350001,\n        \"message\": \"Handle broken pipe\\n\",\n        \"min\": 0.861418168035,\n        \"stddev\": 0.006924769788771303,\n        \"system\": 0.012166674999999998,\n        \"time\": 0.8654903110350001,\n        \"user\": 0.84826893\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-4d54c0f7e28e95d4958bd2dcbf76189fd8cfe305\",\n        \"max\": 0.8790327780350001,\n        \"mean\": 0.868378139435,\n        \"median\": 0.8654903110350001,\n        \"message\": \"Handle broken pipe\\n\",\n        \"min\": 0.861418168035,\n        \"stddev\": 0.006924769788771303,\n        \"system\": 0.012166674999999998,\n        \"time\": 0.861418168035,\n        \"user\": 0.84826893\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n        \"max\": 1.205067971315,\n        \"mean\": 1.184838782315,\n        \"median\": 1.182129461315,\n        \"message\": \"Don't panic unnecessarily\\n\",\n        \"min\": 1.168574356315,\n        \"stddev\": 0.016895709478940566,\n        \"system\": 0.012825675,\n        \"time\": 1.199376480315,\n        \"user\": 1.1645645100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n        \"max\": 1.205067971315,\n        \"mean\": 1.184838782315,\n        \"median\": 1.182129461315,\n        \"message\": \"Don't panic unnecessarily\\n\",\n        \"min\": 1.168574356315,\n        \"stddev\": 0.016895709478940566,\n        \"system\": 0.012825675,\n        \"time\": 1.168574356315,\n        \"user\": 1.1645645100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n        \"max\": 1.205067971315,\n        \"mean\": 1.184838782315,\n        \"median\": 1.182129461315,\n        \"message\": \"Don't panic unnecessarily\\n\",\n        \"min\": 1.168574356315,\n        \"stddev\": 0.016895709478940566,\n        \"system\": 0.012825675,\n        \"time\": 1.182129461315,\n        \"user\": 1.1645645100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n        \"max\": 1.205067971315,\n        \"mean\": 1.184838782315,\n        \"median\": 1.182129461315,\n        \"message\": \"Don't panic unnecessarily\\n\",\n        \"min\": 1.168574356315,\n        \"stddev\": 0.016895709478940566,\n        \"system\": 0.012825675,\n        \"time\": 1.205067971315,\n        \"user\": 1.1645645100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-6bc6ccfc1ce7802aa5c51b43140c11ebdaaf1363\",\n        \"max\": 1.205067971315,\n        \"mean\": 1.184838782315,\n        \"median\": 1.182129461315,\n        \"message\": \"Don't panic unnecessarily\\n\",\n        \"min\": 1.168574356315,\n        \"stddev\": 0.016895709478940566,\n        \"system\": 0.012825675,\n        \"time\": 1.169045642315,\n        \"user\": 1.1645645100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n        \"max\": 0.895909015965,\n        \"mean\": 0.8755587809650001,\n        \"median\": 0.876428335965,\n        \"message\": \"Dark theme\\n\",\n        \"min\": 0.8591795519650001,\n        \"stddev\": 0.014795556298685706,\n        \"system\": 0.011857234999999999,\n        \"time\": 0.895909015965,\n        \"user\": 0.8577141349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n        \"max\": 0.895909015965,\n        \"mean\": 0.8755587809650001,\n        \"median\": 0.876428335965,\n        \"message\": \"Dark theme\\n\",\n        \"min\": 0.8591795519650001,\n        \"stddev\": 0.014795556298685706,\n        \"system\": 0.011857234999999999,\n        \"time\": 0.8826451059650001,\n        \"user\": 0.8577141349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n        \"max\": 0.895909015965,\n        \"mean\": 0.8755587809650001,\n        \"median\": 0.876428335965,\n        \"message\": \"Dark theme\\n\",\n        \"min\": 0.8591795519650001,\n        \"stddev\": 0.014795556298685706,\n        \"system\": 0.011857234999999999,\n        \"time\": 0.863631894965,\n        \"user\": 0.8577141349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n        \"max\": 0.895909015965,\n        \"mean\": 0.8755587809650001,\n        \"median\": 0.876428335965,\n        \"message\": \"Dark theme\\n\",\n        \"min\": 0.8591795519650001,\n        \"stddev\": 0.014795556298685706,\n        \"system\": 0.011857234999999999,\n        \"time\": 0.8591795519650001,\n        \"user\": 0.8577141349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fab69669814b3d88868b5a4f6f0dc03b5165a3aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561560419-fab69669814b3d88868b5a4f6f0dc03b5165a3aa\",\n        \"max\": 0.895909015965,\n        \"mean\": 0.8755587809650001,\n        \"median\": 0.876428335965,\n        \"message\": \"Dark theme\\n\",\n        \"min\": 0.8591795519650001,\n        \"stddev\": 0.014795556298685706,\n        \"system\": 0.011857234999999999,\n        \"time\": 0.876428335965,\n        \"user\": 0.8577141349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n        \"max\": 1.201042077215,\n        \"mean\": 1.184312489815,\n        \"median\": 1.188260371215,\n        \"message\": \"README\\n\",\n        \"min\": 1.168236235215,\n        \"stddev\": 0.013068179488921826,\n        \"system\": 0.012302219999999999,\n        \"time\": 1.188260371215,\n        \"user\": 1.1646742749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n        \"max\": 1.201042077215,\n        \"mean\": 1.184312489815,\n        \"median\": 1.188260371215,\n        \"message\": \"README\\n\",\n        \"min\": 1.168236235215,\n        \"stddev\": 0.013068179488921826,\n        \"system\": 0.012302219999999999,\n        \"time\": 1.189712949215,\n        \"user\": 1.1646742749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n        \"max\": 1.201042077215,\n        \"mean\": 1.184312489815,\n        \"median\": 1.188260371215,\n        \"message\": \"README\\n\",\n        \"min\": 1.168236235215,\n        \"stddev\": 0.013068179488921826,\n        \"system\": 0.012302219999999999,\n        \"time\": 1.174310816215,\n        \"user\": 1.1646742749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n        \"max\": 1.201042077215,\n        \"mean\": 1.184312489815,\n        \"median\": 1.188260371215,\n        \"message\": \"README\\n\",\n        \"min\": 1.168236235215,\n        \"stddev\": 0.013068179488921826,\n        \"system\": 0.012302219999999999,\n        \"time\": 1.168236235215,\n        \"user\": 1.1646742749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01ce9b3ab437660807e9b6eeadd3d4b47c1071eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561566651-01ce9b3ab437660807e9b6eeadd3d4b47c1071eb\",\n        \"max\": 1.201042077215,\n        \"mean\": 1.184312489815,\n        \"median\": 1.188260371215,\n        \"message\": \"README\\n\",\n        \"min\": 1.168236235215,\n        \"stddev\": 0.013068179488921826,\n        \"system\": 0.012302219999999999,\n        \"time\": 1.201042077215,\n        \"user\": 1.1646742749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n        \"max\": 1.23961324446,\n        \"mean\": 1.22164833106,\n        \"median\": 1.21899107246,\n        \"message\": \"Fix doc comment\\n\",\n        \"min\": 1.1971438484599999,\n        \"stddev\": 0.016466663613139105,\n        \"system\": 0.014570989999999997,\n        \"time\": 1.23373154346,\n        \"user\": 1.2017125699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n        \"max\": 1.23961324446,\n        \"mean\": 1.22164833106,\n        \"median\": 1.21899107246,\n        \"message\": \"Fix doc comment\\n\",\n        \"min\": 1.1971438484599999,\n        \"stddev\": 0.016466663613139105,\n        \"system\": 0.014570989999999997,\n        \"time\": 1.1971438484599999,\n        \"user\": 1.2017125699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n        \"max\": 1.23961324446,\n        \"mean\": 1.22164833106,\n        \"median\": 1.21899107246,\n        \"message\": \"Fix doc comment\\n\",\n        \"min\": 1.1971438484599999,\n        \"stddev\": 0.016466663613139105,\n        \"system\": 0.014570989999999997,\n        \"time\": 1.21876194646,\n        \"user\": 1.2017125699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n        \"max\": 1.23961324446,\n        \"mean\": 1.22164833106,\n        \"median\": 1.21899107246,\n        \"message\": \"Fix doc comment\\n\",\n        \"min\": 1.1971438484599999,\n        \"stddev\": 0.016466663613139105,\n        \"system\": 0.014570989999999997,\n        \"time\": 1.21899107246,\n        \"user\": 1.2017125699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f173e03c86cef6c8bc5df61d456797b8a55ca1f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561567919-9f173e03c86cef6c8bc5df61d456797b8a55ca1f\",\n        \"max\": 1.23961324446,\n        \"mean\": 1.22164833106,\n        \"median\": 1.21899107246,\n        \"message\": \"Fix doc comment\\n\",\n        \"min\": 1.1971438484599999,\n        \"stddev\": 0.016466663613139105,\n        \"system\": 0.014570989999999997,\n        \"time\": 1.23961324446,\n        \"user\": 1.2017125699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n        \"max\": 1.220338428945,\n        \"mean\": 1.204832619345,\n        \"median\": 1.197841363945,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.192773073945,\n        \"stddev\": 0.012500842510422796,\n        \"system\": 0.013097684999999998,\n        \"time\": 1.192773073945,\n        \"user\": 1.1867291349999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n        \"max\": 1.220338428945,\n        \"mean\": 1.204832619345,\n        \"median\": 1.197841363945,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.192773073945,\n        \"stddev\": 0.012500842510422796,\n        \"system\": 0.013097684999999998,\n        \"time\": 1.216198350945,\n        \"user\": 1.1867291349999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n        \"max\": 1.220338428945,\n        \"mean\": 1.204832619345,\n        \"median\": 1.197841363945,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.192773073945,\n        \"stddev\": 0.012500842510422796,\n        \"system\": 0.013097684999999998,\n        \"time\": 1.197841363945,\n        \"user\": 1.1867291349999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n        \"max\": 1.220338428945,\n        \"mean\": 1.204832619345,\n        \"median\": 1.197841363945,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.192773073945,\n        \"stddev\": 0.012500842510422796,\n        \"system\": 0.013097684999999998,\n        \"time\": 1.1970118789450002,\n        \"user\": 1.1867291349999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2bd7d9ed9adbe8356c02debfcb3a4c500f74143 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561571955-c2bd7d9ed9adbe8356c02debfcb3a4c500f74143\",\n        \"max\": 1.220338428945,\n        \"mean\": 1.204832619345,\n        \"median\": 1.197841363945,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.192773073945,\n        \"stddev\": 0.012500842510422796,\n        \"system\": 0.013097684999999998,\n        \"time\": 1.220338428945,\n        \"user\": 1.1867291349999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n        \"max\": 1.4923686688900002,\n        \"mean\": 1.26565116889,\n        \"median\": 1.20893110889,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.1772592298900002,\n        \"stddev\": 0.12950223502070457,\n        \"system\": 0.02012179,\n        \"time\": 1.4923686688900002,\n        \"user\": 1.2303254250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n        \"max\": 1.4923686688900002,\n        \"mean\": 1.26565116889,\n        \"median\": 1.20893110889,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.1772592298900002,\n        \"stddev\": 0.12950223502070457,\n        \"system\": 0.02012179,\n        \"time\": 1.25056282789,\n        \"user\": 1.2303254250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n        \"max\": 1.4923686688900002,\n        \"mean\": 1.26565116889,\n        \"median\": 1.20893110889,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.1772592298900002,\n        \"stddev\": 0.12950223502070457,\n        \"system\": 0.02012179,\n        \"time\": 1.20893110889,\n        \"user\": 1.2303254250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n        \"max\": 1.4923686688900002,\n        \"mean\": 1.26565116889,\n        \"median\": 1.20893110889,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.1772592298900002,\n        \"stddev\": 0.12950223502070457,\n        \"system\": 0.02012179,\n        \"time\": 1.1991340088900002,\n        \"user\": 1.2303254250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/371a342d12e842347fa49522796795eabd181642 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561573257-371a342d12e842347fa49522796795eabd181642\",\n        \"max\": 1.4923686688900002,\n        \"mean\": 1.26565116889,\n        \"median\": 1.20893110889,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.1772592298900002,\n        \"stddev\": 0.12950223502070457,\n        \"system\": 0.02012179,\n        \"time\": 1.1772592298900002,\n        \"user\": 1.2303254250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n        \"max\": 1.3562416357350002,\n        \"mean\": 1.2580677129350002,\n        \"median\": 1.245651887735,\n        \"message\": \"Add notes about 24 bit color to README\\n\",\n        \"min\": 1.201443681735,\n        \"stddev\": 0.057959422884599696,\n        \"system\": 0.01796481,\n        \"time\": 1.246167995735,\n        \"user\": 1.2262239949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n        \"max\": 1.3562416357350002,\n        \"mean\": 1.2580677129350002,\n        \"median\": 1.245651887735,\n        \"message\": \"Add notes about 24 bit color to README\\n\",\n        \"min\": 1.201443681735,\n        \"stddev\": 0.057959422884599696,\n        \"system\": 0.01796481,\n        \"time\": 1.245651887735,\n        \"user\": 1.2262239949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n        \"max\": 1.3562416357350002,\n        \"mean\": 1.2580677129350002,\n        \"median\": 1.245651887735,\n        \"message\": \"Add notes about 24 bit color to README\\n\",\n        \"min\": 1.201443681735,\n        \"stddev\": 0.057959422884599696,\n        \"system\": 0.01796481,\n        \"time\": 1.201443681735,\n        \"user\": 1.2262239949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n        \"max\": 1.3562416357350002,\n        \"mean\": 1.2580677129350002,\n        \"median\": 1.245651887735,\n        \"message\": \"Add notes about 24 bit color to README\\n\",\n        \"min\": 1.201443681735,\n        \"stddev\": 0.057959422884599696,\n        \"system\": 0.01796481,\n        \"time\": 1.2408333637350002,\n        \"user\": 1.2262239949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d682e2fdad335ca189ec0630d6a78243bcfadd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561575478-d682e2fdad335ca189ec0630d6a78243bcfadd5e\",\n        \"max\": 1.3562416357350002,\n        \"mean\": 1.2580677129350002,\n        \"median\": 1.245651887735,\n        \"message\": \"Add notes about 24 bit color to README\\n\",\n        \"min\": 1.201443681735,\n        \"stddev\": 0.057959422884599696,\n        \"system\": 0.01796481,\n        \"time\": 1.3562416357350002,\n        \"user\": 1.2262239949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n        \"max\": 1.158901983775,\n        \"mean\": 1.152601096175,\n        \"median\": 1.156263073775,\n        \"message\": \"CLI\\n\",\n        \"min\": 1.134536608775,\n        \"stddev\": 0.010190948752626806,\n        \"system\": 0.014195734999999998,\n        \"time\": 1.158901983775,\n        \"user\": 1.1299437300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n        \"max\": 1.158901983775,\n        \"mean\": 1.152601096175,\n        \"median\": 1.156263073775,\n        \"message\": \"CLI\\n\",\n        \"min\": 1.134536608775,\n        \"stddev\": 0.010190948752626806,\n        \"system\": 0.014195734999999998,\n        \"time\": 1.157910206775,\n        \"user\": 1.1299437300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n        \"max\": 1.158901983775,\n        \"mean\": 1.152601096175,\n        \"median\": 1.156263073775,\n        \"message\": \"CLI\\n\",\n        \"min\": 1.134536608775,\n        \"stddev\": 0.010190948752626806,\n        \"system\": 0.014195734999999998,\n        \"time\": 1.134536608775,\n        \"user\": 1.1299437300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n        \"max\": 1.158901983775,\n        \"mean\": 1.152601096175,\n        \"median\": 1.156263073775,\n        \"message\": \"CLI\\n\",\n        \"min\": 1.134536608775,\n        \"stddev\": 0.010190948752626806,\n        \"system\": 0.014195734999999998,\n        \"time\": 1.155393607775,\n        \"user\": 1.1299437300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/598461c1395904f1e7a10414b6ad94fddaf02521 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561598352-598461c1395904f1e7a10414b6ad94fddaf02521\",\n        \"max\": 1.158901983775,\n        \"mean\": 1.152601096175,\n        \"median\": 1.156263073775,\n        \"message\": \"CLI\\n\",\n        \"min\": 1.134536608775,\n        \"stddev\": 0.010190948752626806,\n        \"system\": 0.014195734999999998,\n        \"time\": 1.156263073775,\n        \"user\": 1.1299437300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n        \"max\": 1.1554587647199999,\n        \"mean\": 1.13272000292,\n        \"median\": 1.12928589172,\n        \"message\": \"Factor out parse module\\n\",\n        \"min\": 1.11619804772,\n        \"stddev\": 0.014418784240754311,\n        \"system\": 0.012736765,\n        \"time\": 1.1554587647199999,\n        \"user\": 1.11215996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n        \"max\": 1.1554587647199999,\n        \"mean\": 1.13272000292,\n        \"median\": 1.12928589172,\n        \"message\": \"Factor out parse module\\n\",\n        \"min\": 1.11619804772,\n        \"stddev\": 0.014418784240754311,\n        \"system\": 0.012736765,\n        \"time\": 1.1277290547199998,\n        \"user\": 1.11215996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n        \"max\": 1.1554587647199999,\n        \"mean\": 1.13272000292,\n        \"median\": 1.12928589172,\n        \"message\": \"Factor out parse module\\n\",\n        \"min\": 1.11619804772,\n        \"stddev\": 0.014418784240754311,\n        \"system\": 0.012736765,\n        \"time\": 1.13492825572,\n        \"user\": 1.11215996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n        \"max\": 1.1554587647199999,\n        \"mean\": 1.13272000292,\n        \"median\": 1.12928589172,\n        \"message\": \"Factor out parse module\\n\",\n        \"min\": 1.11619804772,\n        \"stddev\": 0.014418784240754311,\n        \"system\": 0.012736765,\n        \"time\": 1.11619804772,\n        \"user\": 1.11215996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561599920-67b05c6f2e74bfef7f2e339ccbbac01e92c34e3c\",\n        \"max\": 1.1554587647199999,\n        \"mean\": 1.13272000292,\n        \"median\": 1.12928589172,\n        \"message\": \"Factor out parse module\\n\",\n        \"min\": 1.11619804772,\n        \"stddev\": 0.014418784240754311,\n        \"system\": 0.012736765,\n        \"time\": 1.12928589172,\n        \"user\": 1.11215996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n        \"max\": 1.16790207545,\n        \"mean\": 1.15049565465,\n        \"median\": 1.14960930745,\n        \"message\": \"Factor out paint module\\n\",\n        \"min\": 1.14025151645,\n        \"stddev\": 0.01102713685067341,\n        \"system\": 0.012165144999999999,\n        \"time\": 1.15274219445,\n        \"user\": 1.130922795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n        \"max\": 1.16790207545,\n        \"mean\": 1.15049565465,\n        \"median\": 1.14960930745,\n        \"message\": \"Factor out paint module\\n\",\n        \"min\": 1.14025151645,\n        \"stddev\": 0.01102713685067341,\n        \"system\": 0.012165144999999999,\n        \"time\": 1.14197317945,\n        \"user\": 1.130922795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n        \"max\": 1.16790207545,\n        \"mean\": 1.15049565465,\n        \"median\": 1.14960930745,\n        \"message\": \"Factor out paint module\\n\",\n        \"min\": 1.14025151645,\n        \"stddev\": 0.01102713685067341,\n        \"system\": 0.012165144999999999,\n        \"time\": 1.14960930745,\n        \"user\": 1.130922795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n        \"max\": 1.16790207545,\n        \"mean\": 1.15049565465,\n        \"median\": 1.14960930745,\n        \"message\": \"Factor out paint module\\n\",\n        \"min\": 1.14025151645,\n        \"stddev\": 0.01102713685067341,\n        \"system\": 0.012165144999999999,\n        \"time\": 1.16790207545,\n        \"user\": 1.130922795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62c4d298066cf532797a8fadb9fedd6796869005 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-62c4d298066cf532797a8fadb9fedd6796869005\",\n        \"max\": 1.16790207545,\n        \"mean\": 1.15049565465,\n        \"median\": 1.14960930745,\n        \"message\": \"Factor out paint module\\n\",\n        \"min\": 1.14025151645,\n        \"stddev\": 0.01102713685067341,\n        \"system\": 0.012165144999999999,\n        \"time\": 1.14025151645,\n        \"user\": 1.130922795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n        \"max\": 1.225632805095,\n        \"mean\": 1.155840738895,\n        \"median\": 1.133623357095,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.129389469095,\n        \"stddev\": 0.04057032526969006,\n        \"system\": 0.01243827,\n        \"time\": 1.225632805095,\n        \"user\": 1.13618304\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n        \"max\": 1.225632805095,\n        \"mean\": 1.155840738895,\n        \"median\": 1.133623357095,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.129389469095,\n        \"stddev\": 0.04057032526969006,\n        \"system\": 0.01243827,\n        \"time\": 1.157454655095,\n        \"user\": 1.13618304\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n        \"max\": 1.225632805095,\n        \"mean\": 1.155840738895,\n        \"median\": 1.133623357095,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.129389469095,\n        \"stddev\": 0.04057032526969006,\n        \"system\": 0.01243827,\n        \"time\": 1.133103408095,\n        \"user\": 1.13618304\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n        \"max\": 1.225632805095,\n        \"mean\": 1.155840738895,\n        \"median\": 1.133623357095,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.129389469095,\n        \"stddev\": 0.04057032526969006,\n        \"system\": 0.01243827,\n        \"time\": 1.129389469095,\n        \"user\": 1.13618304\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a16853b4d17fdb84879882c8a412b26a0b525e9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561642979-6a16853b4d17fdb84879882c8a412b26a0b525e9\",\n        \"max\": 1.225632805095,\n        \"mean\": 1.155840738895,\n        \"median\": 1.133623357095,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.129389469095,\n        \"stddev\": 0.04057032526969006,\n        \"system\": 0.01243827,\n        \"time\": 1.133623357095,\n        \"user\": 1.13618304\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n        \"max\": 1.5935502567550002,\n        \"mean\": 1.528340965755,\n        \"median\": 1.5285057617550002,\n        \"message\": \"CLI (Hack)\\n\",\n        \"min\": 1.466762328755,\n        \"stddev\": 0.05314946921369519,\n        \"system\": 0.01590001,\n        \"time\": 1.5285057617550002,\n        \"user\": 1.5037501450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n        \"max\": 1.5935502567550002,\n        \"mean\": 1.528340965755,\n        \"median\": 1.5285057617550002,\n        \"message\": \"CLI (Hack)\\n\",\n        \"min\": 1.466762328755,\n        \"stddev\": 0.05314946921369519,\n        \"system\": 0.01590001,\n        \"time\": 1.466762328755,\n        \"user\": 1.5037501450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n        \"max\": 1.5935502567550002,\n        \"mean\": 1.528340965755,\n        \"median\": 1.5285057617550002,\n        \"message\": \"CLI (Hack)\\n\",\n        \"min\": 1.466762328755,\n        \"stddev\": 0.05314946921369519,\n        \"system\": 0.01590001,\n        \"time\": 1.486144020755,\n        \"user\": 1.5037501450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n        \"max\": 1.5935502567550002,\n        \"mean\": 1.528340965755,\n        \"median\": 1.5285057617550002,\n        \"message\": \"CLI (Hack)\\n\",\n        \"min\": 1.466762328755,\n        \"stddev\": 0.05314946921369519,\n        \"system\": 0.01590001,\n        \"time\": 1.5935502567550002,\n        \"user\": 1.5037501450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6d9a7abf06c823f2b9e3f074cf0cbede871b8a40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561645635-6d9a7abf06c823f2b9e3f074cf0cbede871b8a40\",\n        \"max\": 1.5935502567550002,\n        \"mean\": 1.528340965755,\n        \"median\": 1.5285057617550002,\n        \"message\": \"CLI (Hack)\\n\",\n        \"min\": 1.466762328755,\n        \"stddev\": 0.05314946921369519,\n        \"system\": 0.01590001,\n        \"time\": 1.566742460755,\n        \"user\": 1.5037501450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n        \"max\": 1.6203238392100001,\n        \"mean\": 1.5900129658100002,\n        \"median\": 1.5784853492100002,\n        \"message\": \"Tweak default colors\\n\",\n        \"min\": 1.5713652712100001,\n        \"stddev\": 0.021367589701250453,\n        \"system\": 0.01968358,\n        \"time\": 1.6203238392100001,\n        \"user\": 1.560370795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n        \"max\": 1.6203238392100001,\n        \"mean\": 1.5900129658100002,\n        \"median\": 1.5784853492100002,\n        \"message\": \"Tweak default colors\\n\",\n        \"min\": 1.5713652712100001,\n        \"stddev\": 0.021367589701250453,\n        \"system\": 0.01968358,\n        \"time\": 1.5713652712100001,\n        \"user\": 1.560370795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n        \"max\": 1.6203238392100001,\n        \"mean\": 1.5900129658100002,\n        \"median\": 1.5784853492100002,\n        \"message\": \"Tweak default colors\\n\",\n        \"min\": 1.5713652712100001,\n        \"stddev\": 0.021367589701250453,\n        \"system\": 0.01968358,\n        \"time\": 1.5753350022100001,\n        \"user\": 1.560370795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n        \"max\": 1.6203238392100001,\n        \"mean\": 1.5900129658100002,\n        \"median\": 1.5784853492100002,\n        \"message\": \"Tweak default colors\\n\",\n        \"min\": 1.5713652712100001,\n        \"stddev\": 0.021367589701250453,\n        \"system\": 0.01968358,\n        \"time\": 1.6045553672100001,\n        \"user\": 1.560370795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3692e62eb83278e60cf257445589622d7155ec35 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-3692e62eb83278e60cf257445589622d7155ec35\",\n        \"max\": 1.6203238392100001,\n        \"mean\": 1.5900129658100002,\n        \"median\": 1.5784853492100002,\n        \"message\": \"Tweak default colors\\n\",\n        \"min\": 1.5713652712100001,\n        \"stddev\": 0.021367589701250453,\n        \"system\": 0.01968358,\n        \"time\": 1.5784853492100002,\n        \"user\": 1.560370795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n        \"max\": 1.305461515505,\n        \"mean\": 1.285040883905,\n        \"median\": 1.290718452505,\n        \"message\": \"Homor --width argument\\n\",\n        \"min\": 1.253247793505,\n        \"stddev\": 0.019796134506459468,\n        \"system\": 0.016471575,\n        \"time\": 1.305461515505,\n        \"user\": 1.260764665\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n        \"max\": 1.305461515505,\n        \"mean\": 1.285040883905,\n        \"median\": 1.290718452505,\n        \"message\": \"Homor --width argument\\n\",\n        \"min\": 1.253247793505,\n        \"stddev\": 0.019796134506459468,\n        \"system\": 0.016471575,\n        \"time\": 1.281132061505,\n        \"user\": 1.260764665\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n        \"max\": 1.305461515505,\n        \"mean\": 1.285040883905,\n        \"median\": 1.290718452505,\n        \"message\": \"Homor --width argument\\n\",\n        \"min\": 1.253247793505,\n        \"stddev\": 0.019796134506459468,\n        \"system\": 0.016471575,\n        \"time\": 1.290718452505,\n        \"user\": 1.260764665\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n        \"max\": 1.305461515505,\n        \"mean\": 1.285040883905,\n        \"median\": 1.290718452505,\n        \"message\": \"Homor --width argument\\n\",\n        \"min\": 1.253247793505,\n        \"stddev\": 0.019796134506459468,\n        \"system\": 0.016471575,\n        \"time\": 1.294644596505,\n        \"user\": 1.260764665\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a20a593f2fc07049afc3dcc1115431f77f3cd62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-6a20a593f2fc07049afc3dcc1115431f77f3cd62\",\n        \"max\": 1.305461515505,\n        \"mean\": 1.285040883905,\n        \"median\": 1.290718452505,\n        \"message\": \"Homor --width argument\\n\",\n        \"min\": 1.253247793505,\n        \"stddev\": 0.019796134506459468,\n        \"system\": 0.016471575,\n        \"time\": 1.253247793505,\n        \"user\": 1.260764665\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n        \"max\": 1.612212336845,\n        \"mean\": 1.5747616346450002,\n        \"median\": 1.5811417658450002,\n        \"message\": \"CLI: --minus-color and --plus-color\\n\",\n        \"min\": 1.513014643845,\n        \"stddev\": 0.03928807715934216,\n        \"system\": 0.01923357,\n        \"time\": 1.612212336845,\n        \"user\": 1.54502618\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n        \"max\": 1.612212336845,\n        \"mean\": 1.5747616346450002,\n        \"median\": 1.5811417658450002,\n        \"message\": \"CLI: --minus-color and --plus-color\\n\",\n        \"min\": 1.513014643845,\n        \"stddev\": 0.03928807715934216,\n        \"system\": 0.01923357,\n        \"time\": 1.6031846258450002,\n        \"user\": 1.54502618\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n        \"max\": 1.612212336845,\n        \"mean\": 1.5747616346450002,\n        \"median\": 1.5811417658450002,\n        \"message\": \"CLI: --minus-color and --plus-color\\n\",\n        \"min\": 1.513014643845,\n        \"stddev\": 0.03928807715934216,\n        \"system\": 0.01923357,\n        \"time\": 1.5642548008450001,\n        \"user\": 1.54502618\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n        \"max\": 1.612212336845,\n        \"mean\": 1.5747616346450002,\n        \"median\": 1.5811417658450002,\n        \"message\": \"CLI: --minus-color and --plus-color\\n\",\n        \"min\": 1.513014643845,\n        \"stddev\": 0.03928807715934216,\n        \"system\": 0.01923357,\n        \"time\": 1.513014643845,\n        \"user\": 1.54502618\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/941f87c72315ea4b201e30625e8160cb415bb5c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-941f87c72315ea4b201e30625e8160cb415bb5c9\",\n        \"max\": 1.612212336845,\n        \"mean\": 1.5747616346450002,\n        \"median\": 1.5811417658450002,\n        \"message\": \"CLI: --minus-color and --plus-color\\n\",\n        \"min\": 1.513014643845,\n        \"stddev\": 0.03928807715934216,\n        \"system\": 0.01923357,\n        \"time\": 1.5811417658450002,\n        \"user\": 1.54502618\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n        \"max\": 1.80189388135,\n        \"mean\": 1.65032888555,\n        \"median\": 1.62032018535,\n        \"message\": \"Set unused alpha values to FF\\n\",\n        \"min\": 1.59262242235,\n        \"stddev\": 0.08576499014911297,\n        \"system\": 0.02411945,\n        \"time\": 1.62032018535,\n        \"user\": 1.60673563\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n        \"max\": 1.80189388135,\n        \"mean\": 1.65032888555,\n        \"median\": 1.62032018535,\n        \"message\": \"Set unused alpha values to FF\\n\",\n        \"min\": 1.59262242235,\n        \"stddev\": 0.08576499014911297,\n        \"system\": 0.02411945,\n        \"time\": 1.62793359835,\n        \"user\": 1.60673563\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n        \"max\": 1.80189388135,\n        \"mean\": 1.65032888555,\n        \"median\": 1.62032018535,\n        \"message\": \"Set unused alpha values to FF\\n\",\n        \"min\": 1.59262242235,\n        \"stddev\": 0.08576499014911297,\n        \"system\": 0.02411945,\n        \"time\": 1.80189388135,\n        \"user\": 1.60673563\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n        \"max\": 1.80189388135,\n        \"mean\": 1.65032888555,\n        \"median\": 1.62032018535,\n        \"message\": \"Set unused alpha values to FF\\n\",\n        \"min\": 1.59262242235,\n        \"stddev\": 0.08576499014911297,\n        \"system\": 0.02411945,\n        \"time\": 1.59262242235,\n        \"user\": 1.60673563\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d3262c8f76cf93ffe1860916dabf1a38907861e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-d3262c8f76cf93ffe1860916dabf1a38907861e0\",\n        \"max\": 1.80189388135,\n        \"mean\": 1.65032888555,\n        \"median\": 1.62032018535,\n        \"message\": \"Set unused alpha values to FF\\n\",\n        \"min\": 1.59262242235,\n        \"stddev\": 0.08576499014911297,\n        \"system\": 0.02411945,\n        \"time\": 1.60887434035,\n        \"user\": 1.60673563\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n        \"max\": 1.60165905216,\n        \"mean\": 1.54501278096,\n        \"median\": 1.53205015416,\n        \"message\": \"Parse color arguments\\n\",\n        \"min\": 1.49818612816,\n        \"stddev\": 0.04532971353533284,\n        \"system\": 0.017451574999999997,\n        \"time\": 1.58294791616,\n        \"user\": 1.51949468\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n        \"max\": 1.60165905216,\n        \"mean\": 1.54501278096,\n        \"median\": 1.53205015416,\n        \"message\": \"Parse color arguments\\n\",\n        \"min\": 1.49818612816,\n        \"stddev\": 0.04532971353533284,\n        \"system\": 0.017451574999999997,\n        \"time\": 1.49818612816,\n        \"user\": 1.51949468\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n        \"max\": 1.60165905216,\n        \"mean\": 1.54501278096,\n        \"median\": 1.53205015416,\n        \"message\": \"Parse color arguments\\n\",\n        \"min\": 1.49818612816,\n        \"stddev\": 0.04532971353533284,\n        \"system\": 0.017451574999999997,\n        \"time\": 1.53205015416,\n        \"user\": 1.51949468\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n        \"max\": 1.60165905216,\n        \"mean\": 1.54501278096,\n        \"median\": 1.53205015416,\n        \"message\": \"Parse color arguments\\n\",\n        \"min\": 1.49818612816,\n        \"stddev\": 0.04532971353533284,\n        \"system\": 0.017451574999999997,\n        \"time\": 1.5102206541599998,\n        \"user\": 1.51949468\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ebdd13c9cba21f0eb4f2006962516f48d532ff8c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648306-ebdd13c9cba21f0eb4f2006962516f48d532ff8c\",\n        \"max\": 1.60165905216,\n        \"mean\": 1.54501278096,\n        \"median\": 1.53205015416,\n        \"message\": \"Parse color arguments\\n\",\n        \"min\": 1.49818612816,\n        \"stddev\": 0.04532971353533284,\n        \"system\": 0.017451574999999997,\n        \"time\": 1.60165905216,\n        \"user\": 1.51949468\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n        \"max\": 1.3426381814100001,\n        \"mean\": 1.31205006881,\n        \"median\": 1.30963073141,\n        \"message\": \"Help text and README\\n\",\n        \"min\": 1.2845426854100002,\n        \"stddev\": 0.02067991013278509,\n        \"system\": 0.0178275,\n        \"time\": 1.3092420714100002,\n        \"user\": 1.287438375\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n        \"max\": 1.3426381814100001,\n        \"mean\": 1.31205006881,\n        \"median\": 1.30963073141,\n        \"message\": \"Help text and README\\n\",\n        \"min\": 1.2845426854100002,\n        \"stddev\": 0.02067991013278509,\n        \"system\": 0.0178275,\n        \"time\": 1.3426381814100001,\n        \"user\": 1.287438375\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n        \"max\": 1.3426381814100001,\n        \"mean\": 1.31205006881,\n        \"median\": 1.30963073141,\n        \"message\": \"Help text and README\\n\",\n        \"min\": 1.2845426854100002,\n        \"stddev\": 0.02067991013278509,\n        \"system\": 0.0178275,\n        \"time\": 1.2845426854100002,\n        \"user\": 1.287438375\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n        \"max\": 1.3426381814100001,\n        \"mean\": 1.31205006881,\n        \"median\": 1.30963073141,\n        \"message\": \"Help text and README\\n\",\n        \"min\": 1.2845426854100002,\n        \"stddev\": 0.02067991013278509,\n        \"system\": 0.0178275,\n        \"time\": 1.30963073141,\n        \"user\": 1.287438375\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c3a9288a3e120246671ccac5348a0d2cbd92664 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561648634-2c3a9288a3e120246671ccac5348a0d2cbd92664\",\n        \"max\": 1.3426381814100001,\n        \"mean\": 1.31205006881,\n        \"median\": 1.30963073141,\n        \"message\": \"Help text and README\\n\",\n        \"min\": 1.2845426854100002,\n        \"stddev\": 0.02067991013278509,\n        \"system\": 0.0178275,\n        \"time\": 1.3141966744100002,\n        \"user\": 1.287438375\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n        \"max\": 1.3863121131,\n        \"mean\": 1.3296589065,\n        \"median\": 1.3250017791,\n        \"message\": \"README\\n\",\n        \"min\": 1.2945990211,\n        \"stddev\": 0.034577927968874766,\n        \"system\": 0.01982588,\n        \"time\": 1.3863121131,\n        \"user\": 1.2990884950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n        \"max\": 1.3863121131,\n        \"mean\": 1.3296589065,\n        \"median\": 1.3250017791,\n        \"message\": \"README\\n\",\n        \"min\": 1.2945990211,\n        \"stddev\": 0.034577927968874766,\n        \"system\": 0.01982588,\n        \"time\": 1.3250017791,\n        \"user\": 1.2990884950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n        \"max\": 1.3863121131,\n        \"mean\": 1.3296589065,\n        \"median\": 1.3250017791,\n        \"message\": \"README\\n\",\n        \"min\": 1.2945990211,\n        \"stddev\": 0.034577927968874766,\n        \"system\": 0.01982588,\n        \"time\": 1.3117397551,\n        \"user\": 1.2990884950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n        \"max\": 1.3863121131,\n        \"mean\": 1.3296589065,\n        \"median\": 1.3250017791,\n        \"message\": \"README\\n\",\n        \"min\": 1.2945990211,\n        \"stddev\": 0.034577927968874766,\n        \"system\": 0.01982588,\n        \"time\": 1.3306418641,\n        \"user\": 1.2990884950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6fcc5562bd7d2b3b68253d3b795041cdcf4c8953 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-6fcc5562bd7d2b3b68253d3b795041cdcf4c8953\",\n        \"max\": 1.3863121131,\n        \"mean\": 1.3296589065,\n        \"median\": 1.3250017791,\n        \"message\": \"README\\n\",\n        \"min\": 1.2945990211,\n        \"stddev\": 0.034577927968874766,\n        \"system\": 0.01982588,\n        \"time\": 1.2945990211,\n        \"user\": 1.2990884950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n        \"max\": 1.6808073530999998,\n        \"mean\": 1.3749284774999997,\n        \"median\": 1.2821008410999999,\n        \"message\": \"Simplify CLI argument handling\\n\",\n        \"min\": 1.2786900431,\n        \"stddev\": 0.17396015650403934,\n        \"system\": 0.02072697,\n        \"time\": 1.2786900431,\n        \"user\": 1.333761345\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n        \"max\": 1.6808073530999998,\n        \"mean\": 1.3749284774999997,\n        \"median\": 1.2821008410999999,\n        \"message\": \"Simplify CLI argument handling\\n\",\n        \"min\": 1.2786900431,\n        \"stddev\": 0.17396015650403934,\n        \"system\": 0.02072697,\n        \"time\": 1.2821008410999999,\n        \"user\": 1.333761345\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n        \"max\": 1.6808073530999998,\n        \"mean\": 1.3749284774999997,\n        \"median\": 1.2821008410999999,\n        \"message\": \"Simplify CLI argument handling\\n\",\n        \"min\": 1.2786900431,\n        \"stddev\": 0.17396015650403934,\n        \"system\": 0.02072697,\n        \"time\": 1.2792042800999999,\n        \"user\": 1.333761345\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n        \"max\": 1.6808073530999998,\n        \"mean\": 1.3749284774999997,\n        \"median\": 1.2821008410999999,\n        \"message\": \"Simplify CLI argument handling\\n\",\n        \"min\": 1.2786900431,\n        \"stddev\": 0.17396015650403934,\n        \"system\": 0.02072697,\n        \"time\": 1.3538398701,\n        \"user\": 1.333761345\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da441a8f8d7c7bdc916817d89ee4bf189cb17e8a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561650067-da441a8f8d7c7bdc916817d89ee4bf189cb17e8a\",\n        \"max\": 1.6808073530999998,\n        \"mean\": 1.3749284774999997,\n        \"median\": 1.2821008410999999,\n        \"message\": \"Simplify CLI argument handling\\n\",\n        \"min\": 1.2786900431,\n        \"stddev\": 0.17396015650403934,\n        \"system\": 0.02072697,\n        \"time\": 1.6808073530999998,\n        \"user\": 1.333761345\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n        \"max\": 1.2866685717800002,\n        \"mean\": 1.2779332081800003,\n        \"median\": 1.2784649567800002,\n        \"message\": \"Add image\\n\",\n        \"min\": 1.27174087978,\n        \"stddev\": 0.005786918041309367,\n        \"system\": 0.01474634,\n        \"time\": 1.27174087978,\n        \"user\": 1.2585459049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n        \"max\": 1.2866685717800002,\n        \"mean\": 1.2779332081800003,\n        \"median\": 1.2784649567800002,\n        \"message\": \"Add image\\n\",\n        \"min\": 1.27174087978,\n        \"stddev\": 0.005786918041309367,\n        \"system\": 0.01474634,\n        \"time\": 1.2866685717800002,\n        \"user\": 1.2585459049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n        \"max\": 1.2866685717800002,\n        \"mean\": 1.2779332081800003,\n        \"median\": 1.2784649567800002,\n        \"message\": \"Add image\\n\",\n        \"min\": 1.27174087978,\n        \"stddev\": 0.005786918041309367,\n        \"system\": 0.01474634,\n        \"time\": 1.27372259078,\n        \"user\": 1.2585459049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n        \"max\": 1.2866685717800002,\n        \"mean\": 1.2779332081800003,\n        \"median\": 1.2784649567800002,\n        \"message\": \"Add image\\n\",\n        \"min\": 1.27174087978,\n        \"stddev\": 0.005786918041309367,\n        \"system\": 0.01474634,\n        \"time\": 1.2790690417800001,\n        \"user\": 1.2585459049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/93b6cf6e36c350593d79df3ec1abb54fb49d9e1c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561652908-93b6cf6e36c350593d79df3ec1abb54fb49d9e1c\",\n        \"max\": 1.2866685717800002,\n        \"mean\": 1.2779332081800003,\n        \"median\": 1.2784649567800002,\n        \"message\": \"Add image\\n\",\n        \"min\": 1.27174087978,\n        \"stddev\": 0.005786918041309367,\n        \"system\": 0.01474634,\n        \"time\": 1.2784649567800002,\n        \"user\": 1.2585459049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n        \"max\": 1.297424234495,\n        \"mean\": 1.280315403695,\n        \"median\": 1.282443284495,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.267497346495,\n        \"stddev\": 0.011644475123727821,\n        \"system\": 0.014894545,\n        \"time\": 1.297424234495,\n        \"user\": 1.26065747\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n        \"max\": 1.297424234495,\n        \"mean\": 1.280315403695,\n        \"median\": 1.282443284495,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.267497346495,\n        \"stddev\": 0.011644475123727821,\n        \"system\": 0.014894545,\n        \"time\": 1.267497346495,\n        \"user\": 1.26065747\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n        \"max\": 1.297424234495,\n        \"mean\": 1.280315403695,\n        \"median\": 1.282443284495,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.267497346495,\n        \"stddev\": 0.011644475123727821,\n        \"system\": 0.014894545,\n        \"time\": 1.282443284495,\n        \"user\": 1.26065747\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n        \"max\": 1.297424234495,\n        \"mean\": 1.280315403695,\n        \"median\": 1.282443284495,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.267497346495,\n        \"stddev\": 0.011644475123727821,\n        \"system\": 0.014894545,\n        \"time\": 1.271618222495,\n        \"user\": 1.26065747\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a96ad5779c8ed1701b53b01b0beb48639e5404c3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561653550-a96ad5779c8ed1701b53b01b0beb48639e5404c3\",\n        \"max\": 1.297424234495,\n        \"mean\": 1.280315403695,\n        \"median\": 1.282443284495,\n        \"message\": \"Edit README\\n\",\n        \"min\": 1.267497346495,\n        \"stddev\": 0.011644475123727821,\n        \"system\": 0.014894545,\n        \"time\": 1.2825939304949998,\n        \"user\": 1.26065747\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n        \"max\": 1.29233126235,\n        \"mean\": 1.27775266735,\n        \"median\": 1.27690597735,\n        \"message\": \"README: passing arguments in .gitconfig\\n\",\n        \"min\": 1.26311245035,\n        \"stddev\": 0.011070169851415738,\n        \"system\": 0.014903449999999999,\n        \"time\": 1.29233126235,\n        \"user\": 1.25479805\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n        \"max\": 1.29233126235,\n        \"mean\": 1.27775266735,\n        \"median\": 1.27690597735,\n        \"message\": \"README: passing arguments in .gitconfig\\n\",\n        \"min\": 1.26311245035,\n        \"stddev\": 0.011070169851415738,\n        \"system\": 0.014903449999999999,\n        \"time\": 1.27690597735,\n        \"user\": 1.25479805\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n        \"max\": 1.29233126235,\n        \"mean\": 1.27775266735,\n        \"median\": 1.27690597735,\n        \"message\": \"README: passing arguments in .gitconfig\\n\",\n        \"min\": 1.26311245035,\n        \"stddev\": 0.011070169851415738,\n        \"system\": 0.014903449999999999,\n        \"time\": 1.28378328535,\n        \"user\": 1.25479805\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n        \"max\": 1.29233126235,\n        \"mean\": 1.27775266735,\n        \"median\": 1.27690597735,\n        \"message\": \"README: passing arguments in .gitconfig\\n\",\n        \"min\": 1.26311245035,\n        \"stddev\": 0.011070169851415738,\n        \"system\": 0.014903449999999999,\n        \"time\": 1.26311245035,\n        \"user\": 1.25479805\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8f16a88b20cf8f0267214302babdb1ce4439fb2b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561665054-8f16a88b20cf8f0267214302babdb1ce4439fb2b\",\n        \"max\": 1.29233126235,\n        \"mean\": 1.27775266735,\n        \"median\": 1.27690597735,\n        \"message\": \"README: passing arguments in .gitconfig\\n\",\n        \"min\": 1.26311245035,\n        \"stddev\": 0.011070169851415738,\n        \"system\": 0.014903449999999999,\n        \"time\": 1.27263036135,\n        \"user\": 1.25479805\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n        \"max\": 1.29440434944,\n        \"mean\": 1.2771002456399998,\n        \"median\": 1.27169981944,\n        \"message\": \"Tweak usage text\\n\",\n        \"min\": 1.2620485094399998,\n        \"stddev\": 0.013465574453355082,\n        \"system\": 0.01502566,\n        \"time\": 1.28776218644,\n        \"user\": 1.2554261899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n        \"max\": 1.29440434944,\n        \"mean\": 1.2771002456399998,\n        \"median\": 1.27169981944,\n        \"message\": \"Tweak usage text\\n\",\n        \"min\": 1.2620485094399998,\n        \"stddev\": 0.013465574453355082,\n        \"system\": 0.01502566,\n        \"time\": 1.27169981944,\n        \"user\": 1.2554261899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n        \"max\": 1.29440434944,\n        \"mean\": 1.2771002456399998,\n        \"median\": 1.27169981944,\n        \"message\": \"Tweak usage text\\n\",\n        \"min\": 1.2620485094399998,\n        \"stddev\": 0.013465574453355082,\n        \"system\": 0.01502566,\n        \"time\": 1.26958636344,\n        \"user\": 1.2554261899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n        \"max\": 1.29440434944,\n        \"mean\": 1.2771002456399998,\n        \"median\": 1.27169981944,\n        \"message\": \"Tweak usage text\\n\",\n        \"min\": 1.2620485094399998,\n        \"stddev\": 0.013465574453355082,\n        \"system\": 0.01502566,\n        \"time\": 1.29440434944,\n        \"user\": 1.2554261899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561685663-f2a67e9fd07feb0380a0ab4c6292b551b0e9bd5e\",\n        \"max\": 1.29440434944,\n        \"mean\": 1.2771002456399998,\n        \"median\": 1.27169981944,\n        \"message\": \"Tweak usage text\\n\",\n        \"min\": 1.2620485094399998,\n        \"stddev\": 0.013465574453355082,\n        \"system\": 0.01502566,\n        \"time\": 1.2620485094399998,\n        \"user\": 1.2554261899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n        \"max\": 1.30444091234,\n        \"mean\": 1.2856398071400001,\n        \"median\": 1.28004841034,\n        \"message\": \"Move trait declarations to top level\\n\",\n        \"min\": 1.27125952534,\n        \"stddev\": 0.013120166043817171,\n        \"system\": 0.01518773,\n        \"time\": 1.30444091234,\n        \"user\": 1.2621922749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n        \"max\": 1.30444091234,\n        \"mean\": 1.2856398071400001,\n        \"median\": 1.28004841034,\n        \"message\": \"Move trait declarations to top level\\n\",\n        \"min\": 1.27125952534,\n        \"stddev\": 0.013120166043817171,\n        \"system\": 0.01518773,\n        \"time\": 1.28004841034,\n        \"user\": 1.2621922749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n        \"max\": 1.30444091234,\n        \"mean\": 1.2856398071400001,\n        \"median\": 1.28004841034,\n        \"message\": \"Move trait declarations to top level\\n\",\n        \"min\": 1.27125952534,\n        \"stddev\": 0.013120166043817171,\n        \"system\": 0.01518773,\n        \"time\": 1.27125952534,\n        \"user\": 1.2621922749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n        \"max\": 1.30444091234,\n        \"mean\": 1.2856398071400001,\n        \"median\": 1.28004841034,\n        \"message\": \"Move trait declarations to top level\\n\",\n        \"min\": 1.27125952534,\n        \"stddev\": 0.013120166043817171,\n        \"system\": 0.01518773,\n        \"time\": 1.27928491634,\n        \"user\": 1.2621922749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a6cb868aa05ae40611db0c30f8533a61e1ceb5f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561693595-4a6cb868aa05ae40611db0c30f8533a61e1ceb5f\",\n        \"max\": 1.30444091234,\n        \"mean\": 1.2856398071400001,\n        \"median\": 1.28004841034,\n        \"message\": \"Move trait declarations to top level\\n\",\n        \"min\": 1.27125952534,\n        \"stddev\": 0.013120166043817171,\n        \"system\": 0.01518773,\n        \"time\": 1.29316527134,\n        \"user\": 1.2621922749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n        \"max\": 1.3936729904,\n        \"mean\": 1.3020501364000001,\n        \"median\": 1.2761507644,\n        \"message\": \"Refactor: store paint config in a struct\\n\",\n        \"min\": 1.2675087224000001,\n        \"stddev\": 0.05255562525589456,\n        \"system\": 0.017037180000000002,\n        \"time\": 1.2987794144,\n        \"user\": 1.274554555\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n        \"max\": 1.3936729904,\n        \"mean\": 1.3020501364000001,\n        \"median\": 1.2761507644,\n        \"message\": \"Refactor: store paint config in a struct\\n\",\n        \"min\": 1.2675087224000001,\n        \"stddev\": 0.05255562525589456,\n        \"system\": 0.017037180000000002,\n        \"time\": 1.2741387904,\n        \"user\": 1.274554555\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n        \"max\": 1.3936729904,\n        \"mean\": 1.3020501364000001,\n        \"median\": 1.2761507644,\n        \"message\": \"Refactor: store paint config in a struct\\n\",\n        \"min\": 1.2675087224000001,\n        \"stddev\": 0.05255562525589456,\n        \"system\": 0.017037180000000002,\n        \"time\": 1.3936729904,\n        \"user\": 1.274554555\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n        \"max\": 1.3936729904,\n        \"mean\": 1.3020501364000001,\n        \"median\": 1.2761507644,\n        \"message\": \"Refactor: store paint config in a struct\\n\",\n        \"min\": 1.2675087224000001,\n        \"stddev\": 0.05255562525589456,\n        \"system\": 0.017037180000000002,\n        \"time\": 1.2761507644,\n        \"user\": 1.274554555\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/87aeb6048af3148521c5d478fcf2ebae09a6f9d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561694699-87aeb6048af3148521c5d478fcf2ebae09a6f9d3\",\n        \"max\": 1.3936729904,\n        \"mean\": 1.3020501364000001,\n        \"median\": 1.2761507644,\n        \"message\": \"Refactor: store paint config in a struct\\n\",\n        \"min\": 1.2675087224000001,\n        \"stddev\": 0.05255562525589456,\n        \"system\": 0.017037180000000002,\n        \"time\": 1.2675087224000001,\n        \"user\": 1.274554555\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n        \"max\": 1.293794344645,\n        \"mean\": 1.2747414272450002,\n        \"median\": 1.268885955645,\n        \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n        \"min\": 1.266144561645,\n        \"stddev\": 0.011781751108419874,\n        \"system\": 0.015095309999999997,\n        \"time\": 1.293794344645,\n        \"user\": 1.251573945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n        \"max\": 1.293794344645,\n        \"mean\": 1.2747414272450002,\n        \"median\": 1.268885955645,\n        \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n        \"min\": 1.266144561645,\n        \"stddev\": 0.011781751108419874,\n        \"system\": 0.015095309999999997,\n        \"time\": 1.278501238645,\n        \"user\": 1.251573945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n        \"max\": 1.293794344645,\n        \"mean\": 1.2747414272450002,\n        \"median\": 1.268885955645,\n        \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n        \"min\": 1.266144561645,\n        \"stddev\": 0.011781751108419874,\n        \"system\": 0.015095309999999997,\n        \"time\": 1.266381035645,\n        \"user\": 1.251573945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n        \"max\": 1.293794344645,\n        \"mean\": 1.2747414272450002,\n        \"median\": 1.268885955645,\n        \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n        \"min\": 1.266144561645,\n        \"stddev\": 0.011781751108419874,\n        \"system\": 0.015095309999999997,\n        \"time\": 1.266144561645,\n        \"user\": 1.251573945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4179f5bc0c1f76000f3c6eb4c75133034ff03e64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561695892-4179f5bc0c1f76000f3c6eb4c75133034ff03e64\",\n        \"max\": 1.293794344645,\n        \"mean\": 1.2747414272450002,\n        \"median\": 1.268885955645,\n        \"message\": \"Refactor: function in paint module to assemble config\\n\\nThe lifetime specification may be incorrect/inappropriate; its\\njustification is that it compiles.\\n\",\n        \"min\": 1.266144561645,\n        \"stddev\": 0.011781751108419874,\n        \"system\": 0.015095309999999997,\n        \"time\": 1.268885955645,\n        \"user\": 1.251573945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n        \"max\": 1.294440167975,\n        \"mean\": 1.275354452175,\n        \"median\": 1.268429521975,\n        \"message\": \"Refactor: continue paint config refactor\\n\",\n        \"min\": 1.262564169975,\n        \"stddev\": 0.013657124384161433,\n        \"system\": 0.01541032,\n        \"time\": 1.294440167975,\n        \"user\": 1.2522484249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n        \"max\": 1.294440167975,\n        \"mean\": 1.275354452175,\n        \"median\": 1.268429521975,\n        \"message\": \"Refactor: continue paint config refactor\\n\",\n        \"min\": 1.262564169975,\n        \"stddev\": 0.013657124384161433,\n        \"system\": 0.01541032,\n        \"time\": 1.268429521975,\n        \"user\": 1.2522484249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n        \"max\": 1.294440167975,\n        \"mean\": 1.275354452175,\n        \"median\": 1.268429521975,\n        \"message\": \"Refactor: continue paint config refactor\\n\",\n        \"min\": 1.262564169975,\n        \"stddev\": 0.013657124384161433,\n        \"system\": 0.01541032,\n        \"time\": 1.262564169975,\n        \"user\": 1.2522484249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n        \"max\": 1.294440167975,\n        \"mean\": 1.275354452175,\n        \"median\": 1.268429521975,\n        \"message\": \"Refactor: continue paint config refactor\\n\",\n        \"min\": 1.262564169975,\n        \"stddev\": 0.013657124384161433,\n        \"system\": 0.01541032,\n        \"time\": 1.284890358975,\n        \"user\": 1.2522484249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/adcef5f72363c24b5723536a15d4214b11c5afa5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561696753-adcef5f72363c24b5723536a15d4214b11c5afa5\",\n        \"max\": 1.294440167975,\n        \"mean\": 1.275354452175,\n        \"median\": 1.268429521975,\n        \"message\": \"Refactor: continue paint config refactor\\n\",\n        \"min\": 1.262564169975,\n        \"stddev\": 0.013657124384161433,\n        \"system\": 0.01541032,\n        \"time\": 1.266448041975,\n        \"user\": 1.2522484249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n        \"max\": 1.288220240355,\n        \"mean\": 1.2813152925550002,\n        \"median\": 1.286933240355,\n        \"message\": \"Refactor: arg parsing\\n\",\n        \"min\": 1.268575328355,\n        \"stddev\": 0.00912047523629887,\n        \"system\": 0.01507058,\n        \"time\": 1.286933240355,\n        \"user\": 1.25804174\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n        \"max\": 1.288220240355,\n        \"mean\": 1.2813152925550002,\n        \"median\": 1.286933240355,\n        \"message\": \"Refactor: arg parsing\\n\",\n        \"min\": 1.268575328355,\n        \"stddev\": 0.00912047523629887,\n        \"system\": 0.01507058,\n        \"time\": 1.2881752113550002,\n        \"user\": 1.25804174\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n        \"max\": 1.288220240355,\n        \"mean\": 1.2813152925550002,\n        \"median\": 1.286933240355,\n        \"message\": \"Refactor: arg parsing\\n\",\n        \"min\": 1.268575328355,\n        \"stddev\": 0.00912047523629887,\n        \"system\": 0.01507058,\n        \"time\": 1.2746724423550002,\n        \"user\": 1.25804174\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n        \"max\": 1.288220240355,\n        \"mean\": 1.2813152925550002,\n        \"median\": 1.286933240355,\n        \"message\": \"Refactor: arg parsing\\n\",\n        \"min\": 1.268575328355,\n        \"stddev\": 0.00912047523629887,\n        \"system\": 0.01507058,\n        \"time\": 1.288220240355,\n        \"user\": 1.25804174\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/de78804c542b00f84db1b97e482eeca256fae36d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561737608-de78804c542b00f84db1b97e482eeca256fae36d\",\n        \"max\": 1.288220240355,\n        \"mean\": 1.2813152925550002,\n        \"median\": 1.286933240355,\n        \"message\": \"Refactor: arg parsing\\n\",\n        \"min\": 1.268575328355,\n        \"stddev\": 0.00912047523629887,\n        \"system\": 0.01507058,\n        \"time\": 1.268575328355,\n        \"user\": 1.25804174\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n        \"max\": 1.321224358065,\n        \"mean\": 1.2851293200649998,\n        \"median\": 1.275736022065,\n        \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n        \"min\": 1.2675766500649999,\n        \"stddev\": 0.021152038542406774,\n        \"system\": 0.015032614999999996,\n        \"time\": 1.321224358065,\n        \"user\": 1.2620781500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n        \"max\": 1.321224358065,\n        \"mean\": 1.2851293200649998,\n        \"median\": 1.275736022065,\n        \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n        \"min\": 1.2675766500649999,\n        \"stddev\": 0.021152038542406774,\n        \"system\": 0.015032614999999996,\n        \"time\": 1.275736022065,\n        \"user\": 1.2620781500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n        \"max\": 1.321224358065,\n        \"mean\": 1.2851293200649998,\n        \"median\": 1.275736022065,\n        \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n        \"min\": 1.2675766500649999,\n        \"stddev\": 0.021152038542406774,\n        \"system\": 0.015032614999999996,\n        \"time\": 1.2675766500649999,\n        \"user\": 1.2620781500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n        \"max\": 1.321224358065,\n        \"mean\": 1.2851293200649998,\n        \"median\": 1.275736022065,\n        \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n        \"min\": 1.2675766500649999,\n        \"stddev\": 0.021152038542406774,\n        \"system\": 0.015032614999999996,\n        \"time\": 1.285484296065,\n        \"user\": 1.2620781500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3f39600c3888ece6e2726ea82cc41a1fb09d4ded < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561741498-3f39600c3888ece6e2726ea82cc41a1fb09d4ded\",\n        \"max\": 1.321224358065,\n        \"mean\": 1.2851293200649998,\n        \"median\": 1.275736022065,\n        \"message\": \"Refactor: move paint responsibilities into paint module\\n\",\n        \"min\": 1.2675766500649999,\n        \"stddev\": 0.021152038542406774,\n        \"system\": 0.015032614999999996,\n        \"time\": 1.275625274065,\n        \"user\": 1.2620781500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n        \"max\": 1.2891691977950002,\n        \"mean\": 1.274292505595,\n        \"median\": 1.2772552247950002,\n        \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n        \"min\": 1.256388796795,\n        \"stddev\": 0.01248043207451188,\n        \"system\": 0.015243154999999998,\n        \"time\": 1.2891691977950002,\n        \"user\": 1.2524620599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n        \"max\": 1.2891691977950002,\n        \"mean\": 1.274292505595,\n        \"median\": 1.2772552247950002,\n        \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n        \"min\": 1.256388796795,\n        \"stddev\": 0.01248043207451188,\n        \"system\": 0.015243154999999998,\n        \"time\": 1.2772552247950002,\n        \"user\": 1.2524620599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n        \"max\": 1.2891691977950002,\n        \"mean\": 1.274292505595,\n        \"median\": 1.2772552247950002,\n        \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n        \"min\": 1.256388796795,\n        \"stddev\": 0.01248043207451188,\n        \"system\": 0.015243154999999998,\n        \"time\": 1.2803415557950002,\n        \"user\": 1.2524620599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n        \"max\": 1.2891691977950002,\n        \"mean\": 1.274292505595,\n        \"median\": 1.2772552247950002,\n        \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n        \"min\": 1.256388796795,\n        \"stddev\": 0.01248043207451188,\n        \"system\": 0.015243154999999998,\n        \"time\": 1.2683077527950002,\n        \"user\": 1.2524620599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01e3c321216316aa8d06fd3d1e6055b8df404211 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561779979-01e3c321216316aa8d06fd3d1e6055b8df404211\",\n        \"max\": 1.2891691977950002,\n        \"mean\": 1.274292505595,\n        \"median\": 1.2772552247950002,\n        \"message\": \"Allow output to be extended to terminal width ref #3\\n\",\n        \"min\": 1.256388796795,\n        \"stddev\": 0.01248043207451188,\n        \"system\": 0.015243154999999998,\n        \"time\": 1.256388796795,\n        \"user\": 1.2524620599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n        \"max\": 1.3096769242550002,\n        \"mean\": 1.2897920202550002,\n        \"median\": 1.301580208255,\n        \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n        \"min\": 1.265331727255,\n        \"stddev\": 0.020631308672577224,\n        \"system\": 0.015528465,\n        \"time\": 1.3096769242550002,\n        \"user\": 1.2673285399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n        \"max\": 1.3096769242550002,\n        \"mean\": 1.2897920202550002,\n        \"median\": 1.301580208255,\n        \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n        \"min\": 1.265331727255,\n        \"stddev\": 0.020631308672577224,\n        \"system\": 0.015528465,\n        \"time\": 1.265331727255,\n        \"user\": 1.2673285399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n        \"max\": 1.3096769242550002,\n        \"mean\": 1.2897920202550002,\n        \"median\": 1.301580208255,\n        \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n        \"min\": 1.265331727255,\n        \"stddev\": 0.020631308672577224,\n        \"system\": 0.015528465,\n        \"time\": 1.3026767492550002,\n        \"user\": 1.2673285399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n        \"max\": 1.3096769242550002,\n        \"mean\": 1.2897920202550002,\n        \"median\": 1.301580208255,\n        \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n        \"min\": 1.265331727255,\n        \"stddev\": 0.020631308672577224,\n        \"system\": 0.015528465,\n        \"time\": 1.2696944922550002,\n        \"user\": 1.2673285399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b111cb4496d9250cb0c25d828f03d64274992ed < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561780077-8b111cb4496d9250cb0c25d828f03d64274992ed\",\n        \"max\": 1.3096769242550002,\n        \"mean\": 1.2897920202550002,\n        \"median\": 1.301580208255,\n        \"message\": \"Do not support --width=max ref #3\\n\\nThis would require that delta starts the pager process rather than\\nusing a pipe. This is how bat is able to detect terminal width.\\n\",\n        \"min\": 1.265331727255,\n        \"stddev\": 0.020631308672577224,\n        \"system\": 0.015528465,\n        \"time\": 1.301580208255,\n        \"user\": 1.2673285399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n        \"max\": 1.336511504885,\n        \"mean\": 1.291186528285,\n        \"median\": 1.2776847658850001,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.268659789885,\n        \"stddev\": 0.028202179772142375,\n        \"system\": 0.016467515,\n        \"time\": 1.336511504885,\n        \"user\": 1.2665527099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n        \"max\": 1.336511504885,\n        \"mean\": 1.291186528285,\n        \"median\": 1.2776847658850001,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.268659789885,\n        \"stddev\": 0.028202179772142375,\n        \"system\": 0.016467515,\n        \"time\": 1.272500225885,\n        \"user\": 1.2665527099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n        \"max\": 1.336511504885,\n        \"mean\": 1.291186528285,\n        \"median\": 1.2776847658850001,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.268659789885,\n        \"stddev\": 0.028202179772142375,\n        \"system\": 0.016467515,\n        \"time\": 1.2776847658850001,\n        \"user\": 1.2665527099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n        \"max\": 1.336511504885,\n        \"mean\": 1.291186528285,\n        \"median\": 1.2776847658850001,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.268659789885,\n        \"stddev\": 0.028202179772142375,\n        \"system\": 0.016467515,\n        \"time\": 1.268659789885,\n        \"user\": 1.2665527099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e82b82fcfb131d658ce4f8d27be63d55711cc6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561844859-0e82b82fcfb131d658ce4f8d27be63d55711cc6f\",\n        \"max\": 1.336511504885,\n        \"mean\": 1.291186528285,\n        \"median\": 1.2776847658850001,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.268659789885,\n        \"stddev\": 0.028202179772142375,\n        \"system\": 0.016467515,\n        \"time\": 1.300576354885,\n        \"user\": 1.2665527099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n        \"max\": 1.41159171114,\n        \"mean\": 1.36022685294,\n        \"median\": 1.3533561231400002,\n        \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n        \"min\": 1.3063839941400002,\n        \"stddev\": 0.03918652772560552,\n        \"system\": 0.017165385,\n        \"time\": 1.3809328651400001,\n        \"user\": 1.332834775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n        \"max\": 1.41159171114,\n        \"mean\": 1.36022685294,\n        \"median\": 1.3533561231400002,\n        \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n        \"min\": 1.3063839941400002,\n        \"stddev\": 0.03918652772560552,\n        \"system\": 0.017165385,\n        \"time\": 1.3063839941400002,\n        \"user\": 1.332834775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n        \"max\": 1.41159171114,\n        \"mean\": 1.36022685294,\n        \"median\": 1.3533561231400002,\n        \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n        \"min\": 1.3063839941400002,\n        \"stddev\": 0.03918652772560552,\n        \"system\": 0.017165385,\n        \"time\": 1.3533561231400002,\n        \"user\": 1.332834775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n        \"max\": 1.41159171114,\n        \"mean\": 1.36022685294,\n        \"median\": 1.3533561231400002,\n        \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n        \"min\": 1.3063839941400002,\n        \"stddev\": 0.03918652772560552,\n        \"system\": 0.017165385,\n        \"time\": 1.41159171114,\n        \"user\": 1.332834775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6a34f9146d4efaae547e9c316c6016c8bbcf1833 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846377-6a34f9146d4efaae547e9c316c6016c8bbcf1833\",\n        \"max\": 1.41159171114,\n        \"mean\": 1.36022685294,\n        \"median\": 1.3533561231400002,\n        \"message\": \"Use syntax and theme data built by bat. Fixes #4, #5\\n\",\n        \"min\": 1.3063839941400002,\n        \"stddev\": 0.03918652772560552,\n        \"system\": 0.017165385,\n        \"time\": 1.34886957114,\n        \"user\": 1.332834775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n        \"max\": 1.378153352095,\n        \"mean\": 1.340544501495,\n        \"median\": 1.335233930095,\n        \"message\": \"Make list_languages work. Ref #6\\n\",\n        \"min\": 1.3131449880950001,\n        \"stddev\": 0.023659169418507278,\n        \"system\": 0.016566980000000002,\n        \"time\": 1.335233930095,\n        \"user\": 1.31575625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n        \"max\": 1.378153352095,\n        \"mean\": 1.340544501495,\n        \"median\": 1.335233930095,\n        \"message\": \"Make list_languages work. Ref #6\\n\",\n        \"min\": 1.3131449880950001,\n        \"stddev\": 0.023659169418507278,\n        \"system\": 0.016566980000000002,\n        \"time\": 1.3131449880950001,\n        \"user\": 1.31575625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n        \"max\": 1.378153352095,\n        \"mean\": 1.340544501495,\n        \"median\": 1.335233930095,\n        \"message\": \"Make list_languages work. Ref #6\\n\",\n        \"min\": 1.3131449880950001,\n        \"stddev\": 0.023659169418507278,\n        \"system\": 0.016566980000000002,\n        \"time\": 1.333992370095,\n        \"user\": 1.31575625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n        \"max\": 1.378153352095,\n        \"mean\": 1.340544501495,\n        \"median\": 1.335233930095,\n        \"message\": \"Make list_languages work. Ref #6\\n\",\n        \"min\": 1.3131449880950001,\n        \"stddev\": 0.023659169418507278,\n        \"system\": 0.016566980000000002,\n        \"time\": 1.378153352095,\n        \"user\": 1.31575625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/480e7fcbc1b94e846f8a65dcb041b37f30eb1f68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846381-480e7fcbc1b94e846f8a65dcb041b37f30eb1f68\",\n        \"max\": 1.378153352095,\n        \"mean\": 1.340544501495,\n        \"median\": 1.335233930095,\n        \"message\": \"Make list_languages work. Ref #6\\n\",\n        \"min\": 1.3131449880950001,\n        \"stddev\": 0.023659169418507278,\n        \"system\": 0.016566980000000002,\n        \"time\": 1.342197867095,\n        \"user\": 1.31575625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n        \"max\": 1.36138520799,\n        \"mean\": 1.34820111899,\n        \"median\": 1.35739836799,\n        \"message\": \"Make list_themes work. Fixes #6\\n\",\n        \"min\": 1.3247254769899999,\n        \"stddev\": 0.016035569724771985,\n        \"system\": 0.016874325000000003,\n        \"time\": 1.36138520799,\n        \"user\": 1.326389235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n        \"max\": 1.36138520799,\n        \"mean\": 1.34820111899,\n        \"median\": 1.35739836799,\n        \"message\": \"Make list_themes work. Fixes #6\\n\",\n        \"min\": 1.3247254769899999,\n        \"stddev\": 0.016035569724771985,\n        \"system\": 0.016874325000000003,\n        \"time\": 1.3247254769899999,\n        \"user\": 1.326389235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n        \"max\": 1.36138520799,\n        \"mean\": 1.34820111899,\n        \"median\": 1.35739836799,\n        \"message\": \"Make list_themes work. Fixes #6\\n\",\n        \"min\": 1.3247254769899999,\n        \"stddev\": 0.016035569724771985,\n        \"system\": 0.016874325000000003,\n        \"time\": 1.35739836799,\n        \"user\": 1.326389235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n        \"max\": 1.36138520799,\n        \"mean\": 1.34820111899,\n        \"median\": 1.35739836799,\n        \"message\": \"Make list_themes work. Fixes #6\\n\",\n        \"min\": 1.3247254769899999,\n        \"stddev\": 0.016035569724771985,\n        \"system\": 0.016874325000000003,\n        \"time\": 1.3591992009899998,\n        \"user\": 1.326389235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6be51a79ce335978b287bee78453ba30ee8f38f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846383-a6be51a79ce335978b287bee78453ba30ee8f38f\",\n        \"max\": 1.36138520799,\n        \"mean\": 1.34820111899,\n        \"median\": 1.35739836799,\n        \"message\": \"Make list_themes work. Fixes #6\\n\",\n        \"min\": 1.3247254769899999,\n        \"stddev\": 0.016035569724771985,\n        \"system\": 0.016874325000000003,\n        \"time\": 1.3382973409899999,\n        \"user\": 1.326389235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n        \"max\": 1.3641518882299999,\n        \"mean\": 1.34482926343,\n        \"median\": 1.3409564222300001,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.3329867442299999,\n        \"stddev\": 0.011814115035160718,\n        \"system\": 0.017293635,\n        \"time\": 1.3641518882299999,\n        \"user\": 1.319514365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n        \"max\": 1.3641518882299999,\n        \"mean\": 1.34482926343,\n        \"median\": 1.3409564222300001,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.3329867442299999,\n        \"stddev\": 0.011814115035160718,\n        \"system\": 0.017293635,\n        \"time\": 1.34642997323,\n        \"user\": 1.319514365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n        \"max\": 1.3641518882299999,\n        \"mean\": 1.34482926343,\n        \"median\": 1.3409564222300001,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.3329867442299999,\n        \"stddev\": 0.011814115035160718,\n        \"system\": 0.017293635,\n        \"time\": 1.3409564222300001,\n        \"user\": 1.319514365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n        \"max\": 1.3641518882299999,\n        \"mean\": 1.34482926343,\n        \"median\": 1.3409564222300001,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.3329867442299999,\n        \"stddev\": 0.011814115035160718,\n        \"system\": 0.017293635,\n        \"time\": 1.3329867442299999,\n        \"user\": 1.319514365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/042f293a202e2f88970cf4615cd352dc01d54776 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561846710-042f293a202e2f88970cf4615cd352dc01d54776\",\n        \"max\": 1.3641518882299999,\n        \"mean\": 1.34482926343,\n        \"median\": 1.3409564222300001,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.3329867442299999,\n        \"stddev\": 0.011814115035160718,\n        \"system\": 0.017293635,\n        \"time\": 1.33962128923,\n        \"user\": 1.319514365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n        \"max\": 1.3814411425050002,\n        \"mean\": 1.344765989505,\n        \"median\": 1.339584656505,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.3249829025050002,\n        \"stddev\": 0.02199391621350377,\n        \"system\": 0.016950095,\n        \"time\": 1.3814411425050002,\n        \"user\": 1.3190700400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n        \"max\": 1.3814411425050002,\n        \"mean\": 1.344765989505,\n        \"median\": 1.339584656505,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.3249829025050002,\n        \"stddev\": 0.02199391621350377,\n        \"system\": 0.016950095,\n        \"time\": 1.3249829025050002,\n        \"user\": 1.3190700400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n        \"max\": 1.3814411425050002,\n        \"mean\": 1.344765989505,\n        \"median\": 1.339584656505,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.3249829025050002,\n        \"stddev\": 0.02199391621350377,\n        \"system\": 0.016950095,\n        \"time\": 1.339584656505,\n        \"user\": 1.3190700400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n        \"max\": 1.3814411425050002,\n        \"mean\": 1.344765989505,\n        \"median\": 1.339584656505,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.3249829025050002,\n        \"stddev\": 0.02199391621350377,\n        \"system\": 0.016950095,\n        \"time\": 1.346089591505,\n        \"user\": 1.3190700400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62dce186a0c79628c89e09dcbb7eba431a75ccfc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911514-62dce186a0c79628c89e09dcbb7eba431a75ccfc\",\n        \"max\": 1.3814411425050002,\n        \"mean\": 1.344765989505,\n        \"median\": 1.339584656505,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.3249829025050002,\n        \"stddev\": 0.02199391621350377,\n        \"system\": 0.016950095,\n        \"time\": 1.3317316545050002,\n        \"user\": 1.3190700400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n        \"max\": 1.384804539425,\n        \"mean\": 1.3567305332250001,\n        \"median\": 1.3459760624250001,\n        \"message\": \"Refactor: generic function processing lines of input\\n\",\n        \"min\": 1.342849604425,\n        \"stddev\": 0.01806638781220703,\n        \"system\": 0.018324915000000004,\n        \"time\": 1.384804539425,\n        \"user\": 1.3296542999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n        \"max\": 1.384804539425,\n        \"mean\": 1.3567305332250001,\n        \"median\": 1.3459760624250001,\n        \"message\": \"Refactor: generic function processing lines of input\\n\",\n        \"min\": 1.342849604425,\n        \"stddev\": 0.01806638781220703,\n        \"system\": 0.018324915000000004,\n        \"time\": 1.344932122425,\n        \"user\": 1.3296542999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n        \"max\": 1.384804539425,\n        \"mean\": 1.3567305332250001,\n        \"median\": 1.3459760624250001,\n        \"message\": \"Refactor: generic function processing lines of input\\n\",\n        \"min\": 1.342849604425,\n        \"stddev\": 0.01806638781220703,\n        \"system\": 0.018324915000000004,\n        \"time\": 1.342849604425,\n        \"user\": 1.3296542999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n        \"max\": 1.384804539425,\n        \"mean\": 1.3567305332250001,\n        \"median\": 1.3459760624250001,\n        \"message\": \"Refactor: generic function processing lines of input\\n\",\n        \"min\": 1.342849604425,\n        \"stddev\": 0.01806638781220703,\n        \"system\": 0.018324915000000004,\n        \"time\": 1.365090337425,\n        \"user\": 1.3296542999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd2867848e94b3b6b4dbfbf6d894be2eb38a9570 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911564-bd2867848e94b3b6b4dbfbf6d894be2eb38a9570\",\n        \"max\": 1.384804539425,\n        \"mean\": 1.3567305332250001,\n        \"median\": 1.3459760624250001,\n        \"message\": \"Refactor: generic function processing lines of input\\n\",\n        \"min\": 1.342849604425,\n        \"stddev\": 0.01806638781220703,\n        \"system\": 0.018324915000000004,\n        \"time\": 1.3459760624250001,\n        \"user\": 1.3296542999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n        \"max\": 1.46529161114,\n        \"mean\": 1.39808501214,\n        \"median\": 1.38217831014,\n        \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n        \"min\": 1.35692647514,\n        \"stddev\": 0.04174295327863644,\n        \"system\": 0.019337765,\n        \"time\": 1.3779362401400002,\n        \"user\": 1.3684139599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n        \"max\": 1.46529161114,\n        \"mean\": 1.39808501214,\n        \"median\": 1.38217831014,\n        \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n        \"min\": 1.35692647514,\n        \"stddev\": 0.04174295327863644,\n        \"system\": 0.019337765,\n        \"time\": 1.35692647514,\n        \"user\": 1.3684139599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n        \"max\": 1.46529161114,\n        \"mean\": 1.39808501214,\n        \"median\": 1.38217831014,\n        \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n        \"min\": 1.35692647514,\n        \"stddev\": 0.04174295327863644,\n        \"system\": 0.019337765,\n        \"time\": 1.46529161114,\n        \"user\": 1.3684139599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n        \"max\": 1.46529161114,\n        \"mean\": 1.39808501214,\n        \"median\": 1.38217831014,\n        \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n        \"min\": 1.35692647514,\n        \"stddev\": 0.04174295327863644,\n        \"system\": 0.019337765,\n        \"time\": 1.4080924241400001,\n        \"user\": 1.3684139599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e096e6d7e6e29309346c3521971b784bbc30ddfd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561911619-e096e6d7e6e29309346c3521971b784bbc30ddfd\",\n        \"max\": 1.46529161114,\n        \"mean\": 1.39808501214,\n        \"median\": 1.38217831014,\n        \"message\": \"Revert \\\"DNC: Use Display trait instead of String\\\"\\n\\nThis reverts commit ba3dbe6c5d6ecf9c7ee9898e7ad9eededd4bf4f3.\\n\",\n        \"min\": 1.35692647514,\n        \"stddev\": 0.04174295327863644,\n        \"system\": 0.019337765,\n        \"time\": 1.38217831014,\n        \"user\": 1.3684139599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n        \"max\": 1.224540201345,\n        \"mean\": 1.071872251345,\n        \"median\": 1.030905722345,\n        \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n        \"min\": 1.010265563345,\n        \"stddev\": 0.08812781769100683,\n        \"system\": 0.02306776,\n        \"time\": 1.224540201345,\n        \"user\": 1.03038418\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n        \"max\": 1.224540201345,\n        \"mean\": 1.071872251345,\n        \"median\": 1.030905722345,\n        \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n        \"min\": 1.010265563345,\n        \"stddev\": 0.08812781769100683,\n        \"system\": 0.02306776,\n        \"time\": 1.069520307345,\n        \"user\": 1.03038418\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n        \"max\": 1.224540201345,\n        \"mean\": 1.071872251345,\n        \"median\": 1.030905722345,\n        \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n        \"min\": 1.010265563345,\n        \"stddev\": 0.08812781769100683,\n        \"system\": 0.02306776,\n        \"time\": 1.024129462345,\n        \"user\": 1.03038418\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n        \"max\": 1.224540201345,\n        \"mean\": 1.071872251345,\n        \"median\": 1.030905722345,\n        \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n        \"min\": 1.010265563345,\n        \"stddev\": 0.08812781769100683,\n        \"system\": 0.02306776,\n        \"time\": 1.030905722345,\n        \"user\": 1.03038418\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d2989885a3bae52618a95979bf6bb07f7f764c38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917648-d2989885a3bae52618a95979bf6bb07f7f764c38\",\n        \"max\": 1.224540201345,\n        \"mean\": 1.071872251345,\n        \"median\": 1.030905722345,\n        \"message\": \"Use correct theme set. Ref #4\\n\\nFixes bug in 6a34f9146d4efaae547e9c316c6016c8bbcf1833\\n\",\n        \"min\": 1.010265563345,\n        \"stddev\": 0.08812781769100683,\n        \"system\": 0.02306776,\n        \"time\": 1.010265563345,\n        \"user\": 1.03038418\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n        \"max\": 1.0955701889099998,\n        \"mean\": 1.0277467363099997,\n        \"median\": 1.00821994191,\n        \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n        \"min\": 1.00004683091,\n        \"stddev\": 0.04012141387133587,\n        \"system\": 0.019291720000000002,\n        \"time\": 1.00821994191,\n        \"user\": 0.9992601650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n        \"max\": 1.0955701889099998,\n        \"mean\": 1.0277467363099997,\n        \"median\": 1.00821994191,\n        \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n        \"min\": 1.00004683091,\n        \"stddev\": 0.04012141387133587,\n        \"system\": 0.019291720000000002,\n        \"time\": 1.00198554791,\n        \"user\": 0.9992601650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n        \"max\": 1.0955701889099998,\n        \"mean\": 1.0277467363099997,\n        \"median\": 1.00821994191,\n        \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n        \"min\": 1.00004683091,\n        \"stddev\": 0.04012141387133587,\n        \"system\": 0.019291720000000002,\n        \"time\": 1.0955701889099998,\n        \"user\": 0.9992601650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n        \"max\": 1.0955701889099998,\n        \"mean\": 1.0277467363099997,\n        \"median\": 1.00821994191,\n        \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n        \"min\": 1.00004683091,\n        \"stddev\": 0.04012141387133587,\n        \"system\": 0.019291720000000002,\n        \"time\": 1.03291117191,\n        \"user\": 0.9992601650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6adc0acb2d53fcb8b945f622c435be8e46287cce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561917889-6adc0acb2d53fcb8b945f622c435be8e46287cce\",\n        \"max\": 1.0955701889099998,\n        \"mean\": 1.0277467363099997,\n        \"median\": 1.00821994191,\n        \"message\": \"Add option to compare themes\\n\\nThe user must pass git output on stdin.\\n\",\n        \"min\": 1.00004683091,\n        \"stddev\": 0.04012141387133587,\n        \"system\": 0.019291720000000002,\n        \"time\": 1.00004683091,\n        \"user\": 0.9992601650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n        \"max\": 1.1318666946,\n        \"mean\": 1.0497617706,\n        \"median\": 1.0343527825999999,\n        \"message\": \"Clean up\\n\",\n        \"min\": 0.9842224066,\n        \"stddev\": 0.05945290843343051,\n        \"system\": 0.020789735,\n        \"time\": 1.0870243406,\n        \"user\": 1.01780669\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n        \"max\": 1.1318666946,\n        \"mean\": 1.0497617706,\n        \"median\": 1.0343527825999999,\n        \"message\": \"Clean up\\n\",\n        \"min\": 0.9842224066,\n        \"stddev\": 0.05945290843343051,\n        \"system\": 0.020789735,\n        \"time\": 1.1318666946,\n        \"user\": 1.01780669\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n        \"max\": 1.1318666946,\n        \"mean\": 1.0497617706,\n        \"median\": 1.0343527825999999,\n        \"message\": \"Clean up\\n\",\n        \"min\": 0.9842224066,\n        \"stddev\": 0.05945290843343051,\n        \"system\": 0.020789735,\n        \"time\": 1.0113426285999998,\n        \"user\": 1.01780669\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n        \"max\": 1.1318666946,\n        \"mean\": 1.0497617706,\n        \"median\": 1.0343527825999999,\n        \"message\": \"Clean up\\n\",\n        \"min\": 0.9842224066,\n        \"stddev\": 0.05945290843343051,\n        \"system\": 0.020789735,\n        \"time\": 0.9842224066,\n        \"user\": 1.01780669\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561924962-2d9b3c025db1f096daeb4f1ca31ba6adb1ec7c22\",\n        \"max\": 1.1318666946,\n        \"mean\": 1.0497617706,\n        \"median\": 1.0343527825999999,\n        \"message\": \"Clean up\\n\",\n        \"min\": 0.9842224066,\n        \"stddev\": 0.05945290843343051,\n        \"system\": 0.020789735,\n        \"time\": 1.0343527825999999,\n        \"user\": 1.01780669\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n        \"max\": 1.157813770805,\n        \"mean\": 1.082803131605,\n        \"median\": 1.059583496805,\n        \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n        \"min\": 1.013420061805,\n        \"stddev\": 0.06034026895219392,\n        \"system\": 0.023439534999999997,\n        \"time\": 1.157813770805,\n        \"user\": 1.0465162749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n        \"max\": 1.157813770805,\n        \"mean\": 1.082803131605,\n        \"median\": 1.059583496805,\n        \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n        \"min\": 1.013420061805,\n        \"stddev\": 0.06034026895219392,\n        \"system\": 0.023439534999999997,\n        \"time\": 1.133007460805,\n        \"user\": 1.0465162749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n        \"max\": 1.157813770805,\n        \"mean\": 1.082803131605,\n        \"median\": 1.059583496805,\n        \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n        \"min\": 1.013420061805,\n        \"stddev\": 0.06034026895219392,\n        \"system\": 0.023439534999999997,\n        \"time\": 1.059583496805,\n        \"user\": 1.0465162749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n        \"max\": 1.157813770805,\n        \"mean\": 1.082803131605,\n        \"median\": 1.059583496805,\n        \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n        \"min\": 1.013420061805,\n        \"stddev\": 0.06034026895219392,\n        \"system\": 0.023439534999999997,\n        \"time\": 1.013420061805,\n        \"user\": 1.0465162749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72832631b6b0bdcff32cb472f1aa7e43fd6135c8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925529-72832631b6b0bdcff32cb472f1aa7e43fd6135c8\",\n        \"max\": 1.157813770805,\n        \"mean\": 1.082803131605,\n        \"median\": 1.059583496805,\n        \"message\": \"Error if {--light, --dark} conflict with theme\\n\",\n        \"min\": 1.013420061805,\n        \"stddev\": 0.06034026895219392,\n        \"system\": 0.023439534999999997,\n        \"time\": 1.050190867805,\n        \"user\": 1.0465162749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n        \"max\": 1.870005403135,\n        \"mean\": 1.599498840535,\n        \"median\": 1.494913692135,\n        \"message\": \"Use same default dark theme as bat\\n\",\n        \"min\": 1.444273261135,\n        \"stddev\": 0.18335958396591687,\n        \"system\": 0.042778134999999995,\n        \"time\": 1.708647459135,\n        \"user\": 1.502217655\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n        \"max\": 1.870005403135,\n        \"mean\": 1.599498840535,\n        \"median\": 1.494913692135,\n        \"message\": \"Use same default dark theme as bat\\n\",\n        \"min\": 1.444273261135,\n        \"stddev\": 0.18335958396591687,\n        \"system\": 0.042778134999999995,\n        \"time\": 1.479654387135,\n        \"user\": 1.502217655\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n        \"max\": 1.870005403135,\n        \"mean\": 1.599498840535,\n        \"median\": 1.494913692135,\n        \"message\": \"Use same default dark theme as bat\\n\",\n        \"min\": 1.444273261135,\n        \"stddev\": 0.18335958396591687,\n        \"system\": 0.042778134999999995,\n        \"time\": 1.444273261135,\n        \"user\": 1.502217655\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n        \"max\": 1.870005403135,\n        \"mean\": 1.599498840535,\n        \"median\": 1.494913692135,\n        \"message\": \"Use same default dark theme as bat\\n\",\n        \"min\": 1.444273261135,\n        \"stddev\": 0.18335958396591687,\n        \"system\": 0.042778134999999995,\n        \"time\": 1.870005403135,\n        \"user\": 1.502217655\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/67b4f6001ee3aa2af1f8b29470b14fcbce81cc79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561925637-67b4f6001ee3aa2af1f8b29470b14fcbce81cc79\",\n        \"max\": 1.870005403135,\n        \"mean\": 1.599498840535,\n        \"median\": 1.494913692135,\n        \"message\": \"Use same default dark theme as bat\\n\",\n        \"min\": 1.444273261135,\n        \"stddev\": 0.18335958396591687,\n        \"system\": 0.042778134999999995,\n        \"time\": 1.494913692135,\n        \"user\": 1.502217655\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n        \"max\": 2.06974742686,\n        \"mean\": 1.7396407588599998,\n        \"median\": 1.7983108838600002,\n        \"message\": \"bash completion\\n\",\n        \"min\": 1.47769865486,\n        \"stddev\": 0.23932039292323842,\n        \"system\": 0.044751070000000004,\n        \"time\": 1.8176928828599999,\n        \"user\": 1.5987774549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n        \"max\": 2.06974742686,\n        \"mean\": 1.7396407588599998,\n        \"median\": 1.7983108838600002,\n        \"message\": \"bash completion\\n\",\n        \"min\": 1.47769865486,\n        \"stddev\": 0.23932039292323842,\n        \"system\": 0.044751070000000004,\n        \"time\": 1.53475394586,\n        \"user\": 1.5987774549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n        \"max\": 2.06974742686,\n        \"mean\": 1.7396407588599998,\n        \"median\": 1.7983108838600002,\n        \"message\": \"bash completion\\n\",\n        \"min\": 1.47769865486,\n        \"stddev\": 0.23932039292323842,\n        \"system\": 0.044751070000000004,\n        \"time\": 1.47769865486,\n        \"user\": 1.5987774549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n        \"max\": 2.06974742686,\n        \"mean\": 1.7396407588599998,\n        \"median\": 1.7983108838600002,\n        \"message\": \"bash completion\\n\",\n        \"min\": 1.47769865486,\n        \"stddev\": 0.23932039292323842,\n        \"system\": 0.044751070000000004,\n        \"time\": 2.06974742686,\n        \"user\": 1.5987774549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ac72bf6d991f47fcfa971cd69407eec692bf2d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926284-c2ac72bf6d991f47fcfa971cd69407eec692bf2d\",\n        \"max\": 2.06974742686,\n        \"mean\": 1.7396407588599998,\n        \"median\": 1.7983108838600002,\n        \"message\": \"bash completion\\n\",\n        \"min\": 1.47769865486,\n        \"stddev\": 0.23932039292323842,\n        \"system\": 0.044751070000000004,\n        \"time\": 1.7983108838600002,\n        \"user\": 1.5987774549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n        \"max\": 1.8032157191849998,\n        \"mean\": 1.6153133175849999,\n        \"median\": 1.704010901185,\n        \"message\": \"Improve help text\\n\",\n        \"min\": 1.3854920331849998,\n        \"stddev\": 0.17672229690252841,\n        \"system\": 0.037412805,\n        \"time\": 1.704010901185,\n        \"user\": 1.5407192899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n        \"max\": 1.8032157191849998,\n        \"mean\": 1.6153133175849999,\n        \"median\": 1.704010901185,\n        \"message\": \"Improve help text\\n\",\n        \"min\": 1.3854920331849998,\n        \"stddev\": 0.17672229690252841,\n        \"system\": 0.037412805,\n        \"time\": 1.709899729185,\n        \"user\": 1.5407192899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n        \"max\": 1.8032157191849998,\n        \"mean\": 1.6153133175849999,\n        \"median\": 1.704010901185,\n        \"message\": \"Improve help text\\n\",\n        \"min\": 1.3854920331849998,\n        \"stddev\": 0.17672229690252841,\n        \"system\": 0.037412805,\n        \"time\": 1.473948205185,\n        \"user\": 1.5407192899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n        \"max\": 1.8032157191849998,\n        \"mean\": 1.6153133175849999,\n        \"median\": 1.704010901185,\n        \"message\": \"Improve help text\\n\",\n        \"min\": 1.3854920331849998,\n        \"stddev\": 0.17672229690252841,\n        \"system\": 0.037412805,\n        \"time\": 1.3854920331849998,\n        \"user\": 1.5407192899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cec380c2ee69b17886f56397d1f48b8279c0aa7c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561926787-cec380c2ee69b17886f56397d1f48b8279c0aa7c\",\n        \"max\": 1.8032157191849998,\n        \"mean\": 1.6153133175849999,\n        \"median\": 1.704010901185,\n        \"message\": \"Improve help text\\n\",\n        \"min\": 1.3854920331849998,\n        \"stddev\": 0.17672229690252841,\n        \"system\": 0.037412805,\n        \"time\": 1.8032157191849998,\n        \"user\": 1.5407192899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n        \"max\": 1.487297911915,\n        \"mean\": 1.344600150915,\n        \"median\": 1.308465534915,\n        \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n        \"min\": 1.262997143915,\n        \"stddev\": 0.08792324567711515,\n        \"system\": 0.024282545,\n        \"time\": 1.298333456915,\n        \"user\": 1.3050108\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n        \"max\": 1.487297911915,\n        \"mean\": 1.344600150915,\n        \"median\": 1.308465534915,\n        \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n        \"min\": 1.262997143915,\n        \"stddev\": 0.08792324567711515,\n        \"system\": 0.024282545,\n        \"time\": 1.262997143915,\n        \"user\": 1.3050108\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n        \"max\": 1.487297911915,\n        \"mean\": 1.344600150915,\n        \"median\": 1.308465534915,\n        \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n        \"min\": 1.262997143915,\n        \"stddev\": 0.08792324567711515,\n        \"system\": 0.024282545,\n        \"time\": 1.308465534915,\n        \"user\": 1.3050108\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n        \"max\": 1.487297911915,\n        \"mean\": 1.344600150915,\n        \"median\": 1.308465534915,\n        \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n        \"min\": 1.262997143915,\n        \"stddev\": 0.08792324567711515,\n        \"system\": 0.024282545,\n        \"time\": 1.3659067069150002,\n        \"user\": 1.3050108\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299904b493ebc17b586ae4df3cae8312331ae8dc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928767-299904b493ebc17b586ae4df3cae8312331ae8dc\",\n        \"max\": 1.487297911915,\n        \"mean\": 1.344600150915,\n        \"median\": 1.308465534915,\n        \"message\": \"Classify themes as light vs dark in --list-themes output\\n\",\n        \"min\": 1.262997143915,\n        \"stddev\": 0.08792324567711515,\n        \"system\": 0.024282545,\n        \"time\": 1.487297911915,\n        \"user\": 1.3050108\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n        \"max\": 1.4362834744200002,\n        \"mean\": 1.33012237822,\n        \"median\": 1.32151593142,\n        \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n        \"min\": 1.2443023664200001,\n        \"stddev\": 0.07110943001116618,\n        \"system\": 0.021026874999999997,\n        \"time\": 1.3511625824200002,\n        \"user\": 1.293557905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n        \"max\": 1.4362834744200002,\n        \"mean\": 1.33012237822,\n        \"median\": 1.32151593142,\n        \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n        \"min\": 1.2443023664200001,\n        \"stddev\": 0.07110943001116618,\n        \"system\": 0.021026874999999997,\n        \"time\": 1.29734753642,\n        \"user\": 1.293557905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n        \"max\": 1.4362834744200002,\n        \"mean\": 1.33012237822,\n        \"median\": 1.32151593142,\n        \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n        \"min\": 1.2443023664200001,\n        \"stddev\": 0.07110943001116618,\n        \"system\": 0.021026874999999997,\n        \"time\": 1.2443023664200001,\n        \"user\": 1.293557905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n        \"max\": 1.4362834744200002,\n        \"mean\": 1.33012237822,\n        \"median\": 1.32151593142,\n        \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n        \"min\": 1.2443023664200001,\n        \"stddev\": 0.07110943001116618,\n        \"system\": 0.021026874999999997,\n        \"time\": 1.4362834744200002,\n        \"user\": 1.293557905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/df892375a0677d4f7b274aff070d1349718883af < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561928994-df892375a0677d4f7b274aff070d1349718883af\",\n        \"max\": 1.4362834744200002,\n        \"mean\": 1.33012237822,\n        \"median\": 1.32151593142,\n        \"message\": \"Honor {--light, --dark} in --compare-themes\\n\",\n        \"min\": 1.2443023664200001,\n        \"stddev\": 0.07110943001116618,\n        \"system\": 0.021026874999999997,\n        \"time\": 1.32151593142,\n        \"user\": 1.293557905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n        \"max\": 1.3937559378900002,\n        \"mean\": 1.3050399270900002,\n        \"median\": 1.28612919089,\n        \"message\": \"Add output.rs from bat\\n\",\n        \"min\": 1.27438674389,\n        \"stddev\": 0.05031280099000327,\n        \"system\": 0.019650149999999998,\n        \"time\": 1.3937559378900002,\n        \"user\": 1.27737005\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n        \"max\": 1.3937559378900002,\n        \"mean\": 1.3050399270900002,\n        \"median\": 1.28612919089,\n        \"message\": \"Add output.rs from bat\\n\",\n        \"min\": 1.27438674389,\n        \"stddev\": 0.05031280099000327,\n        \"system\": 0.019650149999999998,\n        \"time\": 1.29524407789,\n        \"user\": 1.27737005\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n        \"max\": 1.3937559378900002,\n        \"mean\": 1.3050399270900002,\n        \"median\": 1.28612919089,\n        \"message\": \"Add output.rs from bat\\n\",\n        \"min\": 1.27438674389,\n        \"stddev\": 0.05031280099000327,\n        \"system\": 0.019650149999999998,\n        \"time\": 1.27438674389,\n        \"user\": 1.27737005\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n        \"max\": 1.3937559378900002,\n        \"mean\": 1.3050399270900002,\n        \"median\": 1.28612919089,\n        \"message\": \"Add output.rs from bat\\n\",\n        \"min\": 1.27438674389,\n        \"stddev\": 0.05031280099000327,\n        \"system\": 0.019650149999999998,\n        \"time\": 1.28612919089,\n        \"user\": 1.27737005\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9165acded94edd4ab8e40e6e323369f541e747b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933700-9165acded94edd4ab8e40e6e323369f541e747b1\",\n        \"max\": 1.3937559378900002,\n        \"mean\": 1.3050399270900002,\n        \"median\": 1.28612919089,\n        \"message\": \"Add output.rs from bat\\n\",\n        \"min\": 1.27438674389,\n        \"stddev\": 0.05031280099000327,\n        \"system\": 0.019650149999999998,\n        \"time\": 1.27568368489,\n        \"user\": 1.27737005\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n        \"max\": 1.37337965162,\n        \"mean\": 1.33404324422,\n        \"median\": 1.3341241586200001,\n        \"message\": \"rustfmt\\n\",\n        \"min\": 1.2998294196200002,\n        \"stddev\": 0.028023861434964638,\n        \"system\": 0.023075429999999994,\n        \"time\": 1.3341241586200001,\n        \"user\": 1.298595505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n        \"max\": 1.37337965162,\n        \"mean\": 1.33404324422,\n        \"median\": 1.3341241586200001,\n        \"message\": \"rustfmt\\n\",\n        \"min\": 1.2998294196200002,\n        \"stddev\": 0.028023861434964638,\n        \"system\": 0.023075429999999994,\n        \"time\": 1.2998294196200002,\n        \"user\": 1.298595505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n        \"max\": 1.37337965162,\n        \"mean\": 1.33404324422,\n        \"median\": 1.3341241586200001,\n        \"message\": \"rustfmt\\n\",\n        \"min\": 1.2998294196200002,\n        \"stddev\": 0.028023861434964638,\n        \"system\": 0.023075429999999994,\n        \"time\": 1.34575693762,\n        \"user\": 1.298595505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n        \"max\": 1.37337965162,\n        \"mean\": 1.33404324422,\n        \"median\": 1.3341241586200001,\n        \"message\": \"rustfmt\\n\",\n        \"min\": 1.2998294196200002,\n        \"stddev\": 0.028023861434964638,\n        \"system\": 0.023075429999999994,\n        \"time\": 1.31712605362,\n        \"user\": 1.298595505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/950a78a78d315a08ec95621e329b088fe5284b14 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561933703-950a78a78d315a08ec95621e329b088fe5284b14\",\n        \"max\": 1.37337965162,\n        \"mean\": 1.33404324422,\n        \"median\": 1.3341241586200001,\n        \"message\": \"rustfmt\\n\",\n        \"min\": 1.2998294196200002,\n        \"stddev\": 0.028023861434964638,\n        \"system\": 0.023075429999999994,\n        \"time\": 1.37337965162,\n        \"user\": 1.298595505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n        \"max\": 1.33688594171,\n        \"mean\": 1.33058482211,\n        \"median\": 1.32944679671,\n        \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n        \"min\": 1.32621356871,\n        \"stddev\": 0.00474077586921173,\n        \"system\": 0.086394335,\n        \"time\": 1.33688594171,\n        \"user\": 1.3382191049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n        \"max\": 1.33688594171,\n        \"mean\": 1.33058482211,\n        \"median\": 1.32944679671,\n        \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n        \"min\": 1.32621356871,\n        \"stddev\": 0.00474077586921173,\n        \"system\": 0.086394335,\n        \"time\": 1.32634967971,\n        \"user\": 1.3382191049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n        \"max\": 1.33688594171,\n        \"mean\": 1.33058482211,\n        \"median\": 1.32944679671,\n        \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n        \"min\": 1.32621356871,\n        \"stddev\": 0.00474077586921173,\n        \"system\": 0.086394335,\n        \"time\": 1.32944679671,\n        \"user\": 1.3382191049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n        \"max\": 1.33688594171,\n        \"mean\": 1.33058482211,\n        \"median\": 1.32944679671,\n        \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n        \"min\": 1.32621356871,\n        \"stddev\": 0.00474077586921173,\n        \"system\": 0.086394335,\n        \"time\": 1.32621356871,\n        \"user\": 1.3382191049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e4197550687f14435be3b73afb8507d3b2609dee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e4197550687f14435be3b73afb8507d3b2609dee\",\n        \"max\": 1.33688594171,\n        \"mean\": 1.33058482211,\n        \"median\": 1.32944679671,\n        \"message\": \"Support --width=max. Fixes #3\\n\\nThis (manually) reverts 8b111cb4496d9250cb0c25d828f03d64274992ed\\n\",\n        \"min\": 1.32621356871,\n        \"stddev\": 0.00474077586921173,\n        \"system\": 0.086394335,\n        \"time\": 1.33402812371,\n        \"user\": 1.3382191049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n        \"max\": 1.5002876456699998,\n        \"mean\": 1.40522491507,\n        \"median\": 1.36458068567,\n        \"message\": \"Use bat's output.rs to write to pager\\n\",\n        \"min\": 1.34005619367,\n        \"stddev\": 0.07472000739230458,\n        \"system\": 0.098622105,\n        \"time\": 1.4711751686699999,\n        \"user\": 1.3992805799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n        \"max\": 1.5002876456699998,\n        \"mean\": 1.40522491507,\n        \"median\": 1.36458068567,\n        \"message\": \"Use bat's output.rs to write to pager\\n\",\n        \"min\": 1.34005619367,\n        \"stddev\": 0.07472000739230458,\n        \"system\": 0.098622105,\n        \"time\": 1.34005619367,\n        \"user\": 1.3992805799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n        \"max\": 1.5002876456699998,\n        \"mean\": 1.40522491507,\n        \"median\": 1.36458068567,\n        \"message\": \"Use bat's output.rs to write to pager\\n\",\n        \"min\": 1.34005619367,\n        \"stddev\": 0.07472000739230458,\n        \"system\": 0.098622105,\n        \"time\": 1.36458068567,\n        \"user\": 1.3992805799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n        \"max\": 1.5002876456699998,\n        \"mean\": 1.40522491507,\n        \"median\": 1.36458068567,\n        \"message\": \"Use bat's output.rs to write to pager\\n\",\n        \"min\": 1.34005619367,\n        \"stddev\": 0.07472000739230458,\n        \"system\": 0.098622105,\n        \"time\": 1.35002488167,\n        \"user\": 1.3992805799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e6e3aea5710b2a880800fbaa8a092968e0fd4c3b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935259-e6e3aea5710b2a880800fbaa8a092968e0fd4c3b\",\n        \"max\": 1.5002876456699998,\n        \"mean\": 1.40522491507,\n        \"median\": 1.36458068567,\n        \"message\": \"Use bat's output.rs to write to pager\\n\",\n        \"min\": 1.34005619367,\n        \"stddev\": 0.07472000739230458,\n        \"system\": 0.098622105,\n        \"time\": 1.5002876456699998,\n        \"user\": 1.3992805799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n        \"max\": 1.3637639804650001,\n        \"mean\": 1.332565455865,\n        \"median\": 1.330581426465,\n        \"message\": \"Fix README: default is now a dark theme\\n\",\n        \"min\": 1.311201868465,\n        \"stddev\": 0.019188042705029437,\n        \"system\": 0.08884063499999999,\n        \"time\": 1.3637639804650001,\n        \"user\": 1.3388748949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n        \"max\": 1.3637639804650001,\n        \"mean\": 1.332565455865,\n        \"median\": 1.330581426465,\n        \"message\": \"Fix README: default is now a dark theme\\n\",\n        \"min\": 1.311201868465,\n        \"stddev\": 0.019188042705029437,\n        \"system\": 0.08884063499999999,\n        \"time\": 1.326612888465,\n        \"user\": 1.3388748949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n        \"max\": 1.3637639804650001,\n        \"mean\": 1.332565455865,\n        \"median\": 1.330581426465,\n        \"message\": \"Fix README: default is now a dark theme\\n\",\n        \"min\": 1.311201868465,\n        \"stddev\": 0.019188042705029437,\n        \"system\": 0.08884063499999999,\n        \"time\": 1.330667115465,\n        \"user\": 1.3388748949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n        \"max\": 1.3637639804650001,\n        \"mean\": 1.332565455865,\n        \"median\": 1.330581426465,\n        \"message\": \"Fix README: default is now a dark theme\\n\",\n        \"min\": 1.311201868465,\n        \"stddev\": 0.019188042705029437,\n        \"system\": 0.08884063499999999,\n        \"time\": 1.311201868465,\n        \"user\": 1.3388748949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cdd86db29460a998fd6a5c8f1ac35ff4f953f10c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561935818-cdd86db29460a998fd6a5c8f1ac35ff4f953f10c\",\n        \"max\": 1.3637639804650001,\n        \"mean\": 1.332565455865,\n        \"median\": 1.330581426465,\n        \"message\": \"Fix README: default is now a dark theme\\n\",\n        \"min\": 1.311201868465,\n        \"stddev\": 0.019188042705029437,\n        \"system\": 0.08884063499999999,\n        \"time\": 1.330581426465,\n        \"user\": 1.3388748949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n        \"max\": 1.611039597465,\n        \"mean\": 1.587545049665,\n        \"median\": 1.583658533465,\n        \"message\": \"Default to full terminal width\\n\",\n        \"min\": 1.574815253465,\n        \"stddev\": 0.0147181896728417,\n        \"system\": 0.09086009999999999,\n        \"time\": 1.611039597465,\n        \"user\": 1.5975800549999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n        \"max\": 1.611039597465,\n        \"mean\": 1.587545049665,\n        \"median\": 1.583658533465,\n        \"message\": \"Default to full terminal width\\n\",\n        \"min\": 1.574815253465,\n        \"stddev\": 0.0147181896728417,\n        \"system\": 0.09086009999999999,\n        \"time\": 1.583658533465,\n        \"user\": 1.5975800549999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n        \"max\": 1.611039597465,\n        \"mean\": 1.587545049665,\n        \"median\": 1.583658533465,\n        \"message\": \"Default to full terminal width\\n\",\n        \"min\": 1.574815253465,\n        \"stddev\": 0.0147181896728417,\n        \"system\": 0.09086009999999999,\n        \"time\": 1.591645788465,\n        \"user\": 1.5975800549999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n        \"max\": 1.611039597465,\n        \"mean\": 1.587545049665,\n        \"median\": 1.583658533465,\n        \"message\": \"Default to full terminal width\\n\",\n        \"min\": 1.574815253465,\n        \"stddev\": 0.0147181896728417,\n        \"system\": 0.09086009999999999,\n        \"time\": 1.574815253465,\n        \"user\": 1.5975800549999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6c60ae1414b7a11b7c79b266bd2075b57aa4d85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561944779-d6c60ae1414b7a11b7c79b266bd2075b57aa4d85\",\n        \"max\": 1.611039597465,\n        \"mean\": 1.587545049665,\n        \"median\": 1.583658533465,\n        \"message\": \"Default to full terminal width\\n\",\n        \"min\": 1.574815253465,\n        \"stddev\": 0.0147181896728417,\n        \"system\": 0.09086009999999999,\n        \"time\": 1.576566075465,\n        \"user\": 1.5975800549999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n        \"max\": 1.63403958314,\n        \"mean\": 1.5942294579400003,\n        \"median\": 1.5830971531400002,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.58233420514,\n        \"stddev\": 0.022436505163506048,\n        \"system\": 0.092812885,\n        \"time\": 1.63403958314,\n        \"user\": 1.6036191899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n        \"max\": 1.63403958314,\n        \"mean\": 1.5942294579400003,\n        \"median\": 1.5830971531400002,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.58233420514,\n        \"stddev\": 0.022436505163506048,\n        \"system\": 0.092812885,\n        \"time\": 1.58233420514,\n        \"user\": 1.6036191899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n        \"max\": 1.63403958314,\n        \"mean\": 1.5942294579400003,\n        \"median\": 1.5830971531400002,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.58233420514,\n        \"stddev\": 0.022436505163506048,\n        \"system\": 0.092812885,\n        \"time\": 1.58248493314,\n        \"user\": 1.6036191899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n        \"max\": 1.63403958314,\n        \"mean\": 1.5942294579400003,\n        \"median\": 1.5830971531400002,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.58233420514,\n        \"stddev\": 0.022436505163506048,\n        \"system\": 0.092812885,\n        \"time\": 1.5891914151400002,\n        \"user\": 1.6036191899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dd83d321cb803f7180549d82dcff89ed7710814 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561950172-8dd83d321cb803f7180549d82dcff89ed7710814\",\n        \"max\": 1.63403958314,\n        \"mean\": 1.5942294579400003,\n        \"median\": 1.5830971531400002,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.58233420514,\n        \"stddev\": 0.022436505163506048,\n        \"system\": 0.092812885,\n        \"time\": 1.5830971531400002,\n        \"user\": 1.6036191899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n        \"max\": 1.6011722510500002,\n        \"mean\": 1.59277967985,\n        \"median\": 1.59276639905,\n        \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n        \"min\": 1.58276332305,\n        \"stddev\": 0.00664844292213281,\n        \"system\": 0.091994775,\n        \"time\": 1.6011722510500002,\n        \"user\": 1.6028515300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n        \"max\": 1.6011722510500002,\n        \"mean\": 1.59277967985,\n        \"median\": 1.59276639905,\n        \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n        \"min\": 1.58276332305,\n        \"stddev\": 0.00664844292213281,\n        \"system\": 0.091994775,\n        \"time\": 1.59276639905,\n        \"user\": 1.6028515300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n        \"max\": 1.6011722510500002,\n        \"mean\": 1.59277967985,\n        \"median\": 1.59276639905,\n        \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n        \"min\": 1.58276332305,\n        \"stddev\": 0.00664844292213281,\n        \"system\": 0.091994775,\n        \"time\": 1.59513189305,\n        \"user\": 1.6028515300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n        \"max\": 1.6011722510500002,\n        \"mean\": 1.59277967985,\n        \"median\": 1.59276639905,\n        \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n        \"min\": 1.58276332305,\n        \"stddev\": 0.00664844292213281,\n        \"system\": 0.091994775,\n        \"time\": 1.58276332305,\n        \"user\": 1.6028515300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe25f99a663027f20aac1a2c719f8af13cce7093 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953430-fe25f99a663027f20aac1a2c719f8af13cce7093\",\n        \"max\": 1.6011722510500002,\n        \"mean\": 1.59277967985,\n        \"median\": 1.59276639905,\n        \"message\": \"By default do not apply syntax highlighting to removed lines\\n\",\n        \"min\": 1.58276332305,\n        \"stddev\": 0.00664844292213281,\n        \"system\": 0.091994775,\n        \"time\": 1.59206453305,\n        \"user\": 1.6028515300000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n        \"max\": 1.604125905625,\n        \"mean\": 1.5893496008249999,\n        \"median\": 1.5912607286249998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.5752177536249998,\n        \"stddev\": 0.011186942209026279,\n        \"system\": 0.09072550999999998,\n        \"time\": 1.604125905625,\n        \"user\": 1.596359065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n        \"max\": 1.604125905625,\n        \"mean\": 1.5893496008249999,\n        \"median\": 1.5912607286249998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.5752177536249998,\n        \"stddev\": 0.011186942209026279,\n        \"system\": 0.09072550999999998,\n        \"time\": 1.5912607286249998,\n        \"user\": 1.596359065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n        \"max\": 1.604125905625,\n        \"mean\": 1.5893496008249999,\n        \"median\": 1.5912607286249998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.5752177536249998,\n        \"stddev\": 0.011186942209026279,\n        \"system\": 0.09072550999999998,\n        \"time\": 1.5752177536249998,\n        \"user\": 1.596359065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n        \"max\": 1.604125905625,\n        \"mean\": 1.5893496008249999,\n        \"median\": 1.5912607286249998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.5752177536249998,\n        \"stddev\": 0.011186942209026279,\n        \"system\": 0.09072550999999998,\n        \"time\": 1.594220974625,\n        \"user\": 1.596359065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d76d3b4252818aad661b5793c299453f52ede477 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953655-d76d3b4252818aad661b5793c299453f52ede477\",\n        \"max\": 1.604125905625,\n        \"mean\": 1.5893496008249999,\n        \"median\": 1.5912607286249998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.5752177536249998,\n        \"stddev\": 0.011186942209026279,\n        \"system\": 0.09072550999999998,\n        \"time\": 1.581922641625,\n        \"user\": 1.596359065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n        \"max\": 1.6103412471750003,\n        \"mean\": 1.5937678891750002,\n        \"median\": 1.5967974681750001,\n        \"message\": \"Rename variable\\n\",\n        \"min\": 1.575729289175,\n        \"stddev\": 0.012909746822044139,\n        \"system\": 0.091312735,\n        \"time\": 1.5967974681750001,\n        \"user\": 1.6036585600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n        \"max\": 1.6103412471750003,\n        \"mean\": 1.5937678891750002,\n        \"median\": 1.5967974681750001,\n        \"message\": \"Rename variable\\n\",\n        \"min\": 1.575729289175,\n        \"stddev\": 0.012909746822044139,\n        \"system\": 0.091312735,\n        \"time\": 1.5876858601750001,\n        \"user\": 1.6036585600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n        \"max\": 1.6103412471750003,\n        \"mean\": 1.5937678891750002,\n        \"median\": 1.5967974681750001,\n        \"message\": \"Rename variable\\n\",\n        \"min\": 1.575729289175,\n        \"stddev\": 0.012909746822044139,\n        \"system\": 0.091312735,\n        \"time\": 1.6103412471750003,\n        \"user\": 1.6036585600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n        \"max\": 1.6103412471750003,\n        \"mean\": 1.5937678891750002,\n        \"median\": 1.5967974681750001,\n        \"message\": \"Rename variable\\n\",\n        \"min\": 1.575729289175,\n        \"stddev\": 0.012909746822044139,\n        \"system\": 0.091312735,\n        \"time\": 1.598285581175,\n        \"user\": 1.6036585600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f758cadf152518be00675d05486996671b008aef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561953828-f758cadf152518be00675d05486996671b008aef\",\n        \"max\": 1.6103412471750003,\n        \"mean\": 1.5937678891750002,\n        \"median\": 1.5967974681750001,\n        \"message\": \"Rename variable\\n\",\n        \"min\": 1.575729289175,\n        \"stddev\": 0.012909746822044139,\n        \"system\": 0.091312735,\n        \"time\": 1.575729289175,\n        \"user\": 1.6036585600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n        \"max\": 1.598021826685,\n        \"mean\": 1.586532570685,\n        \"median\": 1.5839198956849998,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.578413641685,\n        \"stddev\": 0.007890164918304682,\n        \"system\": 0.09092502,\n        \"time\": 1.581464090685,\n        \"user\": 1.5970097200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n        \"max\": 1.598021826685,\n        \"mean\": 1.586532570685,\n        \"median\": 1.5839198956849998,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.578413641685,\n        \"stddev\": 0.007890164918304682,\n        \"system\": 0.09092502,\n        \"time\": 1.598021826685,\n        \"user\": 1.5970097200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n        \"max\": 1.598021826685,\n        \"mean\": 1.586532570685,\n        \"median\": 1.5839198956849998,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.578413641685,\n        \"stddev\": 0.007890164918304682,\n        \"system\": 0.09092502,\n        \"time\": 1.5839198956849998,\n        \"user\": 1.5970097200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n        \"max\": 1.598021826685,\n        \"mean\": 1.586532570685,\n        \"median\": 1.5839198956849998,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.578413641685,\n        \"stddev\": 0.007890164918304682,\n        \"system\": 0.09092502,\n        \"time\": 1.578413641685,\n        \"user\": 1.5970097200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b15c892da51ab4f6a183c07b5539c3ea249a924 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561954724-9b15c892da51ab4f6a183c07b5539c3ea249a924\",\n        \"max\": 1.598021826685,\n        \"mean\": 1.586532570685,\n        \"median\": 1.5839198956849998,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.578413641685,\n        \"stddev\": 0.007890164918304682,\n        \"system\": 0.09092502,\n        \"time\": 1.590843398685,\n        \"user\": 1.5970097200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n        \"max\": 1.6096077769300001,\n        \"mean\": 1.5940571329300002,\n        \"median\": 1.5881825199300001,\n        \"message\": \"Add a screenshot\\n\",\n        \"min\": 1.58422765793,\n        \"stddev\": 0.011267106395403962,\n        \"system\": 0.091915105,\n        \"time\": 1.6096077769300001,\n        \"user\": 1.6047642249999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n        \"max\": 1.6096077769300001,\n        \"mean\": 1.5940571329300002,\n        \"median\": 1.5881825199300001,\n        \"message\": \"Add a screenshot\\n\",\n        \"min\": 1.58422765793,\n        \"stddev\": 0.011267106395403962,\n        \"system\": 0.091915105,\n        \"time\": 1.58422765793,\n        \"user\": 1.6047642249999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n        \"max\": 1.6096077769300001,\n        \"mean\": 1.5940571329300002,\n        \"median\": 1.5881825199300001,\n        \"message\": \"Add a screenshot\\n\",\n        \"min\": 1.58422765793,\n        \"stddev\": 0.011267106395403962,\n        \"system\": 0.091915105,\n        \"time\": 1.6023444209300002,\n        \"user\": 1.6047642249999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n        \"max\": 1.6096077769300001,\n        \"mean\": 1.5940571329300002,\n        \"median\": 1.5881825199300001,\n        \"message\": \"Add a screenshot\\n\",\n        \"min\": 1.58422765793,\n        \"stddev\": 0.011267106395403962,\n        \"system\": 0.091915105,\n        \"time\": 1.5859232889300001,\n        \"user\": 1.6047642249999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/afa02ba11e0bc727218d97d453d7445e12853979 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955298-afa02ba11e0bc727218d97d453d7445e12853979\",\n        \"max\": 1.6096077769300001,\n        \"mean\": 1.5940571329300002,\n        \"median\": 1.5881825199300001,\n        \"message\": \"Add a screenshot\\n\",\n        \"min\": 1.58422765793,\n        \"stddev\": 0.011267106395403962,\n        \"system\": 0.091915105,\n        \"time\": 1.5881825199300001,\n        \"user\": 1.6047642249999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n        \"max\": 1.6019821063000002,\n        \"mean\": 1.5895417693000002,\n        \"median\": 1.5857573283000002,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.5822260763000002,\n        \"stddev\": 0.007834203156371773,\n        \"system\": 0.09174454000000001,\n        \"time\": 1.5855552283000003,\n        \"user\": 1.5995226050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n        \"max\": 1.6019821063000002,\n        \"mean\": 1.5895417693000002,\n        \"median\": 1.5857573283000002,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.5822260763000002,\n        \"stddev\": 0.007834203156371773,\n        \"system\": 0.09174454000000001,\n        \"time\": 1.6019821063000002,\n        \"user\": 1.5995226050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n        \"max\": 1.6019821063000002,\n        \"mean\": 1.5895417693000002,\n        \"median\": 1.5857573283000002,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.5822260763000002,\n        \"stddev\": 0.007834203156371773,\n        \"system\": 0.09174454000000001,\n        \"time\": 1.5822260763000002,\n        \"user\": 1.5995226050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n        \"max\": 1.6019821063000002,\n        \"mean\": 1.5895417693000002,\n        \"median\": 1.5857573283000002,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.5822260763000002,\n        \"stddev\": 0.007834203156371773,\n        \"system\": 0.09174454000000001,\n        \"time\": 1.5857573283000002,\n        \"user\": 1.5995226050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d75727ff348ef657709bf621810dbc28711359d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561955803-d75727ff348ef657709bf621810dbc28711359d7\",\n        \"max\": 1.6019821063000002,\n        \"mean\": 1.5895417693000002,\n        \"median\": 1.5857573283000002,\n        \"message\": \"Clean up README\\n\",\n        \"min\": 1.5822260763000002,\n        \"stddev\": 0.007834203156371773,\n        \"system\": 0.09174454000000001,\n        \"time\": 1.5921881073000002,\n        \"user\": 1.5995226050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n        \"max\": 1.764986535075,\n        \"mean\": 1.630671839075,\n        \"median\": 1.590686167075,\n        \"message\": \"Add license\\n\",\n        \"min\": 1.584046001075,\n        \"stddev\": 0.07672355592146796,\n        \"system\": 0.09588732999999999,\n        \"time\": 1.624067838075,\n        \"user\": 1.628154735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n        \"max\": 1.764986535075,\n        \"mean\": 1.630671839075,\n        \"median\": 1.590686167075,\n        \"message\": \"Add license\\n\",\n        \"min\": 1.584046001075,\n        \"stddev\": 0.07672355592146796,\n        \"system\": 0.09588732999999999,\n        \"time\": 1.764986535075,\n        \"user\": 1.628154735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n        \"max\": 1.764986535075,\n        \"mean\": 1.630671839075,\n        \"median\": 1.590686167075,\n        \"message\": \"Add license\\n\",\n        \"min\": 1.584046001075,\n        \"stddev\": 0.07672355592146796,\n        \"system\": 0.09588732999999999,\n        \"time\": 1.590686167075,\n        \"user\": 1.628154735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n        \"max\": 1.764986535075,\n        \"mean\": 1.630671839075,\n        \"median\": 1.590686167075,\n        \"message\": \"Add license\\n\",\n        \"min\": 1.584046001075,\n        \"stddev\": 0.07672355592146796,\n        \"system\": 0.09588732999999999,\n        \"time\": 1.589572654075,\n        \"user\": 1.628154735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/54d342cedd1fc0b5b52a5a3767f19d788cf505e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561956529-54d342cedd1fc0b5b52a5a3767f19d788cf505e0\",\n        \"max\": 1.764986535075,\n        \"mean\": 1.630671839075,\n        \"median\": 1.590686167075,\n        \"message\": \"Add license\\n\",\n        \"min\": 1.584046001075,\n        \"stddev\": 0.07672355592146796,\n        \"system\": 0.09588732999999999,\n        \"time\": 1.584046001075,\n        \"user\": 1.628154735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n        \"max\": 1.549309256475,\n        \"mean\": 1.5303929192749999,\n        \"median\": 1.5318353334750001,\n        \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n        \"min\": 1.5007118734750002,\n        \"stddev\": 0.018154121509936758,\n        \"system\": 0.08105122,\n        \"time\": 1.5007118734750002,\n        \"user\": 1.5390492949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n        \"max\": 1.549309256475,\n        \"mean\": 1.5303929192749999,\n        \"median\": 1.5318353334750001,\n        \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n        \"min\": 1.5007118734750002,\n        \"stddev\": 0.018154121509936758,\n        \"system\": 0.08105122,\n        \"time\": 1.5318353334750001,\n        \"user\": 1.5390492949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n        \"max\": 1.549309256475,\n        \"mean\": 1.5303929192749999,\n        \"median\": 1.5318353334750001,\n        \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n        \"min\": 1.5007118734750002,\n        \"stddev\": 0.018154121509936758,\n        \"system\": 0.08105122,\n        \"time\": 1.549309256475,\n        \"user\": 1.5390492949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n        \"max\": 1.549309256475,\n        \"mean\": 1.5303929192749999,\n        \"median\": 1.5318353334750001,\n        \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n        \"min\": 1.5007118734750002,\n        \"stddev\": 0.018154121509936758,\n        \"system\": 0.08105122,\n        \"time\": 1.539174932475,\n        \"user\": 1.5390492949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19d688b8c124089e08b25c6a56a5da172a825b20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970147-19d688b8c124089e08b25c6a56a5da172a825b20\",\n        \"max\": 1.549309256475,\n        \"mean\": 1.5303929192749999,\n        \"median\": 1.5318353334750001,\n        \"message\": \"Support --width=variable\\n\\nThis option means that background diff highlighting should extend to\\nthe end of each line, without right padding lines to produce equal\\nwidth.\\n\",\n        \"min\": 1.5007118734750002,\n        \"stddev\": 0.018154121509936758,\n        \"system\": 0.08105122,\n        \"time\": 1.530933200475,\n        \"user\": 1.5390492949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n        \"max\": 1.5429852678500002,\n        \"mean\": 1.52001460885,\n        \"median\": 1.51719929085,\n        \"message\": \"Add table headers in README\\n\",\n        \"min\": 1.50413399185,\n        \"stddev\": 0.01446963140720411,\n        \"system\": 0.07778375499999998,\n        \"time\": 1.51337318685,\n        \"user\": 1.53237165\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n        \"max\": 1.5429852678500002,\n        \"mean\": 1.52001460885,\n        \"median\": 1.51719929085,\n        \"message\": \"Add table headers in README\\n\",\n        \"min\": 1.50413399185,\n        \"stddev\": 0.01446963140720411,\n        \"system\": 0.07778375499999998,\n        \"time\": 1.50413399185,\n        \"user\": 1.53237165\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n        \"max\": 1.5429852678500002,\n        \"mean\": 1.52001460885,\n        \"median\": 1.51719929085,\n        \"message\": \"Add table headers in README\\n\",\n        \"min\": 1.50413399185,\n        \"stddev\": 0.01446963140720411,\n        \"system\": 0.07778375499999998,\n        \"time\": 1.51719929085,\n        \"user\": 1.53237165\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n        \"max\": 1.5429852678500002,\n        \"mean\": 1.52001460885,\n        \"median\": 1.51719929085,\n        \"message\": \"Add table headers in README\\n\",\n        \"min\": 1.50413399185,\n        \"stddev\": 0.01446963140720411,\n        \"system\": 0.07778375499999998,\n        \"time\": 1.52238130685,\n        \"user\": 1.53237165\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/979763ca4a23e82de4934eeec779695859faa429 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1561970240-979763ca4a23e82de4934eeec779695859faa429\",\n        \"max\": 1.5429852678500002,\n        \"mean\": 1.52001460885,\n        \"median\": 1.51719929085,\n        \"message\": \"Add table headers in README\\n\",\n        \"min\": 1.50413399185,\n        \"stddev\": 0.01446963140720411,\n        \"system\": 0.07778375499999998,\n        \"time\": 1.5429852678500002,\n        \"user\": 1.53237165\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n        \"max\": 1.5853797999600001,\n        \"mean\": 1.5323159609600001,\n        \"median\": 1.52621509596,\n        \"message\": \"Makefile\\n\",\n        \"min\": 1.5101597589600002,\n        \"stddev\": 0.03055613805252552,\n        \"system\": 0.079404695,\n        \"time\": 1.5263598019600002,\n        \"user\": 1.5391878049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n        \"max\": 1.5853797999600001,\n        \"mean\": 1.5323159609600001,\n        \"median\": 1.52621509596,\n        \"message\": \"Makefile\\n\",\n        \"min\": 1.5101597589600002,\n        \"stddev\": 0.03055613805252552,\n        \"system\": 0.079404695,\n        \"time\": 1.5101597589600002,\n        \"user\": 1.5391878049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n        \"max\": 1.5853797999600001,\n        \"mean\": 1.5323159609600001,\n        \"median\": 1.52621509596,\n        \"message\": \"Makefile\\n\",\n        \"min\": 1.5101597589600002,\n        \"stddev\": 0.03055613805252552,\n        \"system\": 0.079404695,\n        \"time\": 1.52621509596,\n        \"user\": 1.5391878049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n        \"max\": 1.5853797999600001,\n        \"mean\": 1.5323159609600001,\n        \"median\": 1.52621509596,\n        \"message\": \"Makefile\\n\",\n        \"min\": 1.5101597589600002,\n        \"stddev\": 0.03055613805252552,\n        \"system\": 0.079404695,\n        \"time\": 1.5853797999600001,\n        \"user\": 1.5391878049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a1becedfd72dce2d0bc21fd4ec6e617df19b00cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123987-a1becedfd72dce2d0bc21fd4ec6e617df19b00cd\",\n        \"max\": 1.5853797999600001,\n        \"mean\": 1.5323159609600001,\n        \"median\": 1.52621509596,\n        \"message\": \"Makefile\\n\",\n        \"min\": 1.5101597589600002,\n        \"stddev\": 0.03055613805252552,\n        \"system\": 0.079404695,\n        \"time\": 1.5134653479600002,\n        \"user\": 1.5391878049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n        \"max\": 1.535662967915,\n        \"mean\": 1.518967701915,\n        \"median\": 1.518307944915,\n        \"message\": \"rustfmt: new version\\n\",\n        \"min\": 1.5076529989149998,\n        \"stddev\": 0.010697121408997246,\n        \"system\": 0.07834263500000001,\n        \"time\": 1.535662967915,\n        \"user\": 1.5253596649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n        \"max\": 1.535662967915,\n        \"mean\": 1.518967701915,\n        \"median\": 1.518307944915,\n        \"message\": \"rustfmt: new version\\n\",\n        \"min\": 1.5076529989149998,\n        \"stddev\": 0.010697121408997246,\n        \"system\": 0.07834263500000001,\n        \"time\": 1.518307944915,\n        \"user\": 1.5253596649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n        \"max\": 1.535662967915,\n        \"mean\": 1.518967701915,\n        \"median\": 1.518307944915,\n        \"message\": \"rustfmt: new version\\n\",\n        \"min\": 1.5076529989149998,\n        \"stddev\": 0.010697121408997246,\n        \"system\": 0.07834263500000001,\n        \"time\": 1.5076529989149998,\n        \"user\": 1.5253596649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n        \"max\": 1.535662967915,\n        \"mean\": 1.518967701915,\n        \"median\": 1.518307944915,\n        \"message\": \"rustfmt: new version\\n\",\n        \"min\": 1.5076529989149998,\n        \"stddev\": 0.010697121408997246,\n        \"system\": 0.07834263500000001,\n        \"time\": 1.512169904915,\n        \"user\": 1.5253596649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562123990-c4f5d2eae3f96a8c37a4a242dd35f1bb93c1a0e0\",\n        \"max\": 1.535662967915,\n        \"mean\": 1.518967701915,\n        \"median\": 1.518307944915,\n        \"message\": \"rustfmt: new version\\n\",\n        \"min\": 1.5076529989149998,\n        \"stddev\": 0.010697121408997246,\n        \"system\": 0.07834263500000001,\n        \"time\": 1.5210446929149999,\n        \"user\": 1.5253596649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n        \"max\": 1.536044737775,\n        \"mean\": 1.514179519175,\n        \"median\": 1.506724039775,\n        \"message\": \"Fix recognition of language of files with no extension\\n\",\n        \"min\": 1.5033478737750001,\n        \"stddev\": 0.01395397607193527,\n        \"system\": 0.077746735,\n        \"time\": 1.536044737775,\n        \"user\": 1.5225713699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n        \"max\": 1.536044737775,\n        \"mean\": 1.514179519175,\n        \"median\": 1.506724039775,\n        \"message\": \"Fix recognition of language of files with no extension\\n\",\n        \"min\": 1.5033478737750001,\n        \"stddev\": 0.01395397607193527,\n        \"system\": 0.077746735,\n        \"time\": 1.506724039775,\n        \"user\": 1.5225713699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n        \"max\": 1.536044737775,\n        \"mean\": 1.514179519175,\n        \"median\": 1.506724039775,\n        \"message\": \"Fix recognition of language of files with no extension\\n\",\n        \"min\": 1.5033478737750001,\n        \"stddev\": 0.01395397607193527,\n        \"system\": 0.077746735,\n        \"time\": 1.520183286775,\n        \"user\": 1.5225713699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n        \"max\": 1.536044737775,\n        \"mean\": 1.514179519175,\n        \"median\": 1.506724039775,\n        \"message\": \"Fix recognition of language of files with no extension\\n\",\n        \"min\": 1.5033478737750001,\n        \"stddev\": 0.01395397607193527,\n        \"system\": 0.077746735,\n        \"time\": 1.5033478737750001,\n        \"user\": 1.5225713699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07af06513fff5bf5597c5ff106d8a982cb961910 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127181-07af06513fff5bf5597c5ff106d8a982cb961910\",\n        \"max\": 1.536044737775,\n        \"mean\": 1.514179519175,\n        \"median\": 1.506724039775,\n        \"message\": \"Fix recognition of language of files with no extension\\n\",\n        \"min\": 1.5033478737750001,\n        \"stddev\": 0.01395397607193527,\n        \"system\": 0.077746735,\n        \"time\": 1.504597657775,\n        \"user\": 1.5225713699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n        \"max\": 1.527180472165,\n        \"mean\": 1.506518657165,\n        \"median\": 1.502727766165,\n        \"message\": \"Remove unused dependencies\\n\",\n        \"min\": 1.498178025165,\n        \"stddev\": 0.011750190997873501,\n        \"system\": 0.07766901,\n        \"time\": 1.527180472165,\n        \"user\": 1.5156669849999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n        \"max\": 1.527180472165,\n        \"mean\": 1.506518657165,\n        \"median\": 1.502727766165,\n        \"message\": \"Remove unused dependencies\\n\",\n        \"min\": 1.498178025165,\n        \"stddev\": 0.011750190997873501,\n        \"system\": 0.07766901,\n        \"time\": 1.502727766165,\n        \"user\": 1.5156669849999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n        \"max\": 1.527180472165,\n        \"mean\": 1.506518657165,\n        \"median\": 1.502727766165,\n        \"message\": \"Remove unused dependencies\\n\",\n        \"min\": 1.498178025165,\n        \"stddev\": 0.011750190997873501,\n        \"system\": 0.07766901,\n        \"time\": 1.503840555165,\n        \"user\": 1.5156669849999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n        \"max\": 1.527180472165,\n        \"mean\": 1.506518657165,\n        \"median\": 1.502727766165,\n        \"message\": \"Remove unused dependencies\\n\",\n        \"min\": 1.498178025165,\n        \"stddev\": 0.011750190997873501,\n        \"system\": 0.07766901,\n        \"time\": 1.500666467165,\n        \"user\": 1.5156669849999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e1912e34f8cc01cddffdffa26ff512304d12ff25 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562127184-e1912e34f8cc01cddffdffa26ff512304d12ff25\",\n        \"max\": 1.527180472165,\n        \"mean\": 1.506518657165,\n        \"median\": 1.502727766165,\n        \"message\": \"Remove unused dependencies\\n\",\n        \"min\": 1.498178025165,\n        \"stddev\": 0.011750190997873501,\n        \"system\": 0.07766901,\n        \"time\": 1.498178025165,\n        \"user\": 1.5156669849999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n        \"max\": 1.31139714039,\n        \"mean\": 1.20498323659,\n        \"median\": 1.18974540939,\n        \"message\": \"Store background style sections for removed and added lines\\n\",\n        \"min\": 1.15806878739,\n        \"stddev\": 0.061347871560443974,\n        \"system\": 0.05284288,\n        \"time\": 1.18974540939,\n        \"user\": 1.20000825\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n        \"max\": 1.31139714039,\n        \"mean\": 1.20498323659,\n        \"median\": 1.18974540939,\n        \"message\": \"Store background style sections for removed and added lines\\n\",\n        \"min\": 1.15806878739,\n        \"stddev\": 0.061347871560443974,\n        \"system\": 0.05284288,\n        \"time\": 1.15806878739,\n        \"user\": 1.20000825\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n        \"max\": 1.31139714039,\n        \"mean\": 1.20498323659,\n        \"median\": 1.18974540939,\n        \"message\": \"Store background style sections for removed and added lines\\n\",\n        \"min\": 1.15806878739,\n        \"stddev\": 0.061347871560443974,\n        \"system\": 0.05284288,\n        \"time\": 1.19545448039,\n        \"user\": 1.20000825\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n        \"max\": 1.31139714039,\n        \"mean\": 1.20498323659,\n        \"median\": 1.18974540939,\n        \"message\": \"Store background style sections for removed and added lines\\n\",\n        \"min\": 1.15806878739,\n        \"stddev\": 0.061347871560443974,\n        \"system\": 0.05284288,\n        \"time\": 1.31139714039,\n        \"user\": 1.20000825\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/072d6a6ec2c69a22d786ca3aabb6184c1a257810 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-072d6a6ec2c69a22d786ca3aabb6184c1a257810\",\n        \"max\": 1.31139714039,\n        \"mean\": 1.20498323659,\n        \"median\": 1.18974540939,\n        \"message\": \"Store background style sections for removed and added lines\\n\",\n        \"min\": 1.15806878739,\n        \"stddev\": 0.061347871560443974,\n        \"system\": 0.05284288,\n        \"time\": 1.17025036539,\n        \"user\": 1.20000825\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n        \"max\": 1.182759587035,\n        \"mean\": 1.152639770035,\n        \"median\": 1.143197382035,\n        \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n        \"min\": 1.1330385650350001,\n        \"stddev\": 0.021230101082298166,\n        \"system\": 0.048318629999999994,\n        \"time\": 1.166622683035,\n        \"user\": 1.15202305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n        \"max\": 1.182759587035,\n        \"mean\": 1.152639770035,\n        \"median\": 1.143197382035,\n        \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n        \"min\": 1.1330385650350001,\n        \"stddev\": 0.021230101082298166,\n        \"system\": 0.048318629999999994,\n        \"time\": 1.137580633035,\n        \"user\": 1.15202305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n        \"max\": 1.182759587035,\n        \"mean\": 1.152639770035,\n        \"median\": 1.143197382035,\n        \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n        \"min\": 1.1330385650350001,\n        \"stddev\": 0.021230101082298166,\n        \"system\": 0.048318629999999994,\n        \"time\": 1.143197382035,\n        \"user\": 1.15202305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n        \"max\": 1.182759587035,\n        \"mean\": 1.152639770035,\n        \"median\": 1.143197382035,\n        \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n        \"min\": 1.1330385650350001,\n        \"stddev\": 0.021230101082298166,\n        \"system\": 0.048318629999999994,\n        \"time\": 1.182759587035,\n        \"user\": 1.15202305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/09d631f47b12a202b2db2ed5d34d7b072baffdaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-09d631f47b12a202b2db2ed5d34d7b072baffdaa\",\n        \"max\": 1.182759587035,\n        \"mean\": 1.152639770035,\n        \"median\": 1.143197382035,\n        \"message\": \"Fix bug: revert to previous state machine loop implementation\\n\\nPartially reverts b43dbba4fb5a0e55694b4ddc0e5b38726890727e\\n\",\n        \"min\": 1.1330385650350001,\n        \"stddev\": 0.021230101082298166,\n        \"system\": 0.048318629999999994,\n        \"time\": 1.1330385650350001,\n        \"user\": 1.15202305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n        \"max\": 1.256581578415,\n        \"mean\": 1.230985267215,\n        \"median\": 1.229811794415,\n        \"message\": \"Superimpose styles\\n\",\n        \"min\": 1.213066468415,\n        \"stddev\": 0.015914450648196223,\n        \"system\": 0.041098514999999995,\n        \"time\": 1.256581578415,\n        \"user\": 1.22063433\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n        \"max\": 1.256581578415,\n        \"mean\": 1.230985267215,\n        \"median\": 1.229811794415,\n        \"message\": \"Superimpose styles\\n\",\n        \"min\": 1.213066468415,\n        \"stddev\": 0.015914450648196223,\n        \"system\": 0.041098514999999995,\n        \"time\": 1.230406836415,\n        \"user\": 1.22063433\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n        \"max\": 1.256581578415,\n        \"mean\": 1.230985267215,\n        \"median\": 1.229811794415,\n        \"message\": \"Superimpose styles\\n\",\n        \"min\": 1.213066468415,\n        \"stddev\": 0.015914450648196223,\n        \"system\": 0.041098514999999995,\n        \"time\": 1.229811794415,\n        \"user\": 1.22063433\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n        \"max\": 1.256581578415,\n        \"mean\": 1.230985267215,\n        \"median\": 1.229811794415,\n        \"message\": \"Superimpose styles\\n\",\n        \"min\": 1.213066468415,\n        \"stddev\": 0.015914450648196223,\n        \"system\": 0.041098514999999995,\n        \"time\": 1.213066468415,\n        \"user\": 1.22063433\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3b265ca497131307f18816ebf1de7c01678e9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1c3b265ca497131307f18816ebf1de7c01678e9e\",\n        \"max\": 1.256581578415,\n        \"mean\": 1.230985267215,\n        \"median\": 1.229811794415,\n        \"message\": \"Superimpose styles\\n\",\n        \"min\": 1.213066468415,\n        \"stddev\": 0.015914450648196223,\n        \"system\": 0.041098514999999995,\n        \"time\": 1.225059658415,\n        \"user\": 1.22063433\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n        \"max\": 1.19902111702,\n        \"mean\": 1.1574194504200002,\n        \"median\": 1.14990907502,\n        \"message\": \"Move painting code into paint module\\n\",\n        \"min\": 1.1409835950200002,\n        \"stddev\": 0.02374449047946239,\n        \"system\": 0.04870753,\n        \"time\": 1.19902111702,\n        \"user\": 1.15572889\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n        \"max\": 1.19902111702,\n        \"mean\": 1.1574194504200002,\n        \"median\": 1.14990907502,\n        \"message\": \"Move painting code into paint module\\n\",\n        \"min\": 1.1409835950200002,\n        \"stddev\": 0.02374449047946239,\n        \"system\": 0.04870753,\n        \"time\": 1.14400346702,\n        \"user\": 1.15572889\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n        \"max\": 1.19902111702,\n        \"mean\": 1.1574194504200002,\n        \"median\": 1.14990907502,\n        \"message\": \"Move painting code into paint module\\n\",\n        \"min\": 1.1409835950200002,\n        \"stddev\": 0.02374449047946239,\n        \"system\": 0.04870753,\n        \"time\": 1.1409835950200002,\n        \"user\": 1.15572889\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n        \"max\": 1.19902111702,\n        \"mean\": 1.1574194504200002,\n        \"median\": 1.14990907502,\n        \"message\": \"Move painting code into paint module\\n\",\n        \"min\": 1.1409835950200002,\n        \"stddev\": 0.02374449047946239,\n        \"system\": 0.04870753,\n        \"time\": 1.14990907502,\n        \"user\": 1.15572889\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d00432876cfcb71e0c7cce668723d07431f4418 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-1d00432876cfcb71e0c7cce668723d07431f4418\",\n        \"max\": 1.19902111702,\n        \"mean\": 1.1574194504200002,\n        \"median\": 1.14990907502,\n        \"message\": \"Move painting code into paint module\\n\",\n        \"min\": 1.1409835950200002,\n        \"stddev\": 0.02374449047946239,\n        \"system\": 0.04870753,\n        \"time\": 1.1531799980200002,\n        \"user\": 1.15572889\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n        \"max\": 1.18279068139,\n        \"mean\": 1.1607776965899999,\n        \"median\": 1.15403389539,\n        \"message\": \"Don't join lines\\n\",\n        \"min\": 1.14495593939,\n        \"stddev\": 0.015346722126213007,\n        \"system\": 0.04729384999999999,\n        \"time\": 1.18279068139,\n        \"user\": 1.16105758\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n        \"max\": 1.18279068139,\n        \"mean\": 1.1607776965899999,\n        \"median\": 1.15403389539,\n        \"message\": \"Don't join lines\\n\",\n        \"min\": 1.14495593939,\n        \"stddev\": 0.015346722126213007,\n        \"system\": 0.04729384999999999,\n        \"time\": 1.17004165539,\n        \"user\": 1.16105758\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n        \"max\": 1.18279068139,\n        \"mean\": 1.1607776965899999,\n        \"median\": 1.15403389539,\n        \"message\": \"Don't join lines\\n\",\n        \"min\": 1.14495593939,\n        \"stddev\": 0.015346722126213007,\n        \"system\": 0.04729384999999999,\n        \"time\": 1.1520663113899998,\n        \"user\": 1.16105758\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n        \"max\": 1.18279068139,\n        \"mean\": 1.1607776965899999,\n        \"median\": 1.15403389539,\n        \"message\": \"Don't join lines\\n\",\n        \"min\": 1.14495593939,\n        \"stddev\": 0.015346722126213007,\n        \"system\": 0.04729384999999999,\n        \"time\": 1.14495593939,\n        \"user\": 1.16105758\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2be5176e61ca0e87ed795d3cc9f0f300d9844c03 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-2be5176e61ca0e87ed795d3cc9f0f300d9844c03\",\n        \"max\": 1.18279068139,\n        \"mean\": 1.1607776965899999,\n        \"median\": 1.15403389539,\n        \"message\": \"Don't join lines\\n\",\n        \"min\": 1.14495593939,\n        \"stddev\": 0.015346722126213007,\n        \"system\": 0.04729384999999999,\n        \"time\": 1.15403389539,\n        \"user\": 1.16105758\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n        \"max\": 1.2491679785,\n        \"mean\": 1.2327427200999999,\n        \"median\": 1.2294042475,\n        \"message\": \"Unit tests\\n\",\n        \"min\": 1.2243363295,\n        \"stddev\": 0.009572804077813225,\n        \"system\": 0.040978289999999994,\n        \"time\": 1.2491679785,\n        \"user\": 1.223794935\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n        \"max\": 1.2491679785,\n        \"mean\": 1.2327427200999999,\n        \"median\": 1.2294042475,\n        \"message\": \"Unit tests\\n\",\n        \"min\": 1.2243363295,\n        \"stddev\": 0.009572804077813225,\n        \"system\": 0.040978289999999994,\n        \"time\": 1.2289884245,\n        \"user\": 1.223794935\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n        \"max\": 1.2491679785,\n        \"mean\": 1.2327427200999999,\n        \"median\": 1.2294042475,\n        \"message\": \"Unit tests\\n\",\n        \"min\": 1.2243363295,\n        \"stddev\": 0.009572804077813225,\n        \"system\": 0.040978289999999994,\n        \"time\": 1.2243363295,\n        \"user\": 1.223794935\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n        \"max\": 1.2491679785,\n        \"mean\": 1.2327427200999999,\n        \"median\": 1.2294042475,\n        \"message\": \"Unit tests\\n\",\n        \"min\": 1.2243363295,\n        \"stddev\": 0.009572804077813225,\n        \"system\": 0.040978289999999994,\n        \"time\": 1.2318166205,\n        \"user\": 1.223794935\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3136e08bdeecd7ab8b0b651bd134f863a594980a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-3136e08bdeecd7ab8b0b651bd134f863a594980a\",\n        \"max\": 1.2491679785,\n        \"mean\": 1.2327427200999999,\n        \"median\": 1.2294042475,\n        \"message\": \"Unit tests\\n\",\n        \"min\": 1.2243363295,\n        \"stddev\": 0.009572804077813225,\n        \"system\": 0.040978289999999994,\n        \"time\": 1.2294042475,\n        \"user\": 1.223794935\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n        \"max\": 1.4977872468450002,\n        \"mean\": 1.4662400598450003,\n        \"median\": 1.459294471845,\n        \"message\": \"gitignore\\n\",\n        \"min\": 1.455689714845,\n        \"stddev\": 0.017706651048624678,\n        \"system\": 0.051629804999999994,\n        \"time\": 1.4977872468450002,\n        \"user\": 1.47068039\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n        \"max\": 1.4977872468450002,\n        \"mean\": 1.4662400598450003,\n        \"median\": 1.459294471845,\n        \"message\": \"gitignore\\n\",\n        \"min\": 1.455689714845,\n        \"stddev\": 0.017706651048624678,\n        \"system\": 0.051629804999999994,\n        \"time\": 1.455689714845,\n        \"user\": 1.47068039\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n        \"max\": 1.4977872468450002,\n        \"mean\": 1.4662400598450003,\n        \"median\": 1.459294471845,\n        \"message\": \"gitignore\\n\",\n        \"min\": 1.455689714845,\n        \"stddev\": 0.017706651048624678,\n        \"system\": 0.051629804999999994,\n        \"time\": 1.4597653938450001,\n        \"user\": 1.47068039\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n        \"max\": 1.4977872468450002,\n        \"mean\": 1.4662400598450003,\n        \"median\": 1.459294471845,\n        \"message\": \"gitignore\\n\",\n        \"min\": 1.455689714845,\n        \"stddev\": 0.017706651048624678,\n        \"system\": 0.051629804999999994,\n        \"time\": 1.458663471845,\n        \"user\": 1.47068039\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4a83089608e107db9e2814828028f09e601ba300 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4a83089608e107db9e2814828028f09e601ba300\",\n        \"max\": 1.4977872468450002,\n        \"mean\": 1.4662400598450003,\n        \"median\": 1.459294471845,\n        \"message\": \"gitignore\\n\",\n        \"min\": 1.455689714845,\n        \"stddev\": 0.017706651048624678,\n        \"system\": 0.051629804999999994,\n        \"time\": 1.459294471845,\n        \"user\": 1.47068039\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n        \"max\": 1.480285197455,\n        \"mean\": 1.461440515855,\n        \"median\": 1.4640092264550002,\n        \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n        \"min\": 1.432379308455,\n        \"stddev\": 0.017935630394473247,\n        \"system\": 0.051843415000000004,\n        \"time\": 1.4640092264550002,\n        \"user\": 1.4640838449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n        \"max\": 1.480285197455,\n        \"mean\": 1.461440515855,\n        \"median\": 1.4640092264550002,\n        \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n        \"min\": 1.432379308455,\n        \"stddev\": 0.017935630394473247,\n        \"system\": 0.051843415000000004,\n        \"time\": 1.432379308455,\n        \"user\": 1.4640838449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n        \"max\": 1.480285197455,\n        \"mean\": 1.461440515855,\n        \"median\": 1.4640092264550002,\n        \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n        \"min\": 1.432379308455,\n        \"stddev\": 0.017935630394473247,\n        \"system\": 0.051843415000000004,\n        \"time\": 1.480285197455,\n        \"user\": 1.4640838449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n        \"max\": 1.480285197455,\n        \"mean\": 1.461440515855,\n        \"median\": 1.4640092264550002,\n        \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n        \"min\": 1.432379308455,\n        \"stddev\": 0.017935630394473247,\n        \"system\": 0.051843415000000004,\n        \"time\": 1.4602033594550001,\n        \"user\": 1.4640838449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0bd12143737716de6130c726a2d071e2004092 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4c0bd12143737716de6130c726a2d071e2004092\",\n        \"max\": 1.480285197455,\n        \"mean\": 1.461440515855,\n        \"median\": 1.4640092264550002,\n        \"message\": \"Clean up\\n\\n- range -> section\\n- buf -> output_buffer\\n- edit doc comments\\n\",\n        \"min\": 1.432379308455,\n        \"stddev\": 0.017935630394473247,\n        \"system\": 0.051843415000000004,\n        \"time\": 1.470325487455,\n        \"user\": 1.4640838449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n        \"max\": 1.243351240645,\n        \"mean\": 1.2016839498449998,\n        \"median\": 1.198345246645,\n        \"message\": \"Impl function for enum\\n\",\n        \"min\": 1.178215910645,\n        \"stddev\": 0.02484727012846121,\n        \"system\": 0.05305982,\n        \"time\": 1.243351240645,\n        \"user\": 1.1973359249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n        \"max\": 1.243351240645,\n        \"mean\": 1.2016839498449998,\n        \"median\": 1.198345246645,\n        \"message\": \"Impl function for enum\\n\",\n        \"min\": 1.178215910645,\n        \"stddev\": 0.02484727012846121,\n        \"system\": 0.05305982,\n        \"time\": 1.198345246645,\n        \"user\": 1.1973359249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n        \"max\": 1.243351240645,\n        \"mean\": 1.2016839498449998,\n        \"median\": 1.198345246645,\n        \"message\": \"Impl function for enum\\n\",\n        \"min\": 1.178215910645,\n        \"stddev\": 0.02484727012846121,\n        \"system\": 0.05305982,\n        \"time\": 1.188727806645,\n        \"user\": 1.1973359249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n        \"max\": 1.243351240645,\n        \"mean\": 1.2016839498449998,\n        \"median\": 1.198345246645,\n        \"message\": \"Impl function for enum\\n\",\n        \"min\": 1.178215910645,\n        \"stddev\": 0.02484727012846121,\n        \"system\": 0.05305982,\n        \"time\": 1.199779544645,\n        \"user\": 1.1973359249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4d0c296fbc3eb308906fb47505766ac37fb641c2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-4d0c296fbc3eb308906fb47505766ac37fb641c2\",\n        \"max\": 1.243351240645,\n        \"mean\": 1.2016839498449998,\n        \"median\": 1.198345246645,\n        \"message\": \"Impl function for enum\\n\",\n        \"min\": 1.178215910645,\n        \"stddev\": 0.02484727012846121,\n        \"system\": 0.05305982,\n        \"time\": 1.178215910645,\n        \"user\": 1.1973359249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n        \"max\": 1.20114159209,\n        \"mean\": 1.17334452129,\n        \"median\": 1.16757307309,\n        \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n        \"min\": 1.1589249160900001,\n        \"stddev\": 0.017714289940625846,\n        \"system\": 0.04069096,\n        \"time\": 1.20114159209,\n        \"user\": 1.1725067\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n        \"max\": 1.20114159209,\n        \"mean\": 1.17334452129,\n        \"median\": 1.16757307309,\n        \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n        \"min\": 1.1589249160900001,\n        \"stddev\": 0.017714289940625846,\n        \"system\": 0.04069096,\n        \"time\": 1.1589249160900001,\n        \"user\": 1.1725067\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n        \"max\": 1.20114159209,\n        \"mean\": 1.17334452129,\n        \"median\": 1.16757307309,\n        \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n        \"min\": 1.1589249160900001,\n        \"stddev\": 0.017714289940625846,\n        \"system\": 0.04069096,\n        \"time\": 1.15923746609,\n        \"user\": 1.1725067\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n        \"max\": 1.20114159209,\n        \"mean\": 1.17334452129,\n        \"median\": 1.16757307309,\n        \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n        \"min\": 1.1589249160900001,\n        \"stddev\": 0.017714289940625846,\n        \"system\": 0.04069096,\n        \"time\": 1.17984555909,\n        \"user\": 1.1725067\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55547d7d623a8817264d94f239719e73114b7414 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-55547d7d623a8817264d94f239719e73114b7414\",\n        \"max\": 1.20114159209,\n        \"mean\": 1.17334452129,\n        \"median\": 1.16757307309,\n        \"message\": \"Hack: coerce all style sections to same type\\n\\nTODO: use Vec<(Style, &str)>\\n\",\n        \"min\": 1.1589249160900001,\n        \"stddev\": 0.017714289940625846,\n        \"system\": 0.04069096,\n        \"time\": 1.16757307309,\n        \"user\": 1.1725067\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n        \"max\": 1.180643254655,\n        \"mean\": 1.153623906255,\n        \"median\": 1.150362804655,\n        \"message\": \"Fix type of buffered line style sections\\n\",\n        \"min\": 1.138442188655,\n        \"stddev\": 0.017300587749109378,\n        \"system\": 0.040409505000000005,\n        \"time\": 1.180643254655,\n        \"user\": 1.153510035\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n        \"max\": 1.180643254655,\n        \"mean\": 1.153623906255,\n        \"median\": 1.150362804655,\n        \"message\": \"Fix type of buffered line style sections\\n\",\n        \"min\": 1.138442188655,\n        \"stddev\": 0.017300587749109378,\n        \"system\": 0.040409505000000005,\n        \"time\": 1.139606859655,\n        \"user\": 1.153510035\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n        \"max\": 1.180643254655,\n        \"mean\": 1.153623906255,\n        \"median\": 1.150362804655,\n        \"message\": \"Fix type of buffered line style sections\\n\",\n        \"min\": 1.138442188655,\n        \"stddev\": 0.017300587749109378,\n        \"system\": 0.040409505000000005,\n        \"time\": 1.138442188655,\n        \"user\": 1.153510035\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n        \"max\": 1.180643254655,\n        \"mean\": 1.153623906255,\n        \"median\": 1.150362804655,\n        \"message\": \"Fix type of buffered line style sections\\n\",\n        \"min\": 1.138442188655,\n        \"stddev\": 0.017300587749109378,\n        \"system\": 0.040409505000000005,\n        \"time\": 1.159064423655,\n        \"user\": 1.153510035\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/658a4e81667a4eb94f52829372aa4464881cb6be < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-658a4e81667a4eb94f52829372aa4464881cb6be\",\n        \"max\": 1.180643254655,\n        \"mean\": 1.153623906255,\n        \"median\": 1.150362804655,\n        \"message\": \"Fix type of buffered line style sections\\n\",\n        \"min\": 1.138442188655,\n        \"stddev\": 0.017300587749109378,\n        \"system\": 0.040409505000000005,\n        \"time\": 1.150362804655,\n        \"user\": 1.153510035\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n        \"max\": 1.18124358003,\n        \"mean\": 1.16124698863,\n        \"median\": 1.1612450600300002,\n        \"message\": \"Convert paint_lines function into method on Painter\\n\",\n        \"min\": 1.14183412803,\n        \"stddev\": 0.015438166501276645,\n        \"system\": 0.047347110000000005,\n        \"time\": 1.17034906003,\n        \"user\": 1.158070205\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n        \"max\": 1.18124358003,\n        \"mean\": 1.16124698863,\n        \"median\": 1.1612450600300002,\n        \"message\": \"Convert paint_lines function into method on Painter\\n\",\n        \"min\": 1.14183412803,\n        \"stddev\": 0.015438166501276645,\n        \"system\": 0.047347110000000005,\n        \"time\": 1.14183412803,\n        \"user\": 1.158070205\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n        \"max\": 1.18124358003,\n        \"mean\": 1.16124698863,\n        \"median\": 1.1612450600300002,\n        \"message\": \"Convert paint_lines function into method on Painter\\n\",\n        \"min\": 1.14183412803,\n        \"stddev\": 0.015438166501276645,\n        \"system\": 0.047347110000000005,\n        \"time\": 1.15156311503,\n        \"user\": 1.158070205\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n        \"max\": 1.18124358003,\n        \"mean\": 1.16124698863,\n        \"median\": 1.1612450600300002,\n        \"message\": \"Convert paint_lines function into method on Painter\\n\",\n        \"min\": 1.14183412803,\n        \"stddev\": 0.015438166501276645,\n        \"system\": 0.047347110000000005,\n        \"time\": 1.18124358003,\n        \"user\": 1.158070205\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6710d1087e43d2adaf75372308732bc15bddf803 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-6710d1087e43d2adaf75372308732bc15bddf803\",\n        \"max\": 1.18124358003,\n        \"mean\": 1.16124698863,\n        \"median\": 1.1612450600300002,\n        \"message\": \"Convert paint_lines function into method on Painter\\n\",\n        \"min\": 1.14183412803,\n        \"stddev\": 0.015438166501276645,\n        \"system\": 0.047347110000000005,\n        \"time\": 1.1612450600300002,\n        \"user\": 1.158070205\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n        \"max\": 1.51119344399,\n        \"mean\": 1.4876333715899999,\n        \"median\": 1.4878771989900001,\n        \"message\": \"Simplify state transition loop\\n\",\n        \"min\": 1.45865496599,\n        \"stddev\": 0.019060936244040278,\n        \"system\": 0.05565329,\n        \"time\": 1.45865496599,\n        \"user\": 1.4956431249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n        \"max\": 1.51119344399,\n        \"mean\": 1.4876333715899999,\n        \"median\": 1.4878771989900001,\n        \"message\": \"Simplify state transition loop\\n\",\n        \"min\": 1.45865496599,\n        \"stddev\": 0.019060936244040278,\n        \"system\": 0.05565329,\n        \"time\": 1.51119344399,\n        \"user\": 1.4956431249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n        \"max\": 1.51119344399,\n        \"mean\": 1.4876333715899999,\n        \"median\": 1.4878771989900001,\n        \"message\": \"Simplify state transition loop\\n\",\n        \"min\": 1.45865496599,\n        \"stddev\": 0.019060936244040278,\n        \"system\": 0.05565329,\n        \"time\": 1.49496430199,\n        \"user\": 1.4956431249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n        \"max\": 1.51119344399,\n        \"mean\": 1.4876333715899999,\n        \"median\": 1.4878771989900001,\n        \"message\": \"Simplify state transition loop\\n\",\n        \"min\": 1.45865496599,\n        \"stddev\": 0.019060936244040278,\n        \"system\": 0.05565329,\n        \"time\": 1.48547694699,\n        \"user\": 1.4956431249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/69e954adcb090285e54270cfd730a70c568f310b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-69e954adcb090285e54270cfd730a70c568f310b\",\n        \"max\": 1.51119344399,\n        \"mean\": 1.4876333715899999,\n        \"median\": 1.4878771989900001,\n        \"message\": \"Simplify state transition loop\\n\",\n        \"min\": 1.45865496599,\n        \"stddev\": 0.019060936244040278,\n        \"system\": 0.05565329,\n        \"time\": 1.4878771989900001,\n        \"user\": 1.4956431249999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n        \"max\": 1.3965842474449999,\n        \"mean\": 1.371002113845,\n        \"median\": 1.365971817445,\n        \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n        \"min\": 1.360670720445,\n        \"stddev\": 0.014706530926206579,\n        \"system\": 0.07031591999999999,\n        \"time\": 1.3965842474449999,\n        \"user\": 1.3724192149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n        \"max\": 1.3965842474449999,\n        \"mean\": 1.371002113845,\n        \"median\": 1.365971817445,\n        \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n        \"min\": 1.360670720445,\n        \"stddev\": 0.014706530926206579,\n        \"system\": 0.07031591999999999,\n        \"time\": 1.369525921445,\n        \"user\": 1.3724192149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n        \"max\": 1.3965842474449999,\n        \"mean\": 1.371002113845,\n        \"median\": 1.365971817445,\n        \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n        \"min\": 1.360670720445,\n        \"stddev\": 0.014706530926206579,\n        \"system\": 0.07031591999999999,\n        \"time\": 1.365971817445,\n        \"user\": 1.3724192149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n        \"max\": 1.3965842474449999,\n        \"mean\": 1.371002113845,\n        \"median\": 1.365971817445,\n        \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n        \"min\": 1.360670720445,\n        \"stddev\": 0.014706530926206579,\n        \"system\": 0.07031591999999999,\n        \"time\": 1.362257862445,\n        \"user\": 1.3724192149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7794f8730bb6384989396bc21673962fe86b4eaa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-7794f8730bb6384989396bc21673962fe86b4eaa\",\n        \"max\": 1.3965842474449999,\n        \"mean\": 1.371002113845,\n        \"median\": 1.365971817445,\n        \"message\": \"Don't demand specific non +- initial characters in first column\\n\\nThe following are possibilities I'm aware of:\\n- <empty line>\\n- <space><unchanged line>\\n- '\\\\ No newline at end of file'\\n\",\n        \"min\": 1.360670720445,\n        \"stddev\": 0.014706530926206579,\n        \"system\": 0.07031591999999999,\n        \"time\": 1.360670720445,\n        \"user\": 1.3724192149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n        \"max\": 1.22240235419,\n        \"mean\": 1.1891125803900002,\n        \"median\": 1.18795458619,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.1683980491900001,\n        \"stddev\": 0.02073144740917719,\n        \"system\": 0.051671064999999995,\n        \"time\": 1.22240235419,\n        \"user\": 1.185881535\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n        \"max\": 1.22240235419,\n        \"mean\": 1.1891125803900002,\n        \"median\": 1.18795458619,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.1683980491900001,\n        \"stddev\": 0.02073144740917719,\n        \"system\": 0.051671064999999995,\n        \"time\": 1.1683980491900001,\n        \"user\": 1.185881535\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n        \"max\": 1.22240235419,\n        \"mean\": 1.1891125803900002,\n        \"median\": 1.18795458619,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.1683980491900001,\n        \"stddev\": 0.02073144740917719,\n        \"system\": 0.051671064999999995,\n        \"time\": 1.17580944919,\n        \"user\": 1.185881535\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n        \"max\": 1.22240235419,\n        \"mean\": 1.1891125803900002,\n        \"median\": 1.18795458619,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.1683980491900001,\n        \"stddev\": 0.02073144740917719,\n        \"system\": 0.051671064999999995,\n        \"time\": 1.1909984631900001,\n        \"user\": 1.185881535\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-9f14f5eaf4b5e3bbdeaf993c18b4aafc8fe77e74\",\n        \"max\": 1.22240235419,\n        \"mean\": 1.1891125803900002,\n        \"median\": 1.18795458619,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.1683980491900001,\n        \"stddev\": 0.02073144740917719,\n        \"system\": 0.051671064999999995,\n        \"time\": 1.18795458619,\n        \"user\": 1.185881535\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n        \"max\": 1.1882785525500001,\n        \"mean\": 1.1533804717500002,\n        \"median\": 1.14654363555,\n        \"message\": \"Stub: combine style sections\\n\",\n        \"min\": 1.1413470225500002,\n        \"stddev\": 0.01964177319926766,\n        \"system\": 0.041079535,\n        \"time\": 1.1882785525500001,\n        \"user\": 1.152437\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n        \"max\": 1.1882785525500001,\n        \"mean\": 1.1533804717500002,\n        \"median\": 1.14654363555,\n        \"message\": \"Stub: combine style sections\\n\",\n        \"min\": 1.1413470225500002,\n        \"stddev\": 0.01964177319926766,\n        \"system\": 0.041079535,\n        \"time\": 1.1413470225500002,\n        \"user\": 1.152437\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n        \"max\": 1.1882785525500001,\n        \"mean\": 1.1533804717500002,\n        \"median\": 1.14654363555,\n        \"message\": \"Stub: combine style sections\\n\",\n        \"min\": 1.1413470225500002,\n        \"stddev\": 0.01964177319926766,\n        \"system\": 0.041079535,\n        \"time\": 1.1469990005500001,\n        \"user\": 1.152437\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n        \"max\": 1.1882785525500001,\n        \"mean\": 1.1533804717500002,\n        \"median\": 1.14654363555,\n        \"message\": \"Stub: combine style sections\\n\",\n        \"min\": 1.1413470225500002,\n        \"stddev\": 0.01964177319926766,\n        \"system\": 0.041079535,\n        \"time\": 1.14654363555,\n        \"user\": 1.152437\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7a99224f9decb2458fd0fe6bed357173d9cc0a3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a7a99224f9decb2458fd0fe6bed357173d9cc0a3\",\n        \"max\": 1.1882785525500001,\n        \"mean\": 1.1533804717500002,\n        \"median\": 1.14654363555,\n        \"message\": \"Stub: combine style sections\\n\",\n        \"min\": 1.1413470225500002,\n        \"stddev\": 0.01964177319926766,\n        \"system\": 0.041079535,\n        \"time\": 1.14373414755,\n        \"user\": 1.152437\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n        \"max\": 1.1644550439649999,\n        \"mean\": 1.140749134165,\n        \"median\": 1.1404099639649998,\n        \"message\": \"Separate painting and emitting\\n\",\n        \"min\": 1.1221839839649999,\n        \"stddev\": 0.015516770524477393,\n        \"system\": 0.04055066,\n        \"time\": 1.1644550439649999,\n        \"user\": 1.1394548200000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n        \"max\": 1.1644550439649999,\n        \"mean\": 1.140749134165,\n        \"median\": 1.1404099639649998,\n        \"message\": \"Separate painting and emitting\\n\",\n        \"min\": 1.1221839839649999,\n        \"stddev\": 0.015516770524477393,\n        \"system\": 0.04055066,\n        \"time\": 1.1404099639649998,\n        \"user\": 1.1394548200000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n        \"max\": 1.1644550439649999,\n        \"mean\": 1.140749134165,\n        \"median\": 1.1404099639649998,\n        \"message\": \"Separate painting and emitting\\n\",\n        \"min\": 1.1221839839649999,\n        \"stddev\": 0.015516770524477393,\n        \"system\": 0.04055066,\n        \"time\": 1.1221839839649999,\n        \"user\": 1.1394548200000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n        \"max\": 1.1644550439649999,\n        \"mean\": 1.140749134165,\n        \"median\": 1.1404099639649998,\n        \"message\": \"Separate painting and emitting\\n\",\n        \"min\": 1.1221839839649999,\n        \"stddev\": 0.015516770524477393,\n        \"system\": 0.04055066,\n        \"time\": 1.133615314965,\n        \"user\": 1.1394548200000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8c516a7dcc6211effdc11c0d7fa32ef32ec8161 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-a8c516a7dcc6211effdc11c0d7fa32ef32ec8161\",\n        \"max\": 1.1644550439649999,\n        \"mean\": 1.140749134165,\n        \"median\": 1.1404099639649998,\n        \"message\": \"Separate painting and emitting\\n\",\n        \"min\": 1.1221839839649999,\n        \"stddev\": 0.015516770524477393,\n        \"system\": 0.04055066,\n        \"time\": 1.143081363965,\n        \"user\": 1.1394548200000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n        \"max\": 1.236158594195,\n        \"mean\": 1.201434078395,\n        \"median\": 1.208384566195,\n        \"message\": \"Rename and unify files\\n\",\n        \"min\": 1.161961305195,\n        \"stddev\": 0.030689201636673068,\n        \"system\": 0.051524894999999994,\n        \"time\": 1.208384566195,\n        \"user\": 1.200861585\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n        \"max\": 1.236158594195,\n        \"mean\": 1.201434078395,\n        \"median\": 1.208384566195,\n        \"message\": \"Rename and unify files\\n\",\n        \"min\": 1.161961305195,\n        \"stddev\": 0.030689201636673068,\n        \"system\": 0.051524894999999994,\n        \"time\": 1.236158594195,\n        \"user\": 1.200861585\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n        \"max\": 1.236158594195,\n        \"mean\": 1.201434078395,\n        \"median\": 1.208384566195,\n        \"message\": \"Rename and unify files\\n\",\n        \"min\": 1.161961305195,\n        \"stddev\": 0.030689201636673068,\n        \"system\": 0.051524894999999994,\n        \"time\": 1.222158205195,\n        \"user\": 1.200861585\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n        \"max\": 1.236158594195,\n        \"mean\": 1.201434078395,\n        \"median\": 1.208384566195,\n        \"message\": \"Rename and unify files\\n\",\n        \"min\": 1.161961305195,\n        \"stddev\": 0.030689201636673068,\n        \"system\": 0.051524894999999994,\n        \"time\": 1.178507721195,\n        \"user\": 1.200861585\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-bfe5b728b51e36e4e37c7cb5c09b1fcf92b24448\",\n        \"max\": 1.236158594195,\n        \"mean\": 1.201434078395,\n        \"median\": 1.208384566195,\n        \"message\": \"Rename and unify files\\n\",\n        \"min\": 1.161961305195,\n        \"stddev\": 0.030689201636673068,\n        \"system\": 0.051524894999999994,\n        \"time\": 1.161961305195,\n        \"user\": 1.200861585\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n        \"max\": 1.299086087545,\n        \"mean\": 1.2401122099450004,\n        \"median\": 1.227456850545,\n        \"message\": \"Simplify flush condition\\n\",\n        \"min\": 1.217535754545,\n        \"stddev\": 0.03333379794477074,\n        \"system\": 0.050098390000000007,\n        \"time\": 1.2309754855450001,\n        \"user\": 1.2433628549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n        \"max\": 1.299086087545,\n        \"mean\": 1.2401122099450004,\n        \"median\": 1.227456850545,\n        \"message\": \"Simplify flush condition\\n\",\n        \"min\": 1.217535754545,\n        \"stddev\": 0.03333379794477074,\n        \"system\": 0.050098390000000007,\n        \"time\": 1.2255068715450002,\n        \"user\": 1.2433628549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n        \"max\": 1.299086087545,\n        \"mean\": 1.2401122099450004,\n        \"median\": 1.227456850545,\n        \"message\": \"Simplify flush condition\\n\",\n        \"min\": 1.217535754545,\n        \"stddev\": 0.03333379794477074,\n        \"system\": 0.050098390000000007,\n        \"time\": 1.217535754545,\n        \"user\": 1.2433628549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n        \"max\": 1.299086087545,\n        \"mean\": 1.2401122099450004,\n        \"median\": 1.227456850545,\n        \"message\": \"Simplify flush condition\\n\",\n        \"min\": 1.217535754545,\n        \"stddev\": 0.03333379794477074,\n        \"system\": 0.050098390000000007,\n        \"time\": 1.227456850545,\n        \"user\": 1.2433628549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c2e85b49d238e9fa37f20a4d9b3fab0c60464c4f\",\n        \"max\": 1.299086087545,\n        \"mean\": 1.2401122099450004,\n        \"median\": 1.227456850545,\n        \"message\": \"Simplify flush condition\\n\",\n        \"min\": 1.217535754545,\n        \"stddev\": 0.03333379794477074,\n        \"system\": 0.050098390000000007,\n        \"time\": 1.299086087545,\n        \"user\": 1.2433628549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n        \"max\": 1.215233308225,\n        \"mean\": 1.1798152644250002,\n        \"median\": 1.1610149142250001,\n        \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n        \"min\": 1.154320513225,\n        \"stddev\": 0.03027317090232085,\n        \"system\": 0.050040474999999994,\n        \"time\": 1.2104127792250001,\n        \"user\": 1.1780197799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n        \"max\": 1.215233308225,\n        \"mean\": 1.1798152644250002,\n        \"median\": 1.1610149142250001,\n        \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n        \"min\": 1.154320513225,\n        \"stddev\": 0.03027317090232085,\n        \"system\": 0.050040474999999994,\n        \"time\": 1.154320513225,\n        \"user\": 1.1780197799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n        \"max\": 1.215233308225,\n        \"mean\": 1.1798152644250002,\n        \"median\": 1.1610149142250001,\n        \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n        \"min\": 1.154320513225,\n        \"stddev\": 0.03027317090232085,\n        \"system\": 0.050040474999999994,\n        \"time\": 1.215233308225,\n        \"user\": 1.1780197799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n        \"max\": 1.215233308225,\n        \"mean\": 1.1798152644250002,\n        \"median\": 1.1610149142250001,\n        \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n        \"min\": 1.154320513225,\n        \"stddev\": 0.03027317090232085,\n        \"system\": 0.050040474999999994,\n        \"time\": 1.1580948072250001,\n        \"user\": 1.1780197799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3458e29960c68d29b0d7080f04e08c5895547c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3458e29960c68d29b0d7080f04e08c5895547c4\",\n        \"max\": 1.215233308225,\n        \"mean\": 1.1798152644250002,\n        \"median\": 1.1610149142250001,\n        \"message\": \"Refactor: simplify; eliminate paint_line\\n\",\n        \"min\": 1.154320513225,\n        \"stddev\": 0.03027317090232085,\n        \"system\": 0.050040474999999994,\n        \"time\": 1.1610149142250001,\n        \"user\": 1.1780197799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n        \"max\": 1.26488234408,\n        \"mean\": 1.23532166768,\n        \"median\": 1.2302774600800002,\n        \"message\": \"Strengthen test\\n\",\n        \"min\": 1.22228035208,\n        \"stddev\": 0.017024924727588566,\n        \"system\": 0.05054451499999999,\n        \"time\": 1.26488234408,\n        \"user\": 1.2364692400000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n        \"max\": 1.26488234408,\n        \"mean\": 1.23532166768,\n        \"median\": 1.2302774600800002,\n        \"message\": \"Strengthen test\\n\",\n        \"min\": 1.22228035208,\n        \"stddev\": 0.017024924727588566,\n        \"system\": 0.05054451499999999,\n        \"time\": 1.2302774600800002,\n        \"user\": 1.2364692400000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n        \"max\": 1.26488234408,\n        \"mean\": 1.23532166768,\n        \"median\": 1.2302774600800002,\n        \"message\": \"Strengthen test\\n\",\n        \"min\": 1.22228035208,\n        \"stddev\": 0.017024924727588566,\n        \"system\": 0.05054451499999999,\n        \"time\": 1.2330625350800002,\n        \"user\": 1.2364692400000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n        \"max\": 1.26488234408,\n        \"mean\": 1.23532166768,\n        \"median\": 1.2302774600800002,\n        \"message\": \"Strengthen test\\n\",\n        \"min\": 1.22228035208,\n        \"stddev\": 0.017024924727588566,\n        \"system\": 0.05054451499999999,\n        \"time\": 1.22228035208,\n        \"user\": 1.2364692400000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c3fa7cd701bbf760be6fe5e5ce530c53ea178443 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-c3fa7cd701bbf760be6fe5e5ce530c53ea178443\",\n        \"max\": 1.26488234408,\n        \"mean\": 1.23532166768,\n        \"median\": 1.2302774600800002,\n        \"message\": \"Strengthen test\\n\",\n        \"min\": 1.22228035208,\n        \"stddev\": 0.017024924727588566,\n        \"system\": 0.05054451499999999,\n        \"time\": 1.22610564708,\n        \"user\": 1.2364692400000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n        \"max\": 1.24193775544,\n        \"mean\": 1.19488034504,\n        \"median\": 1.18671817744,\n        \"message\": \"Create bat directory for bat-derived code\\n\",\n        \"min\": 1.1706698424400002,\n        \"stddev\": 0.02759215271141244,\n        \"system\": 0.052268085,\n        \"time\": 1.24193775544,\n        \"user\": 1.19093323\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n        \"max\": 1.24193775544,\n        \"mean\": 1.19488034504,\n        \"median\": 1.18671817744,\n        \"message\": \"Create bat directory for bat-derived code\\n\",\n        \"min\": 1.1706698424400002,\n        \"stddev\": 0.02759215271141244,\n        \"system\": 0.052268085,\n        \"time\": 1.18671817744,\n        \"user\": 1.19093323\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n        \"max\": 1.24193775544,\n        \"mean\": 1.19488034504,\n        \"median\": 1.18671817744,\n        \"message\": \"Create bat directory for bat-derived code\\n\",\n        \"min\": 1.1706698424400002,\n        \"stddev\": 0.02759215271141244,\n        \"system\": 0.052268085,\n        \"time\": 1.19346745544,\n        \"user\": 1.19093323\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n        \"max\": 1.24193775544,\n        \"mean\": 1.19488034504,\n        \"median\": 1.18671817744,\n        \"message\": \"Create bat directory for bat-derived code\\n\",\n        \"min\": 1.1706698424400002,\n        \"stddev\": 0.02759215271141244,\n        \"system\": 0.052268085,\n        \"time\": 1.18160849444,\n        \"user\": 1.19093323\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8e8adf297a2042fe6409d77ff97a41e8747b34 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-cc8e8adf297a2042fe6409d77ff97a41e8747b34\",\n        \"max\": 1.24193775544,\n        \"mean\": 1.19488034504,\n        \"median\": 1.18671817744,\n        \"message\": \"Create bat directory for bat-derived code\\n\",\n        \"min\": 1.1706698424400002,\n        \"stddev\": 0.02759215271141244,\n        \"system\": 0.052268085,\n        \"time\": 1.1706698424400002,\n        \"user\": 1.19093323\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n        \"max\": 1.185194344135,\n        \"mean\": 1.153357329535,\n        \"median\": 1.146247208135,\n        \"message\": \"Fix state machine documentation\\n\",\n        \"min\": 1.1431473451349998,\n        \"stddev\": 0.017924347129004266,\n        \"system\": 0.04844933,\n        \"time\": 1.185194344135,\n        \"user\": 1.1529702099999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n        \"max\": 1.185194344135,\n        \"mean\": 1.153357329535,\n        \"median\": 1.146247208135,\n        \"message\": \"Fix state machine documentation\\n\",\n        \"min\": 1.1431473451349998,\n        \"stddev\": 0.017924347129004266,\n        \"system\": 0.04844933,\n        \"time\": 1.1431473451349998,\n        \"user\": 1.1529702099999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n        \"max\": 1.185194344135,\n        \"mean\": 1.153357329535,\n        \"median\": 1.146247208135,\n        \"message\": \"Fix state machine documentation\\n\",\n        \"min\": 1.1431473451349998,\n        \"stddev\": 0.017924347129004266,\n        \"system\": 0.04844933,\n        \"time\": 1.146247208135,\n        \"user\": 1.1529702099999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n        \"max\": 1.185194344135,\n        \"mean\": 1.153357329535,\n        \"median\": 1.146247208135,\n        \"message\": \"Fix state machine documentation\\n\",\n        \"min\": 1.1431473451349998,\n        \"stddev\": 0.017924347129004266,\n        \"system\": 0.04844933,\n        \"time\": 1.1484827221349998,\n        \"user\": 1.1529702099999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fff232e28389d9b0a8deb3c5e714df16d992fcf7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644269-fff232e28389d9b0a8deb3c5e714df16d992fcf7\",\n        \"max\": 1.185194344135,\n        \"mean\": 1.153357329535,\n        \"median\": 1.146247208135,\n        \"message\": \"Fix state machine documentation\\n\",\n        \"min\": 1.1431473451349998,\n        \"stddev\": 0.017924347129004266,\n        \"system\": 0.04844933,\n        \"time\": 1.143715028135,\n        \"user\": 1.1529702099999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n        \"max\": 1.275949960665,\n        \"mean\": 1.2385253336650002,\n        \"median\": 1.233933613665,\n        \"message\": \"Refactor: config colors\\n\",\n        \"min\": 1.2150566196650001,\n        \"stddev\": 0.023975118752485716,\n        \"system\": 0.041118449999999994,\n        \"time\": 1.275949960665,\n        \"user\": 1.2279322649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n        \"max\": 1.275949960665,\n        \"mean\": 1.2385253336650002,\n        \"median\": 1.233933613665,\n        \"message\": \"Refactor: config colors\\n\",\n        \"min\": 1.2150566196650001,\n        \"stddev\": 0.023975118752485716,\n        \"system\": 0.041118449999999994,\n        \"time\": 1.245736808665,\n        \"user\": 1.2279322649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n        \"max\": 1.275949960665,\n        \"mean\": 1.2385253336650002,\n        \"median\": 1.233933613665,\n        \"message\": \"Refactor: config colors\\n\",\n        \"min\": 1.2150566196650001,\n        \"stddev\": 0.023975118752485716,\n        \"system\": 0.041118449999999994,\n        \"time\": 1.221949665665,\n        \"user\": 1.2279322649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n        \"max\": 1.275949960665,\n        \"mean\": 1.2385253336650002,\n        \"median\": 1.233933613665,\n        \"message\": \"Refactor: config colors\\n\",\n        \"min\": 1.2150566196650001,\n        \"stddev\": 0.023975118752485716,\n        \"system\": 0.041118449999999994,\n        \"time\": 1.233933613665,\n        \"user\": 1.2279322649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562644274-80aba8bb534b4013392a87fb1b2c0cb35d2b0ab2\",\n        \"max\": 1.275949960665,\n        \"mean\": 1.2385253336650002,\n        \"median\": 1.233933613665,\n        \"message\": \"Refactor: config colors\\n\",\n        \"min\": 1.2150566196650001,\n        \"stddev\": 0.023975118752485716,\n        \"system\": 0.041118449999999994,\n        \"time\": 1.2150566196650001,\n        \"user\": 1.2279322649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n        \"max\": 1.285482954295,\n        \"mean\": 1.2555986748949999,\n        \"median\": 1.250473410295,\n        \"message\": \"Switch from Color to Style for specifying background style\\n\",\n        \"min\": 1.244030053295,\n        \"stddev\": 0.017203015366762314,\n        \"system\": 0.0428499,\n        \"time\": 1.285482954295,\n        \"user\": 1.258365225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n        \"max\": 1.285482954295,\n        \"mean\": 1.2555986748949999,\n        \"median\": 1.250473410295,\n        \"message\": \"Switch from Color to Style for specifying background style\\n\",\n        \"min\": 1.244030053295,\n        \"stddev\": 0.017203015366762314,\n        \"system\": 0.0428499,\n        \"time\": 1.2443338842949998,\n        \"user\": 1.258365225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n        \"max\": 1.285482954295,\n        \"mean\": 1.2555986748949999,\n        \"median\": 1.250473410295,\n        \"message\": \"Switch from Color to Style for specifying background style\\n\",\n        \"min\": 1.244030053295,\n        \"stddev\": 0.017203015366762314,\n        \"system\": 0.0428499,\n        \"time\": 1.250473410295,\n        \"user\": 1.258365225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n        \"max\": 1.285482954295,\n        \"mean\": 1.2555986748949999,\n        \"median\": 1.250473410295,\n        \"message\": \"Switch from Color to Style for specifying background style\\n\",\n        \"min\": 1.244030053295,\n        \"stddev\": 0.017203015366762314,\n        \"system\": 0.0428499,\n        \"time\": 1.253673072295,\n        \"user\": 1.258365225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/74fa9706085254ab27d9ea7cff535346af3ab5a0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-74fa9706085254ab27d9ea7cff535346af3ab5a0\",\n        \"max\": 1.285482954295,\n        \"mean\": 1.2555986748949999,\n        \"median\": 1.250473410295,\n        \"message\": \"Switch from Color to Style for specifying background style\\n\",\n        \"min\": 1.244030053295,\n        \"stddev\": 0.017203015366762314,\n        \"system\": 0.0428499,\n        \"time\": 1.244030053295,\n        \"user\": 1.258365225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n        \"max\": 1.448841718975,\n        \"mean\": 1.4232398383750002,\n        \"median\": 1.421268540975,\n        \"message\": \"Honor --width argument\\n\",\n        \"min\": 1.4079707859750001,\n        \"stddev\": 0.01683724012584363,\n        \"system\": 0.043180885,\n        \"time\": 1.448841718975,\n        \"user\": 1.4281380249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n        \"max\": 1.448841718975,\n        \"mean\": 1.4232398383750002,\n        \"median\": 1.421268540975,\n        \"message\": \"Honor --width argument\\n\",\n        \"min\": 1.4079707859750001,\n        \"stddev\": 0.01683724012584363,\n        \"system\": 0.043180885,\n        \"time\": 1.421268540975,\n        \"user\": 1.4281380249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n        \"max\": 1.448841718975,\n        \"mean\": 1.4232398383750002,\n        \"median\": 1.421268540975,\n        \"message\": \"Honor --width argument\\n\",\n        \"min\": 1.4079707859750001,\n        \"stddev\": 0.01683724012584363,\n        \"system\": 0.043180885,\n        \"time\": 1.4088972139750002,\n        \"user\": 1.4281380249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n        \"max\": 1.448841718975,\n        \"mean\": 1.4232398383750002,\n        \"median\": 1.421268540975,\n        \"message\": \"Honor --width argument\\n\",\n        \"min\": 1.4079707859750001,\n        \"stddev\": 0.01683724012584363,\n        \"system\": 0.043180885,\n        \"time\": 1.4079707859750001,\n        \"user\": 1.4281380249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a053602c763e64ae88aedd4b0a541b4ca49e863 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-8a053602c763e64ae88aedd4b0a541b4ca49e863\",\n        \"max\": 1.448841718975,\n        \"mean\": 1.4232398383750002,\n        \"median\": 1.421268540975,\n        \"message\": \"Honor --width argument\\n\",\n        \"min\": 1.4079707859750001,\n        \"stddev\": 0.01683724012584363,\n        \"system\": 0.043180885,\n        \"time\": 1.429220931975,\n        \"user\": 1.4281380249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n        \"max\": 1.20416081136,\n        \"mean\": 1.1801096345600002,\n        \"median\": 1.17352605936,\n        \"message\": \"Remove -/+ markers in first column\\n\",\n        \"min\": 1.16583214536,\n        \"stddev\": 0.015914726384856154,\n        \"system\": 0.04282999,\n        \"time\": 1.18806382936,\n        \"user\": 1.1797219700000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n        \"max\": 1.20416081136,\n        \"mean\": 1.1801096345600002,\n        \"median\": 1.17352605936,\n        \"message\": \"Remove -/+ markers in first column\\n\",\n        \"min\": 1.16583214536,\n        \"stddev\": 0.015914726384856154,\n        \"system\": 0.04282999,\n        \"time\": 1.17352605936,\n        \"user\": 1.1797219700000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n        \"max\": 1.20416081136,\n        \"mean\": 1.1801096345600002,\n        \"median\": 1.17352605936,\n        \"message\": \"Remove -/+ markers in first column\\n\",\n        \"min\": 1.16583214536,\n        \"stddev\": 0.015914726384856154,\n        \"system\": 0.04282999,\n        \"time\": 1.20416081136,\n        \"user\": 1.1797219700000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n        \"max\": 1.20416081136,\n        \"mean\": 1.1801096345600002,\n        \"median\": 1.17352605936,\n        \"message\": \"Remove -/+ markers in first column\\n\",\n        \"min\": 1.16583214536,\n        \"stddev\": 0.015914726384856154,\n        \"system\": 0.04282999,\n        \"time\": 1.16583214536,\n        \"user\": 1.1797219700000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90874e2134ac5a45263eaa67984c946776ab305e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562682538-90874e2134ac5a45263eaa67984c946776ab305e\",\n        \"max\": 1.20416081136,\n        \"mean\": 1.1801096345600002,\n        \"median\": 1.17352605936,\n        \"message\": \"Remove -/+ markers in first column\\n\",\n        \"min\": 1.16583214536,\n        \"stddev\": 0.015914726384856154,\n        \"system\": 0.04282999,\n        \"time\": 1.16896532736,\n        \"user\": 1.1797219700000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n        \"max\": 1.4434280558500001,\n        \"mean\": 1.43252225665,\n        \"median\": 1.42855887885,\n        \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n        \"min\": 1.42472387885,\n        \"stddev\": 0.00822349179777816,\n        \"system\": 0.04361345,\n        \"time\": 1.4434280558500001,\n        \"user\": 1.43836896\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n        \"max\": 1.4434280558500001,\n        \"mean\": 1.43252225665,\n        \"median\": 1.42855887885,\n        \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n        \"min\": 1.42472387885,\n        \"stddev\": 0.00822349179777816,\n        \"system\": 0.04361345,\n        \"time\": 1.42472387885,\n        \"user\": 1.43836896\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n        \"max\": 1.4434280558500001,\n        \"mean\": 1.43252225665,\n        \"median\": 1.42855887885,\n        \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n        \"min\": 1.42472387885,\n        \"stddev\": 0.00822349179777816,\n        \"system\": 0.04361345,\n        \"time\": 1.43906077585,\n        \"user\": 1.43836896\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n        \"max\": 1.4434280558500001,\n        \"mean\": 1.43252225665,\n        \"median\": 1.42855887885,\n        \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n        \"min\": 1.42472387885,\n        \"stddev\": 0.00822349179777816,\n        \"system\": 0.04361345,\n        \"time\": 1.42683969385,\n        \"user\": 1.43836896\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1313565990f4fcc1745099de0a37078d6ea75d22 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-1313565990f4fcc1745099de0a37078d6ea75d22\",\n        \"max\": 1.4434280558500001,\n        \"mean\": 1.43252225665,\n        \"median\": 1.42855887885,\n        \"message\": \"Background diff detail bug fixes\\n\\n- ensure that (right-trimmed length) <= (common prefix length)\\n- ensure that change_begin <= change_end\\n\",\n        \"min\": 1.42472387885,\n        \"stddev\": 0.00822349179777816,\n        \"system\": 0.04361345,\n        \"time\": 1.42855887885,\n        \"user\": 1.43836896\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n        \"max\": 1.487303488175,\n        \"mean\": 1.4491784543750001,\n        \"median\": 1.451351679175,\n        \"message\": \"Only apply background color when desired\\n\",\n        \"min\": 1.409646086175,\n        \"stddev\": 0.029036534848241393,\n        \"system\": 0.04380395499999999,\n        \"time\": 1.4620457711750001,\n        \"user\": 1.4521019499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n        \"max\": 1.487303488175,\n        \"mean\": 1.4491784543750001,\n        \"median\": 1.451351679175,\n        \"message\": \"Only apply background color when desired\\n\",\n        \"min\": 1.409646086175,\n        \"stddev\": 0.029036534848241393,\n        \"system\": 0.04380395499999999,\n        \"time\": 1.435545247175,\n        \"user\": 1.4521019499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n        \"max\": 1.487303488175,\n        \"mean\": 1.4491784543750001,\n        \"median\": 1.451351679175,\n        \"message\": \"Only apply background color when desired\\n\",\n        \"min\": 1.409646086175,\n        \"stddev\": 0.029036534848241393,\n        \"system\": 0.04380395499999999,\n        \"time\": 1.487303488175,\n        \"user\": 1.4521019499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n        \"max\": 1.487303488175,\n        \"mean\": 1.4491784543750001,\n        \"median\": 1.451351679175,\n        \"message\": \"Only apply background color when desired\\n\",\n        \"min\": 1.409646086175,\n        \"stddev\": 0.029036534848241393,\n        \"system\": 0.04380395499999999,\n        \"time\": 1.451351679175,\n        \"user\": 1.4521019499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e65a542056905d25f7bac2b16e737435267697d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769831-e65a542056905d25f7bac2b16e737435267697d8\",\n        \"max\": 1.487303488175,\n        \"mean\": 1.4491784543750001,\n        \"median\": 1.451351679175,\n        \"message\": \"Only apply background color when desired\\n\",\n        \"min\": 1.409646086175,\n        \"stddev\": 0.029036534848241393,\n        \"system\": 0.04380395499999999,\n        \"time\": 1.409646086175,\n        \"user\": 1.4521019499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n        \"max\": 1.454064485155,\n        \"mean\": 1.424764964355,\n        \"median\": 1.418993926155,\n        \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n        \"min\": 1.415038269155,\n        \"stddev\": 0.016525212748631297,\n        \"system\": 0.042451724999999996,\n        \"time\": 1.454064485155,\n        \"user\": 1.429727615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n        \"max\": 1.454064485155,\n        \"mean\": 1.424764964355,\n        \"median\": 1.418993926155,\n        \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n        \"min\": 1.415038269155,\n        \"stddev\": 0.016525212748631297,\n        \"system\": 0.042451724999999996,\n        \"time\": 1.415549923155,\n        \"user\": 1.429727615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n        \"max\": 1.454064485155,\n        \"mean\": 1.424764964355,\n        \"median\": 1.418993926155,\n        \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n        \"min\": 1.415038269155,\n        \"stddev\": 0.016525212748631297,\n        \"system\": 0.042451724999999996,\n        \"time\": 1.415038269155,\n        \"user\": 1.429727615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n        \"max\": 1.454064485155,\n        \"mean\": 1.424764964355,\n        \"median\": 1.418993926155,\n        \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n        \"min\": 1.415038269155,\n        \"stddev\": 0.016525212748631297,\n        \"system\": 0.042451724999999996,\n        \"time\": 1.420178218155,\n        \"user\": 1.429727615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b1c563f557b0e6e5e331e6402d78ff52efd4a994 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-b1c563f557b0e6e5e331e6402d78ff52efd4a994\",\n        \"max\": 1.454064485155,\n        \"mean\": 1.424764964355,\n        \"median\": 1.418993926155,\n        \"message\": \"Add command line arguments for minus/plus emph colors\\n\",\n        \"min\": 1.415038269155,\n        \"stddev\": 0.016525212748631297,\n        \"system\": 0.042451724999999996,\n        \"time\": 1.418993926155,\n        \"user\": 1.429727615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n        \"max\": 1.442810602215,\n        \"mean\": 1.421893304815,\n        \"median\": 1.418455140215,\n        \"message\": \"Honor --highlight-removed argument\\n\",\n        \"min\": 1.4131380602149999,\n        \"stddev\": 0.011918640564202719,\n        \"system\": 0.042638315,\n        \"time\": 1.442810602215,\n        \"user\": 1.423279155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n        \"max\": 1.442810602215,\n        \"mean\": 1.421893304815,\n        \"median\": 1.418455140215,\n        \"message\": \"Honor --highlight-removed argument\\n\",\n        \"min\": 1.4131380602149999,\n        \"stddev\": 0.011918640564202719,\n        \"system\": 0.042638315,\n        \"time\": 1.418455140215,\n        \"user\": 1.423279155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n        \"max\": 1.442810602215,\n        \"mean\": 1.421893304815,\n        \"median\": 1.418455140215,\n        \"message\": \"Honor --highlight-removed argument\\n\",\n        \"min\": 1.4131380602149999,\n        \"stddev\": 0.011918640564202719,\n        \"system\": 0.042638315,\n        \"time\": 1.4131380602149999,\n        \"user\": 1.423279155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n        \"max\": 1.442810602215,\n        \"mean\": 1.421893304815,\n        \"median\": 1.418455140215,\n        \"message\": \"Honor --highlight-removed argument\\n\",\n        \"min\": 1.4131380602149999,\n        \"stddev\": 0.011918640564202719,\n        \"system\": 0.042638315,\n        \"time\": 1.418972583215,\n        \"user\": 1.423279155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce21c3d63b4464ceb427b1abfc93d06b89af7fc5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562769881-ce21c3d63b4464ceb427b1abfc93d06b89af7fc5\",\n        \"max\": 1.442810602215,\n        \"mean\": 1.421893304815,\n        \"median\": 1.418455140215,\n        \"message\": \"Honor --highlight-removed argument\\n\",\n        \"min\": 1.4131380602149999,\n        \"stddev\": 0.011918640564202719,\n        \"system\": 0.042638315,\n        \"time\": 1.416090138215,\n        \"user\": 1.423279155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n        \"max\": 1.4500551825999999,\n        \"mean\": 1.4184425909999998,\n        \"median\": 1.4149052256,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.4032384166,\n        \"stddev\": 0.018851720699496952,\n        \"system\": 0.041904145,\n        \"time\": 1.4500551825999999,\n        \"user\": 1.419943365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n        \"max\": 1.4500551825999999,\n        \"mean\": 1.4184425909999998,\n        \"median\": 1.4149052256,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.4032384166,\n        \"stddev\": 0.018851720699496952,\n        \"system\": 0.041904145,\n        \"time\": 1.4050903576,\n        \"user\": 1.419943365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n        \"max\": 1.4500551825999999,\n        \"mean\": 1.4184425909999998,\n        \"median\": 1.4149052256,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.4032384166,\n        \"stddev\": 0.018851720699496952,\n        \"system\": 0.041904145,\n        \"time\": 1.4032384166,\n        \"user\": 1.419943365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n        \"max\": 1.4500551825999999,\n        \"mean\": 1.4184425909999998,\n        \"median\": 1.4149052256,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.4032384166,\n        \"stddev\": 0.018851720699496952,\n        \"system\": 0.041904145,\n        \"time\": 1.4149052256,\n        \"user\": 1.419943365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/175e52ee5f6c9486b3807d004660ae78e5a03f3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770014-175e52ee5f6c9486b3807d004660ae78e5a03f3e\",\n        \"max\": 1.4500551825999999,\n        \"mean\": 1.4184425909999998,\n        \"median\": 1.4149052256,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.4032384166,\n        \"stddev\": 0.018851720699496952,\n        \"system\": 0.041904145,\n        \"time\": 1.4189237726,\n        \"user\": 1.419943365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n        \"max\": 1.452258149355,\n        \"mean\": 1.429614992955,\n        \"median\": 1.422257213355,\n        \"message\": \"Tweak dark theme emph color\\n\",\n        \"min\": 1.4044470683549999,\n        \"stddev\": 0.02127968463349833,\n        \"system\": 0.042351879999999995,\n        \"time\": 1.451322209355,\n        \"user\": 1.4300328900000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n        \"max\": 1.452258149355,\n        \"mean\": 1.429614992955,\n        \"median\": 1.422257213355,\n        \"message\": \"Tweak dark theme emph color\\n\",\n        \"min\": 1.4044470683549999,\n        \"stddev\": 0.02127968463349833,\n        \"system\": 0.042351879999999995,\n        \"time\": 1.452258149355,\n        \"user\": 1.4300328900000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n        \"max\": 1.452258149355,\n        \"mean\": 1.429614992955,\n        \"median\": 1.422257213355,\n        \"message\": \"Tweak dark theme emph color\\n\",\n        \"min\": 1.4044470683549999,\n        \"stddev\": 0.02127968463349833,\n        \"system\": 0.042351879999999995,\n        \"time\": 1.422257213355,\n        \"user\": 1.4300328900000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n        \"max\": 1.452258149355,\n        \"mean\": 1.429614992955,\n        \"median\": 1.422257213355,\n        \"message\": \"Tweak dark theme emph color\\n\",\n        \"min\": 1.4044470683549999,\n        \"stddev\": 0.02127968463349833,\n        \"system\": 0.042351879999999995,\n        \"time\": 1.4044470683549999,\n        \"user\": 1.4300328900000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a927d9a478d99586c482965b57ec3b5374f020d1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562770189-a927d9a478d99586c482965b57ec3b5374f020d1\",\n        \"max\": 1.452258149355,\n        \"mean\": 1.429614992955,\n        \"median\": 1.422257213355,\n        \"message\": \"Tweak dark theme emph color\\n\",\n        \"min\": 1.4044470683549999,\n        \"stddev\": 0.02127968463349833,\n        \"system\": 0.042351879999999995,\n        \"time\": 1.417790324355,\n        \"user\": 1.4300328900000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n        \"max\": 1.4642690155650002,\n        \"mean\": 1.4263370479650004,\n        \"median\": 1.418393019565,\n        \"message\": \"Store terminal width in config struct\\n\",\n        \"min\": 1.4069343595650001,\n        \"stddev\": 0.022567963367948255,\n        \"system\": 0.04288513,\n        \"time\": 1.4642690155650002,\n        \"user\": 1.42738962\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n        \"max\": 1.4642690155650002,\n        \"mean\": 1.4263370479650004,\n        \"median\": 1.418393019565,\n        \"message\": \"Store terminal width in config struct\\n\",\n        \"min\": 1.4069343595650001,\n        \"stddev\": 0.022567963367948255,\n        \"system\": 0.04288513,\n        \"time\": 1.4138742745650001,\n        \"user\": 1.42738962\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n        \"max\": 1.4642690155650002,\n        \"mean\": 1.4263370479650004,\n        \"median\": 1.418393019565,\n        \"message\": \"Store terminal width in config struct\\n\",\n        \"min\": 1.4069343595650001,\n        \"stddev\": 0.022567963367948255,\n        \"system\": 0.04288513,\n        \"time\": 1.4069343595650001,\n        \"user\": 1.42738962\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n        \"max\": 1.4642690155650002,\n        \"mean\": 1.4263370479650004,\n        \"median\": 1.418393019565,\n        \"message\": \"Store terminal width in config struct\\n\",\n        \"min\": 1.4069343595650001,\n        \"stddev\": 0.022567963367948255,\n        \"system\": 0.04288513,\n        \"time\": 1.4282145705650002,\n        \"user\": 1.42738962\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2de8b44784131d128a34d84249e66692e18182d8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562771427-2de8b44784131d128a34d84249e66692e18182d8\",\n        \"max\": 1.4642690155650002,\n        \"mean\": 1.4263370479650004,\n        \"median\": 1.418393019565,\n        \"message\": \"Store terminal width in config struct\\n\",\n        \"min\": 1.4069343595650001,\n        \"stddev\": 0.022567963367948255,\n        \"system\": 0.04288513,\n        \"time\": 1.418393019565,\n        \"user\": 1.42738962\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n        \"max\": 1.456292951425,\n        \"mean\": 1.433047277625,\n        \"median\": 1.429461012425,\n        \"message\": \"Replace diff metadata with horizontal line\\n\",\n        \"min\": 1.413553694425,\n        \"stddev\": 0.017473677841761858,\n        \"system\": 0.046350965,\n        \"time\": 1.456292951425,\n        \"user\": 1.4331690399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n        \"max\": 1.456292951425,\n        \"mean\": 1.433047277625,\n        \"median\": 1.429461012425,\n        \"message\": \"Replace diff metadata with horizontal line\\n\",\n        \"min\": 1.413553694425,\n        \"stddev\": 0.017473677841761858,\n        \"system\": 0.046350965,\n        \"time\": 1.429461012425,\n        \"user\": 1.4331690399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n        \"max\": 1.456292951425,\n        \"mean\": 1.433047277625,\n        \"median\": 1.429461012425,\n        \"message\": \"Replace diff metadata with horizontal line\\n\",\n        \"min\": 1.413553694425,\n        \"stddev\": 0.017473677841761858,\n        \"system\": 0.046350965,\n        \"time\": 1.420962667425,\n        \"user\": 1.4331690399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n        \"max\": 1.456292951425,\n        \"mean\": 1.433047277625,\n        \"median\": 1.429461012425,\n        \"message\": \"Replace diff metadata with horizontal line\\n\",\n        \"min\": 1.413553694425,\n        \"stddev\": 0.017473677841761858,\n        \"system\": 0.046350965,\n        \"time\": 1.444966062425,\n        \"user\": 1.4331690399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8a50b8289bacc95942771680d7a516284b2714cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562775844-8a50b8289bacc95942771680d7a516284b2714cb\",\n        \"max\": 1.456292951425,\n        \"mean\": 1.433047277625,\n        \"median\": 1.429461012425,\n        \"message\": \"Replace diff metadata with horizontal line\\n\",\n        \"min\": 1.413553694425,\n        \"stddev\": 0.017473677841761858,\n        \"system\": 0.046350965,\n        \"time\": 1.413553694425,\n        \"user\": 1.4331690399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n        \"max\": 1.427443940565,\n        \"mean\": 1.413810866965,\n        \"median\": 1.417253125565,\n        \"message\": \"Add --no-structural-changes argument\\n\",\n        \"min\": 1.391597055565,\n        \"stddev\": 0.01339008539859219,\n        \"system\": 0.04614446999999999,\n        \"time\": 1.418911144565,\n        \"user\": 1.4172431849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n        \"max\": 1.427443940565,\n        \"mean\": 1.413810866965,\n        \"median\": 1.417253125565,\n        \"message\": \"Add --no-structural-changes argument\\n\",\n        \"min\": 1.391597055565,\n        \"stddev\": 0.01339008539859219,\n        \"system\": 0.04614446999999999,\n        \"time\": 1.391597055565,\n        \"user\": 1.4172431849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n        \"max\": 1.427443940565,\n        \"mean\": 1.413810866965,\n        \"median\": 1.417253125565,\n        \"message\": \"Add --no-structural-changes argument\\n\",\n        \"min\": 1.391597055565,\n        \"stddev\": 0.01339008539859219,\n        \"system\": 0.04614446999999999,\n        \"time\": 1.427443940565,\n        \"user\": 1.4172431849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n        \"max\": 1.427443940565,\n        \"mean\": 1.413810866965,\n        \"median\": 1.417253125565,\n        \"message\": \"Add --no-structural-changes argument\\n\",\n        \"min\": 1.391597055565,\n        \"stddev\": 0.01339008539859219,\n        \"system\": 0.04614446999999999,\n        \"time\": 1.413849068565,\n        \"user\": 1.4172431849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b785f4659223df0c3d7049d7b6e375257f66618a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776462-b785f4659223df0c3d7049d7b6e375257f66618a\",\n        \"max\": 1.427443940565,\n        \"mean\": 1.413810866965,\n        \"median\": 1.417253125565,\n        \"message\": \"Add --no-structural-changes argument\\n\",\n        \"min\": 1.391597055565,\n        \"stddev\": 0.01339008539859219,\n        \"system\": 0.04614446999999999,\n        \"time\": 1.417253125565,\n        \"user\": 1.4172431849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n        \"max\": 1.44214059839,\n        \"mean\": 1.42331963639,\n        \"median\": 1.41688054039,\n        \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n        \"min\": 1.41016932039,\n        \"stddev\": 0.01391244946149817,\n        \"system\": 0.047358565,\n        \"time\": 1.43383570139,\n        \"user\": 1.4225853899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n        \"max\": 1.44214059839,\n        \"mean\": 1.42331963639,\n        \"median\": 1.41688054039,\n        \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n        \"min\": 1.41016932039,\n        \"stddev\": 0.01391244946149817,\n        \"system\": 0.047358565,\n        \"time\": 1.41357202139,\n        \"user\": 1.4225853899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n        \"max\": 1.44214059839,\n        \"mean\": 1.42331963639,\n        \"median\": 1.41688054039,\n        \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n        \"min\": 1.41016932039,\n        \"stddev\": 0.01391244946149817,\n        \"system\": 0.047358565,\n        \"time\": 1.44214059839,\n        \"user\": 1.4225853899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n        \"max\": 1.44214059839,\n        \"mean\": 1.42331963639,\n        \"median\": 1.41688054039,\n        \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n        \"min\": 1.41016932039,\n        \"stddev\": 0.01391244946149817,\n        \"system\": 0.047358565,\n        \"time\": 1.41688054039,\n        \"user\": 1.4225853899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c8e941e9faec0856bf910c4fb32c063689acccf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562776875-2c8e941e9faec0856bf910c4fb32c063689acccf\",\n        \"max\": 1.44214059839,\n        \"mean\": 1.42331963639,\n        \"median\": 1.41688054039,\n        \"message\": \"Merge pull request #8 from dandavison/diff-detail\\n\\nDiff detail\",\n        \"min\": 1.41016932039,\n        \"stddev\": 0.01391244946149817,\n        \"system\": 0.047358565,\n        \"time\": 1.41016932039,\n        \"user\": 1.4225853899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n        \"max\": 1.4747238230450002,\n        \"mean\": 1.4683294102450002,\n        \"median\": 1.4728706120450001,\n        \"message\": \"Fix file change description text\\n\",\n        \"min\": 1.4498281370450001,\n        \"stddev\": 0.010507102892468222,\n        \"system\": 0.048665034999999995,\n        \"time\": 1.469971082045,\n        \"user\": 1.4652892999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n        \"max\": 1.4747238230450002,\n        \"mean\": 1.4683294102450002,\n        \"median\": 1.4728706120450001,\n        \"message\": \"Fix file change description text\\n\",\n        \"min\": 1.4498281370450001,\n        \"stddev\": 0.010507102892468222,\n        \"system\": 0.048665034999999995,\n        \"time\": 1.4728706120450001,\n        \"user\": 1.4652892999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n        \"max\": 1.4747238230450002,\n        \"mean\": 1.4683294102450002,\n        \"median\": 1.4728706120450001,\n        \"message\": \"Fix file change description text\\n\",\n        \"min\": 1.4498281370450001,\n        \"stddev\": 0.010507102892468222,\n        \"system\": 0.048665034999999995,\n        \"time\": 1.4747238230450002,\n        \"user\": 1.4652892999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n        \"max\": 1.4747238230450002,\n        \"mean\": 1.4683294102450002,\n        \"median\": 1.4728706120450001,\n        \"message\": \"Fix file change description text\\n\",\n        \"min\": 1.4498281370450001,\n        \"stddev\": 0.010507102892468222,\n        \"system\": 0.048665034999999995,\n        \"time\": 1.4498281370450001,\n        \"user\": 1.4652892999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36c9f5717be20da9f60993616bb7e591e8efdffe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562806236-36c9f5717be20da9f60993616bb7e591e8efdffe\",\n        \"max\": 1.4747238230450002,\n        \"mean\": 1.4683294102450002,\n        \"median\": 1.4728706120450001,\n        \"message\": \"Fix file change description text\\n\",\n        \"min\": 1.4498281370450001,\n        \"stddev\": 0.010507102892468222,\n        \"system\": 0.048665034999999995,\n        \"time\": 1.4742533970450002,\n        \"user\": 1.4652892999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n        \"max\": 1.455159172205,\n        \"mean\": 1.427107016805,\n        \"median\": 1.423140854205,\n        \"message\": \"Document unicode character\\n\",\n        \"min\": 1.408201549205,\n        \"stddev\": 0.018307343561828684,\n        \"system\": 0.0445377,\n        \"time\": 1.455159172205,\n        \"user\": 1.42732037\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n        \"max\": 1.455159172205,\n        \"mean\": 1.427107016805,\n        \"median\": 1.423140854205,\n        \"message\": \"Document unicode character\\n\",\n        \"min\": 1.408201549205,\n        \"stddev\": 0.018307343561828684,\n        \"system\": 0.0445377,\n        \"time\": 1.415374932205,\n        \"user\": 1.42732037\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n        \"max\": 1.455159172205,\n        \"mean\": 1.427107016805,\n        \"median\": 1.423140854205,\n        \"message\": \"Document unicode character\\n\",\n        \"min\": 1.408201549205,\n        \"stddev\": 0.018307343561828684,\n        \"system\": 0.0445377,\n        \"time\": 1.423140854205,\n        \"user\": 1.42732037\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n        \"max\": 1.455159172205,\n        \"mean\": 1.427107016805,\n        \"median\": 1.423140854205,\n        \"message\": \"Document unicode character\\n\",\n        \"min\": 1.408201549205,\n        \"stddev\": 0.018307343561828684,\n        \"system\": 0.0445377,\n        \"time\": 1.408201549205,\n        \"user\": 1.42732037\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/082d5c059c0a8de0f460b4232f9d509f71d2e6dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808441-082d5c059c0a8de0f460b4232f9d509f71d2e6dd\",\n        \"max\": 1.455159172205,\n        \"mean\": 1.427107016805,\n        \"median\": 1.423140854205,\n        \"message\": \"Document unicode character\\n\",\n        \"min\": 1.408201549205,\n        \"stddev\": 0.018307343561828684,\n        \"system\": 0.0445377,\n        \"time\": 1.433658576205,\n        \"user\": 1.42732037\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n        \"max\": 1.44439041878,\n        \"mean\": 1.42806810498,\n        \"median\": 1.42277308278,\n        \"message\": \"Use heavy box line for file section\\n\",\n        \"min\": 1.41385116778,\n        \"stddev\": 0.013267347200027911,\n        \"system\": 0.045032545,\n        \"time\": 1.44439041878,\n        \"user\": 1.428225905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n        \"max\": 1.44439041878,\n        \"mean\": 1.42806810498,\n        \"median\": 1.42277308278,\n        \"message\": \"Use heavy box line for file section\\n\",\n        \"min\": 1.41385116778,\n        \"stddev\": 0.013267347200027911,\n        \"system\": 0.045032545,\n        \"time\": 1.43972340978,\n        \"user\": 1.428225905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n        \"max\": 1.44439041878,\n        \"mean\": 1.42806810498,\n        \"median\": 1.42277308278,\n        \"message\": \"Use heavy box line for file section\\n\",\n        \"min\": 1.41385116778,\n        \"stddev\": 0.013267347200027911,\n        \"system\": 0.045032545,\n        \"time\": 1.41385116778,\n        \"user\": 1.428225905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n        \"max\": 1.44439041878,\n        \"mean\": 1.42806810498,\n        \"median\": 1.42277308278,\n        \"message\": \"Use heavy box line for file section\\n\",\n        \"min\": 1.41385116778,\n        \"stddev\": 0.013267347200027911,\n        \"system\": 0.045032545,\n        \"time\": 1.42277308278,\n        \"user\": 1.428225905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d87ec5eccfa6cb376ead0a2753a3130435efe934 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562808491-d87ec5eccfa6cb376ead0a2753a3130435efe934\",\n        \"max\": 1.44439041878,\n        \"mean\": 1.42806810498,\n        \"median\": 1.42277308278,\n        \"message\": \"Use heavy box line for file section\\n\",\n        \"min\": 1.41385116778,\n        \"stddev\": 0.013267347200027911,\n        \"system\": 0.045032545,\n        \"time\": 1.41960244578,\n        \"user\": 1.428225905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n        \"max\": 1.5549087833200002,\n        \"mean\": 1.5225901969200002,\n        \"median\": 1.5161603403200001,\n        \"message\": \"Refactor: box drawing module\\n\",\n        \"min\": 1.5103195163200003,\n        \"stddev\": 0.018493309451644766,\n        \"system\": 0.06760419,\n        \"time\": 1.5549087833200002,\n        \"user\": 1.5159672849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n        \"max\": 1.5549087833200002,\n        \"mean\": 1.5225901969200002,\n        \"median\": 1.5161603403200001,\n        \"message\": \"Refactor: box drawing module\\n\",\n        \"min\": 1.5103195163200003,\n        \"stddev\": 0.018493309451644766,\n        \"system\": 0.06760419,\n        \"time\": 1.5113720533200001,\n        \"user\": 1.5159672849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n        \"max\": 1.5549087833200002,\n        \"mean\": 1.5225901969200002,\n        \"median\": 1.5161603403200001,\n        \"message\": \"Refactor: box drawing module\\n\",\n        \"min\": 1.5103195163200003,\n        \"stddev\": 0.018493309451644766,\n        \"system\": 0.06760419,\n        \"time\": 1.5161603403200001,\n        \"user\": 1.5159672849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n        \"max\": 1.5549087833200002,\n        \"mean\": 1.5225901969200002,\n        \"median\": 1.5161603403200001,\n        \"message\": \"Refactor: box drawing module\\n\",\n        \"min\": 1.5103195163200003,\n        \"stddev\": 0.018493309451644766,\n        \"system\": 0.06760419,\n        \"time\": 1.5201902913200003,\n        \"user\": 1.5159672849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562907932-58f4cbfffc8d5f52df8fc510e3dcdc93ed9d2551\",\n        \"max\": 1.5549087833200002,\n        \"mean\": 1.5225901969200002,\n        \"median\": 1.5161603403200001,\n        \"message\": \"Refactor: box drawing module\\n\",\n        \"min\": 1.5103195163200003,\n        \"stddev\": 0.018493309451644766,\n        \"system\": 0.06760419,\n        \"time\": 1.5103195163200003,\n        \"user\": 1.5159672849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n        \"max\": 1.5427369399,\n        \"mean\": 1.5155680759,\n        \"median\": 1.5087500858999998,\n        \"message\": \"Support heavy line weight boxes\\n\",\n        \"min\": 1.5031513768999998,\n        \"stddev\": 0.015983416485658496,\n        \"system\": 0.068875685,\n        \"time\": 1.5427369399,\n        \"user\": 1.507467025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n        \"max\": 1.5427369399,\n        \"mean\": 1.5155680759,\n        \"median\": 1.5087500858999998,\n        \"message\": \"Support heavy line weight boxes\\n\",\n        \"min\": 1.5031513768999998,\n        \"stddev\": 0.015983416485658496,\n        \"system\": 0.068875685,\n        \"time\": 1.5065218019,\n        \"user\": 1.507467025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n        \"max\": 1.5427369399,\n        \"mean\": 1.5155680759,\n        \"median\": 1.5087500858999998,\n        \"message\": \"Support heavy line weight boxes\\n\",\n        \"min\": 1.5031513768999998,\n        \"stddev\": 0.015983416485658496,\n        \"system\": 0.068875685,\n        \"time\": 1.5166801749,\n        \"user\": 1.507467025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n        \"max\": 1.5427369399,\n        \"mean\": 1.5155680759,\n        \"median\": 1.5087500858999998,\n        \"message\": \"Support heavy line weight boxes\\n\",\n        \"min\": 1.5031513768999998,\n        \"stddev\": 0.015983416485658496,\n        \"system\": 0.068875685,\n        \"time\": 1.5031513768999998,\n        \"user\": 1.507467025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2b8ea87fbee0be021e76efb773bce311ce5e2e20 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562908856-2b8ea87fbee0be021e76efb773bce311ce5e2e20\",\n        \"max\": 1.5427369399,\n        \"mean\": 1.5155680759,\n        \"median\": 1.5087500858999998,\n        \"message\": \"Support heavy line weight boxes\\n\",\n        \"min\": 1.5031513768999998,\n        \"stddev\": 0.015983416485658496,\n        \"system\": 0.068875685,\n        \"time\": 1.5087500858999998,\n        \"user\": 1.507467025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n        \"max\": 1.5990142087800001,\n        \"mean\": 1.5825754687800002,\n        \"median\": 1.5890942167800002,\n        \"message\": \"Decorate commit line with a box\\n\",\n        \"min\": 1.55006336978,\n        \"stddev\": 0.01941130120186225,\n        \"system\": 0.07978631499999998,\n        \"time\": 1.5890942167800002,\n        \"user\": 1.5742098199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n        \"max\": 1.5990142087800001,\n        \"mean\": 1.5825754687800002,\n        \"median\": 1.5890942167800002,\n        \"message\": \"Decorate commit line with a box\\n\",\n        \"min\": 1.55006336978,\n        \"stddev\": 0.01941130120186225,\n        \"system\": 0.07978631499999998,\n        \"time\": 1.58057832478,\n        \"user\": 1.5742098199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n        \"max\": 1.5990142087800001,\n        \"mean\": 1.5825754687800002,\n        \"median\": 1.5890942167800002,\n        \"message\": \"Decorate commit line with a box\\n\",\n        \"min\": 1.55006336978,\n        \"stddev\": 0.01941130120186225,\n        \"system\": 0.07978631499999998,\n        \"time\": 1.5990142087800001,\n        \"user\": 1.5742098199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n        \"max\": 1.5990142087800001,\n        \"mean\": 1.5825754687800002,\n        \"median\": 1.5890942167800002,\n        \"message\": \"Decorate commit line with a box\\n\",\n        \"min\": 1.55006336978,\n        \"stddev\": 0.01941130120186225,\n        \"system\": 0.07978631499999998,\n        \"time\": 1.59412722378,\n        \"user\": 1.5742098199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130af6c7253b011ccc12b363b1fde8a9cdcfc780 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562909455-130af6c7253b011ccc12b363b1fde8a9cdcfc780\",\n        \"max\": 1.5990142087800001,\n        \"mean\": 1.5825754687800002,\n        \"median\": 1.5890942167800002,\n        \"message\": \"Decorate commit line with a box\\n\",\n        \"min\": 1.55006336978,\n        \"stddev\": 0.01941130120186225,\n        \"system\": 0.07978631499999998,\n        \"time\": 1.55006336978,\n        \"user\": 1.5742098199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n        \"max\": 1.60760229868,\n        \"mean\": 1.58436179468,\n        \"median\": 1.58080097568,\n        \"message\": \"Refactor: cli module\\n\",\n        \"min\": 1.56783240868,\n        \"stddev\": 0.015526041054189692,\n        \"system\": 0.07984376500000001,\n        \"time\": 1.60760229868,\n        \"user\": 1.5734825899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n        \"max\": 1.60760229868,\n        \"mean\": 1.58436179468,\n        \"median\": 1.58080097568,\n        \"message\": \"Refactor: cli module\\n\",\n        \"min\": 1.56783240868,\n        \"stddev\": 0.015526041054189692,\n        \"system\": 0.07984376500000001,\n        \"time\": 1.5909490146799998,\n        \"user\": 1.5734825899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n        \"max\": 1.60760229868,\n        \"mean\": 1.58436179468,\n        \"median\": 1.58080097568,\n        \"message\": \"Refactor: cli module\\n\",\n        \"min\": 1.56783240868,\n        \"stddev\": 0.015526041054189692,\n        \"system\": 0.07984376500000001,\n        \"time\": 1.58080097568,\n        \"user\": 1.5734825899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n        \"max\": 1.60760229868,\n        \"mean\": 1.58436179468,\n        \"median\": 1.58080097568,\n        \"message\": \"Refactor: cli module\\n\",\n        \"min\": 1.56783240868,\n        \"stddev\": 0.015526041054189692,\n        \"system\": 0.07984376500000001,\n        \"time\": 1.57462427568,\n        \"user\": 1.5734825899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2c1dd918a69da78094787795c149e71c66a48872 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947018-2c1dd918a69da78094787795c149e71c66a48872\",\n        \"max\": 1.60760229868,\n        \"mean\": 1.58436179468,\n        \"median\": 1.58080097568,\n        \"message\": \"Refactor: cli module\\n\",\n        \"min\": 1.56783240868,\n        \"stddev\": 0.015526041054189692,\n        \"system\": 0.07984376500000001,\n        \"time\": 1.56783240868,\n        \"user\": 1.5734825899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n        \"max\": 1.594958988485,\n        \"mean\": 1.585213464085,\n        \"median\": 1.586998752485,\n        \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n        \"min\": 1.575611841485,\n        \"stddev\": 0.007947872325848492,\n        \"system\": 0.07971891499999999,\n        \"time\": 1.5897470574850001,\n        \"user\": 1.57446436\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n        \"max\": 1.594958988485,\n        \"mean\": 1.585213464085,\n        \"median\": 1.586998752485,\n        \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n        \"min\": 1.575611841485,\n        \"stddev\": 0.007947872325848492,\n        \"system\": 0.07971891499999999,\n        \"time\": 1.578750680485,\n        \"user\": 1.57446436\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n        \"max\": 1.594958988485,\n        \"mean\": 1.585213464085,\n        \"median\": 1.586998752485,\n        \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n        \"min\": 1.575611841485,\n        \"stddev\": 0.007947872325848492,\n        \"system\": 0.07971891499999999,\n        \"time\": 1.586998752485,\n        \"user\": 1.57446436\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n        \"max\": 1.594958988485,\n        \"mean\": 1.585213464085,\n        \"median\": 1.586998752485,\n        \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n        \"min\": 1.575611841485,\n        \"stddev\": 0.007947872325848492,\n        \"system\": 0.07971891499999999,\n        \"time\": 1.594958988485,\n        \"user\": 1.57446436\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5276b455250404e19e6ae708a8306b214438510 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562947806-c5276b455250404e19e6ae708a8306b214438510\",\n        \"max\": 1.594958988485,\n        \"mean\": 1.585213464085,\n        \"median\": 1.586998752485,\n        \"message\": \"Refactor: use command line arg struct when creating config struct\\n\",\n        \"min\": 1.575611841485,\n        \"stddev\": 0.007947872325848492,\n        \"system\": 0.07971891499999999,\n        \"time\": 1.575611841485,\n        \"user\": 1.57446436\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n        \"max\": 1.66189797488,\n        \"mean\": 1.59402425368,\n        \"median\": 1.59289291988,\n        \"message\": \"Make raw command line args available on config struct\\n\",\n        \"min\": 1.54184750488,\n        \"stddev\": 0.05257441506262918,\n        \"system\": 0.079596455,\n        \"time\": 1.66189797488,\n        \"user\": 1.580771425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n        \"max\": 1.66189797488,\n        \"mean\": 1.59402425368,\n        \"median\": 1.59289291988,\n        \"message\": \"Make raw command line args available on config struct\\n\",\n        \"min\": 1.54184750488,\n        \"stddev\": 0.05257441506262918,\n        \"system\": 0.079596455,\n        \"time\": 1.6292835458800001,\n        \"user\": 1.580771425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n        \"max\": 1.66189797488,\n        \"mean\": 1.59402425368,\n        \"median\": 1.59289291988,\n        \"message\": \"Make raw command line args available on config struct\\n\",\n        \"min\": 1.54184750488,\n        \"stddev\": 0.05257441506262918,\n        \"system\": 0.079596455,\n        \"time\": 1.59289291988,\n        \"user\": 1.580771425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n        \"max\": 1.66189797488,\n        \"mean\": 1.59402425368,\n        \"median\": 1.59289291988,\n        \"message\": \"Make raw command line args available on config struct\\n\",\n        \"min\": 1.54184750488,\n        \"stddev\": 0.05257441506262918,\n        \"system\": 0.079596455,\n        \"time\": 1.54419932288,\n        \"user\": 1.580771425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1561b946edfb4078cedbdd45628f92a39dce8486 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948294-1561b946edfb4078cedbdd45628f92a39dce8486\",\n        \"max\": 1.66189797488,\n        \"mean\": 1.59402425368,\n        \"median\": 1.59289291988,\n        \"message\": \"Make raw command line args available on config struct\\n\",\n        \"min\": 1.54184750488,\n        \"stddev\": 0.05257441506262918,\n        \"system\": 0.079596455,\n        \"time\": 1.54184750488,\n        \"user\": 1.580771425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n        \"max\": 1.646107490215,\n        \"mean\": 1.618155582615,\n        \"median\": 1.616646162215,\n        \"message\": \"Refactor: Use field init syntax\\n\",\n        \"min\": 1.602487636215,\n        \"stddev\": 0.01734697806430141,\n        \"system\": 0.079403705,\n        \"time\": 1.646107490215,\n        \"user\": 1.6036723449999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n        \"max\": 1.646107490215,\n        \"mean\": 1.618155582615,\n        \"median\": 1.616646162215,\n        \"message\": \"Refactor: Use field init syntax\\n\",\n        \"min\": 1.602487636215,\n        \"stddev\": 0.01734697806430141,\n        \"system\": 0.079403705,\n        \"time\": 1.620402223215,\n        \"user\": 1.6036723449999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n        \"max\": 1.646107490215,\n        \"mean\": 1.618155582615,\n        \"median\": 1.616646162215,\n        \"message\": \"Refactor: Use field init syntax\\n\",\n        \"min\": 1.602487636215,\n        \"stddev\": 0.01734697806430141,\n        \"system\": 0.079403705,\n        \"time\": 1.616646162215,\n        \"user\": 1.6036723449999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n        \"max\": 1.646107490215,\n        \"mean\": 1.618155582615,\n        \"median\": 1.616646162215,\n        \"message\": \"Refactor: Use field init syntax\\n\",\n        \"min\": 1.602487636215,\n        \"stddev\": 0.01734697806430141,\n        \"system\": 0.079403705,\n        \"time\": 1.605134401215,\n        \"user\": 1.6036723449999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/971601cddb26eb25d423162691915110aef9c61c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562948299-971601cddb26eb25d423162691915110aef9c61c\",\n        \"max\": 1.646107490215,\n        \"mean\": 1.618155582615,\n        \"median\": 1.616646162215,\n        \"message\": \"Refactor: Use field init syntax\\n\",\n        \"min\": 1.602487636215,\n        \"stddev\": 0.01734697806430141,\n        \"system\": 0.079403705,\n        \"time\": 1.602487636215,\n        \"user\": 1.6036723449999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n        \"max\": 1.779662348045,\n        \"mean\": 1.620306135245,\n        \"median\": 1.578954833045,\n        \"message\": \"Style section arguments\\n\",\n        \"min\": 1.571033125045,\n        \"stddev\": 0.08973697287871697,\n        \"system\": 0.07256976500000001,\n        \"time\": 1.598523862045,\n        \"user\": 1.6032144750000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n        \"max\": 1.779662348045,\n        \"mean\": 1.620306135245,\n        \"median\": 1.578954833045,\n        \"message\": \"Style section arguments\\n\",\n        \"min\": 1.571033125045,\n        \"stddev\": 0.08973697287871697,\n        \"system\": 0.07256976500000001,\n        \"time\": 1.578954833045,\n        \"user\": 1.6032144750000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n        \"max\": 1.779662348045,\n        \"mean\": 1.620306135245,\n        \"median\": 1.578954833045,\n        \"message\": \"Style section arguments\\n\",\n        \"min\": 1.571033125045,\n        \"stddev\": 0.08973697287871697,\n        \"system\": 0.07256976500000001,\n        \"time\": 1.571033125045,\n        \"user\": 1.6032144750000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n        \"max\": 1.779662348045,\n        \"mean\": 1.620306135245,\n        \"median\": 1.578954833045,\n        \"message\": \"Style section arguments\\n\",\n        \"min\": 1.571033125045,\n        \"stddev\": 0.08973697287871697,\n        \"system\": 0.07256976500000001,\n        \"time\": 1.5733565080449998,\n        \"user\": 1.6032144750000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07589712d4d5399f1fdcca4de4a762999e2802ca < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-07589712d4d5399f1fdcca4de4a762999e2802ca\",\n        \"max\": 1.779662348045,\n        \"mean\": 1.620306135245,\n        \"median\": 1.578954833045,\n        \"message\": \"Style section arguments\\n\",\n        \"min\": 1.571033125045,\n        \"stddev\": 0.08973697287871697,\n        \"system\": 0.07256976500000001,\n        \"time\": 1.779662348045,\n        \"user\": 1.6032144750000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n        \"max\": 1.61255669227,\n        \"mean\": 1.58621452887,\n        \"median\": 1.5812886232699999,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.5714881432699999,\n        \"stddev\": 0.01645914894301845,\n        \"system\": 0.07049456999999999,\n        \"time\": 1.61255669227,\n        \"user\": 1.5775533549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n        \"max\": 1.61255669227,\n        \"mean\": 1.58621452887,\n        \"median\": 1.5812886232699999,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.5714881432699999,\n        \"stddev\": 0.01645914894301845,\n        \"system\": 0.07049456999999999,\n        \"time\": 1.5812886232699999,\n        \"user\": 1.5775533549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n        \"max\": 1.61255669227,\n        \"mean\": 1.58621452887,\n        \"median\": 1.5812886232699999,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.5714881432699999,\n        \"stddev\": 0.01645914894301845,\n        \"system\": 0.07049456999999999,\n        \"time\": 1.5714881432699999,\n        \"user\": 1.5775533549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n        \"max\": 1.61255669227,\n        \"mean\": 1.58621452887,\n        \"median\": 1.5812886232699999,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.5714881432699999,\n        \"stddev\": 0.01645914894301845,\n        \"system\": 0.07049456999999999,\n        \"time\": 1.57492614927,\n        \"user\": 1.5775533549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6f697782688de6384cc2a4492afc44b7086b739a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-6f697782688de6384cc2a4492afc44b7086b739a\",\n        \"max\": 1.61255669227,\n        \"mean\": 1.58621452887,\n        \"median\": 1.5812886232699999,\n        \"message\": \"Rearrange\\n\",\n        \"min\": 1.5714881432699999,\n        \"stddev\": 0.01645914894301845,\n        \"system\": 0.07049456999999999,\n        \"time\": 1.5908130362700001,\n        \"user\": 1.5775533549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n        \"max\": 1.637756883665,\n        \"mean\": 1.591136737865,\n        \"median\": 1.575307209665,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.564058703665,\n        \"stddev\": 0.03194297038933295,\n        \"system\": 0.06919801,\n        \"time\": 1.637756883665,\n        \"user\": 1.5836761799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n        \"max\": 1.637756883665,\n        \"mean\": 1.591136737865,\n        \"median\": 1.575307209665,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.564058703665,\n        \"stddev\": 0.03194297038933295,\n        \"system\": 0.06919801,\n        \"time\": 1.5678644486650002,\n        \"user\": 1.5836761799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n        \"max\": 1.637756883665,\n        \"mean\": 1.591136737865,\n        \"median\": 1.575307209665,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.564058703665,\n        \"stddev\": 0.03194297038933295,\n        \"system\": 0.06919801,\n        \"time\": 1.610696443665,\n        \"user\": 1.5836761799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n        \"max\": 1.637756883665,\n        \"mean\": 1.591136737865,\n        \"median\": 1.575307209665,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.564058703665,\n        \"stddev\": 0.03194297038933295,\n        \"system\": 0.06919801,\n        \"time\": 1.575307209665,\n        \"user\": 1.5836761799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1562992978-a99ea2fc31c7bc3c2cbae48cbd6e71f73467fec9\",\n        \"max\": 1.637756883665,\n        \"mean\": 1.591136737865,\n        \"median\": 1.575307209665,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.564058703665,\n        \"stddev\": 0.03194297038933295,\n        \"system\": 0.06919801,\n        \"time\": 1.564058703665,\n        \"user\": 1.5836761799999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n        \"max\": 1.617462978495,\n        \"mean\": 1.5929366528950002,\n        \"median\": 1.5883080774950002,\n        \"message\": \"Refactor: draw module\\n\",\n        \"min\": 1.582638920495,\n        \"stddev\": 0.013923715483916119,\n        \"system\": 0.06707050499999999,\n        \"time\": 1.617462978495,\n        \"user\": 1.587303475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n        \"max\": 1.617462978495,\n        \"mean\": 1.5929366528950002,\n        \"median\": 1.5883080774950002,\n        \"message\": \"Refactor: draw module\\n\",\n        \"min\": 1.582638920495,\n        \"stddev\": 0.013923715483916119,\n        \"system\": 0.06707050499999999,\n        \"time\": 1.587694156495,\n        \"user\": 1.587303475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n        \"max\": 1.617462978495,\n        \"mean\": 1.5929366528950002,\n        \"median\": 1.5883080774950002,\n        \"message\": \"Refactor: draw module\\n\",\n        \"min\": 1.582638920495,\n        \"stddev\": 0.013923715483916119,\n        \"system\": 0.06707050499999999,\n        \"time\": 1.5883080774950002,\n        \"user\": 1.587303475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n        \"max\": 1.617462978495,\n        \"mean\": 1.5929366528950002,\n        \"median\": 1.5883080774950002,\n        \"message\": \"Refactor: draw module\\n\",\n        \"min\": 1.582638920495,\n        \"stddev\": 0.013923715483916119,\n        \"system\": 0.06707050499999999,\n        \"time\": 1.5885791314950002,\n        \"user\": 1.587303475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/118c617a13bbea60a098b0d8e894e4a101067483 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563029683-118c617a13bbea60a098b0d8e894e4a101067483\",\n        \"max\": 1.617462978495,\n        \"mean\": 1.5929366528950002,\n        \"median\": 1.5883080774950002,\n        \"message\": \"Refactor: draw module\\n\",\n        \"min\": 1.582638920495,\n        \"stddev\": 0.013923715483916119,\n        \"system\": 0.06707050499999999,\n        \"time\": 1.582638920495,\n        \"user\": 1.587303475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n        \"max\": 1.6158364665300002,\n        \"mean\": 1.5884940597300001,\n        \"median\": 1.58345716053,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.5744890645300003,\n        \"stddev\": 0.015893966327468985,\n        \"system\": 0.067455705,\n        \"time\": 1.6158364665300002,\n        \"user\": 1.58234764\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n        \"max\": 1.6158364665300002,\n        \"mean\": 1.5884940597300001,\n        \"median\": 1.58345716053,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.5744890645300003,\n        \"stddev\": 0.015893966327468985,\n        \"system\": 0.067455705,\n        \"time\": 1.58248558453,\n        \"user\": 1.58234764\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n        \"max\": 1.6158364665300002,\n        \"mean\": 1.5884940597300001,\n        \"median\": 1.58345716053,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.5744890645300003,\n        \"stddev\": 0.015893966327468985,\n        \"system\": 0.067455705,\n        \"time\": 1.5744890645300003,\n        \"user\": 1.58234764\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n        \"max\": 1.6158364665300002,\n        \"mean\": 1.5884940597300001,\n        \"median\": 1.58345716053,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.5744890645300003,\n        \"stddev\": 0.015893966327468985,\n        \"system\": 0.067455705,\n        \"time\": 1.58345716053,\n        \"user\": 1.58234764\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4052b9c47a2f6f45385c71f794494b9b160b8ed9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563030410-4052b9c47a2f6f45385c71f794494b9b160b8ed9\",\n        \"max\": 1.6158364665300002,\n        \"mean\": 1.5884940597300001,\n        \"median\": 1.58345716053,\n        \"message\": \"Change name of state in state machine\\n\",\n        \"min\": 1.5744890645300003,\n        \"stddev\": 0.015893966327468985,\n        \"system\": 0.067455705,\n        \"time\": 1.5862020225300002,\n        \"user\": 1.58234764\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n        \"max\": 1.61494297295,\n        \"mean\": 1.58131483455,\n        \"median\": 1.5744474129500001,\n        \"message\": \"Refactor: state machine loop\\n\",\n        \"min\": 1.56013319095,\n        \"stddev\": 0.020502497524211866,\n        \"system\": 0.06802955999999999,\n        \"time\": 1.61494297295,\n        \"user\": 1.5748919349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n        \"max\": 1.61494297295,\n        \"mean\": 1.58131483455,\n        \"median\": 1.5744474129500001,\n        \"message\": \"Refactor: state machine loop\\n\",\n        \"min\": 1.56013319095,\n        \"stddev\": 0.020502497524211866,\n        \"system\": 0.06802955999999999,\n        \"time\": 1.56013319095,\n        \"user\": 1.5748919349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n        \"max\": 1.61494297295,\n        \"mean\": 1.58131483455,\n        \"median\": 1.5744474129500001,\n        \"message\": \"Refactor: state machine loop\\n\",\n        \"min\": 1.56013319095,\n        \"stddev\": 0.020502497524211866,\n        \"system\": 0.06802955999999999,\n        \"time\": 1.5744474129500001,\n        \"user\": 1.5748919349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n        \"max\": 1.61494297295,\n        \"mean\": 1.58131483455,\n        \"median\": 1.5744474129500001,\n        \"message\": \"Refactor: state machine loop\\n\",\n        \"min\": 1.56013319095,\n        \"stddev\": 0.020502497524211866,\n        \"system\": 0.06802955999999999,\n        \"time\": 1.5740997249500002,\n        \"user\": 1.5748919349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/04afcebb1d236ee8178ee0a43fb69cb438cb9337 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039498-04afcebb1d236ee8178ee0a43fb69cb438cb9337\",\n        \"max\": 1.61494297295,\n        \"mean\": 1.58131483455,\n        \"median\": 1.5744474129500001,\n        \"message\": \"Refactor: state machine loop\\n\",\n        \"min\": 1.56013319095,\n        \"stddev\": 0.020502497524211866,\n        \"system\": 0.06802955999999999,\n        \"time\": 1.5829508709500002,\n        \"user\": 1.5748919349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n        \"max\": 1.6502111215000002,\n        \"mean\": 1.5958836853,\n        \"median\": 1.5809745025,\n        \"message\": \"Refactor: split file\\n\",\n        \"min\": 1.5567634755000002,\n        \"stddev\": 0.03745881336778723,\n        \"system\": 0.06864352999999998,\n        \"time\": 1.6502111215000002,\n        \"user\": 1.5877233999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n        \"max\": 1.6502111215000002,\n        \"mean\": 1.5958836853,\n        \"median\": 1.5809745025,\n        \"message\": \"Refactor: split file\\n\",\n        \"min\": 1.5567634755000002,\n        \"stddev\": 0.03745881336778723,\n        \"system\": 0.06864352999999998,\n        \"time\": 1.5744219735,\n        \"user\": 1.5877233999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n        \"max\": 1.6502111215000002,\n        \"mean\": 1.5958836853,\n        \"median\": 1.5809745025,\n        \"message\": \"Refactor: split file\\n\",\n        \"min\": 1.5567634755000002,\n        \"stddev\": 0.03745881336778723,\n        \"system\": 0.06864352999999998,\n        \"time\": 1.6170473535,\n        \"user\": 1.5877233999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n        \"max\": 1.6502111215000002,\n        \"mean\": 1.5958836853,\n        \"median\": 1.5809745025,\n        \"message\": \"Refactor: split file\\n\",\n        \"min\": 1.5567634755000002,\n        \"stddev\": 0.03745881336778723,\n        \"system\": 0.06864352999999998,\n        \"time\": 1.5809745025,\n        \"user\": 1.5877233999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8857ced8f03506126607bfb74534c5ff1fbacd23 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563039788-8857ced8f03506126607bfb74534c5ff1fbacd23\",\n        \"max\": 1.6502111215000002,\n        \"mean\": 1.5958836853,\n        \"median\": 1.5809745025,\n        \"message\": \"Refactor: split file\\n\",\n        \"min\": 1.5567634755000002,\n        \"stddev\": 0.03745881336778723,\n        \"system\": 0.06864352999999998,\n        \"time\": 1.5567634755000002,\n        \"user\": 1.5877233999999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n        \"max\": 1.623374941355,\n        \"mean\": 1.5910866423549999,\n        \"median\": 1.584308361355,\n        \"message\": \"Refactor: create config and style modules\\n\",\n        \"min\": 1.577111324355,\n        \"stddev\": 0.018983512785018166,\n        \"system\": 0.06831685000000001,\n        \"time\": 1.592071385355,\n        \"user\": 1.584256865\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n        \"max\": 1.623374941355,\n        \"mean\": 1.5910866423549999,\n        \"median\": 1.584308361355,\n        \"message\": \"Refactor: create config and style modules\\n\",\n        \"min\": 1.577111324355,\n        \"stddev\": 0.018983512785018166,\n        \"system\": 0.06831685000000001,\n        \"time\": 1.623374941355,\n        \"user\": 1.584256865\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n        \"max\": 1.623374941355,\n        \"mean\": 1.5910866423549999,\n        \"median\": 1.584308361355,\n        \"message\": \"Refactor: create config and style modules\\n\",\n        \"min\": 1.577111324355,\n        \"stddev\": 0.018983512785018166,\n        \"system\": 0.06831685000000001,\n        \"time\": 1.577111324355,\n        \"user\": 1.584256865\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n        \"max\": 1.623374941355,\n        \"mean\": 1.5910866423549999,\n        \"median\": 1.584308361355,\n        \"message\": \"Refactor: create config and style modules\\n\",\n        \"min\": 1.577111324355,\n        \"stddev\": 0.018983512785018166,\n        \"system\": 0.06831685000000001,\n        \"time\": 1.578567199355,\n        \"user\": 1.584256865\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44bb12703ff60735a5547ff1ab200da868b36806 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563043288-44bb12703ff60735a5547ff1ab200da868b36806\",\n        \"max\": 1.623374941355,\n        \"mean\": 1.5910866423549999,\n        \"median\": 1.584308361355,\n        \"message\": \"Refactor: create config and style modules\\n\",\n        \"min\": 1.577111324355,\n        \"stddev\": 0.018983512785018166,\n        \"system\": 0.06831685000000001,\n        \"time\": 1.584308361355,\n        \"user\": 1.584256865\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n        \"max\": 1.380232389355,\n        \"mean\": 1.3486534167550002,\n        \"median\": 1.344364668355,\n        \"message\": \"Reuse highlighter within hunks\\n\",\n        \"min\": 1.332607556355,\n        \"stddev\": 0.018457919044342297,\n        \"system\": 0.06390084999999998,\n        \"time\": 1.380232389355,\n        \"user\": 1.343164895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n        \"max\": 1.380232389355,\n        \"mean\": 1.3486534167550002,\n        \"median\": 1.344364668355,\n        \"message\": \"Reuse highlighter within hunks\\n\",\n        \"min\": 1.332607556355,\n        \"stddev\": 0.018457919044342297,\n        \"system\": 0.06390084999999998,\n        \"time\": 1.339393465355,\n        \"user\": 1.343164895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n        \"max\": 1.380232389355,\n        \"mean\": 1.3486534167550002,\n        \"median\": 1.344364668355,\n        \"message\": \"Reuse highlighter within hunks\\n\",\n        \"min\": 1.332607556355,\n        \"stddev\": 0.018457919044342297,\n        \"system\": 0.06390084999999998,\n        \"time\": 1.332607556355,\n        \"user\": 1.343164895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n        \"max\": 1.380232389355,\n        \"mean\": 1.3486534167550002,\n        \"median\": 1.344364668355,\n        \"message\": \"Reuse highlighter within hunks\\n\",\n        \"min\": 1.332607556355,\n        \"stddev\": 0.018457919044342297,\n        \"system\": 0.06390084999999998,\n        \"time\": 1.346669004355,\n        \"user\": 1.343164895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c621027f256ca9f7d02990648694295683ecb53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563051598-3c621027f256ca9f7d02990648694295683ecb53\",\n        \"max\": 1.380232389355,\n        \"mean\": 1.3486534167550002,\n        \"median\": 1.344364668355,\n        \"message\": \"Reuse highlighter within hunks\\n\",\n        \"min\": 1.332607556355,\n        \"stddev\": 0.018457919044342297,\n        \"system\": 0.06390084999999998,\n        \"time\": 1.344364668355,\n        \"user\": 1.343164895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n        \"max\": 1.07901028965,\n        \"mean\": 1.0601044950499998,\n        \"median\": 1.0567222326499999,\n        \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n        \"min\": 1.04984655965,\n        \"stddev\": 0.01163999348706726,\n        \"system\": 0.061723105,\n        \"time\": 1.07901028965,\n        \"user\": 1.0585288699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n        \"max\": 1.07901028965,\n        \"mean\": 1.0601044950499998,\n        \"median\": 1.0567222326499999,\n        \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n        \"min\": 1.04984655965,\n        \"stddev\": 0.01163999348706726,\n        \"system\": 0.061723105,\n        \"time\": 1.06266787465,\n        \"user\": 1.0585288699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n        \"max\": 1.07901028965,\n        \"mean\": 1.0601044950499998,\n        \"median\": 1.0567222326499999,\n        \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n        \"min\": 1.04984655965,\n        \"stddev\": 0.01163999348706726,\n        \"system\": 0.061723105,\n        \"time\": 1.0567222326499999,\n        \"user\": 1.0585288699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n        \"max\": 1.07901028965,\n        \"mean\": 1.0601044950499998,\n        \"median\": 1.0567222326499999,\n        \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n        \"min\": 1.04984655965,\n        \"stddev\": 0.01163999348706726,\n        \"system\": 0.061723105,\n        \"time\": 1.05227551865,\n        \"user\": 1.0585288699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563125632-bcbbd8dc99f0d3b1f8e9d4bfb360779a93852e2f\",\n        \"max\": 1.07901028965,\n        \"mean\": 1.0601044950499998,\n        \"median\": 1.0567222326499999,\n        \"message\": \"Don't use syntax highlighter when not syntax highlighting\\n\",\n        \"min\": 1.04984655965,\n        \"stddev\": 0.01163999348706726,\n        \"system\": 0.061723105,\n        \"time\": 1.04984655965,\n        \"user\": 1.0585288699999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n        \"max\": 1.083321176545,\n        \"mean\": 1.069351150745,\n        \"median\": 1.065280286545,\n        \"message\": \"CI: Travis configuration\\n\",\n        \"min\": 1.059408290545,\n        \"stddev\": 0.010041061780644579,\n        \"system\": 0.06302291,\n        \"time\": 1.083321176545,\n        \"user\": 1.06579061\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n        \"max\": 1.083321176545,\n        \"mean\": 1.069351150745,\n        \"median\": 1.065280286545,\n        \"message\": \"CI: Travis configuration\\n\",\n        \"min\": 1.059408290545,\n        \"stddev\": 0.010041061780644579,\n        \"system\": 0.06302291,\n        \"time\": 1.065280286545,\n        \"user\": 1.06579061\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n        \"max\": 1.083321176545,\n        \"mean\": 1.069351150745,\n        \"median\": 1.065280286545,\n        \"message\": \"CI: Travis configuration\\n\",\n        \"min\": 1.059408290545,\n        \"stddev\": 0.010041061780644579,\n        \"system\": 0.06302291,\n        \"time\": 1.062565037545,\n        \"user\": 1.06579061\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n        \"max\": 1.083321176545,\n        \"mean\": 1.069351150745,\n        \"median\": 1.065280286545,\n        \"message\": \"CI: Travis configuration\\n\",\n        \"min\": 1.059408290545,\n        \"stddev\": 0.010041061780644579,\n        \"system\": 0.06302291,\n        \"time\": 1.059408290545,\n        \"user\": 1.06579061\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fbb6d63f25831738e467657d46532e0771cfe60 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563142404-9fbb6d63f25831738e467657d46532e0771cfe60\",\n        \"max\": 1.083321176545,\n        \"mean\": 1.069351150745,\n        \"median\": 1.065280286545,\n        \"message\": \"CI: Travis configuration\\n\",\n        \"min\": 1.059408290545,\n        \"stddev\": 0.010041061780644579,\n        \"system\": 0.06302291,\n        \"time\": 1.076180962545,\n        \"user\": 1.06579061\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n        \"max\": 1.122900381125,\n        \"mean\": 1.0938222405249998,\n        \"median\": 1.0943147171249998,\n        \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n        \"min\": 1.077975366125,\n        \"stddev\": 0.018365824624130105,\n        \"system\": 0.06293053500000001,\n        \"time\": 1.122900381125,\n        \"user\": 1.0883296249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n        \"max\": 1.122900381125,\n        \"mean\": 1.0938222405249998,\n        \"median\": 1.0943147171249998,\n        \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n        \"min\": 1.077975366125,\n        \"stddev\": 0.018365824624130105,\n        \"system\": 0.06293053500000001,\n        \"time\": 1.077975366125,\n        \"user\": 1.0883296249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n        \"max\": 1.122900381125,\n        \"mean\": 1.0938222405249998,\n        \"median\": 1.0943147171249998,\n        \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n        \"min\": 1.077975366125,\n        \"stddev\": 0.018365824624130105,\n        \"system\": 0.06293053500000001,\n        \"time\": 1.0943147171249998,\n        \"user\": 1.0883296249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n        \"max\": 1.122900381125,\n        \"mean\": 1.0938222405249998,\n        \"median\": 1.0943147171249998,\n        \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n        \"min\": 1.077975366125,\n        \"stddev\": 0.018365824624130105,\n        \"system\": 0.06293053500000001,\n        \"time\": 1.095852480125,\n        \"user\": 1.0883296249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/252df1c1028c98796ebd76ddc1645c10a186f36e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-252df1c1028c98796ebd76ddc1645c10a186f36e\",\n        \"max\": 1.122900381125,\n        \"mean\": 1.0938222405249998,\n        \"median\": 1.0943147171249998,\n        \"message\": \"Bug fix: terminate line with '\\\\n' when passing to highlighter\\n\",\n        \"min\": 1.077975366125,\n        \"stddev\": 0.018365824624130105,\n        \"system\": 0.06293053500000001,\n        \"time\": 1.0780682581249998,\n        \"user\": 1.0883296249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n        \"max\": 1.11305893241,\n        \"mean\": 1.08235458961,\n        \"median\": 1.07557083041,\n        \"message\": \"Parse file metadata section correctly\\n\",\n        \"min\": 1.0693411694100001,\n        \"stddev\": 0.017768164147161737,\n        \"system\": 0.062550265,\n        \"time\": 1.11305893241,\n        \"user\": 1.076630155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n        \"max\": 1.11305893241,\n        \"mean\": 1.08235458961,\n        \"median\": 1.07557083041,\n        \"message\": \"Parse file metadata section correctly\\n\",\n        \"min\": 1.0693411694100001,\n        \"stddev\": 0.017768164147161737,\n        \"system\": 0.062550265,\n        \"time\": 1.0693411694100001,\n        \"user\": 1.076630155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n        \"max\": 1.11305893241,\n        \"mean\": 1.08235458961,\n        \"median\": 1.07557083041,\n        \"message\": \"Parse file metadata section correctly\\n\",\n        \"min\": 1.0693411694100001,\n        \"stddev\": 0.017768164147161737,\n        \"system\": 0.062550265,\n        \"time\": 1.07214588641,\n        \"user\": 1.076630155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n        \"max\": 1.11305893241,\n        \"mean\": 1.08235458961,\n        \"median\": 1.07557083041,\n        \"message\": \"Parse file metadata section correctly\\n\",\n        \"min\": 1.0693411694100001,\n        \"stddev\": 0.017768164147161737,\n        \"system\": 0.062550265,\n        \"time\": 1.08165612941,\n        \"user\": 1.076630155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a760d5c007cb5b0c0f9a08ba67d03f1082804e0c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563203959-a760d5c007cb5b0c0f9a08ba67d03f1082804e0c\",\n        \"max\": 1.11305893241,\n        \"mean\": 1.08235458961,\n        \"median\": 1.07557083041,\n        \"message\": \"Parse file metadata section correctly\\n\",\n        \"min\": 1.0693411694100001,\n        \"stddev\": 0.017768164147161737,\n        \"system\": 0.062550265,\n        \"time\": 1.07557083041,\n        \"user\": 1.076630155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n        \"max\": 1.1104782022850002,\n        \"mean\": 1.086040560685,\n        \"median\": 1.083966790285,\n        \"message\": \"Copy travis CI config from bat\\n\",\n        \"min\": 1.068436929285,\n        \"stddev\": 0.015797485038094458,\n        \"system\": 0.06197938000000001,\n        \"time\": 1.089805581285,\n        \"user\": 1.0837273449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n        \"max\": 1.1104782022850002,\n        \"mean\": 1.086040560685,\n        \"median\": 1.083966790285,\n        \"message\": \"Copy travis CI config from bat\\n\",\n        \"min\": 1.068436929285,\n        \"stddev\": 0.015797485038094458,\n        \"system\": 0.06197938000000001,\n        \"time\": 1.068436929285,\n        \"user\": 1.0837273449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n        \"max\": 1.1104782022850002,\n        \"mean\": 1.086040560685,\n        \"median\": 1.083966790285,\n        \"message\": \"Copy travis CI config from bat\\n\",\n        \"min\": 1.068436929285,\n        \"stddev\": 0.015797485038094458,\n        \"system\": 0.06197938000000001,\n        \"time\": 1.077515300285,\n        \"user\": 1.0837273449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n        \"max\": 1.1104782022850002,\n        \"mean\": 1.086040560685,\n        \"median\": 1.083966790285,\n        \"message\": \"Copy travis CI config from bat\\n\",\n        \"min\": 1.068436929285,\n        \"stddev\": 0.015797485038094458,\n        \"system\": 0.06197938000000001,\n        \"time\": 1.1104782022850002,\n        \"user\": 1.0837273449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b46c610f875538b64be275694542f67110f1c287 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563215854-b46c610f875538b64be275694542f67110f1c287\",\n        \"max\": 1.1104782022850002,\n        \"mean\": 1.086040560685,\n        \"median\": 1.083966790285,\n        \"message\": \"Copy travis CI config from bat\\n\",\n        \"min\": 1.068436929285,\n        \"stddev\": 0.015797485038094458,\n        \"system\": 0.06197938000000001,\n        \"time\": 1.083966790285,\n        \"user\": 1.0837273449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n        \"max\": 1.11168427568,\n        \"mean\": 1.0853863800799999,\n        \"median\": 1.0807144526799999,\n        \"message\": \"Modify bat travis build config for delta\\n\",\n        \"min\": 1.06968467168,\n        \"stddev\": 0.015697722271498665,\n        \"system\": 0.063041505,\n        \"time\": 1.11168427568,\n        \"user\": 1.0798746099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n        \"max\": 1.11168427568,\n        \"mean\": 1.0853863800799999,\n        \"median\": 1.0807144526799999,\n        \"message\": \"Modify bat travis build config for delta\\n\",\n        \"min\": 1.06968467168,\n        \"stddev\": 0.015697722271498665,\n        \"system\": 0.063041505,\n        \"time\": 1.08040241368,\n        \"user\": 1.0798746099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n        \"max\": 1.11168427568,\n        \"mean\": 1.0853863800799999,\n        \"median\": 1.0807144526799999,\n        \"message\": \"Modify bat travis build config for delta\\n\",\n        \"min\": 1.06968467168,\n        \"stddev\": 0.015697722271498665,\n        \"system\": 0.063041505,\n        \"time\": 1.0807144526799999,\n        \"user\": 1.0798746099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n        \"max\": 1.11168427568,\n        \"mean\": 1.0853863800799999,\n        \"median\": 1.0807144526799999,\n        \"message\": \"Modify bat travis build config for delta\\n\",\n        \"min\": 1.06968467168,\n        \"stddev\": 0.015697722271498665,\n        \"system\": 0.063041505,\n        \"time\": 1.06968467168,\n        \"user\": 1.0798746099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563216583-a270bb568e4cc881e84ba6fa9c86bb1ca57c2a28\",\n        \"max\": 1.11168427568,\n        \"mean\": 1.0853863800799999,\n        \"median\": 1.0807144526799999,\n        \"message\": \"Modify bat travis build config for delta\\n\",\n        \"min\": 1.06968467168,\n        \"stddev\": 0.015697722271498665,\n        \"system\": 0.063041505,\n        \"time\": 1.0844460866799999,\n        \"user\": 1.0798746099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n        \"max\": 1.080058375125,\n        \"mean\": 1.070195315525,\n        \"median\": 1.067920070125,\n        \"message\": \"Refactor: syntax and diff highlighting\\n\",\n        \"min\": 1.0637899281249998,\n        \"stddev\": 0.006970840206560277,\n        \"system\": 0.062272669999999995,\n        \"time\": 1.067920070125,\n        \"user\": 1.0668568549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n        \"max\": 1.080058375125,\n        \"mean\": 1.070195315525,\n        \"median\": 1.067920070125,\n        \"message\": \"Refactor: syntax and diff highlighting\\n\",\n        \"min\": 1.0637899281249998,\n        \"stddev\": 0.006970840206560277,\n        \"system\": 0.062272669999999995,\n        \"time\": 1.080058375125,\n        \"user\": 1.0668568549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n        \"max\": 1.080058375125,\n        \"mean\": 1.070195315525,\n        \"median\": 1.067920070125,\n        \"message\": \"Refactor: syntax and diff highlighting\\n\",\n        \"min\": 1.0637899281249998,\n        \"stddev\": 0.006970840206560277,\n        \"system\": 0.062272669999999995,\n        \"time\": 1.0746133791249999,\n        \"user\": 1.0668568549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n        \"max\": 1.080058375125,\n        \"mean\": 1.070195315525,\n        \"median\": 1.067920070125,\n        \"message\": \"Refactor: syntax and diff highlighting\\n\",\n        \"min\": 1.0637899281249998,\n        \"stddev\": 0.006970840206560277,\n        \"system\": 0.062272669999999995,\n        \"time\": 1.0637899281249998,\n        \"user\": 1.0668568549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563223985-1622a2a117346c2c1ea4a57fd29e3cbfa3a635f6\",\n        \"max\": 1.080058375125,\n        \"mean\": 1.070195315525,\n        \"median\": 1.067920070125,\n        \"message\": \"Refactor: syntax and diff highlighting\\n\",\n        \"min\": 1.0637899281249998,\n        \"stddev\": 0.006970840206560277,\n        \"system\": 0.062272669999999995,\n        \"time\": 1.064594825125,\n        \"user\": 1.0668568549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n        \"max\": 1.0776299065550001,\n        \"mean\": 1.072154862755,\n        \"median\": 1.074613276555,\n        \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n        \"min\": 1.0638025985550001,\n        \"stddev\": 0.005625495659005866,\n        \"system\": 0.062507175,\n        \"time\": 1.0691458125550002,\n        \"user\": 1.0698741550000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n        \"max\": 1.0776299065550001,\n        \"mean\": 1.072154862755,\n        \"median\": 1.074613276555,\n        \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n        \"min\": 1.0638025985550001,\n        \"stddev\": 0.005625495659005866,\n        \"system\": 0.062507175,\n        \"time\": 1.0638025985550001,\n        \"user\": 1.0698741550000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n        \"max\": 1.0776299065550001,\n        \"mean\": 1.072154862755,\n        \"median\": 1.074613276555,\n        \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n        \"min\": 1.0638025985550001,\n        \"stddev\": 0.005625495659005866,\n        \"system\": 0.062507175,\n        \"time\": 1.075582719555,\n        \"user\": 1.0698741550000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n        \"max\": 1.0776299065550001,\n        \"mean\": 1.072154862755,\n        \"median\": 1.074613276555,\n        \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n        \"min\": 1.0638025985550001,\n        \"stddev\": 0.005625495659005866,\n        \"system\": 0.062507175,\n        \"time\": 1.0776299065550001,\n        \"user\": 1.0698741550000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bdf65a1489fa5dbfebde54fa60b6560efa92d6eb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563243718-bdf65a1489fa5dbfebde54fa60b6560efa92d6eb\",\n        \"max\": 1.0776299065550001,\n        \"mean\": 1.072154862755,\n        \"median\": 1.074613276555,\n        \"message\": \"Homebrew formula\\n\\nbrew tap dandavison/delta https://github.com/dandavison/delta\\nbrew install dandavison/delta/git-delta\\n\",\n        \"min\": 1.0638025985550001,\n        \"stddev\": 0.005625495659005866,\n        \"system\": 0.062507175,\n        \"time\": 1.074613276555,\n        \"user\": 1.0698741550000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n        \"max\": 1.0933227324049999,\n        \"mean\": 1.0743633212049999,\n        \"median\": 1.0768867364049999,\n        \"message\": \"README\\n\",\n        \"min\": 1.055582240405,\n        \"stddev\": 0.014698053767669066,\n        \"system\": 0.06304689,\n        \"time\": 1.0933227324049999,\n        \"user\": 1.06785342\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n        \"max\": 1.0933227324049999,\n        \"mean\": 1.0743633212049999,\n        \"median\": 1.0768867364049999,\n        \"message\": \"README\\n\",\n        \"min\": 1.055582240405,\n        \"stddev\": 0.014698053767669066,\n        \"system\": 0.06304689,\n        \"time\": 1.0768867364049999,\n        \"user\": 1.06785342\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n        \"max\": 1.0933227324049999,\n        \"mean\": 1.0743633212049999,\n        \"median\": 1.0768867364049999,\n        \"message\": \"README\\n\",\n        \"min\": 1.055582240405,\n        \"stddev\": 0.014698053767669066,\n        \"system\": 0.06304689,\n        \"time\": 1.055582240405,\n        \"user\": 1.06785342\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n        \"max\": 1.0933227324049999,\n        \"mean\": 1.0743633212049999,\n        \"median\": 1.0768867364049999,\n        \"message\": \"README\\n\",\n        \"min\": 1.055582240405,\n        \"stddev\": 0.014698053767669066,\n        \"system\": 0.06304689,\n        \"time\": 1.064588508405,\n        \"user\": 1.06785342\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c63291f50496bbb12b82b185d2487c05e07b38c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563245907-3c63291f50496bbb12b82b185d2487c05e07b38c\",\n        \"max\": 1.0933227324049999,\n        \"mean\": 1.0743633212049999,\n        \"median\": 1.0768867364049999,\n        \"message\": \"README\\n\",\n        \"min\": 1.055582240405,\n        \"stddev\": 0.014698053767669066,\n        \"system\": 0.06304689,\n        \"time\": 1.081436388405,\n        \"user\": 1.06785342\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n        \"max\": 1.119406058265,\n        \"mean\": 1.079771412065,\n        \"median\": 1.0747027012650001,\n        \"message\": \"Refactor: string_pair module\\n\",\n        \"min\": 1.063283303265,\n        \"stddev\": 0.022752423767941732,\n        \"system\": 0.06403961999999999,\n        \"time\": 1.119406058265,\n        \"user\": 1.0733609549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n        \"max\": 1.119406058265,\n        \"mean\": 1.079771412065,\n        \"median\": 1.0747027012650001,\n        \"message\": \"Refactor: string_pair module\\n\",\n        \"min\": 1.063283303265,\n        \"stddev\": 0.022752423767941732,\n        \"system\": 0.06403961999999999,\n        \"time\": 1.063283303265,\n        \"user\": 1.0733609549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n        \"max\": 1.119406058265,\n        \"mean\": 1.079771412065,\n        \"median\": 1.0747027012650001,\n        \"message\": \"Refactor: string_pair module\\n\",\n        \"min\": 1.063283303265,\n        \"stddev\": 0.022752423767941732,\n        \"system\": 0.06403961999999999,\n        \"time\": 1.0747027012650001,\n        \"user\": 1.0733609549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n        \"max\": 1.119406058265,\n        \"mean\": 1.079771412065,\n        \"median\": 1.0747027012650001,\n        \"message\": \"Refactor: string_pair module\\n\",\n        \"min\": 1.063283303265,\n        \"stddev\": 0.022752423767941732,\n        \"system\": 0.06403961999999999,\n        \"time\": 1.066326111265,\n        \"user\": 1.0733609549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70ddd4a6c5a183297eef65989e652b977602a159 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563248328-70ddd4a6c5a183297eef65989e652b977602a159\",\n        \"max\": 1.119406058265,\n        \"mean\": 1.079771412065,\n        \"median\": 1.0747027012650001,\n        \"message\": \"Refactor: string_pair module\\n\",\n        \"min\": 1.063283303265,\n        \"stddev\": 0.022752423767941732,\n        \"system\": 0.06403961999999999,\n        \"time\": 1.075138886265,\n        \"user\": 1.0733609549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n        \"max\": 1.097567612485,\n        \"mean\": 1.075357084285,\n        \"median\": 1.0707285684849999,\n        \"message\": \"Unit test: get_diff_style_sections\\n\",\n        \"min\": 1.065079220485,\n        \"stddev\": 0.01286308946023587,\n        \"system\": 0.06350984,\n        \"time\": 1.097567612485,\n        \"user\": 1.0680167799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n        \"max\": 1.097567612485,\n        \"mean\": 1.075357084285,\n        \"median\": 1.0707285684849999,\n        \"message\": \"Unit test: get_diff_style_sections\\n\",\n        \"min\": 1.065079220485,\n        \"stddev\": 0.01286308946023587,\n        \"system\": 0.06350984,\n        \"time\": 1.074424916485,\n        \"user\": 1.0680167799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n        \"max\": 1.097567612485,\n        \"mean\": 1.075357084285,\n        \"median\": 1.0707285684849999,\n        \"message\": \"Unit test: get_diff_style_sections\\n\",\n        \"min\": 1.065079220485,\n        \"stddev\": 0.01286308946023587,\n        \"system\": 0.06350984,\n        \"time\": 1.068985103485,\n        \"user\": 1.0680167799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n        \"max\": 1.097567612485,\n        \"mean\": 1.075357084285,\n        \"median\": 1.0707285684849999,\n        \"message\": \"Unit test: get_diff_style_sections\\n\",\n        \"min\": 1.065079220485,\n        \"stddev\": 0.01286308946023587,\n        \"system\": 0.06350984,\n        \"time\": 1.0707285684849999,\n        \"user\": 1.0680167799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/56dc77f25704fbdeb5b53206c27419137de8263f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563250540-56dc77f25704fbdeb5b53206c27419137de8263f\",\n        \"max\": 1.097567612485,\n        \"mean\": 1.075357084285,\n        \"median\": 1.0707285684849999,\n        \"message\": \"Unit test: get_diff_style_sections\\n\",\n        \"min\": 1.065079220485,\n        \"stddev\": 0.01286308946023587,\n        \"system\": 0.06350984,\n        \"time\": 1.065079220485,\n        \"user\": 1.0680167799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n        \"max\": 1.08175064793,\n        \"mean\": 1.0686550339300003,\n        \"median\": 1.06628117693,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.05769301093,\n        \"stddev\": 0.00987938457733004,\n        \"system\": 0.06293996999999998,\n        \"time\": 1.08175064793,\n        \"user\": 1.0631977349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n        \"max\": 1.08175064793,\n        \"mean\": 1.0686550339300003,\n        \"median\": 1.06628117693,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.05769301093,\n        \"stddev\": 0.00987938457733004,\n        \"system\": 0.06293996999999998,\n        \"time\": 1.05769301093,\n        \"user\": 1.0631977349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n        \"max\": 1.08175064793,\n        \"mean\": 1.0686550339300003,\n        \"median\": 1.06628117693,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.05769301093,\n        \"stddev\": 0.00987938457733004,\n        \"system\": 0.06293996999999998,\n        \"time\": 1.07559733093,\n        \"user\": 1.0631977349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n        \"max\": 1.08175064793,\n        \"mean\": 1.0686550339300003,\n        \"median\": 1.06628117693,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.05769301093,\n        \"stddev\": 0.00987938457733004,\n        \"system\": 0.06293996999999998,\n        \"time\": 1.06628117693,\n        \"user\": 1.0631977349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/40f5119e93f0cd9ad33d843ede71c8a673f5e7df < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563285629-40f5119e93f0cd9ad33d843ede71c8a673f5e7df\",\n        \"max\": 1.08175064793,\n        \"mean\": 1.0686550339300003,\n        \"median\": 1.06628117693,\n        \"message\": \"Rename module\\n\",\n        \"min\": 1.05769301093,\n        \"stddev\": 0.00987938457733004,\n        \"system\": 0.06293996999999998,\n        \"time\": 1.06195300293,\n        \"user\": 1.0631977349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n        \"max\": 1.09267472934,\n        \"mean\": 1.07483519934,\n        \"median\": 1.06967481334,\n        \"message\": \"Tests fail: Add unit test: edits\\n\",\n        \"min\": 1.06775922334,\n        \"stddev\": 0.010527648003784928,\n        \"system\": 0.06452906,\n        \"time\": 1.09267472934,\n        \"user\": 1.0690314650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n        \"max\": 1.09267472934,\n        \"mean\": 1.07483519934,\n        \"median\": 1.06967481334,\n        \"message\": \"Tests fail: Add unit test: edits\\n\",\n        \"min\": 1.06775922334,\n        \"stddev\": 0.010527648003784928,\n        \"system\": 0.06452906,\n        \"time\": 1.06799134534,\n        \"user\": 1.0690314650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n        \"max\": 1.09267472934,\n        \"mean\": 1.07483519934,\n        \"median\": 1.06967481334,\n        \"message\": \"Tests fail: Add unit test: edits\\n\",\n        \"min\": 1.06775922334,\n        \"stddev\": 0.010527648003784928,\n        \"system\": 0.06452906,\n        \"time\": 1.06775922334,\n        \"user\": 1.0690314650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n        \"max\": 1.09267472934,\n        \"mean\": 1.07483519934,\n        \"median\": 1.06967481334,\n        \"message\": \"Tests fail: Add unit test: edits\\n\",\n        \"min\": 1.06775922334,\n        \"stddev\": 0.010527648003784928,\n        \"system\": 0.06452906,\n        \"time\": 1.07607588534,\n        \"user\": 1.0690314650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6939c2867d113df60fe34526c2da52fe446b09ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293131-6939c2867d113df60fe34526c2da52fe446b09ef\",\n        \"max\": 1.09267472934,\n        \"mean\": 1.07483519934,\n        \"median\": 1.06967481334,\n        \"message\": \"Tests fail: Add unit test: edits\\n\",\n        \"min\": 1.06775922334,\n        \"stddev\": 0.010527648003784928,\n        \"system\": 0.06452906,\n        \"time\": 1.06967481334,\n        \"user\": 1.0690314650000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n        \"max\": 1.090318396895,\n        \"mean\": 1.0752896608950002,\n        \"median\": 1.0692554918950001,\n        \"message\": \"Fix string pair edits algorithm\\n\",\n        \"min\": 1.0683354598950001,\n        \"stddev\": 0.009632698304754312,\n        \"system\": 0.06391258,\n        \"time\": 1.079674981895,\n        \"user\": 1.072360775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n        \"max\": 1.090318396895,\n        \"mean\": 1.0752896608950002,\n        \"median\": 1.0692554918950001,\n        \"message\": \"Fix string pair edits algorithm\\n\",\n        \"min\": 1.0683354598950001,\n        \"stddev\": 0.009632698304754312,\n        \"system\": 0.06391258,\n        \"time\": 1.0683354598950001,\n        \"user\": 1.072360775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n        \"max\": 1.090318396895,\n        \"mean\": 1.0752896608950002,\n        \"median\": 1.0692554918950001,\n        \"message\": \"Fix string pair edits algorithm\\n\",\n        \"min\": 1.0683354598950001,\n        \"stddev\": 0.009632698304754312,\n        \"system\": 0.06391258,\n        \"time\": 1.0692554918950001,\n        \"user\": 1.072360775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n        \"max\": 1.090318396895,\n        \"mean\": 1.0752896608950002,\n        \"median\": 1.0692554918950001,\n        \"message\": \"Fix string pair edits algorithm\\n\",\n        \"min\": 1.0683354598950001,\n        \"stddev\": 0.009632698304754312,\n        \"system\": 0.06391258,\n        \"time\": 1.068863973895,\n        \"user\": 1.072360775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4e8f9d6a394417116f6980484cc8a8cd27ca6be5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563293153-4e8f9d6a394417116f6980484cc8a8cd27ca6be5\",\n        \"max\": 1.090318396895,\n        \"mean\": 1.0752896608950002,\n        \"median\": 1.0692554918950001,\n        \"message\": \"Fix string pair edits algorithm\\n\",\n        \"min\": 1.0683354598950001,\n        \"stddev\": 0.009632698304754312,\n        \"system\": 0.06391258,\n        \"time\": 1.090318396895,\n        \"user\": 1.072360775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n        \"max\": 1.089967824365,\n        \"mean\": 1.072659919965,\n        \"median\": 1.071875648365,\n        \"message\": \"Fix git config instruction in README\\n\",\n        \"min\": 1.0640115243650001,\n        \"stddev\": 0.010394210580992432,\n        \"system\": 0.06245383499999999,\n        \"time\": 1.089967824365,\n        \"user\": 1.0702733050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n        \"max\": 1.089967824365,\n        \"mean\": 1.072659919965,\n        \"median\": 1.071875648365,\n        \"message\": \"Fix git config instruction in README\\n\",\n        \"min\": 1.0640115243650001,\n        \"stddev\": 0.010394210580992432,\n        \"system\": 0.06245383499999999,\n        \"time\": 1.071875648365,\n        \"user\": 1.0702733050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n        \"max\": 1.089967824365,\n        \"mean\": 1.072659919965,\n        \"median\": 1.071875648365,\n        \"message\": \"Fix git config instruction in README\\n\",\n        \"min\": 1.0640115243650001,\n        \"stddev\": 0.010394210580992432,\n        \"system\": 0.06245383499999999,\n        \"time\": 1.0640115243650001,\n        \"user\": 1.0702733050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n        \"max\": 1.089967824365,\n        \"mean\": 1.072659919965,\n        \"median\": 1.071875648365,\n        \"message\": \"Fix git config instruction in README\\n\",\n        \"min\": 1.0640115243650001,\n        \"stddev\": 0.010394210580992432,\n        \"system\": 0.06245383499999999,\n        \"time\": 1.065104609365,\n        \"user\": 1.0702733050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563295600-48cef31c4a7b9e25280a8a7eaeac2a580b2ffa19\",\n        \"max\": 1.089967824365,\n        \"mean\": 1.072659919965,\n        \"median\": 1.071875648365,\n        \"message\": \"Fix git config instruction in README\\n\",\n        \"min\": 1.0640115243650001,\n        \"stddev\": 0.010394210580992432,\n        \"system\": 0.06245383499999999,\n        \"time\": 1.072339993365,\n        \"user\": 1.0702733050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n        \"max\": 1.094293334525,\n        \"mean\": 1.080548560525,\n        \"median\": 1.073906552525,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.070012036525,\n        \"stddev\": 0.01150699365043806,\n        \"system\": 0.06344594,\n        \"time\": 1.094293334525,\n        \"user\": 1.07457614\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n        \"max\": 1.094293334525,\n        \"mean\": 1.080548560525,\n        \"median\": 1.073906552525,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.070012036525,\n        \"stddev\": 0.01150699365043806,\n        \"system\": 0.06344594,\n        \"time\": 1.091744227525,\n        \"user\": 1.07457614\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n        \"max\": 1.094293334525,\n        \"mean\": 1.080548560525,\n        \"median\": 1.073906552525,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.070012036525,\n        \"stddev\": 0.01150699365043806,\n        \"system\": 0.06344594,\n        \"time\": 1.070012036525,\n        \"user\": 1.07457614\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n        \"max\": 1.094293334525,\n        \"mean\": 1.080548560525,\n        \"median\": 1.073906552525,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.070012036525,\n        \"stddev\": 0.01150699365043806,\n        \"system\": 0.06344594,\n        \"time\": 1.072786651525,\n        \"user\": 1.07457614\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5ed325b3c713c90eca30e263940ac0ac4dc6fb6b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-5ed325b3c713c90eca30e263940ac0ac4dc6fb6b\",\n        \"max\": 1.094293334525,\n        \"mean\": 1.080548560525,\n        \"median\": 1.073906552525,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.070012036525,\n        \"stddev\": 0.01150699365043806,\n        \"system\": 0.06344594,\n        \"time\": 1.073906552525,\n        \"user\": 1.07457614\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n        \"max\": 1.07414978896,\n        \"mean\": 1.06888024356,\n        \"median\": 1.07103132596,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.05872957796,\n        \"stddev\": 0.00599563184460801,\n        \"system\": 0.06255598500000001,\n        \"time\": 1.07414978896,\n        \"user\": 1.0665162249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n        \"max\": 1.07414978896,\n        \"mean\": 1.06888024356,\n        \"median\": 1.07103132596,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.05872957796,\n        \"stddev\": 0.00599563184460801,\n        \"system\": 0.06255598500000001,\n        \"time\": 1.07103132596,\n        \"user\": 1.0665162249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n        \"max\": 1.07414978896,\n        \"mean\": 1.06888024356,\n        \"median\": 1.07103132596,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.05872957796,\n        \"stddev\": 0.00599563184460801,\n        \"system\": 0.06255598500000001,\n        \"time\": 1.06872332696,\n        \"user\": 1.0665162249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n        \"max\": 1.07414978896,\n        \"mean\": 1.06888024356,\n        \"median\": 1.07103132596,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.05872957796,\n        \"stddev\": 0.00599563184460801,\n        \"system\": 0.06255598500000001,\n        \"time\": 1.05872957796,\n        \"user\": 1.0665162249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f435458438604811309e850b2bed94b8f6dc7270 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563296945-f435458438604811309e850b2bed94b8f6dc7270\",\n        \"max\": 1.07414978896,\n        \"mean\": 1.06888024356,\n        \"median\": 1.07103132596,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.05872957796,\n        \"stddev\": 0.00599563184460801,\n        \"system\": 0.06255598500000001,\n        \"time\": 1.0717671979599999,\n        \"user\": 1.0665162249999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n        \"max\": 1.0793652837449998,\n        \"mean\": 1.0719746075449998,\n        \"median\": 1.0758448537449998,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.0613374927449999,\n        \"stddev\": 0.008177305426694524,\n        \"system\": 0.06248412999999999,\n        \"time\": 1.0793652837449998,\n        \"user\": 1.0693491499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n        \"max\": 1.0793652837449998,\n        \"mean\": 1.0719746075449998,\n        \"median\": 1.0758448537449998,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.0613374927449999,\n        \"stddev\": 0.008177305426694524,\n        \"system\": 0.06248412999999999,\n        \"time\": 1.0758448537449998,\n        \"user\": 1.0693491499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n        \"max\": 1.0793652837449998,\n        \"mean\": 1.0719746075449998,\n        \"median\": 1.0758448537449998,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.0613374927449999,\n        \"stddev\": 0.008177305426694524,\n        \"system\": 0.06248412999999999,\n        \"time\": 1.0613374927449999,\n        \"user\": 1.0693491499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n        \"max\": 1.0793652837449998,\n        \"mean\": 1.0719746075449998,\n        \"median\": 1.0758448537449998,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.0613374927449999,\n        \"stddev\": 0.008177305426694524,\n        \"system\": 0.06248412999999999,\n        \"time\": 1.078163842745,\n        \"user\": 1.0693491499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b617a1431365fcce901beb35c3ce564b97da6031 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563297163-b617a1431365fcce901beb35c3ce564b97da6031\",\n        \"max\": 1.0793652837449998,\n        \"mean\": 1.0719746075449998,\n        \"median\": 1.0758448537449998,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.0613374927449999,\n        \"stddev\": 0.008177305426694524,\n        \"system\": 0.06248412999999999,\n        \"time\": 1.065161564745,\n        \"user\": 1.0693491499999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n        \"max\": 1.086765322135,\n        \"mean\": 1.0694037249350001,\n        \"median\": 1.068124248135,\n        \"message\": \"README: screenshots\\n\",\n        \"min\": 1.0589403211350001,\n        \"stddev\": 0.010481455053255427,\n        \"system\": 0.061443954999999995,\n        \"time\": 1.086765322135,\n        \"user\": 1.06800311\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n        \"max\": 1.086765322135,\n        \"mean\": 1.0694037249350001,\n        \"median\": 1.068124248135,\n        \"message\": \"README: screenshots\\n\",\n        \"min\": 1.0589403211350001,\n        \"stddev\": 0.010481455053255427,\n        \"system\": 0.061443954999999995,\n        \"time\": 1.068124248135,\n        \"user\": 1.06800311\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n        \"max\": 1.086765322135,\n        \"mean\": 1.0694037249350001,\n        \"median\": 1.068124248135,\n        \"message\": \"README: screenshots\\n\",\n        \"min\": 1.0589403211350001,\n        \"stddev\": 0.010481455053255427,\n        \"system\": 0.061443954999999995,\n        \"time\": 1.064237072135,\n        \"user\": 1.06800311\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n        \"max\": 1.086765322135,\n        \"mean\": 1.0694037249350001,\n        \"median\": 1.068124248135,\n        \"message\": \"README: screenshots\\n\",\n        \"min\": 1.0589403211350001,\n        \"stddev\": 0.010481455053255427,\n        \"system\": 0.061443954999999995,\n        \"time\": 1.0589403211350001,\n        \"user\": 1.06800311\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ac2bbd19d6af2dd312be162c985c40f471761aa7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563298918-ac2bbd19d6af2dd312be162c985c40f471761aa7\",\n        \"max\": 1.086765322135,\n        \"mean\": 1.0694037249350001,\n        \"median\": 1.068124248135,\n        \"message\": \"README: screenshots\\n\",\n        \"min\": 1.0589403211350001,\n        \"stddev\": 0.010481455053255427,\n        \"system\": 0.061443954999999995,\n        \"time\": 1.068951661135,\n        \"user\": 1.06800311\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n        \"max\": 1.09916954108,\n        \"mean\": 1.08017338808,\n        \"median\": 1.07647561708,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.06470650108,\n        \"stddev\": 0.013341808778916853,\n        \"system\": 0.06393149499999999,\n        \"time\": 1.09916954108,\n        \"user\": 1.0725351\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n        \"max\": 1.09916954108,\n        \"mean\": 1.08017338808,\n        \"median\": 1.07647561708,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.06470650108,\n        \"stddev\": 0.013341808778916853,\n        \"system\": 0.06393149499999999,\n        \"time\": 1.07647561708,\n        \"user\": 1.0725351\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n        \"max\": 1.09916954108,\n        \"mean\": 1.08017338808,\n        \"median\": 1.07647561708,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.06470650108,\n        \"stddev\": 0.013341808778916853,\n        \"system\": 0.06393149499999999,\n        \"time\": 1.07324874208,\n        \"user\": 1.0725351\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n        \"max\": 1.09916954108,\n        \"mean\": 1.08017338808,\n        \"median\": 1.07647561708,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.06470650108,\n        \"stddev\": 0.013341808778916853,\n        \"system\": 0.06393149499999999,\n        \"time\": 1.06470650108,\n        \"user\": 1.0725351\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a782894a76e9087b4bd3d1be1ff82ff9b84f42d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563300253-a782894a76e9087b4bd3d1be1ff82ff9b84f42d3\",\n        \"max\": 1.09916954108,\n        \"mean\": 1.08017338808,\n        \"median\": 1.07647561708,\n        \"message\": \"Homebrew formula\\n\",\n        \"min\": 1.06470650108,\n        \"stddev\": 0.013341808778916853,\n        \"system\": 0.06393149499999999,\n        \"time\": 1.08726653908,\n        \"user\": 1.0725351\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n        \"max\": 1.09877415047,\n        \"mean\": 1.07773162687,\n        \"median\": 1.0725731464700001,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.06313441347,\n        \"stddev\": 0.01428241756037797,\n        \"system\": 0.064404905,\n        \"time\": 1.09877415047,\n        \"user\": 1.0708762200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n        \"max\": 1.09877415047,\n        \"mean\": 1.07773162687,\n        \"median\": 1.0725731464700001,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.06313441347,\n        \"stddev\": 0.01428241756037797,\n        \"system\": 0.064404905,\n        \"time\": 1.08523208947,\n        \"user\": 1.0708762200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n        \"max\": 1.09877415047,\n        \"mean\": 1.07773162687,\n        \"median\": 1.0725731464700001,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.06313441347,\n        \"stddev\": 0.01428241756037797,\n        \"system\": 0.064404905,\n        \"time\": 1.06894433447,\n        \"user\": 1.0708762200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n        \"max\": 1.09877415047,\n        \"mean\": 1.07773162687,\n        \"median\": 1.0725731464700001,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.06313441347,\n        \"stddev\": 0.01428241756037797,\n        \"system\": 0.064404905,\n        \"time\": 1.06313441347,\n        \"user\": 1.0708762200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/23c292d3f25c67082a2ba315a187268be1a9b0ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563301115-23c292d3f25c67082a2ba315a187268be1a9b0ab\",\n        \"max\": 1.09877415047,\n        \"mean\": 1.07773162687,\n        \"median\": 1.0725731464700001,\n        \"message\": \"Tweak light theme colors\\n\",\n        \"min\": 1.06313441347,\n        \"stddev\": 0.01428241756037797,\n        \"system\": 0.064404905,\n        \"time\": 1.0725731464700001,\n        \"user\": 1.0708762200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n        \"max\": 1.109912615285,\n        \"mean\": 1.074154863485,\n        \"median\": 1.066122086285,\n        \"message\": \"Benchmark with hyperfine on commit history\\n\",\n        \"min\": 1.0619502592849999,\n        \"stddev\": 0.02011999179233402,\n        \"system\": 0.06254422,\n        \"time\": 1.109912615285,\n        \"user\": 1.0666907449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n        \"max\": 1.109912615285,\n        \"mean\": 1.074154863485,\n        \"median\": 1.066122086285,\n        \"message\": \"Benchmark with hyperfine on commit history\\n\",\n        \"min\": 1.0619502592849999,\n        \"stddev\": 0.02011999179233402,\n        \"system\": 0.06254422,\n        \"time\": 1.066122086285,\n        \"user\": 1.0666907449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n        \"max\": 1.109912615285,\n        \"mean\": 1.074154863485,\n        \"median\": 1.066122086285,\n        \"message\": \"Benchmark with hyperfine on commit history\\n\",\n        \"min\": 1.0619502592849999,\n        \"stddev\": 0.02011999179233402,\n        \"system\": 0.06254422,\n        \"time\": 1.068227796285,\n        \"user\": 1.0666907449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n        \"max\": 1.109912615285,\n        \"mean\": 1.074154863485,\n        \"median\": 1.066122086285,\n        \"message\": \"Benchmark with hyperfine on commit history\\n\",\n        \"min\": 1.0619502592849999,\n        \"stddev\": 0.02011999179233402,\n        \"system\": 0.06254422,\n        \"time\": 1.0619502592849999,\n        \"user\": 1.0666907449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563340647-6b033a3b0a7fa859354ff2c21e1fb4e5fe4a1cc2\",\n        \"max\": 1.109912615285,\n        \"mean\": 1.074154863485,\n        \"median\": 1.066122086285,\n        \"message\": \"Benchmark with hyperfine on commit history\\n\",\n        \"min\": 1.0619502592849999,\n        \"stddev\": 0.02011999179233402,\n        \"system\": 0.06254422,\n        \"time\": 1.064561560285,\n        \"user\": 1.0666907449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n        \"max\": 1.1007091676549998,\n        \"mean\": 1.082660120255,\n        \"median\": 1.075950055655,\n        \"message\": \"Performance visualization\\n\",\n        \"min\": 1.0711022476549998,\n        \"stddev\": 0.012598112027880035,\n        \"system\": 0.06481456000000001,\n        \"time\": 1.1007091676549998,\n        \"user\": 1.0732819550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n        \"max\": 1.1007091676549998,\n        \"mean\": 1.082660120255,\n        \"median\": 1.075950055655,\n        \"message\": \"Performance visualization\\n\",\n        \"min\": 1.0711022476549998,\n        \"stddev\": 0.012598112027880035,\n        \"system\": 0.06481456000000001,\n        \"time\": 1.074693419655,\n        \"user\": 1.0732819550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n        \"max\": 1.1007091676549998,\n        \"mean\": 1.082660120255,\n        \"median\": 1.075950055655,\n        \"message\": \"Performance visualization\\n\",\n        \"min\": 1.0711022476549998,\n        \"stddev\": 0.012598112027880035,\n        \"system\": 0.06481456000000001,\n        \"time\": 1.090845710655,\n        \"user\": 1.0732819550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n        \"max\": 1.1007091676549998,\n        \"mean\": 1.082660120255,\n        \"median\": 1.075950055655,\n        \"message\": \"Performance visualization\\n\",\n        \"min\": 1.0711022476549998,\n        \"stddev\": 0.012598112027880035,\n        \"system\": 0.06481456000000001,\n        \"time\": 1.0711022476549998,\n        \"user\": 1.0732819550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2560cdaa5adf2cb6e9fb60846368d162994781e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563382875-2560cdaa5adf2cb6e9fb60846368d162994781e8\",\n        \"max\": 1.1007091676549998,\n        \"mean\": 1.082660120255,\n        \"median\": 1.075950055655,\n        \"message\": \"Performance visualization\\n\",\n        \"min\": 1.0711022476549998,\n        \"stddev\": 0.012598112027880035,\n        \"system\": 0.06481456000000001,\n        \"time\": 1.075950055655,\n        \"user\": 1.0732819550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n        \"max\": 1.117400954765,\n        \"mean\": 1.0813890335649998,\n        \"median\": 1.076063764765,\n        \"message\": \"Autoformat\\n\",\n        \"min\": 1.062016210765,\n        \"stddev\": 0.021170696602128575,\n        \"system\": 0.06393680499999999,\n        \"time\": 1.079491705765,\n        \"user\": 1.078158835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n        \"max\": 1.117400954765,\n        \"mean\": 1.0813890335649998,\n        \"median\": 1.076063764765,\n        \"message\": \"Autoformat\\n\",\n        \"min\": 1.062016210765,\n        \"stddev\": 0.021170696602128575,\n        \"system\": 0.06393680499999999,\n        \"time\": 1.117400954765,\n        \"user\": 1.078158835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n        \"max\": 1.117400954765,\n        \"mean\": 1.0813890335649998,\n        \"median\": 1.076063764765,\n        \"message\": \"Autoformat\\n\",\n        \"min\": 1.062016210765,\n        \"stddev\": 0.021170696602128575,\n        \"system\": 0.06393680499999999,\n        \"time\": 1.062016210765,\n        \"user\": 1.078158835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n        \"max\": 1.117400954765,\n        \"mean\": 1.0813890335649998,\n        \"median\": 1.076063764765,\n        \"message\": \"Autoformat\\n\",\n        \"min\": 1.062016210765,\n        \"stddev\": 0.021170696602128575,\n        \"system\": 0.06393680499999999,\n        \"time\": 1.071972531765,\n        \"user\": 1.078158835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/58cddd1861c674a700f0003dcfff1d4896402654 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563384745-58cddd1861c674a700f0003dcfff1d4896402654\",\n        \"max\": 1.117400954765,\n        \"mean\": 1.0813890335649998,\n        \"median\": 1.076063764765,\n        \"message\": \"Autoformat\\n\",\n        \"min\": 1.062016210765,\n        \"stddev\": 0.021170696602128575,\n        \"system\": 0.06393680499999999,\n        \"time\": 1.076063764765,\n        \"user\": 1.078158835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n        \"max\": 1.09631725822,\n        \"mean\": 1.07385226482,\n        \"median\": 1.07291830422,\n        \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n        \"min\": 1.0608364642199999,\n        \"stddev\": 0.014692202453753538,\n        \"system\": 0.062959365,\n        \"time\": 1.09631725822,\n        \"user\": 1.0676213449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n        \"max\": 1.09631725822,\n        \"mean\": 1.07385226482,\n        \"median\": 1.07291830422,\n        \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n        \"min\": 1.0608364642199999,\n        \"stddev\": 0.014692202453753538,\n        \"system\": 0.062959365,\n        \"time\": 1.0783190222199999,\n        \"user\": 1.0676213449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n        \"max\": 1.09631725822,\n        \"mean\": 1.07385226482,\n        \"median\": 1.07291830422,\n        \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n        \"min\": 1.0608364642199999,\n        \"stddev\": 0.014692202453753538,\n        \"system\": 0.062959365,\n        \"time\": 1.0608702752199999,\n        \"user\": 1.0676213449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n        \"max\": 1.09631725822,\n        \"mean\": 1.07385226482,\n        \"median\": 1.07291830422,\n        \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n        \"min\": 1.0608364642199999,\n        \"stddev\": 0.014692202453753538,\n        \"system\": 0.062959365,\n        \"time\": 1.0608364642199999,\n        \"user\": 1.0676213449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/76acca6bfb5ddb40f910699ed886bdeacd653ba7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563385914-76acca6bfb5ddb40f910699ed886bdeacd653ba7\",\n        \"max\": 1.09631725822,\n        \"mean\": 1.07385226482,\n        \"median\": 1.07291830422,\n        \"message\": \"Skip benchmark runs that resulted in errors\\n\",\n        \"min\": 1.0608364642199999,\n        \"stddev\": 0.014692202453753538,\n        \"system\": 0.062959365,\n        \"time\": 1.07291830422,\n        \"user\": 1.0676213449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n        \"max\": 1.110756572645,\n        \"mean\": 1.0885123484449999,\n        \"median\": 1.082510753645,\n        \"message\": \"Handle file rename\\n\",\n        \"min\": 1.073029007645,\n        \"stddev\": 0.016251767133967754,\n        \"system\": 0.06298592,\n        \"time\": 1.110756572645,\n        \"user\": 1.0822236349999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n        \"max\": 1.110756572645,\n        \"mean\": 1.0885123484449999,\n        \"median\": 1.082510753645,\n        \"message\": \"Handle file rename\\n\",\n        \"min\": 1.073029007645,\n        \"stddev\": 0.016251767133967754,\n        \"system\": 0.06298592,\n        \"time\": 1.100083289645,\n        \"user\": 1.0822236349999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n        \"max\": 1.110756572645,\n        \"mean\": 1.0885123484449999,\n        \"median\": 1.082510753645,\n        \"message\": \"Handle file rename\\n\",\n        \"min\": 1.073029007645,\n        \"stddev\": 0.016251767133967754,\n        \"system\": 0.06298592,\n        \"time\": 1.073029007645,\n        \"user\": 1.0822236349999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n        \"max\": 1.110756572645,\n        \"mean\": 1.0885123484449999,\n        \"median\": 1.082510753645,\n        \"message\": \"Handle file rename\\n\",\n        \"min\": 1.073029007645,\n        \"stddev\": 0.016251767133967754,\n        \"system\": 0.06298592,\n        \"time\": 1.082510753645,\n        \"user\": 1.0822236349999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d948cb85af8ba94062ee26ae57352de01f7b4f79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563412919-d948cb85af8ba94062ee26ae57352de01f7b4f79\",\n        \"max\": 1.110756572645,\n        \"mean\": 1.0885123484449999,\n        \"median\": 1.082510753645,\n        \"message\": \"Handle file rename\\n\",\n        \"min\": 1.073029007645,\n        \"stddev\": 0.016251767133967754,\n        \"system\": 0.06298592,\n        \"time\": 1.076182118645,\n        \"user\": 1.0822236349999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n        \"max\": 1.093522700505,\n        \"mean\": 1.083194209705,\n        \"median\": 1.088079370505,\n        \"message\": \"Strengthen line identification patterns\\n\",\n        \"min\": 1.070747172505,\n        \"stddev\": 0.010482303429576819,\n        \"system\": 0.0633567,\n        \"time\": 1.088079370505,\n        \"user\": 1.0791472299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n        \"max\": 1.093522700505,\n        \"mean\": 1.083194209705,\n        \"median\": 1.088079370505,\n        \"message\": \"Strengthen line identification patterns\\n\",\n        \"min\": 1.070747172505,\n        \"stddev\": 0.010482303429576819,\n        \"system\": 0.0633567,\n        \"time\": 1.073144403505,\n        \"user\": 1.0791472299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n        \"max\": 1.093522700505,\n        \"mean\": 1.083194209705,\n        \"median\": 1.088079370505,\n        \"message\": \"Strengthen line identification patterns\\n\",\n        \"min\": 1.070747172505,\n        \"stddev\": 0.010482303429576819,\n        \"system\": 0.0633567,\n        \"time\": 1.093522700505,\n        \"user\": 1.0791472299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n        \"max\": 1.093522700505,\n        \"mean\": 1.083194209705,\n        \"median\": 1.088079370505,\n        \"message\": \"Strengthen line identification patterns\\n\",\n        \"min\": 1.070747172505,\n        \"stddev\": 0.010482303429576819,\n        \"system\": 0.0633567,\n        \"time\": 1.090477401505,\n        \"user\": 1.0791472299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9338d7fb465a6e009d405bb2653ea3a533d0ad3a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413014-9338d7fb465a6e009d405bb2653ea3a533d0ad3a\",\n        \"max\": 1.093522700505,\n        \"mean\": 1.083194209705,\n        \"median\": 1.088079370505,\n        \"message\": \"Strengthen line identification patterns\\n\",\n        \"min\": 1.070747172505,\n        \"stddev\": 0.010482303429576819,\n        \"system\": 0.0633567,\n        \"time\": 1.070747172505,\n        \"user\": 1.0791472299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n        \"max\": 1.1108776942299998,\n        \"mean\": 1.0830885908299999,\n        \"median\": 1.0779436942299998,\n        \"message\": \"Report errors to stderr\\n\",\n        \"min\": 1.07241320223,\n        \"stddev\": 0.015749203286866832,\n        \"system\": 0.06378463499999999,\n        \"time\": 1.1108776942299998,\n        \"user\": 1.07734624\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n        \"max\": 1.1108776942299998,\n        \"mean\": 1.0830885908299999,\n        \"median\": 1.0779436942299998,\n        \"message\": \"Report errors to stderr\\n\",\n        \"min\": 1.07241320223,\n        \"stddev\": 0.015749203286866832,\n        \"system\": 0.06378463499999999,\n        \"time\": 1.07241320223,\n        \"user\": 1.07734624\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n        \"max\": 1.1108776942299998,\n        \"mean\": 1.0830885908299999,\n        \"median\": 1.0779436942299998,\n        \"message\": \"Report errors to stderr\\n\",\n        \"min\": 1.07241320223,\n        \"stddev\": 0.015749203286866832,\n        \"system\": 0.06378463499999999,\n        \"time\": 1.07908599423,\n        \"user\": 1.07734624\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n        \"max\": 1.1108776942299998,\n        \"mean\": 1.0830885908299999,\n        \"median\": 1.0779436942299998,\n        \"message\": \"Report errors to stderr\\n\",\n        \"min\": 1.07241320223,\n        \"stddev\": 0.015749203286866832,\n        \"system\": 0.06378463499999999,\n        \"time\": 1.0751223692299998,\n        \"user\": 1.07734624\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6cef9a800e653b3ac079929b848f96b41203d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563413378-b6cef9a800e653b3ac079929b848f96b41203d3e\",\n        \"max\": 1.1108776942299998,\n        \"mean\": 1.0830885908299999,\n        \"median\": 1.0779436942299998,\n        \"message\": \"Report errors to stderr\\n\",\n        \"min\": 1.07241320223,\n        \"stddev\": 0.015749203286866832,\n        \"system\": 0.06378463499999999,\n        \"time\": 1.0779436942299998,\n        \"user\": 1.07734624\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n        \"max\": 1.1116774272549999,\n        \"mean\": 1.077661140455,\n        \"median\": 1.070855366255,\n        \"message\": \"Make edit inference less naive\\n\",\n        \"min\": 1.066454257255,\n        \"stddev\": 0.019181194093541916,\n        \"system\": 0.06298325,\n        \"time\": 1.1116774272549999,\n        \"user\": 1.0716764549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n        \"max\": 1.1116774272549999,\n        \"mean\": 1.077661140455,\n        \"median\": 1.070855366255,\n        \"message\": \"Make edit inference less naive\\n\",\n        \"min\": 1.066454257255,\n        \"stddev\": 0.019181194093541916,\n        \"system\": 0.06298325,\n        \"time\": 1.070855366255,\n        \"user\": 1.0716764549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n        \"max\": 1.1116774272549999,\n        \"mean\": 1.077661140455,\n        \"median\": 1.070855366255,\n        \"message\": \"Make edit inference less naive\\n\",\n        \"min\": 1.066454257255,\n        \"stddev\": 0.019181194093541916,\n        \"system\": 0.06298325,\n        \"time\": 1.072360639255,\n        \"user\": 1.0716764549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n        \"max\": 1.1116774272549999,\n        \"mean\": 1.077661140455,\n        \"median\": 1.070855366255,\n        \"message\": \"Make edit inference less naive\\n\",\n        \"min\": 1.066454257255,\n        \"stddev\": 0.019181194093541916,\n        \"system\": 0.06298325,\n        \"time\": 1.066454257255,\n        \"user\": 1.0716764549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6705228e661250cb3a229954c750a95ce1ffa982 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563415793-6705228e661250cb3a229954c750a95ce1ffa982\",\n        \"max\": 1.1116774272549999,\n        \"mean\": 1.077661140455,\n        \"median\": 1.070855366255,\n        \"message\": \"Make edit inference less naive\\n\",\n        \"min\": 1.066454257255,\n        \"stddev\": 0.019181194093541916,\n        \"system\": 0.06298325,\n        \"time\": 1.066958012255,\n        \"user\": 1.0716764549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n        \"max\": 1.095995535285,\n        \"mean\": 1.0759539836849998,\n        \"median\": 1.074898612285,\n        \"message\": \"Create default input for --compare-themes\\n\",\n        \"min\": 1.0642303762849998,\n        \"stddev\": 0.013144232848839803,\n        \"system\": 0.06241819999999999,\n        \"time\": 1.095995535285,\n        \"user\": 1.0706238649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n        \"max\": 1.095995535285,\n        \"mean\": 1.0759539836849998,\n        \"median\": 1.074898612285,\n        \"message\": \"Create default input for --compare-themes\\n\",\n        \"min\": 1.0642303762849998,\n        \"stddev\": 0.013144232848839803,\n        \"system\": 0.06241819999999999,\n        \"time\": 1.0802122592849999,\n        \"user\": 1.0706238649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n        \"max\": 1.095995535285,\n        \"mean\": 1.0759539836849998,\n        \"median\": 1.074898612285,\n        \"message\": \"Create default input for --compare-themes\\n\",\n        \"min\": 1.0642303762849998,\n        \"stddev\": 0.013144232848839803,\n        \"system\": 0.06241819999999999,\n        \"time\": 1.0644331352849998,\n        \"user\": 1.0706238649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n        \"max\": 1.095995535285,\n        \"mean\": 1.0759539836849998,\n        \"median\": 1.074898612285,\n        \"message\": \"Create default input for --compare-themes\\n\",\n        \"min\": 1.0642303762849998,\n        \"stddev\": 0.013144232848839803,\n        \"system\": 0.06241819999999999,\n        \"time\": 1.074898612285,\n        \"user\": 1.0706238649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9af9c85d5c2633023bb98253f5b8bb36a8f041b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563418334-e9af9c85d5c2633023bb98253f5b8bb36a8f041b\",\n        \"max\": 1.095995535285,\n        \"mean\": 1.0759539836849998,\n        \"median\": 1.074898612285,\n        \"message\": \"Create default input for --compare-themes\\n\",\n        \"min\": 1.0642303762849998,\n        \"stddev\": 0.013144232848839803,\n        \"system\": 0.06241819999999999,\n        \"time\": 1.0642303762849998,\n        \"user\": 1.0706238649999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n        \"max\": 1.10725439525,\n        \"mean\": 1.08398421945,\n        \"median\": 1.07633004025,\n        \"message\": \"Clean up: move tests, change variable name\\n\",\n        \"min\": 1.07060258025,\n        \"stddev\": 0.014804224326356695,\n        \"system\": 0.06430716,\n        \"time\": 1.08975936425,\n        \"user\": 1.078722695\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n        \"max\": 1.10725439525,\n        \"mean\": 1.08398421945,\n        \"median\": 1.07633004025,\n        \"message\": \"Clean up: move tests, change variable name\\n\",\n        \"min\": 1.07060258025,\n        \"stddev\": 0.014804224326356695,\n        \"system\": 0.06430716,\n        \"time\": 1.07060258025,\n        \"user\": 1.078722695\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n        \"max\": 1.10725439525,\n        \"mean\": 1.08398421945,\n        \"median\": 1.07633004025,\n        \"message\": \"Clean up: move tests, change variable name\\n\",\n        \"min\": 1.07060258025,\n        \"stddev\": 0.014804224326356695,\n        \"system\": 0.06430716,\n        \"time\": 1.10725439525,\n        \"user\": 1.078722695\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n        \"max\": 1.10725439525,\n        \"mean\": 1.08398421945,\n        \"median\": 1.07633004025,\n        \"message\": \"Clean up: move tests, change variable name\\n\",\n        \"min\": 1.07060258025,\n        \"stddev\": 0.014804224326356695,\n        \"system\": 0.06430716,\n        \"time\": 1.07597471725,\n        \"user\": 1.078722695\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/62fb930313675f83a010b8a20a4f48cf7a05615b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423165-62fb930313675f83a010b8a20a4f48cf7a05615b\",\n        \"max\": 1.10725439525,\n        \"mean\": 1.08398421945,\n        \"median\": 1.07633004025,\n        \"message\": \"Clean up: move tests, change variable name\\n\",\n        \"min\": 1.07060258025,\n        \"stddev\": 0.014804224326356695,\n        \"system\": 0.06430716,\n        \"time\": 1.07633004025,\n        \"user\": 1.078722695\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n        \"max\": 1.1023968535,\n        \"mean\": 1.0812573107,\n        \"median\": 1.0737857925,\n        \"message\": \"Add option to show command-line arguments for current colors\\n\",\n        \"min\": 1.0716365934999998,\n        \"stddev\": 0.013090176623755008,\n        \"system\": 0.062889565,\n        \"time\": 1.1023968535,\n        \"user\": 1.078467575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n        \"max\": 1.1023968535,\n        \"mean\": 1.0812573107,\n        \"median\": 1.0737857925,\n        \"message\": \"Add option to show command-line arguments for current colors\\n\",\n        \"min\": 1.0716365934999998,\n        \"stddev\": 0.013090176623755008,\n        \"system\": 0.062889565,\n        \"time\": 1.0737857925,\n        \"user\": 1.078467575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n        \"max\": 1.1023968535,\n        \"mean\": 1.0812573107,\n        \"median\": 1.0737857925,\n        \"message\": \"Add option to show command-line arguments for current colors\\n\",\n        \"min\": 1.0716365934999998,\n        \"stddev\": 0.013090176623755008,\n        \"system\": 0.062889565,\n        \"time\": 1.0728321535,\n        \"user\": 1.078467575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n        \"max\": 1.1023968535,\n        \"mean\": 1.0812573107,\n        \"median\": 1.0737857925,\n        \"message\": \"Add option to show command-line arguments for current colors\\n\",\n        \"min\": 1.0716365934999998,\n        \"stddev\": 0.013090176623755008,\n        \"system\": 0.062889565,\n        \"time\": 1.0856351604999999,\n        \"user\": 1.078467575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/36dda02d8b37e424134eb6b6685f8566c8213ca3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-36dda02d8b37e424134eb6b6685f8566c8213ca3\",\n        \"max\": 1.1023968535,\n        \"mean\": 1.0812573107,\n        \"median\": 1.0737857925,\n        \"message\": \"Add option to show command-line arguments for current colors\\n\",\n        \"min\": 1.0716365934999998,\n        \"stddev\": 0.013090176623755008,\n        \"system\": 0.062889565,\n        \"time\": 1.0716365934999998,\n        \"user\": 1.078467575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n        \"max\": 1.11373945896,\n        \"mean\": 1.08275212056,\n        \"median\": 1.0767067859600001,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.0651972929600002,\n        \"stddev\": 0.018335031136651046,\n        \"system\": 0.06329720999999999,\n        \"time\": 1.11373945896,\n        \"user\": 1.0766583349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n        \"max\": 1.11373945896,\n        \"mean\": 1.08275212056,\n        \"median\": 1.0767067859600001,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.0651972929600002,\n        \"stddev\": 0.018335031136651046,\n        \"system\": 0.06329720999999999,\n        \"time\": 1.07656102396,\n        \"user\": 1.0766583349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n        \"max\": 1.11373945896,\n        \"mean\": 1.08275212056,\n        \"median\": 1.0767067859600001,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.0651972929600002,\n        \"stddev\": 0.018335031136651046,\n        \"system\": 0.06329720999999999,\n        \"time\": 1.0651972929600002,\n        \"user\": 1.0766583349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n        \"max\": 1.11373945896,\n        \"mean\": 1.08275212056,\n        \"median\": 1.0767067859600001,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.0651972929600002,\n        \"stddev\": 0.018335031136651046,\n        \"system\": 0.06329720999999999,\n        \"time\": 1.08155604096,\n        \"user\": 1.0766583349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423318-a7bcde3ab536d312e4d8dedd7cdbde3e2e9418ec\",\n        \"max\": 1.11373945896,\n        \"mean\": 1.08275212056,\n        \"median\": 1.0767067859600001,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.0651972929600002,\n        \"stddev\": 0.018335031136651046,\n        \"system\": 0.06329720999999999,\n        \"time\": 1.0767067859600001,\n        \"user\": 1.0766583349999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n        \"max\": 1.10069088898,\n        \"mean\": 1.08166129398,\n        \"median\": 1.0773728329799999,\n        \"message\": \"Bump version, update README and description\\n\",\n        \"min\": 1.06813176498,\n        \"stddev\": 0.012167556292832818,\n        \"system\": 0.06270011,\n        \"time\": 1.10069088898,\n        \"user\": 1.079084765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n        \"max\": 1.10069088898,\n        \"mean\": 1.08166129398,\n        \"median\": 1.0773728329799999,\n        \"message\": \"Bump version, update README and description\\n\",\n        \"min\": 1.06813176498,\n        \"stddev\": 0.012167556292832818,\n        \"system\": 0.06270011,\n        \"time\": 1.06813176498,\n        \"user\": 1.079084765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n        \"max\": 1.10069088898,\n        \"mean\": 1.08166129398,\n        \"median\": 1.0773728329799999,\n        \"message\": \"Bump version, update README and description\\n\",\n        \"min\": 1.06813176498,\n        \"stddev\": 0.012167556292832818,\n        \"system\": 0.06270011,\n        \"time\": 1.08479040598,\n        \"user\": 1.079084765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n        \"max\": 1.10069088898,\n        \"mean\": 1.08166129398,\n        \"median\": 1.0773728329799999,\n        \"message\": \"Bump version, update README and description\\n\",\n        \"min\": 1.06813176498,\n        \"stddev\": 0.012167556292832818,\n        \"system\": 0.06270011,\n        \"time\": 1.0773728329799999,\n        \"user\": 1.079084765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563423956-a3f5e2e6428320c3cd49523c58ddcf9bb3862c5c\",\n        \"max\": 1.10069088898,\n        \"mean\": 1.08166129398,\n        \"median\": 1.0773728329799999,\n        \"message\": \"Bump version, update README and description\\n\",\n        \"min\": 1.06813176498,\n        \"stddev\": 0.012167556292832818,\n        \"system\": 0.06270011,\n        \"time\": 1.07732057698,\n        \"user\": 1.079084765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n        \"max\": 1.0851685646,\n        \"mean\": 1.072042316,\n        \"median\": 1.0704223606,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0612180136,\n        \"stddev\": 0.008648323491726454,\n        \"system\": 0.06146746999999999,\n        \"time\": 1.0704223606,\n        \"user\": 1.06982675\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n        \"max\": 1.0851685646,\n        \"mean\": 1.072042316,\n        \"median\": 1.0704223606,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0612180136,\n        \"stddev\": 0.008648323491726454,\n        \"system\": 0.06146746999999999,\n        \"time\": 1.0851685646,\n        \"user\": 1.06982675\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n        \"max\": 1.0851685646,\n        \"mean\": 1.072042316,\n        \"median\": 1.0704223606,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0612180136,\n        \"stddev\": 0.008648323491726454,\n        \"system\": 0.06146746999999999,\n        \"time\": 1.0612180136,\n        \"user\": 1.06982675\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n        \"max\": 1.0851685646,\n        \"mean\": 1.072042316,\n        \"median\": 1.0704223606,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0612180136,\n        \"stddev\": 0.008648323491726454,\n        \"system\": 0.06146746999999999,\n        \"time\": 1.0698502046,\n        \"user\": 1.06982675\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a787d3c674b1089e6043a0ba850fa0bfc54e54d5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563426028-a787d3c674b1089e6043a0ba850fa0bfc54e54d5\",\n        \"max\": 1.0851685646,\n        \"mean\": 1.072042316,\n        \"median\": 1.0704223606,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0612180136,\n        \"stddev\": 0.008648323491726454,\n        \"system\": 0.06146746999999999,\n        \"time\": 1.0735524366,\n        \"user\": 1.06982675\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n        \"max\": 1.11704483571,\n        \"mean\": 1.1037527545099999,\n        \"median\": 1.10764246671,\n        \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n        \"min\": 1.08925718271,\n        \"stddev\": 0.012933162985497118,\n        \"system\": 0.067323355,\n        \"time\": 1.1138884947099998,\n        \"user\": 1.092800425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n        \"max\": 1.11704483571,\n        \"mean\": 1.1037527545099999,\n        \"median\": 1.10764246671,\n        \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n        \"min\": 1.08925718271,\n        \"stddev\": 0.012933162985497118,\n        \"system\": 0.067323355,\n        \"time\": 1.08925718271,\n        \"user\": 1.092800425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n        \"max\": 1.11704483571,\n        \"mean\": 1.1037527545099999,\n        \"median\": 1.10764246671,\n        \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n        \"min\": 1.08925718271,\n        \"stddev\": 0.012933162985497118,\n        \"system\": 0.067323355,\n        \"time\": 1.09093079271,\n        \"user\": 1.092800425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n        \"max\": 1.11704483571,\n        \"mean\": 1.1037527545099999,\n        \"median\": 1.10764246671,\n        \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n        \"min\": 1.08925718271,\n        \"stddev\": 0.012933162985497118,\n        \"system\": 0.067323355,\n        \"time\": 1.10764246671,\n        \"user\": 1.092800425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1374863f71d00371c45fa6a3cef39fbbbeab7fcf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-1374863f71d00371c45fa6a3cef39fbbbeab7fcf\",\n        \"max\": 1.11704483571,\n        \"mean\": 1.1037527545099999,\n        \"median\": 1.10764246671,\n        \"message\": \"Failing test: edit inference: non-ascii\\n\\nThis panics with a byte index not at a char boundary.\\n\",\n        \"min\": 1.08925718271,\n        \"stddev\": 0.012933162985497118,\n        \"system\": 0.067323355,\n        \"time\": 1.11704483571,\n        \"user\": 1.092800425\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n        \"max\": 1.11273560411,\n        \"mean\": 1.08349492691,\n        \"median\": 1.0752919171100002,\n        \"message\": \"Move performance scripts into separate repo\\n\",\n        \"min\": 1.06674251411,\n        \"stddev\": 0.01986286092720665,\n        \"system\": 0.06425001,\n        \"time\": 1.11273560411,\n        \"user\": 1.0770233299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n        \"max\": 1.11273560411,\n        \"mean\": 1.08349492691,\n        \"median\": 1.0752919171100002,\n        \"message\": \"Move performance scripts into separate repo\\n\",\n        \"min\": 1.06674251411,\n        \"stddev\": 0.01986286092720665,\n        \"system\": 0.06425001,\n        \"time\": 1.06674251411,\n        \"user\": 1.0770233299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n        \"max\": 1.11273560411,\n        \"mean\": 1.08349492691,\n        \"median\": 1.0752919171100002,\n        \"message\": \"Move performance scripts into separate repo\\n\",\n        \"min\": 1.06674251411,\n        \"stddev\": 0.01986286092720665,\n        \"system\": 0.06425001,\n        \"time\": 1.09488007411,\n        \"user\": 1.0770233299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n        \"max\": 1.11273560411,\n        \"mean\": 1.08349492691,\n        \"median\": 1.0752919171100002,\n        \"message\": \"Move performance scripts into separate repo\\n\",\n        \"min\": 1.06674251411,\n        \"stddev\": 0.01986286092720665,\n        \"system\": 0.06425001,\n        \"time\": 1.06782452511,\n        \"user\": 1.0770233299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/49f9932f98839ef5341360e94469a2795bb1d620 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-49f9932f98839ef5341360e94469a2795bb1d620\",\n        \"max\": 1.11273560411,\n        \"mean\": 1.08349492691,\n        \"median\": 1.0752919171100002,\n        \"message\": \"Move performance scripts into separate repo\\n\",\n        \"min\": 1.06674251411,\n        \"stddev\": 0.01986286092720665,\n        \"system\": 0.06425001,\n        \"time\": 1.0752919171100002,\n        \"user\": 1.0770233299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n        \"max\": 1.10363167954,\n        \"mean\": 1.0875293841400002,\n        \"median\": 1.08299171054,\n        \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n        \"min\": 1.07906856854,\n        \"stddev\": 0.009733497467147854,\n        \"system\": 0.06568434,\n        \"time\": 1.10363167954,\n        \"user\": 1.08160716\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n        \"max\": 1.10363167954,\n        \"mean\": 1.0875293841400002,\n        \"median\": 1.08299171054,\n        \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n        \"min\": 1.07906856854,\n        \"stddev\": 0.009733497467147854,\n        \"system\": 0.06568434,\n        \"time\": 1.08260944854,\n        \"user\": 1.08160716\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n        \"max\": 1.10363167954,\n        \"mean\": 1.0875293841400002,\n        \"median\": 1.08299171054,\n        \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n        \"min\": 1.07906856854,\n        \"stddev\": 0.009733497467147854,\n        \"system\": 0.06568434,\n        \"time\": 1.08299171054,\n        \"user\": 1.08160716\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n        \"max\": 1.10363167954,\n        \"mean\": 1.0875293841400002,\n        \"median\": 1.08299171054,\n        \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n        \"min\": 1.07906856854,\n        \"stddev\": 0.009733497467147854,\n        \"system\": 0.06568434,\n        \"time\": 1.08934551354,\n        \"user\": 1.08160716\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6563c30a5721197af17ebd2a75fcc2b50f42b9b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-6563c30a5721197af17ebd2a75fcc2b50f42b9b2\",\n        \"max\": 1.10363167954,\n        \"mean\": 1.0875293841400002,\n        \"median\": 1.08299171054,\n        \"message\": \"Parameterize Edits::appears_genuine method\\n\",\n        \"min\": 1.07906856854,\n        \"stddev\": 0.009733497467147854,\n        \"system\": 0.06568434,\n        \"time\": 1.07906856854,\n        \"user\": 1.08160716\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n        \"max\": 1.0806258601449998,\n        \"mean\": 1.059061847945,\n        \"median\": 1.052762883145,\n        \"message\": \"Add more non-ascii tests\\n\",\n        \"min\": 1.051219583145,\n        \"stddev\": 0.01247511239320049,\n        \"system\": 0.06025773999999999,\n        \"time\": 1.0806258601449998,\n        \"user\": 1.0536065749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n        \"max\": 1.0806258601449998,\n        \"mean\": 1.059061847945,\n        \"median\": 1.052762883145,\n        \"message\": \"Add more non-ascii tests\\n\",\n        \"min\": 1.051219583145,\n        \"stddev\": 0.01247511239320049,\n        \"system\": 0.06025773999999999,\n        \"time\": 1.051219583145,\n        \"user\": 1.0536065749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n        \"max\": 1.0806258601449998,\n        \"mean\": 1.059061847945,\n        \"median\": 1.052762883145,\n        \"message\": \"Add more non-ascii tests\\n\",\n        \"min\": 1.051219583145,\n        \"stddev\": 0.01247511239320049,\n        \"system\": 0.06025773999999999,\n        \"time\": 1.051557030145,\n        \"user\": 1.0536065749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n        \"max\": 1.0806258601449998,\n        \"mean\": 1.059061847945,\n        \"median\": 1.052762883145,\n        \"message\": \"Add more non-ascii tests\\n\",\n        \"min\": 1.051219583145,\n        \"stddev\": 0.01247511239320049,\n        \"system\": 0.06025773999999999,\n        \"time\": 1.059143883145,\n        \"user\": 1.0536065749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94848668f06c9e2c9802e87e2d9bd472914ade98 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-94848668f06c9e2c9802e87e2d9bd472914ade98\",\n        \"max\": 1.0806258601449998,\n        \"mean\": 1.059061847945,\n        \"median\": 1.052762883145,\n        \"message\": \"Add more non-ascii tests\\n\",\n        \"min\": 1.051219583145,\n        \"stddev\": 0.01247511239320049,\n        \"system\": 0.06025773999999999,\n        \"time\": 1.052762883145,\n        \"user\": 1.0536065749999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n        \"max\": 1.19689657773,\n        \"mean\": 1.10859444233,\n        \"median\": 1.10013292073,\n        \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n        \"min\": 1.0503798197299998,\n        \"stddev\": 0.05376828824283034,\n        \"system\": 0.07005658000000001,\n        \"time\": 1.0917620287299998,\n        \"user\": 1.090668235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n        \"max\": 1.19689657773,\n        \"mean\": 1.10859444233,\n        \"median\": 1.10013292073,\n        \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n        \"min\": 1.0503798197299998,\n        \"stddev\": 0.05376828824283034,\n        \"system\": 0.07005658000000001,\n        \"time\": 1.0503798197299998,\n        \"user\": 1.090668235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n        \"max\": 1.19689657773,\n        \"mean\": 1.10859444233,\n        \"median\": 1.10013292073,\n        \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n        \"min\": 1.0503798197299998,\n        \"stddev\": 0.05376828824283034,\n        \"system\": 0.07005658000000001,\n        \"time\": 1.10380086473,\n        \"user\": 1.090668235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n        \"max\": 1.19689657773,\n        \"mean\": 1.10859444233,\n        \"median\": 1.10013292073,\n        \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n        \"min\": 1.0503798197299998,\n        \"stddev\": 0.05376828824283034,\n        \"system\": 0.07005658000000001,\n        \"time\": 1.19689657773,\n        \"user\": 1.090668235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dc0318f2947536e33eb1a77a9cc8a612fd39d1cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660575-dc0318f2947536e33eb1a77a9cc8a612fd39d1cd\",\n        \"max\": 1.19689657773,\n        \"mean\": 1.10859444233,\n        \"median\": 1.10013292073,\n        \"message\": \"Parameterize edit inference function over abstract operation tags\\n\\nThis remains tightly coupled to syntect's data structure, i.e.\\n[(Style, &str), ...]\\nbut removes any explicit mention of styles in the edit module.\\n\",\n        \"min\": 1.0503798197299998,\n        \"stddev\": 0.05376828824283034,\n        \"system\": 0.07005658000000001,\n        \"time\": 1.10013292073,\n        \"user\": 1.090668235\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n        \"max\": 1.084842629105,\n        \"mean\": 1.0649749099049999,\n        \"median\": 1.062521736105,\n        \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n        \"min\": 1.0459193681049999,\n        \"stddev\": 0.015417295213379622,\n        \"system\": 0.060157554999999995,\n        \"time\": 1.084842629105,\n        \"user\": 1.060623225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n        \"max\": 1.084842629105,\n        \"mean\": 1.0649749099049999,\n        \"median\": 1.062521736105,\n        \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n        \"min\": 1.0459193681049999,\n        \"stddev\": 0.015417295213379622,\n        \"system\": 0.060157554999999995,\n        \"time\": 1.056162975105,\n        \"user\": 1.060623225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n        \"max\": 1.084842629105,\n        \"mean\": 1.0649749099049999,\n        \"median\": 1.062521736105,\n        \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n        \"min\": 1.0459193681049999,\n        \"stddev\": 0.015417295213379622,\n        \"system\": 0.060157554999999995,\n        \"time\": 1.075427841105,\n        \"user\": 1.060623225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n        \"max\": 1.084842629105,\n        \"mean\": 1.0649749099049999,\n        \"median\": 1.062521736105,\n        \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n        \"min\": 1.0459193681049999,\n        \"stddev\": 0.015417295213379622,\n        \"system\": 0.060157554999999995,\n        \"time\": 1.0459193681049999,\n        \"user\": 1.060623225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/003d3c464888f603df63b727adab639b024a6ab3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-003d3c464888f603df63b727adab639b024a6ab3\",\n        \"max\": 1.084842629105,\n        \"mean\": 1.0649749099049999,\n        \"median\": 1.062521736105,\n        \"message\": \"Use generics instead of trait objects; improve declaration\\n\",\n        \"min\": 1.0459193681049999,\n        \"stddev\": 0.015417295213379622,\n        \"system\": 0.060157554999999995,\n        \"time\": 1.062521736105,\n        \"user\": 1.060623225\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n        \"max\": 1.10665858924,\n        \"mean\": 1.09044632064,\n        \"median\": 1.08728263524,\n        \"message\": \"Use grapheme units for all visible character calculations\\n\",\n        \"min\": 1.08043947324,\n        \"stddev\": 0.010195765555389032,\n        \"system\": 0.060231435,\n        \"time\": 1.10665858924,\n        \"user\": 1.08554064\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n        \"max\": 1.10665858924,\n        \"mean\": 1.09044632064,\n        \"median\": 1.08728263524,\n        \"message\": \"Use grapheme units for all visible character calculations\\n\",\n        \"min\": 1.08043947324,\n        \"stddev\": 0.010195765555389032,\n        \"system\": 0.060231435,\n        \"time\": 1.08043947324,\n        \"user\": 1.08554064\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n        \"max\": 1.10665858924,\n        \"mean\": 1.09044632064,\n        \"median\": 1.08728263524,\n        \"message\": \"Use grapheme units for all visible character calculations\\n\",\n        \"min\": 1.08043947324,\n        \"stddev\": 0.010195765555389032,\n        \"system\": 0.060231435,\n        \"time\": 1.08728263524,\n        \"user\": 1.08554064\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n        \"max\": 1.10665858924,\n        \"mean\": 1.09044632064,\n        \"median\": 1.08728263524,\n        \"message\": \"Use grapheme units for all visible character calculations\\n\",\n        \"min\": 1.08043947324,\n        \"stddev\": 0.010195765555389032,\n        \"system\": 0.060231435,\n        \"time\": 1.08455481724,\n        \"user\": 1.08554064\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2404597c29f1ca4125740891224216d00e75ac6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563660627-2404597c29f1ca4125740891224216d00e75ac6f\",\n        \"max\": 1.10665858924,\n        \"mean\": 1.09044632064,\n        \"median\": 1.08728263524,\n        \"message\": \"Use grapheme units for all visible character calculations\\n\",\n        \"min\": 1.08043947324,\n        \"stddev\": 0.010195765555389032,\n        \"system\": 0.060231435,\n        \"time\": 1.09329608824,\n        \"user\": 1.08554064\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n        \"max\": 1.1611078743649998,\n        \"mean\": 1.1034978111649998,\n        \"median\": 1.0884592713649999,\n        \"message\": \"Update hyperfine output format\\n\",\n        \"min\": 1.076597769365,\n        \"stddev\": 0.03503861140149444,\n        \"system\": 0.063048655,\n        \"time\": 1.1611078743649998,\n        \"user\": 1.0946974950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n        \"max\": 1.1611078743649998,\n        \"mean\": 1.1034978111649998,\n        \"median\": 1.0884592713649999,\n        \"message\": \"Update hyperfine output format\\n\",\n        \"min\": 1.076597769365,\n        \"stddev\": 0.03503861140149444,\n        \"system\": 0.063048655,\n        \"time\": 1.0884592713649999,\n        \"user\": 1.0946974950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n        \"max\": 1.1611078743649998,\n        \"mean\": 1.1034978111649998,\n        \"median\": 1.0884592713649999,\n        \"message\": \"Update hyperfine output format\\n\",\n        \"min\": 1.076597769365,\n        \"stddev\": 0.03503861140149444,\n        \"system\": 0.063048655,\n        \"time\": 1.076597769365,\n        \"user\": 1.0946974950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n        \"max\": 1.1611078743649998,\n        \"mean\": 1.1034978111649998,\n        \"median\": 1.0884592713649999,\n        \"message\": \"Update hyperfine output format\\n\",\n        \"min\": 1.076597769365,\n        \"stddev\": 0.03503861140149444,\n        \"system\": 0.063048655,\n        \"time\": 1.079547943365,\n        \"user\": 1.0946974950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/86c84c6a048becc8bbf757e929f9e099ab8bde63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563702577-86c84c6a048becc8bbf757e929f9e099ab8bde63\",\n        \"max\": 1.1611078743649998,\n        \"mean\": 1.1034978111649998,\n        \"median\": 1.0884592713649999,\n        \"message\": \"Update hyperfine output format\\n\",\n        \"min\": 1.076597769365,\n        \"stddev\": 0.03503861140149444,\n        \"system\": 0.063048655,\n        \"time\": 1.111776197365,\n        \"user\": 1.0946974950000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n        \"max\": 1.173420741215,\n        \"mean\": 1.1192708206149997,\n        \"median\": 1.117659038215,\n        \"message\": \"Update hyperfine data\\n\",\n        \"min\": 1.073891446215,\n        \"stddev\": 0.038907245126009335,\n        \"system\": 0.06427922999999999,\n        \"time\": 1.138444148215,\n        \"user\": 1.1115887899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n        \"max\": 1.173420741215,\n        \"mean\": 1.1192708206149997,\n        \"median\": 1.117659038215,\n        \"message\": \"Update hyperfine data\\n\",\n        \"min\": 1.073891446215,\n        \"stddev\": 0.038907245126009335,\n        \"system\": 0.06427922999999999,\n        \"time\": 1.117659038215,\n        \"user\": 1.1115887899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n        \"max\": 1.173420741215,\n        \"mean\": 1.1192708206149997,\n        \"median\": 1.117659038215,\n        \"message\": \"Update hyperfine data\\n\",\n        \"min\": 1.073891446215,\n        \"stddev\": 0.038907245126009335,\n        \"system\": 0.06427922999999999,\n        \"time\": 1.173420741215,\n        \"user\": 1.1115887899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n        \"max\": 1.173420741215,\n        \"mean\": 1.1192708206149997,\n        \"median\": 1.117659038215,\n        \"message\": \"Update hyperfine data\\n\",\n        \"min\": 1.073891446215,\n        \"stddev\": 0.038907245126009335,\n        \"system\": 0.06427922999999999,\n        \"time\": 1.092938729215,\n        \"user\": 1.1115887899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1026a7c942b43af092a0e85e3b59eaba6e343072 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563718685-1026a7c942b43af092a0e85e3b59eaba6e343072\",\n        \"max\": 1.173420741215,\n        \"mean\": 1.1192708206149997,\n        \"median\": 1.117659038215,\n        \"message\": \"Update hyperfine data\\n\",\n        \"min\": 1.073891446215,\n        \"stddev\": 0.038907245126009335,\n        \"system\": 0.06427922999999999,\n        \"time\": 1.073891446215,\n        \"user\": 1.1115887899999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n        \"max\": 1.1825180016949999,\n        \"mean\": 1.130955206895,\n        \"median\": 1.122594962695,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.108145652695,\n        \"stddev\": 0.029460480031131185,\n        \"system\": 0.06663242,\n        \"time\": 1.1825180016949999,\n        \"user\": 1.11855963\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n        \"max\": 1.1825180016949999,\n        \"mean\": 1.130955206895,\n        \"median\": 1.122594962695,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.108145652695,\n        \"stddev\": 0.029460480031131185,\n        \"system\": 0.06663242,\n        \"time\": 1.122594962695,\n        \"user\": 1.11855963\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n        \"max\": 1.1825180016949999,\n        \"mean\": 1.130955206895,\n        \"median\": 1.122594962695,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.108145652695,\n        \"stddev\": 0.029460480031131185,\n        \"system\": 0.06663242,\n        \"time\": 1.123483697695,\n        \"user\": 1.11855963\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n        \"max\": 1.1825180016949999,\n        \"mean\": 1.130955206895,\n        \"median\": 1.122594962695,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.108145652695,\n        \"stddev\": 0.029460480031131185,\n        \"system\": 0.06663242,\n        \"time\": 1.108145652695,\n        \"user\": 1.11855963\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0a492db9e8284c52dd02acd4e768d8360a50356e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563719975-0a492db9e8284c52dd02acd4e768d8360a50356e\",\n        \"max\": 1.1825180016949999,\n        \"mean\": 1.130955206895,\n        \"median\": 1.122594962695,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.108145652695,\n        \"stddev\": 0.029460480031131185,\n        \"system\": 0.06663242,\n        \"time\": 1.1180337196949999,\n        \"user\": 1.11855963\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n        \"max\": 1.153711250975,\n        \"mean\": 1.1172233691750002,\n        \"median\": 1.118489223975,\n        \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n        \"min\": 1.084588114975,\n        \"stddev\": 0.028461337795552242,\n        \"system\": 0.06471876,\n        \"time\": 1.153711250975,\n        \"user\": 1.111729385\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n        \"max\": 1.153711250975,\n        \"mean\": 1.1172233691750002,\n        \"median\": 1.118489223975,\n        \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n        \"min\": 1.084588114975,\n        \"stddev\": 0.028461337795552242,\n        \"system\": 0.06471876,\n        \"time\": 1.118489223975,\n        \"user\": 1.111729385\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n        \"max\": 1.153711250975,\n        \"mean\": 1.1172233691750002,\n        \"median\": 1.118489223975,\n        \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n        \"min\": 1.084588114975,\n        \"stddev\": 0.028461337795552242,\n        \"system\": 0.06471876,\n        \"time\": 1.135024184975,\n        \"user\": 1.111729385\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n        \"max\": 1.153711250975,\n        \"mean\": 1.1172233691750002,\n        \"median\": 1.118489223975,\n        \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n        \"min\": 1.084588114975,\n        \"stddev\": 0.028461337795552242,\n        \"system\": 0.06471876,\n        \"time\": 1.084588114975,\n        \"user\": 1.111729385\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72d9221e27e101ee1dc7128217cba2a5d65f69e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-72d9221e27e101ee1dc7128217cba2a5d65f69e1\",\n        \"max\": 1.153711250975,\n        \"mean\": 1.1172233691750002,\n        \"median\": 1.118489223975,\n        \"message\": \"Clean up: change function names, make signatures consistent\\n\",\n        \"min\": 1.084588114975,\n        \"stddev\": 0.028461337795552242,\n        \"system\": 0.06471876,\n        \"time\": 1.094304070975,\n        \"user\": 1.111729385\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n        \"max\": 1.1389264266699999,\n        \"mean\": 1.11790453587,\n        \"median\": 1.11460459967,\n        \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n        \"min\": 1.10145053267,\n        \"stddev\": 0.015887138582005765,\n        \"system\": 0.06513257,\n        \"time\": 1.1389264266699999,\n        \"user\": 1.11102143\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n        \"max\": 1.1389264266699999,\n        \"mean\": 1.11790453587,\n        \"median\": 1.11460459967,\n        \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n        \"min\": 1.10145053267,\n        \"stddev\": 0.015887138582005765,\n        \"system\": 0.06513257,\n        \"time\": 1.11460459967,\n        \"user\": 1.11102143\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n        \"max\": 1.1389264266699999,\n        \"mean\": 1.11790453587,\n        \"median\": 1.11460459967,\n        \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n        \"min\": 1.10145053267,\n        \"stddev\": 0.015887138582005765,\n        \"system\": 0.06513257,\n        \"time\": 1.10145053267,\n        \"user\": 1.11102143\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n        \"max\": 1.1389264266699999,\n        \"mean\": 1.11790453587,\n        \"median\": 1.11460459967,\n        \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n        \"min\": 1.10145053267,\n        \"stddev\": 0.015887138582005765,\n        \"system\": 0.06513257,\n        \"time\": 1.12921328067,\n        \"user\": 1.11102143\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f127cd4cfc74d03d8156805a7c3e580fe46b74f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563730589-f127cd4cfc74d03d8156805a7c3e580fe46b74f1\",\n        \"max\": 1.1389264266699999,\n        \"mean\": 1.11790453587,\n        \"median\": 1.11460459967,\n        \"message\": \"Bug fix: don't allow line buffers to grow without bound\\n\",\n        \"min\": 1.10145053267,\n        \"stddev\": 0.015887138582005765,\n        \"system\": 0.06513257,\n        \"time\": 1.10532783967,\n        \"user\": 1.11102143\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n        \"max\": 1.136103169605,\n        \"mean\": 1.1204592472049997,\n        \"median\": 1.1222472316049998,\n        \"message\": \"For a rename, use the new extension to infer language\\n\",\n        \"min\": 1.109599353605,\n        \"stddev\": 0.010615498952959395,\n        \"system\": 0.06717134500000001,\n        \"time\": 1.1222472316049998,\n        \"user\": 1.1107629299999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n        \"max\": 1.136103169605,\n        \"mean\": 1.1204592472049997,\n        \"median\": 1.1222472316049998,\n        \"message\": \"For a rename, use the new extension to infer language\\n\",\n        \"min\": 1.109599353605,\n        \"stddev\": 0.010615498952959395,\n        \"system\": 0.06717134500000001,\n        \"time\": 1.109599353605,\n        \"user\": 1.1107629299999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n        \"max\": 1.136103169605,\n        \"mean\": 1.1204592472049997,\n        \"median\": 1.1222472316049998,\n        \"message\": \"For a rename, use the new extension to infer language\\n\",\n        \"min\": 1.109599353605,\n        \"stddev\": 0.010615498952959395,\n        \"system\": 0.06717134500000001,\n        \"time\": 1.111547713605,\n        \"user\": 1.1107629299999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n        \"max\": 1.136103169605,\n        \"mean\": 1.1204592472049997,\n        \"median\": 1.1222472316049998,\n        \"message\": \"For a rename, use the new extension to infer language\\n\",\n        \"min\": 1.109599353605,\n        \"stddev\": 0.010615498952959395,\n        \"system\": 0.06717134500000001,\n        \"time\": 1.122798767605,\n        \"user\": 1.1107629299999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c1cd649d64f58e95287a228dcf736c0d81243c95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563753838-c1cd649d64f58e95287a228dcf736c0d81243c95\",\n        \"max\": 1.136103169605,\n        \"mean\": 1.1204592472049997,\n        \"median\": 1.1222472316049998,\n        \"message\": \"For a rename, use the new extension to infer language\\n\",\n        \"min\": 1.109599353605,\n        \"stddev\": 0.010615498952959395,\n        \"system\": 0.06717134500000001,\n        \"time\": 1.136103169605,\n        \"user\": 1.1107629299999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n        \"max\": 1.09135139897,\n        \"mean\": 1.0695922097700001,\n        \"median\": 1.07055845197,\n        \"message\": \"Windows build\\n\",\n        \"min\": 1.05256154497,\n        \"stddev\": 0.014675946988984548,\n        \"system\": 0.05808777,\n        \"time\": 1.09135139897,\n        \"user\": 1.0701543249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n        \"max\": 1.09135139897,\n        \"mean\": 1.0695922097700001,\n        \"median\": 1.07055845197,\n        \"message\": \"Windows build\\n\",\n        \"min\": 1.05256154497,\n        \"stddev\": 0.014675946988984548,\n        \"system\": 0.05808777,\n        \"time\": 1.0731040329700001,\n        \"user\": 1.0701543249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n        \"max\": 1.09135139897,\n        \"mean\": 1.0695922097700001,\n        \"median\": 1.07055845197,\n        \"message\": \"Windows build\\n\",\n        \"min\": 1.05256154497,\n        \"stddev\": 0.014675946988984548,\n        \"system\": 0.05808777,\n        \"time\": 1.05256154497,\n        \"user\": 1.0701543249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n        \"max\": 1.09135139897,\n        \"mean\": 1.0695922097700001,\n        \"median\": 1.07055845197,\n        \"message\": \"Windows build\\n\",\n        \"min\": 1.05256154497,\n        \"stddev\": 0.014675946988984548,\n        \"system\": 0.05808777,\n        \"time\": 1.07055845197,\n        \"user\": 1.0701543249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/334d4ed0d665560838cd3798ec9195791b7c9b33 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761210-334d4ed0d665560838cd3798ec9195791b7c9b33\",\n        \"max\": 1.09135139897,\n        \"mean\": 1.0695922097700001,\n        \"median\": 1.07055845197,\n        \"message\": \"Windows build\\n\",\n        \"min\": 1.05256154497,\n        \"stddev\": 0.014675946988984548,\n        \"system\": 0.05808777,\n        \"time\": 1.0603856199700001,\n        \"user\": 1.0701543249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n        \"max\": 1.11215147141,\n        \"mean\": 1.10592766401,\n        \"median\": 1.10486353841,\n        \"message\": \"Don't paint zero-length text\\n\",\n        \"min\": 1.09906011841,\n        \"stddev\": 0.005503546063601589,\n        \"system\": 0.063882895,\n        \"time\": 1.11215147141,\n        \"user\": 1.09957486\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n        \"max\": 1.11215147141,\n        \"mean\": 1.10592766401,\n        \"median\": 1.10486353841,\n        \"message\": \"Don't paint zero-length text\\n\",\n        \"min\": 1.09906011841,\n        \"stddev\": 0.005503546063601589,\n        \"system\": 0.063882895,\n        \"time\": 1.09906011841,\n        \"user\": 1.09957486\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n        \"max\": 1.11215147141,\n        \"mean\": 1.10592766401,\n        \"median\": 1.10486353841,\n        \"message\": \"Don't paint zero-length text\\n\",\n        \"min\": 1.09906011841,\n        \"stddev\": 0.005503546063601589,\n        \"system\": 0.063882895,\n        \"time\": 1.11082302841,\n        \"user\": 1.09957486\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n        \"max\": 1.11215147141,\n        \"mean\": 1.10592766401,\n        \"median\": 1.10486353841,\n        \"message\": \"Don't paint zero-length text\\n\",\n        \"min\": 1.09906011841,\n        \"stddev\": 0.005503546063601589,\n        \"system\": 0.063882895,\n        \"time\": 1.10274016341,\n        \"user\": 1.09957486\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/26bf4b60968375e8e26af5c4ef87759f37b29903 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563761639-26bf4b60968375e8e26af5c4ef87759f37b29903\",\n        \"max\": 1.11215147141,\n        \"mean\": 1.10592766401,\n        \"median\": 1.10486353841,\n        \"message\": \"Don't paint zero-length text\\n\",\n        \"min\": 1.09906011841,\n        \"stddev\": 0.005503546063601589,\n        \"system\": 0.063882895,\n        \"time\": 1.10486353841,\n        \"user\": 1.09957486\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n        \"max\": 1.1424607525250001,\n        \"mean\": 1.1160484749250001,\n        \"median\": 1.113671092525,\n        \"message\": \"Painter struct constructor\\n\",\n        \"min\": 1.0959447905250002,\n        \"stddev\": 0.017205188015889945,\n        \"system\": 0.06640397499999999,\n        \"time\": 1.1424607525250001,\n        \"user\": 1.1069941099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n        \"max\": 1.1424607525250001,\n        \"mean\": 1.1160484749250001,\n        \"median\": 1.113671092525,\n        \"message\": \"Painter struct constructor\\n\",\n        \"min\": 1.0959447905250002,\n        \"stddev\": 0.017205188015889945,\n        \"system\": 0.06640397499999999,\n        \"time\": 1.119953486525,\n        \"user\": 1.1069941099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n        \"max\": 1.1424607525250001,\n        \"mean\": 1.1160484749250001,\n        \"median\": 1.113671092525,\n        \"message\": \"Painter struct constructor\\n\",\n        \"min\": 1.0959447905250002,\n        \"stddev\": 0.017205188015889945,\n        \"system\": 0.06640397499999999,\n        \"time\": 1.0959447905250002,\n        \"user\": 1.1069941099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n        \"max\": 1.1424607525250001,\n        \"mean\": 1.1160484749250001,\n        \"median\": 1.113671092525,\n        \"message\": \"Painter struct constructor\\n\",\n        \"min\": 1.0959447905250002,\n        \"stddev\": 0.017205188015889945,\n        \"system\": 0.06640397499999999,\n        \"time\": 1.113671092525,\n        \"user\": 1.1069941099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3605b28509d3c9a4635e284109243e4ca3692718 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762650-3605b28509d3c9a4635e284109243e4ca3692718\",\n        \"max\": 1.1424607525250001,\n        \"mean\": 1.1160484749250001,\n        \"median\": 1.113671092525,\n        \"message\": \"Painter struct constructor\\n\",\n        \"min\": 1.0959447905250002,\n        \"stddev\": 0.017205188015889945,\n        \"system\": 0.06640397499999999,\n        \"time\": 1.108212252525,\n        \"user\": 1.1069941099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n        \"max\": 1.176117968265,\n        \"mean\": 1.145313132065,\n        \"median\": 1.134919231265,\n        \"message\": \"Use `skip` instead of `next`\\n\",\n        \"min\": 1.127483535265,\n        \"stddev\": 0.020627468468142778,\n        \"system\": 0.07166418999999999,\n        \"time\": 1.176117968265,\n        \"user\": 1.12678746\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n        \"max\": 1.176117968265,\n        \"mean\": 1.145313132065,\n        \"median\": 1.134919231265,\n        \"message\": \"Use `skip` instead of `next`\\n\",\n        \"min\": 1.127483535265,\n        \"stddev\": 0.020627468468142778,\n        \"system\": 0.07166418999999999,\n        \"time\": 1.127483535265,\n        \"user\": 1.12678746\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n        \"max\": 1.176117968265,\n        \"mean\": 1.145313132065,\n        \"median\": 1.134919231265,\n        \"message\": \"Use `skip` instead of `next`\\n\",\n        \"min\": 1.127483535265,\n        \"stddev\": 0.020627468468142778,\n        \"system\": 0.07166418999999999,\n        \"time\": 1.131299009265,\n        \"user\": 1.12678746\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n        \"max\": 1.176117968265,\n        \"mean\": 1.145313132065,\n        \"median\": 1.134919231265,\n        \"message\": \"Use `skip` instead of `next`\\n\",\n        \"min\": 1.127483535265,\n        \"stddev\": 0.020627468468142778,\n        \"system\": 0.07166418999999999,\n        \"time\": 1.156745916265,\n        \"user\": 1.12678746\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563762924-aaf58b5b116b2bbaa3b706f743be0a0fa01c0d49\",\n        \"max\": 1.176117968265,\n        \"mean\": 1.145313132065,\n        \"median\": 1.134919231265,\n        \"message\": \"Use `skip` instead of `next`\\n\",\n        \"min\": 1.127483535265,\n        \"stddev\": 0.020627468468142778,\n        \"system\": 0.07166418999999999,\n        \"time\": 1.134919231265,\n        \"user\": 1.12678746\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n        \"max\": 1.09952142853,\n        \"mean\": 1.0858965059299999,\n        \"median\": 1.09721934053,\n        \"message\": \"Update Windows build\\n\",\n        \"min\": 1.0580336665299999,\n        \"stddev\": 0.01815906869908142,\n        \"system\": 0.061301775,\n        \"time\": 1.0979506345299999,\n        \"user\": 1.0840667600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n        \"max\": 1.09952142853,\n        \"mean\": 1.0858965059299999,\n        \"median\": 1.09721934053,\n        \"message\": \"Update Windows build\\n\",\n        \"min\": 1.0580336665299999,\n        \"stddev\": 0.01815906869908142,\n        \"system\": 0.061301775,\n        \"time\": 1.09721934053,\n        \"user\": 1.0840667600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n        \"max\": 1.09952142853,\n        \"mean\": 1.0858965059299999,\n        \"median\": 1.09721934053,\n        \"message\": \"Update Windows build\\n\",\n        \"min\": 1.0580336665299999,\n        \"stddev\": 0.01815906869908142,\n        \"system\": 0.061301775,\n        \"time\": 1.09952142853,\n        \"user\": 1.0840667600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n        \"max\": 1.09952142853,\n        \"mean\": 1.0858965059299999,\n        \"median\": 1.09721934053,\n        \"message\": \"Update Windows build\\n\",\n        \"min\": 1.0580336665299999,\n        \"stddev\": 0.01815906869908142,\n        \"system\": 0.061301775,\n        \"time\": 1.0580336665299999,\n        \"user\": 1.0840667600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bd12fbe58658279f02fd5ef8816f2aef12628f85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563803530-bd12fbe58658279f02fd5ef8816f2aef12628f85\",\n        \"max\": 1.09952142853,\n        \"mean\": 1.0858965059299999,\n        \"median\": 1.09721934053,\n        \"message\": \"Update Windows build\\n\",\n        \"min\": 1.0580336665299999,\n        \"stddev\": 0.01815906869908142,\n        \"system\": 0.061301775,\n        \"time\": 1.0767574595299998,\n        \"user\": 1.0840667600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n        \"max\": 1.101794139855,\n        \"mean\": 1.0719746494549998,\n        \"median\": 1.0629745418549998,\n        \"message\": \"chronologer\\n\",\n        \"min\": 1.057691362855,\n        \"stddev\": 0.01895783967059471,\n        \"system\": 0.06057028,\n        \"time\": 1.057691362855,\n        \"user\": 1.071762635\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n        \"max\": 1.101794139855,\n        \"mean\": 1.0719746494549998,\n        \"median\": 1.0629745418549998,\n        \"message\": \"chronologer\\n\",\n        \"min\": 1.057691362855,\n        \"stddev\": 0.01895783967059471,\n        \"system\": 0.06057028,\n        \"time\": 1.079707106855,\n        \"user\": 1.071762635\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n        \"max\": 1.101794139855,\n        \"mean\": 1.0719746494549998,\n        \"median\": 1.0629745418549998,\n        \"message\": \"chronologer\\n\",\n        \"min\": 1.057691362855,\n        \"stddev\": 0.01895783967059471,\n        \"system\": 0.06057028,\n        \"time\": 1.0629745418549998,\n        \"user\": 1.071762635\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n        \"max\": 1.101794139855,\n        \"mean\": 1.0719746494549998,\n        \"median\": 1.0629745418549998,\n        \"message\": \"chronologer\\n\",\n        \"min\": 1.057691362855,\n        \"stddev\": 0.01895783967059471,\n        \"system\": 0.06057028,\n        \"time\": 1.057706095855,\n        \"user\": 1.071762635\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da178d0f0394d055a8850581855dc2091861406e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887414-da178d0f0394d055a8850581855dc2091861406e\",\n        \"max\": 1.101794139855,\n        \"mean\": 1.0719746494549998,\n        \"median\": 1.0629745418549998,\n        \"message\": \"chronologer\\n\",\n        \"min\": 1.057691362855,\n        \"stddev\": 0.01895783967059471,\n        \"system\": 0.06057028,\n        \"time\": 1.101794139855,\n        \"user\": 1.071762635\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n        \"max\": 1.0584551382099998,\n        \"mean\": 1.0515858410099999,\n        \"median\": 1.05126419021,\n        \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n        \"min\": 1.04376498221,\n        \"stddev\": 0.005346561323337733,\n        \"system\": 0.05630037,\n        \"time\": 1.0506293682099999,\n        \"user\": 1.0530261099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n        \"max\": 1.0584551382099998,\n        \"mean\": 1.0515858410099999,\n        \"median\": 1.05126419021,\n        \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n        \"min\": 1.04376498221,\n        \"stddev\": 0.005346561323337733,\n        \"system\": 0.05630037,\n        \"time\": 1.05126419021,\n        \"user\": 1.0530261099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n        \"max\": 1.0584551382099998,\n        \"mean\": 1.0515858410099999,\n        \"median\": 1.05126419021,\n        \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n        \"min\": 1.04376498221,\n        \"stddev\": 0.005346561323337733,\n        \"system\": 0.05630037,\n        \"time\": 1.0584551382099998,\n        \"user\": 1.0530261099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n        \"max\": 1.0584551382099998,\n        \"mean\": 1.0515858410099999,\n        \"median\": 1.05126419021,\n        \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n        \"min\": 1.04376498221,\n        \"stddev\": 0.005346561323337733,\n        \"system\": 0.05630037,\n        \"time\": 1.04376498221,\n        \"user\": 1.0530261099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4ca82f2987370585f137fbcec0b66b945b2d32aa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563887468-4ca82f2987370585f137fbcec0b66b945b2d32aa\",\n        \"max\": 1.0584551382099998,\n        \"mean\": 1.0515858410099999,\n        \"median\": 1.05126419021,\n        \"message\": \"Merge pull request #9 from dandavison/windowsbuild-squash\\n\\nWindows build\",\n        \"min\": 1.04376498221,\n        \"stddev\": 0.005346561323337733,\n        \"system\": 0.05630037,\n        \"time\": 1.05381552621,\n        \"user\": 1.0530261099999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n        \"max\": 1.181121225155,\n        \"mean\": 1.0786119261549998,\n        \"median\": 1.055144017155,\n        \"message\": \"README: Installation\\n\",\n        \"min\": 1.048840072155,\n        \"stddev\": 0.05736300526326874,\n        \"system\": 0.06129902,\n        \"time\": 1.181121225155,\n        \"user\": 1.0773353149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n        \"max\": 1.181121225155,\n        \"mean\": 1.0786119261549998,\n        \"median\": 1.055144017155,\n        \"message\": \"README: Installation\\n\",\n        \"min\": 1.048840072155,\n        \"stddev\": 0.05736300526326874,\n        \"system\": 0.06129902,\n        \"time\": 1.055144017155,\n        \"user\": 1.0773353149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n        \"max\": 1.181121225155,\n        \"mean\": 1.0786119261549998,\n        \"median\": 1.055144017155,\n        \"message\": \"README: Installation\\n\",\n        \"min\": 1.048840072155,\n        \"stddev\": 0.05736300526326874,\n        \"system\": 0.06129902,\n        \"time\": 1.048840072155,\n        \"user\": 1.0773353149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n        \"max\": 1.181121225155,\n        \"mean\": 1.0786119261549998,\n        \"median\": 1.055144017155,\n        \"message\": \"README: Installation\\n\",\n        \"min\": 1.048840072155,\n        \"stddev\": 0.05736300526326874,\n        \"system\": 0.06129902,\n        \"time\": 1.052741950155,\n        \"user\": 1.0773353149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5a3e91dbd85f84fa19dff4cc82de7151b75c53ee < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563888916-5a3e91dbd85f84fa19dff4cc82de7151b75c53ee\",\n        \"max\": 1.181121225155,\n        \"mean\": 1.0786119261549998,\n        \"median\": 1.055144017155,\n        \"message\": \"README: Installation\\n\",\n        \"min\": 1.048840072155,\n        \"stddev\": 0.05736300526326874,\n        \"system\": 0.06129902,\n        \"time\": 1.0552123661550001,\n        \"user\": 1.0773353149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n        \"max\": 1.057982019215,\n        \"mean\": 1.050759903415,\n        \"median\": 1.0475264252149998,\n        \"message\": \"README: formatting\\n\",\n        \"min\": 1.045243814215,\n        \"stddev\": 0.005730908436670729,\n        \"system\": 0.05632258999999999,\n        \"time\": 1.047212880215,\n        \"user\": 1.05229241\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n        \"max\": 1.057982019215,\n        \"mean\": 1.050759903415,\n        \"median\": 1.0475264252149998,\n        \"message\": \"README: formatting\\n\",\n        \"min\": 1.045243814215,\n        \"stddev\": 0.005730908436670729,\n        \"system\": 0.05632258999999999,\n        \"time\": 1.0475264252149998,\n        \"user\": 1.05229241\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n        \"max\": 1.057982019215,\n        \"mean\": 1.050759903415,\n        \"median\": 1.0475264252149998,\n        \"message\": \"README: formatting\\n\",\n        \"min\": 1.045243814215,\n        \"stddev\": 0.005730908436670729,\n        \"system\": 0.05632258999999999,\n        \"time\": 1.045243814215,\n        \"user\": 1.05229241\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n        \"max\": 1.057982019215,\n        \"mean\": 1.050759903415,\n        \"median\": 1.0475264252149998,\n        \"message\": \"README: formatting\\n\",\n        \"min\": 1.045243814215,\n        \"stddev\": 0.005730908436670729,\n        \"system\": 0.05632258999999999,\n        \"time\": 1.057982019215,\n        \"user\": 1.05229241\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9ee1587517399fd7d3d5d7ab1c54c11c2d243998 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563889148-9ee1587517399fd7d3d5d7ab1c54c11c2d243998\",\n        \"max\": 1.057982019215,\n        \"mean\": 1.050759903415,\n        \"median\": 1.0475264252149998,\n        \"message\": \"README: formatting\\n\",\n        \"min\": 1.045243814215,\n        \"stddev\": 0.005730908436670729,\n        \"system\": 0.05632258999999999,\n        \"time\": 1.055834378215,\n        \"user\": 1.05229241\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n        \"max\": 1.0773153471899999,\n        \"mean\": 1.0627088895899999,\n        \"median\": 1.0673122931899999,\n        \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n        \"min\": 1.0427694291899998,\n        \"stddev\": 0.01314043130782722,\n        \"system\": 0.059355475000000005,\n        \"time\": 1.0773153471899999,\n        \"user\": 1.0616878600000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n        \"max\": 1.0773153471899999,\n        \"mean\": 1.0627088895899999,\n        \"median\": 1.0673122931899999,\n        \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n        \"min\": 1.0427694291899998,\n        \"stddev\": 0.01314043130782722,\n        \"system\": 0.059355475000000005,\n        \"time\": 1.05767482019,\n        \"user\": 1.0616878600000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n        \"max\": 1.0773153471899999,\n        \"mean\": 1.0627088895899999,\n        \"median\": 1.0673122931899999,\n        \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n        \"min\": 1.0427694291899998,\n        \"stddev\": 0.01314043130782722,\n        \"system\": 0.059355475000000005,\n        \"time\": 1.0684725581899999,\n        \"user\": 1.0616878600000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n        \"max\": 1.0773153471899999,\n        \"mean\": 1.0627088895899999,\n        \"median\": 1.0673122931899999,\n        \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n        \"min\": 1.0427694291899998,\n        \"stddev\": 0.01314043130782722,\n        \"system\": 0.059355475000000005,\n        \"time\": 1.0427694291899998,\n        \"user\": 1.0616878600000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4738e0dba8bcbee716ed71a2a39f3dec36557bab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984521-4738e0dba8bcbee716ed71a2a39f3dec36557bab\",\n        \"max\": 1.0773153471899999,\n        \"mean\": 1.0627088895899999,\n        \"median\": 1.0673122931899999,\n        \"message\": \"Use Appveyor instead of Travis for Windows build\\n\",\n        \"min\": 1.0427694291899998,\n        \"stddev\": 0.01314043130782722,\n        \"system\": 0.059355475000000005,\n        \"time\": 1.0673122931899999,\n        \"user\": 1.0616878600000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n        \"max\": 1.0877142476950001,\n        \"mean\": 1.074014882695,\n        \"median\": 1.078519037695,\n        \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n        \"min\": 1.056883525695,\n        \"stddev\": 0.01245698797732693,\n        \"system\": 0.058916865,\n        \"time\": 1.081182307695,\n        \"user\": 1.072317045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n        \"max\": 1.0877142476950001,\n        \"mean\": 1.074014882695,\n        \"median\": 1.078519037695,\n        \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n        \"min\": 1.056883525695,\n        \"stddev\": 0.01245698797732693,\n        \"system\": 0.058916865,\n        \"time\": 1.0877142476950001,\n        \"user\": 1.072317045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n        \"max\": 1.0877142476950001,\n        \"mean\": 1.074014882695,\n        \"median\": 1.078519037695,\n        \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n        \"min\": 1.056883525695,\n        \"stddev\": 0.01245698797732693,\n        \"system\": 0.058916865,\n        \"time\": 1.056883525695,\n        \"user\": 1.072317045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n        \"max\": 1.0877142476950001,\n        \"mean\": 1.074014882695,\n        \"median\": 1.078519037695,\n        \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n        \"min\": 1.056883525695,\n        \"stddev\": 0.01245698797732693,\n        \"system\": 0.058916865,\n        \"time\": 1.065775294695,\n        \"user\": 1.072317045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/70215d4a748e3fffeee82f62c16c671074dc127f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1563984553-70215d4a748e3fffeee82f62c16c671074dc127f\",\n        \"max\": 1.0877142476950001,\n        \"mean\": 1.074014882695,\n        \"median\": 1.078519037695,\n        \"message\": \"Revert \\\"Use Appveyor instead of Travis for Windows build\\\"\\n\\nThis reverts commit 4738e0dba8bcbee716ed71a2a39f3dec36557bab.\\n\",\n        \"min\": 1.056883525695,\n        \"stddev\": 0.01245698797732693,\n        \"system\": 0.058916865,\n        \"time\": 1.078519037695,\n        \"user\": 1.072317045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n        \"max\": 1.1021118847850002,\n        \"mean\": 1.0929675407850001,\n        \"median\": 1.0956828817850002,\n        \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n        \"min\": 1.0819443697850002,\n        \"stddev\": 0.00807336273833099,\n        \"system\": 0.06171935999999999,\n        \"time\": 1.0819443697850002,\n        \"user\": 1.0927352049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n        \"max\": 1.1021118847850002,\n        \"mean\": 1.0929675407850001,\n        \"median\": 1.0956828817850002,\n        \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n        \"min\": 1.0819443697850002,\n        \"stddev\": 0.00807336273833099,\n        \"system\": 0.06171935999999999,\n        \"time\": 1.0974413417850002,\n        \"user\": 1.0927352049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n        \"max\": 1.1021118847850002,\n        \"mean\": 1.0929675407850001,\n        \"median\": 1.0956828817850002,\n        \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n        \"min\": 1.0819443697850002,\n        \"stddev\": 0.00807336273833099,\n        \"system\": 0.06171935999999999,\n        \"time\": 1.0876572257850001,\n        \"user\": 1.0927352049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n        \"max\": 1.1021118847850002,\n        \"mean\": 1.0929675407850001,\n        \"median\": 1.0956828817850002,\n        \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n        \"min\": 1.0819443697850002,\n        \"stddev\": 0.00807336273833099,\n        \"system\": 0.06171935999999999,\n        \"time\": 1.0956828817850002,\n        \"user\": 1.0927352049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d09a7d9e018e4b0eb77b001efcfcdd78e22bf038 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004429-d09a7d9e018e4b0eb77b001efcfcdd78e22bf038\",\n        \"max\": 1.1021118847850002,\n        \"mean\": 1.0929675407850001,\n        \"median\": 1.0956828817850002,\n        \"message\": \"Bug fix: emit buffered text before emitting file line\\n\",\n        \"min\": 1.0819443697850002,\n        \"stddev\": 0.00807336273833099,\n        \"system\": 0.06171935999999999,\n        \"time\": 1.1021118847850002,\n        \"user\": 1.0927352049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n        \"max\": 1.090994857745,\n        \"mean\": 1.0837679865449998,\n        \"median\": 1.084037499745,\n        \"message\": \"Separate diff output for different files with a newline\\n\",\n        \"min\": 1.074402261745,\n        \"stddev\": 0.006781714865114058,\n        \"system\": 0.061518635,\n        \"time\": 1.0892962557449999,\n        \"user\": 1.0817670549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n        \"max\": 1.090994857745,\n        \"mean\": 1.0837679865449998,\n        \"median\": 1.084037499745,\n        \"message\": \"Separate diff output for different files with a newline\\n\",\n        \"min\": 1.074402261745,\n        \"stddev\": 0.006781714865114058,\n        \"system\": 0.061518635,\n        \"time\": 1.090994857745,\n        \"user\": 1.0817670549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n        \"max\": 1.090994857745,\n        \"mean\": 1.0837679865449998,\n        \"median\": 1.084037499745,\n        \"message\": \"Separate diff output for different files with a newline\\n\",\n        \"min\": 1.074402261745,\n        \"stddev\": 0.006781714865114058,\n        \"system\": 0.061518635,\n        \"time\": 1.084037499745,\n        \"user\": 1.0817670549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n        \"max\": 1.090994857745,\n        \"mean\": 1.0837679865449998,\n        \"median\": 1.084037499745,\n        \"message\": \"Separate diff output for different files with a newline\\n\",\n        \"min\": 1.074402261745,\n        \"stddev\": 0.006781714865114058,\n        \"system\": 0.061518635,\n        \"time\": 1.0801090577449999,\n        \"user\": 1.0817670549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8d665462e9a4375730441f9a686f88f5da9385c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564004691-c8d665462e9a4375730441f9a686f88f5da9385c\",\n        \"max\": 1.090994857745,\n        \"mean\": 1.0837679865449998,\n        \"median\": 1.084037499745,\n        \"message\": \"Separate diff output for different files with a newline\\n\",\n        \"min\": 1.074402261745,\n        \"stddev\": 0.006781714865114058,\n        \"system\": 0.061518635,\n        \"time\": 1.074402261745,\n        \"user\": 1.0817670549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n        \"max\": 1.108683589705,\n        \"mean\": 1.0895828551050002,\n        \"median\": 1.086178179705,\n        \"message\": \".truncate(0) => .clear()\\n\",\n        \"min\": 1.0790830817050001,\n        \"stddev\": 0.011234728334354028,\n        \"system\": 0.063695195,\n        \"time\": 1.108683589705,\n        \"user\": 1.086290065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n        \"max\": 1.108683589705,\n        \"mean\": 1.0895828551050002,\n        \"median\": 1.086178179705,\n        \"message\": \".truncate(0) => .clear()\\n\",\n        \"min\": 1.0790830817050001,\n        \"stddev\": 0.011234728334354028,\n        \"system\": 0.063695195,\n        \"time\": 1.088517792705,\n        \"user\": 1.086290065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n        \"max\": 1.108683589705,\n        \"mean\": 1.0895828551050002,\n        \"median\": 1.086178179705,\n        \"message\": \".truncate(0) => .clear()\\n\",\n        \"min\": 1.0790830817050001,\n        \"stddev\": 0.011234728334354028,\n        \"system\": 0.063695195,\n        \"time\": 1.085451631705,\n        \"user\": 1.086290065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n        \"max\": 1.108683589705,\n        \"mean\": 1.0895828551050002,\n        \"median\": 1.086178179705,\n        \"message\": \".truncate(0) => .clear()\\n\",\n        \"min\": 1.0790830817050001,\n        \"stddev\": 0.011234728334354028,\n        \"system\": 0.063695195,\n        \"time\": 1.0790830817050001,\n        \"user\": 1.086290065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/82828ede539ba7e4240eafd251cc785303b4f01e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564016043-82828ede539ba7e4240eafd251cc785303b4f01e\",\n        \"max\": 1.108683589705,\n        \"mean\": 1.0895828551050002,\n        \"median\": 1.086178179705,\n        \"message\": \".truncate(0) => .clear()\\n\",\n        \"min\": 1.0790830817050001,\n        \"stddev\": 0.011234728334354028,\n        \"system\": 0.063695195,\n        \"time\": 1.086178179705,\n        \"user\": 1.086290065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n        \"max\": 1.105978172655,\n        \"mean\": 1.086323931455,\n        \"median\": 1.0819676836549998,\n        \"message\": \"make target: chronologer\\n\",\n        \"min\": 1.075959344655,\n        \"stddev\": 0.011667158190603448,\n        \"system\": 0.06022917,\n        \"time\": 1.0869901436549998,\n        \"user\": 1.08680625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n        \"max\": 1.105978172655,\n        \"mean\": 1.086323931455,\n        \"median\": 1.0819676836549998,\n        \"message\": \"make target: chronologer\\n\",\n        \"min\": 1.075959344655,\n        \"stddev\": 0.011667158190603448,\n        \"system\": 0.06022917,\n        \"time\": 1.0819676836549998,\n        \"user\": 1.08680625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n        \"max\": 1.105978172655,\n        \"mean\": 1.086323931455,\n        \"median\": 1.0819676836549998,\n        \"message\": \"make target: chronologer\\n\",\n        \"min\": 1.075959344655,\n        \"stddev\": 0.011667158190603448,\n        \"system\": 0.06022917,\n        \"time\": 1.105978172655,\n        \"user\": 1.08680625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n        \"max\": 1.105978172655,\n        \"mean\": 1.086323931455,\n        \"median\": 1.0819676836549998,\n        \"message\": \"make target: chronologer\\n\",\n        \"min\": 1.075959344655,\n        \"stddev\": 0.011667158190603448,\n        \"system\": 0.06022917,\n        \"time\": 1.080724312655,\n        \"user\": 1.08680625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564022666-3fb6b9c2d2cea301cdaca38a3d2c26c3e2fd1ca7\",\n        \"max\": 1.105978172655,\n        \"mean\": 1.086323931455,\n        \"median\": 1.0819676836549998,\n        \"message\": \"make target: chronologer\\n\",\n        \"min\": 1.075959344655,\n        \"stddev\": 0.011667158190603448,\n        \"system\": 0.06022917,\n        \"time\": 1.075959344655,\n        \"user\": 1.08680625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n        \"max\": 1.06795116023,\n        \"mean\": 1.06028307023,\n        \"median\": 1.05946260123,\n        \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n        \"min\": 1.05369811923,\n        \"stddev\": 0.005226889053461011,\n        \"system\": 0.059634244999999995,\n        \"time\": 1.06795116023,\n        \"user\": 1.0608583550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n        \"max\": 1.06795116023,\n        \"mean\": 1.06028307023,\n        \"median\": 1.05946260123,\n        \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n        \"min\": 1.05369811923,\n        \"stddev\": 0.005226889053461011,\n        \"system\": 0.059634244999999995,\n        \"time\": 1.05946260123,\n        \"user\": 1.0608583550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n        \"max\": 1.06795116023,\n        \"mean\": 1.06028307023,\n        \"median\": 1.05946260123,\n        \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n        \"min\": 1.05369811923,\n        \"stddev\": 0.005226889053461011,\n        \"system\": 0.059634244999999995,\n        \"time\": 1.05369811923,\n        \"user\": 1.0608583550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n        \"max\": 1.06795116023,\n        \"mean\": 1.06028307023,\n        \"median\": 1.05946260123,\n        \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n        \"min\": 1.05369811923,\n        \"stddev\": 0.005226889053461011,\n        \"system\": 0.059634244999999995,\n        \"time\": 1.0619423532299999,\n        \"user\": 1.0608583550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/55ef5c531de5d047d07c842f506bef25d48ed9d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-55ef5c531de5d047d07c842f506bef25d48ed9d2\",\n        \"max\": 1.06795116023,\n        \"mean\": 1.06028307023,\n        \"median\": 1.05946260123,\n        \"message\": \"Cleaner implementation of common suffix length calculation\\n\",\n        \"min\": 1.05369811923,\n        \"stddev\": 0.005226889053461011,\n        \"system\": 0.059634244999999995,\n        \"time\": 1.0583611172299998,\n        \"user\": 1.0608583550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n        \"max\": 1.06143425726,\n        \"mean\": 1.0560026750599998,\n        \"median\": 1.05529823226,\n        \"message\": \"Replace for loop with iterator API\\n\",\n        \"min\": 1.05072196826,\n        \"stddev\": 0.0038765585007075123,\n        \"system\": 0.05867935,\n        \"time\": 1.06143425726,\n        \"user\": 1.057408015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n        \"max\": 1.06143425726,\n        \"mean\": 1.0560026750599998,\n        \"median\": 1.05529823226,\n        \"message\": \"Replace for loop with iterator API\\n\",\n        \"min\": 1.05072196826,\n        \"stddev\": 0.0038765585007075123,\n        \"system\": 0.05867935,\n        \"time\": 1.05072196826,\n        \"user\": 1.057408015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n        \"max\": 1.06143425726,\n        \"mean\": 1.0560026750599998,\n        \"median\": 1.05529823226,\n        \"message\": \"Replace for loop with iterator API\\n\",\n        \"min\": 1.05072196826,\n        \"stddev\": 0.0038765585007075123,\n        \"system\": 0.05867935,\n        \"time\": 1.05729764726,\n        \"user\": 1.057408015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n        \"max\": 1.06143425726,\n        \"mean\": 1.0560026750599998,\n        \"median\": 1.05529823226,\n        \"message\": \"Replace for loop with iterator API\\n\",\n        \"min\": 1.05072196826,\n        \"stddev\": 0.0038765585007075123,\n        \"system\": 0.05867935,\n        \"time\": 1.05526127026,\n        \"user\": 1.057408015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7a4cd89c866e86d93170568c669a8c4b95245372 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-7a4cd89c866e86d93170568c669a8c4b95245372\",\n        \"max\": 1.06143425726,\n        \"mean\": 1.0560026750599998,\n        \"median\": 1.05529823226,\n        \"message\": \"Replace for loop with iterator API\\n\",\n        \"min\": 1.05072196826,\n        \"stddev\": 0.0038765585007075123,\n        \"system\": 0.05867935,\n        \"time\": 1.05529823226,\n        \"user\": 1.057408015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n        \"max\": 1.065872274275,\n        \"mean\": 1.0611835086749999,\n        \"median\": 1.062397058275,\n        \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n        \"min\": 1.0552406722749998,\n        \"stddev\": 0.004217272546400898,\n        \"system\": 0.059659975,\n        \"time\": 1.062397058275,\n        \"user\": 1.0614029699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n        \"max\": 1.065872274275,\n        \"mean\": 1.0611835086749999,\n        \"median\": 1.062397058275,\n        \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n        \"min\": 1.0552406722749998,\n        \"stddev\": 0.004217272546400898,\n        \"system\": 0.059659975,\n        \"time\": 1.0552406722749998,\n        \"user\": 1.0614029699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n        \"max\": 1.065872274275,\n        \"mean\": 1.0611835086749999,\n        \"median\": 1.062397058275,\n        \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n        \"min\": 1.0552406722749998,\n        \"stddev\": 0.004217272546400898,\n        \"system\": 0.059659975,\n        \"time\": 1.063690353275,\n        \"user\": 1.0614029699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n        \"max\": 1.065872274275,\n        \"mean\": 1.0611835086749999,\n        \"median\": 1.062397058275,\n        \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n        \"min\": 1.0552406722749998,\n        \"stddev\": 0.004217272546400898,\n        \"system\": 0.059659975,\n        \"time\": 1.058717185275,\n        \"user\": 1.0614029699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a598a92700233130b56677c1269b6171eeb73ef7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a598a92700233130b56677c1269b6171eeb73ef7\",\n        \"max\": 1.065872274275,\n        \"mean\": 1.0611835086749999,\n        \"median\": 1.062397058275,\n        \"message\": \"Don't allow take_while to consume one-past-the-end\\n\",\n        \"min\": 1.0552406722749998,\n        \"stddev\": 0.004217272546400898,\n        \"system\": 0.059659975,\n        \"time\": 1.065872274275,\n        \"user\": 1.0614029699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n        \"max\": 1.18232576991,\n        \"mean\": 1.0965526155099998,\n        \"median\": 1.08187612991,\n        \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n        \"min\": 1.06047447591,\n        \"stddev\": 0.04893662019090351,\n        \"system\": 0.06296154,\n        \"time\": 1.08187612991,\n        \"user\": 1.0892039050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n        \"max\": 1.18232576991,\n        \"mean\": 1.0965526155099998,\n        \"median\": 1.08187612991,\n        \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n        \"min\": 1.06047447591,\n        \"stddev\": 0.04893662019090351,\n        \"system\": 0.06296154,\n        \"time\": 1.18232576991,\n        \"user\": 1.0892039050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n        \"max\": 1.18232576991,\n        \"mean\": 1.0965526155099998,\n        \"median\": 1.08187612991,\n        \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n        \"min\": 1.06047447591,\n        \"stddev\": 0.04893662019090351,\n        \"system\": 0.06296154,\n        \"time\": 1.06047447591,\n        \"user\": 1.0892039050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n        \"max\": 1.18232576991,\n        \"mean\": 1.0965526155099998,\n        \"median\": 1.08187612991,\n        \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n        \"min\": 1.06047447591,\n        \"stddev\": 0.04893662019090351,\n        \"system\": 0.06296154,\n        \"time\": 1.07226260291,\n        \"user\": 1.0892039050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7accf6b8800f101a141e82a457c2e5e92cda0f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564034446-a7accf6b8800f101a141e82a457c2e5e92cda0f1\",\n        \"max\": 1.18232576991,\n        \"mean\": 1.0965526155099998,\n        \"median\": 1.08187612991,\n        \"message\": \"Use original strings without copying when adding ansi color codes\\n\",\n        \"min\": 1.06047447591,\n        \"stddev\": 0.04893662019090351,\n        \"system\": 0.06296154,\n        \"time\": 1.08582409891,\n        \"user\": 1.0892039050000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n        \"max\": 1.084912952385,\n        \"mean\": 1.067008391985,\n        \"median\": 1.060806209385,\n        \"message\": \"Refactor: edits\\n\",\n        \"min\": 1.059578938385,\n        \"stddev\": 0.01092542072336575,\n        \"system\": 0.060367939999999995,\n        \"time\": 1.070072564385,\n        \"user\": 1.06675621\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n        \"max\": 1.084912952385,\n        \"mean\": 1.067008391985,\n        \"median\": 1.060806209385,\n        \"message\": \"Refactor: edits\\n\",\n        \"min\": 1.059578938385,\n        \"stddev\": 0.01092542072336575,\n        \"system\": 0.060367939999999995,\n        \"time\": 1.059671295385,\n        \"user\": 1.06675621\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n        \"max\": 1.084912952385,\n        \"mean\": 1.067008391985,\n        \"median\": 1.060806209385,\n        \"message\": \"Refactor: edits\\n\",\n        \"min\": 1.059578938385,\n        \"stddev\": 0.01092542072336575,\n        \"system\": 0.060367939999999995,\n        \"time\": 1.059578938385,\n        \"user\": 1.06675621\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n        \"max\": 1.084912952385,\n        \"mean\": 1.067008391985,\n        \"median\": 1.060806209385,\n        \"message\": \"Refactor: edits\\n\",\n        \"min\": 1.059578938385,\n        \"stddev\": 0.01092542072336575,\n        \"system\": 0.060367939999999995,\n        \"time\": 1.060806209385,\n        \"user\": 1.06675621\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5c6d42d494ebb1573a9c5eb67d032d348fb29b72 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564247552-5c6d42d494ebb1573a9c5eb67d032d348fb29b72\",\n        \"max\": 1.084912952385,\n        \"mean\": 1.067008391985,\n        \"median\": 1.060806209385,\n        \"message\": \"Refactor: edits\\n\",\n        \"min\": 1.059578938385,\n        \"stddev\": 0.01092542072336575,\n        \"system\": 0.060367939999999995,\n        \"time\": 1.084912952385,\n        \"user\": 1.06675621\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n        \"max\": 1.0737070711299999,\n        \"mean\": 1.05784370113,\n        \"median\": 1.05651749713,\n        \"message\": \"Use same lifetime for minus and plus lines\\n\",\n        \"min\": 1.04293570813,\n        \"stddev\": 0.011444880711946147,\n        \"system\": 0.05907293499999999,\n        \"time\": 1.04293570813,\n        \"user\": 1.057799495\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n        \"max\": 1.0737070711299999,\n        \"mean\": 1.05784370113,\n        \"median\": 1.05651749713,\n        \"message\": \"Use same lifetime for minus and plus lines\\n\",\n        \"min\": 1.04293570813,\n        \"stddev\": 0.011444880711946147,\n        \"system\": 0.05907293499999999,\n        \"time\": 1.0737070711299999,\n        \"user\": 1.057799495\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n        \"max\": 1.0737070711299999,\n        \"mean\": 1.05784370113,\n        \"median\": 1.05651749713,\n        \"message\": \"Use same lifetime for minus and plus lines\\n\",\n        \"min\": 1.04293570813,\n        \"stddev\": 0.011444880711946147,\n        \"system\": 0.05907293499999999,\n        \"time\": 1.0629392491299998,\n        \"user\": 1.057799495\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n        \"max\": 1.0737070711299999,\n        \"mean\": 1.05784370113,\n        \"median\": 1.05651749713,\n        \"message\": \"Use same lifetime for minus and plus lines\\n\",\n        \"min\": 1.04293570813,\n        \"stddev\": 0.011444880711946147,\n        \"system\": 0.05907293499999999,\n        \"time\": 1.0531189801299998,\n        \"user\": 1.057799495\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6ee4fb4db72eecb7704c74cb76f77b5ec7e29000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564260334-6ee4fb4db72eecb7704c74cb76f77b5ec7e29000\",\n        \"max\": 1.0737070711299999,\n        \"mean\": 1.05784370113,\n        \"median\": 1.05651749713,\n        \"message\": \"Use same lifetime for minus and plus lines\\n\",\n        \"min\": 1.04293570813,\n        \"stddev\": 0.011444880711946147,\n        \"system\": 0.05907293499999999,\n        \"time\": 1.05651749713,\n        \"user\": 1.057799495\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n        \"max\": 0.9655029540350001,\n        \"mean\": 0.9508352114350002,\n        \"median\": 0.948089201035,\n        \"message\": \"Revert interleavings algorithm\\n\",\n        \"min\": 0.9396034850350001,\n        \"stddev\": 0.009515146592679864,\n        \"system\": 0.05540914500000001,\n        \"time\": 0.9530474610350002,\n        \"user\": 0.939172765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n        \"max\": 0.9655029540350001,\n        \"mean\": 0.9508352114350002,\n        \"median\": 0.948089201035,\n        \"message\": \"Revert interleavings algorithm\\n\",\n        \"min\": 0.9396034850350001,\n        \"stddev\": 0.009515146592679864,\n        \"system\": 0.05540914500000001,\n        \"time\": 0.948089201035,\n        \"user\": 0.939172765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n        \"max\": 0.9655029540350001,\n        \"mean\": 0.9508352114350002,\n        \"median\": 0.948089201035,\n        \"message\": \"Revert interleavings algorithm\\n\",\n        \"min\": 0.9396034850350001,\n        \"stddev\": 0.009515146592679864,\n        \"system\": 0.05540914500000001,\n        \"time\": 0.9396034850350001,\n        \"user\": 0.939172765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n        \"max\": 0.9655029540350001,\n        \"mean\": 0.9508352114350002,\n        \"median\": 0.948089201035,\n        \"message\": \"Revert interleavings algorithm\\n\",\n        \"min\": 0.9396034850350001,\n        \"stddev\": 0.009515146592679864,\n        \"system\": 0.05540914500000001,\n        \"time\": 0.9655029540350001,\n        \"user\": 0.939172765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0be75d3746915bd559b2e4185d090d4f11281470 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-0be75d3746915bd559b2e4185d090d4f11281470\",\n        \"max\": 0.9655029540350001,\n        \"mean\": 0.9508352114350002,\n        \"median\": 0.948089201035,\n        \"message\": \"Revert interleavings algorithm\\n\",\n        \"min\": 0.9396034850350001,\n        \"stddev\": 0.009515146592679864,\n        \"system\": 0.05540914500000001,\n        \"time\": 0.947932956035,\n        \"user\": 0.939172765\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n        \"max\": 1.07288042742,\n        \"mean\": 1.0482804608199998,\n        \"median\": 1.04643401942,\n        \"message\": \"Refactor edit tests\\n\",\n        \"min\": 1.03515878242,\n        \"stddev\": 0.014575155540910635,\n        \"system\": 0.05528951,\n        \"time\": 1.0468266984199999,\n        \"user\": 1.0502096699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n        \"max\": 1.07288042742,\n        \"mean\": 1.0482804608199998,\n        \"median\": 1.04643401942,\n        \"message\": \"Refactor edit tests\\n\",\n        \"min\": 1.03515878242,\n        \"stddev\": 0.014575155540910635,\n        \"system\": 0.05528951,\n        \"time\": 1.07288042742,\n        \"user\": 1.0502096699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n        \"max\": 1.07288042742,\n        \"mean\": 1.0482804608199998,\n        \"median\": 1.04643401942,\n        \"message\": \"Refactor edit tests\\n\",\n        \"min\": 1.03515878242,\n        \"stddev\": 0.014575155540910635,\n        \"system\": 0.05528951,\n        \"time\": 1.04010237642,\n        \"user\": 1.0502096699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n        \"max\": 1.07288042742,\n        \"mean\": 1.0482804608199998,\n        \"median\": 1.04643401942,\n        \"message\": \"Refactor edit tests\\n\",\n        \"min\": 1.03515878242,\n        \"stddev\": 0.014575155540910635,\n        \"system\": 0.05528951,\n        \"time\": 1.04643401942,\n        \"user\": 1.0502096699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c5e8047e757d57f510c63eb33b728f28211af3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-19c5e8047e757d57f510c63eb33b728f28211af3\",\n        \"max\": 1.07288042742,\n        \"mean\": 1.0482804608199998,\n        \"median\": 1.04643401942,\n        \"message\": \"Refactor edit tests\\n\",\n        \"min\": 1.03515878242,\n        \"stddev\": 0.014575155540910635,\n        \"system\": 0.05528951,\n        \"time\": 1.03515878242,\n        \"user\": 1.0502096699999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n        \"max\": 0.97309633122,\n        \"mean\": 0.9516310450200001,\n        \"median\": 0.9471687822200001,\n        \"message\": \"LinePair format method\\n\",\n        \"min\": 0.93146803322,\n        \"stddev\": 0.016028424818636335,\n        \"system\": 0.054001999999999994,\n        \"time\": 0.97309633122,\n        \"user\": 0.940471995\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n        \"max\": 0.97309633122,\n        \"mean\": 0.9516310450200001,\n        \"median\": 0.9471687822200001,\n        \"message\": \"LinePair format method\\n\",\n        \"min\": 0.93146803322,\n        \"stddev\": 0.016028424818636335,\n        \"system\": 0.054001999999999994,\n        \"time\": 0.9614399972200001,\n        \"user\": 0.940471995\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n        \"max\": 0.97309633122,\n        \"mean\": 0.9516310450200001,\n        \"median\": 0.9471687822200001,\n        \"message\": \"LinePair format method\\n\",\n        \"min\": 0.93146803322,\n        \"stddev\": 0.016028424818636335,\n        \"system\": 0.054001999999999994,\n        \"time\": 0.9471687822200001,\n        \"user\": 0.940471995\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n        \"max\": 0.97309633122,\n        \"mean\": 0.9516310450200001,\n        \"median\": 0.9471687822200001,\n        \"message\": \"LinePair format method\\n\",\n        \"min\": 0.93146803322,\n        \"stddev\": 0.016028424818636335,\n        \"system\": 0.054001999999999994,\n        \"time\": 0.93146803322,\n        \"user\": 0.940471995\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2bc03e5929facc8191c8dc2bd6600fd1f46aeed0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-2bc03e5929facc8191c8dc2bd6600fd1f46aeed0\",\n        \"max\": 0.97309633122,\n        \"mean\": 0.9516310450200001,\n        \"median\": 0.9471687822200001,\n        \"message\": \"LinePair format method\\n\",\n        \"min\": 0.93146803322,\n        \"stddev\": 0.016028424818636335,\n        \"system\": 0.054001999999999994,\n        \"time\": 0.94498208122,\n        \"user\": 0.940471995\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n        \"max\": 1.0884033605449999,\n        \"mean\": 1.074957940945,\n        \"median\": 1.0756182295449999,\n        \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n        \"min\": 1.061826013545,\n        \"stddev\": 0.009997649172831696,\n        \"system\": 0.05900446499999999,\n        \"time\": 1.0756182295449999,\n        \"user\": 1.0749870549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n        \"max\": 1.0884033605449999,\n        \"mean\": 1.074957940945,\n        \"median\": 1.0756182295449999,\n        \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n        \"min\": 1.061826013545,\n        \"stddev\": 0.009997649172831696,\n        \"system\": 0.05900446499999999,\n        \"time\": 1.061826013545,\n        \"user\": 1.0749870549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n        \"max\": 1.0884033605449999,\n        \"mean\": 1.074957940945,\n        \"median\": 1.0756182295449999,\n        \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n        \"min\": 1.061826013545,\n        \"stddev\": 0.009997649172831696,\n        \"system\": 0.05900446499999999,\n        \"time\": 1.0884033605449999,\n        \"user\": 1.0749870549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n        \"max\": 1.0884033605449999,\n        \"mean\": 1.074957940945,\n        \"median\": 1.0756182295449999,\n        \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n        \"min\": 1.061826013545,\n        \"stddev\": 0.009997649172831696,\n        \"system\": 0.05900446499999999,\n        \"time\": 1.079249911545,\n        \"user\": 1.0749870549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/31e2d555c534bca614b8b3f03fcd7f45ef5914b5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-31e2d555c534bca614b8b3f03fcd7f45ef5914b5\",\n        \"max\": 1.0884033605449999,\n        \"mean\": 1.074957940945,\n        \"median\": 1.0756182295449999,\n        \"message\": \"Add test: unequal numbers of minus and plus lines\\n\",\n        \"min\": 1.061826013545,\n        \"stddev\": 0.009997649172831696,\n        \"system\": 0.05900446499999999,\n        \"time\": 1.069692189545,\n        \"user\": 1.0749870549999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n        \"max\": 1.046937267265,\n        \"mean\": 1.0361849804649998,\n        \"median\": 1.036373550265,\n        \"message\": \"Interleavings\\n\",\n        \"min\": 1.019919557265,\n        \"stddev\": 0.011167720599289555,\n        \"system\": 0.056802660000000005,\n        \"time\": 1.046075168265,\n        \"user\": 1.037097875\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n        \"max\": 1.046937267265,\n        \"mean\": 1.0361849804649998,\n        \"median\": 1.036373550265,\n        \"message\": \"Interleavings\\n\",\n        \"min\": 1.019919557265,\n        \"stddev\": 0.011167720599289555,\n        \"system\": 0.056802660000000005,\n        \"time\": 1.0316193592649998,\n        \"user\": 1.037097875\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n        \"max\": 1.046937267265,\n        \"mean\": 1.0361849804649998,\n        \"median\": 1.036373550265,\n        \"message\": \"Interleavings\\n\",\n        \"min\": 1.019919557265,\n        \"stddev\": 0.011167720599289555,\n        \"system\": 0.056802660000000005,\n        \"time\": 1.046937267265,\n        \"user\": 1.037097875\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n        \"max\": 1.046937267265,\n        \"mean\": 1.0361849804649998,\n        \"median\": 1.036373550265,\n        \"message\": \"Interleavings\\n\",\n        \"min\": 1.019919557265,\n        \"stddev\": 0.011167720599289555,\n        \"system\": 0.056802660000000005,\n        \"time\": 1.036373550265,\n        \"user\": 1.037097875\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5b3a8fc79e867d175c894399f8d9f98765856f3c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-5b3a8fc79e867d175c894399f8d9f98765856f3c\",\n        \"max\": 1.046937267265,\n        \"mean\": 1.0361849804649998,\n        \"median\": 1.036373550265,\n        \"message\": \"Interleavings\\n\",\n        \"min\": 1.019919557265,\n        \"stddev\": 0.011167720599289555,\n        \"system\": 0.056802660000000005,\n        \"time\": 1.019919557265,\n        \"user\": 1.037097875\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n        \"max\": 1.076945783415,\n        \"mean\": 1.067523959015,\n        \"median\": 1.0650288594150001,\n        \"message\": \"Rename edit-related entities\\n\",\n        \"min\": 1.055029550415,\n        \"stddev\": 0.009082282301349514,\n        \"system\": 0.059104945,\n        \"time\": 1.0759356474150001,\n        \"user\": 1.0676536999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n        \"max\": 1.076945783415,\n        \"mean\": 1.067523959015,\n        \"median\": 1.0650288594150001,\n        \"message\": \"Rename edit-related entities\\n\",\n        \"min\": 1.055029550415,\n        \"stddev\": 0.009082282301349514,\n        \"system\": 0.059104945,\n        \"time\": 1.064679954415,\n        \"user\": 1.0676536999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n        \"max\": 1.076945783415,\n        \"mean\": 1.067523959015,\n        \"median\": 1.0650288594150001,\n        \"message\": \"Rename edit-related entities\\n\",\n        \"min\": 1.055029550415,\n        \"stddev\": 0.009082282301349514,\n        \"system\": 0.059104945,\n        \"time\": 1.076945783415,\n        \"user\": 1.0676536999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n        \"max\": 1.076945783415,\n        \"mean\": 1.067523959015,\n        \"median\": 1.0650288594150001,\n        \"message\": \"Rename edit-related entities\\n\",\n        \"min\": 1.055029550415,\n        \"stddev\": 0.009082282301349514,\n        \"system\": 0.059104945,\n        \"time\": 1.0650288594150001,\n        \"user\": 1.0676536999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b095f925745860ac815b63b566c68b0f9e97ea62 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-b095f925745860ac815b63b566c68b0f9e97ea62\",\n        \"max\": 1.076945783415,\n        \"mean\": 1.067523959015,\n        \"median\": 1.0650288594150001,\n        \"message\": \"Rename edit-related entities\\n\",\n        \"min\": 1.055029550415,\n        \"stddev\": 0.009082282301349514,\n        \"system\": 0.059104945,\n        \"time\": 1.055029550415,\n        \"user\": 1.0676536999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n        \"max\": 1.1001065083200001,\n        \"mean\": 1.0604578085200003,\n        \"median\": 1.05269898332,\n        \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n        \"min\": 1.04750135732,\n        \"stddev\": 0.02228714246937785,\n        \"system\": 0.057658804999999994,\n        \"time\": 1.0529329033200001,\n        \"user\": 1.0618972150000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n        \"max\": 1.1001065083200001,\n        \"mean\": 1.0604578085200003,\n        \"median\": 1.05269898332,\n        \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n        \"min\": 1.04750135732,\n        \"stddev\": 0.02228714246937785,\n        \"system\": 0.057658804999999994,\n        \"time\": 1.05269898332,\n        \"user\": 1.0618972150000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n        \"max\": 1.1001065083200001,\n        \"mean\": 1.0604578085200003,\n        \"median\": 1.05269898332,\n        \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n        \"min\": 1.04750135732,\n        \"stddev\": 0.02228714246937785,\n        \"system\": 0.057658804999999994,\n        \"time\": 1.04750135732,\n        \"user\": 1.0618972150000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n        \"max\": 1.1001065083200001,\n        \"mean\": 1.0604578085200003,\n        \"median\": 1.05269898332,\n        \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n        \"min\": 1.04750135732,\n        \"stddev\": 0.02228714246937785,\n        \"system\": 0.057658804999999994,\n        \"time\": 1.1001065083200001,\n        \"user\": 1.0618972150000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1a2f08bd2fd7332158f593526f5a5815f926775 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564364997-d1a2f08bd2fd7332158f593526f5a5815f926775\",\n        \"max\": 1.1001065083200001,\n        \"mean\": 1.0604578085200003,\n        \"median\": 1.05269898332,\n        \"message\": \"Greedy, worst-case quadratic algorithm\\n\",\n        \"min\": 1.04750135732,\n        \"stddev\": 0.02228714246937785,\n        \"system\": 0.057658804999999994,\n        \"time\": 1.04904929032,\n        \"user\": 1.0618972150000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n        \"max\": 1.08144625149,\n        \"mean\": 1.06946043409,\n        \"median\": 1.07066281649,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.05964581549,\n        \"stddev\": 0.008316819138596505,\n        \"system\": 0.060287335,\n        \"time\": 1.07161780249,\n        \"user\": 1.0676449399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n        \"max\": 1.08144625149,\n        \"mean\": 1.06946043409,\n        \"median\": 1.07066281649,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.05964581549,\n        \"stddev\": 0.008316819138596505,\n        \"system\": 0.060287335,\n        \"time\": 1.06392948449,\n        \"user\": 1.0676449399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n        \"max\": 1.08144625149,\n        \"mean\": 1.06946043409,\n        \"median\": 1.07066281649,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.05964581549,\n        \"stddev\": 0.008316819138596505,\n        \"system\": 0.060287335,\n        \"time\": 1.05964581549,\n        \"user\": 1.0676449399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n        \"max\": 1.08144625149,\n        \"mean\": 1.06946043409,\n        \"median\": 1.07066281649,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.05964581549,\n        \"stddev\": 0.008316819138596505,\n        \"system\": 0.060287335,\n        \"time\": 1.07066281649,\n        \"user\": 1.0676449399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/12ff66aaae3fa08b569d1e4424a5c488fe1b33fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564365393-12ff66aaae3fa08b569d1e4424a5c488fe1b33fb\",\n        \"max\": 1.08144625149,\n        \"mean\": 1.06946043409,\n        \"median\": 1.07066281649,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.05964581549,\n        \"stddev\": 0.008316819138596505,\n        \"system\": 0.060287335,\n        \"time\": 1.08144625149,\n        \"user\": 1.0676449399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n        \"max\": 1.0912961541800001,\n        \"mean\": 1.0788756645800004,\n        \"median\": 1.0778017801800002,\n        \"message\": \"Release hash make target\\n\",\n        \"min\": 1.06831743018,\n        \"stddev\": 0.008374972602180798,\n        \"system\": 0.06023070500000001,\n        \"time\": 1.06831743018,\n        \"user\": 1.078148575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n        \"max\": 1.0912961541800001,\n        \"mean\": 1.0788756645800004,\n        \"median\": 1.0778017801800002,\n        \"message\": \"Release hash make target\\n\",\n        \"min\": 1.06831743018,\n        \"stddev\": 0.008374972602180798,\n        \"system\": 0.06023070500000001,\n        \"time\": 1.07589770318,\n        \"user\": 1.078148575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n        \"max\": 1.0912961541800001,\n        \"mean\": 1.0788756645800004,\n        \"median\": 1.0778017801800002,\n        \"message\": \"Release hash make target\\n\",\n        \"min\": 1.06831743018,\n        \"stddev\": 0.008374972602180798,\n        \"system\": 0.06023070500000001,\n        \"time\": 1.0912961541800001,\n        \"user\": 1.078148575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n        \"max\": 1.0912961541800001,\n        \"mean\": 1.0788756645800004,\n        \"median\": 1.0778017801800002,\n        \"message\": \"Release hash make target\\n\",\n        \"min\": 1.06831743018,\n        \"stddev\": 0.008374972602180798,\n        \"system\": 0.06023070500000001,\n        \"time\": 1.0778017801800002,\n        \"user\": 1.078148575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/888895c3bfcb786930320c85dc4589bbb9af85ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369378-888895c3bfcb786930320c85dc4589bbb9af85ec\",\n        \"max\": 1.0912961541800001,\n        \"mean\": 1.0788756645800004,\n        \"median\": 1.0778017801800002,\n        \"message\": \"Release hash make target\\n\",\n        \"min\": 1.06831743018,\n        \"stddev\": 0.008374972602180798,\n        \"system\": 0.06023070500000001,\n        \"time\": 1.0810652551800002,\n        \"user\": 1.078148575\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n        \"max\": 1.101487234855,\n        \"mean\": 1.0776584580550002,\n        \"median\": 1.074193729855,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0661387518549998,\n        \"stddev\": 0.014484994841342143,\n        \"system\": 0.06014716499999999,\n        \"time\": 1.074193729855,\n        \"user\": 1.0732853949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n        \"max\": 1.101487234855,\n        \"mean\": 1.0776584580550002,\n        \"median\": 1.074193729855,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0661387518549998,\n        \"stddev\": 0.014484994841342143,\n        \"system\": 0.06014716499999999,\n        \"time\": 1.0798555968549999,\n        \"user\": 1.0732853949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n        \"max\": 1.101487234855,\n        \"mean\": 1.0776584580550002,\n        \"median\": 1.074193729855,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0661387518549998,\n        \"stddev\": 0.014484994841342143,\n        \"system\": 0.06014716499999999,\n        \"time\": 1.066616976855,\n        \"user\": 1.0732853949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n        \"max\": 1.101487234855,\n        \"mean\": 1.0776584580550002,\n        \"median\": 1.074193729855,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0661387518549998,\n        \"stddev\": 0.014484994841342143,\n        \"system\": 0.06014716499999999,\n        \"time\": 1.101487234855,\n        \"user\": 1.0732853949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564369390-a8bdc88ac2a3e4837ca109d6c46516c5cd303ef0\",\n        \"max\": 1.101487234855,\n        \"mean\": 1.0776584580550002,\n        \"median\": 1.074193729855,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.0661387518549998,\n        \"stddev\": 0.014484994841342143,\n        \"system\": 0.06014716499999999,\n        \"time\": 1.0661387518549998,\n        \"user\": 1.0732853949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n        \"max\": 1.8356967980000003,\n        \"mean\": 1.2897377238,\n        \"median\": 1.2261456450000001,\n        \"message\": \"Tweak dark theme plus colors\\n\",\n        \"min\": 1.073488927,\n        \"stddev\": 0.31534955307993895,\n        \"system\": 0.079240225,\n        \"time\": 1.2261456450000001,\n        \"user\": 1.2064280749999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n        \"max\": 1.8356967980000003,\n        \"mean\": 1.2897377238,\n        \"median\": 1.2261456450000001,\n        \"message\": \"Tweak dark theme plus colors\\n\",\n        \"min\": 1.073488927,\n        \"stddev\": 0.31534955307993895,\n        \"system\": 0.079240225,\n        \"time\": 1.8356967980000003,\n        \"user\": 1.2064280749999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n        \"max\": 1.8356967980000003,\n        \"mean\": 1.2897377238,\n        \"median\": 1.2261456450000001,\n        \"message\": \"Tweak dark theme plus colors\\n\",\n        \"min\": 1.073488927,\n        \"stddev\": 0.31534955307993895,\n        \"system\": 0.079240225,\n        \"time\": 1.2388160380000002,\n        \"user\": 1.2064280749999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n        \"max\": 1.8356967980000003,\n        \"mean\": 1.2897377238,\n        \"median\": 1.2261456450000001,\n        \"message\": \"Tweak dark theme plus colors\\n\",\n        \"min\": 1.073488927,\n        \"stddev\": 0.31534955307993895,\n        \"system\": 0.079240225,\n        \"time\": 1.074541211,\n        \"user\": 1.2064280749999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60d50a7dda4c93fa1e2e114ac689b29b2eead44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564410818-e60d50a7dda4c93fa1e2e114ac689b29b2eead44\",\n        \"max\": 1.8356967980000003,\n        \"mean\": 1.2897377238,\n        \"median\": 1.2261456450000001,\n        \"message\": \"Tweak dark theme plus colors\\n\",\n        \"min\": 1.073488927,\n        \"stddev\": 0.31534955307993895,\n        \"system\": 0.079240225,\n        \"time\": 1.073488927,\n        \"user\": 1.2064280749999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n        \"max\": 1.11679057761,\n        \"mean\": 1.0780472036100002,\n        \"median\": 1.06766268861,\n        \"message\": \"Tweak styling of file metadata\\n\",\n        \"min\": 1.05878387361,\n        \"stddev\": 0.02310328608449384,\n        \"system\": 0.06379011500000001,\n        \"time\": 1.11679057761,\n        \"user\": 1.0755788149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n        \"max\": 1.11679057761,\n        \"mean\": 1.0780472036100002,\n        \"median\": 1.06766268861,\n        \"message\": \"Tweak styling of file metadata\\n\",\n        \"min\": 1.05878387361,\n        \"stddev\": 0.02310328608449384,\n        \"system\": 0.06379011500000001,\n        \"time\": 1.08103999361,\n        \"user\": 1.0755788149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n        \"max\": 1.11679057761,\n        \"mean\": 1.0780472036100002,\n        \"median\": 1.06766268861,\n        \"message\": \"Tweak styling of file metadata\\n\",\n        \"min\": 1.05878387361,\n        \"stddev\": 0.02310328608449384,\n        \"system\": 0.06379011500000001,\n        \"time\": 1.0659588846099999,\n        \"user\": 1.0755788149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n        \"max\": 1.11679057761,\n        \"mean\": 1.0780472036100002,\n        \"median\": 1.06766268861,\n        \"message\": \"Tweak styling of file metadata\\n\",\n        \"min\": 1.05878387361,\n        \"stddev\": 0.02310328608449384,\n        \"system\": 0.06379011500000001,\n        \"time\": 1.06766268861,\n        \"user\": 1.0755788149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7daad7d7c06dd65f51660ed473686c0bfa331d56 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415313-7daad7d7c06dd65f51660ed473686c0bfa331d56\",\n        \"max\": 1.11679057761,\n        \"mean\": 1.0780472036100002,\n        \"median\": 1.06766268861,\n        \"message\": \"Tweak styling of file metadata\\n\",\n        \"min\": 1.05878387361,\n        \"stddev\": 0.02310328608449384,\n        \"system\": 0.06379011500000001,\n        \"time\": 1.05878387361,\n        \"user\": 1.0755788149999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n        \"max\": 1.511451679455,\n        \"mean\": 1.2184550386550002,\n        \"median\": 1.077058337455,\n        \"message\": \"Suppress new lines in debugging utility\\n\",\n        \"min\": 1.062442061455,\n        \"stddev\": 0.2099331588899277,\n        \"system\": 0.075925885,\n        \"time\": 1.077058337455,\n        \"user\": 1.15790619\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n        \"max\": 1.511451679455,\n        \"mean\": 1.2184550386550002,\n        \"median\": 1.077058337455,\n        \"message\": \"Suppress new lines in debugging utility\\n\",\n        \"min\": 1.062442061455,\n        \"stddev\": 0.2099331588899277,\n        \"system\": 0.075925885,\n        \"time\": 1.062442061455,\n        \"user\": 1.15790619\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n        \"max\": 1.511451679455,\n        \"mean\": 1.2184550386550002,\n        \"median\": 1.077058337455,\n        \"message\": \"Suppress new lines in debugging utility\\n\",\n        \"min\": 1.062442061455,\n        \"stddev\": 0.2099331588899277,\n        \"system\": 0.075925885,\n        \"time\": 1.0688427844550001,\n        \"user\": 1.15790619\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n        \"max\": 1.511451679455,\n        \"mean\": 1.2184550386550002,\n        \"median\": 1.077058337455,\n        \"message\": \"Suppress new lines in debugging utility\\n\",\n        \"min\": 1.062442061455,\n        \"stddev\": 0.2099331588899277,\n        \"system\": 0.075925885,\n        \"time\": 1.3724803304550002,\n        \"user\": 1.15790619\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bf8db066c9a7f65be987aa681f46e7b17f70feaf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-bf8db066c9a7f65be987aa681f46e7b17f70feaf\",\n        \"max\": 1.511451679455,\n        \"mean\": 1.2184550386550002,\n        \"median\": 1.077058337455,\n        \"message\": \"Suppress new lines in debugging utility\\n\",\n        \"min\": 1.062442061455,\n        \"stddev\": 0.2099331588899277,\n        \"system\": 0.075925885,\n        \"time\": 1.511451679455,\n        \"user\": 1.15790619\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n        \"max\": 1.117992449625,\n        \"mean\": 1.0817426558250003,\n        \"median\": 1.0723289816250001,\n        \"message\": \"Edits: unit test of real bug\\n\",\n        \"min\": 1.066419235625,\n        \"stddev\": 0.021309309477674943,\n        \"system\": 0.062805775,\n        \"time\": 1.117992449625,\n        \"user\": 1.0809388599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n        \"max\": 1.117992449625,\n        \"mean\": 1.0817426558250003,\n        \"median\": 1.0723289816250001,\n        \"message\": \"Edits: unit test of real bug\\n\",\n        \"min\": 1.066419235625,\n        \"stddev\": 0.021309309477674943,\n        \"system\": 0.062805775,\n        \"time\": 1.066419235625,\n        \"user\": 1.0809388599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n        \"max\": 1.117992449625,\n        \"mean\": 1.0817426558250003,\n        \"median\": 1.0723289816250001,\n        \"message\": \"Edits: unit test of real bug\\n\",\n        \"min\": 1.066419235625,\n        \"stddev\": 0.021309309477674943,\n        \"system\": 0.062805775,\n        \"time\": 1.0834897566250001,\n        \"user\": 1.0809388599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n        \"max\": 1.117992449625,\n        \"mean\": 1.0817426558250003,\n        \"median\": 1.0723289816250001,\n        \"message\": \"Edits: unit test of real bug\\n\",\n        \"min\": 1.066419235625,\n        \"stddev\": 0.021309309477674943,\n        \"system\": 0.062805775,\n        \"time\": 1.0684828556250001,\n        \"user\": 1.0809388599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e9378628a65f998c69ae6f087097ee3051c18889 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564415316-e9378628a65f998c69ae6f087097ee3051c18889\",\n        \"max\": 1.117992449625,\n        \"mean\": 1.0817426558250003,\n        \"median\": 1.0723289816250001,\n        \"message\": \"Edits: unit test of real bug\\n\",\n        \"min\": 1.066419235625,\n        \"stddev\": 0.021309309477674943,\n        \"system\": 0.062805775,\n        \"time\": 1.0723289816250001,\n        \"user\": 1.0809388599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n        \"max\": 1.16076605817,\n        \"mean\": 1.11418777437,\n        \"median\": 1.10908853317,\n        \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n        \"min\": 1.07274918217,\n        \"stddev\": 0.036936913873595496,\n        \"system\": 0.06916711,\n        \"time\": 1.16076605817,\n        \"user\": 1.10255335\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n        \"max\": 1.16076605817,\n        \"mean\": 1.11418777437,\n        \"median\": 1.10908853317,\n        \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n        \"min\": 1.07274918217,\n        \"stddev\": 0.036936913873595496,\n        \"system\": 0.06916711,\n        \"time\": 1.14195824817,\n        \"user\": 1.10255335\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n        \"max\": 1.16076605817,\n        \"mean\": 1.11418777437,\n        \"median\": 1.10908853317,\n        \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n        \"min\": 1.07274918217,\n        \"stddev\": 0.036936913873595496,\n        \"system\": 0.06916711,\n        \"time\": 1.08637685017,\n        \"user\": 1.10255335\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n        \"max\": 1.16076605817,\n        \"mean\": 1.11418777437,\n        \"median\": 1.10908853317,\n        \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n        \"min\": 1.07274918217,\n        \"stddev\": 0.036936913873595496,\n        \"system\": 0.06916711,\n        \"time\": 1.10908853317,\n        \"user\": 1.10255335\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a5c239b87f4d70eccffe72b037ddf987009008a8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416119-a5c239b87f4d70eccffe72b037ddf987009008a8\",\n        \"max\": 1.16076605817,\n        \"mean\": 1.11418777437,\n        \"median\": 1.10908853317,\n        \"message\": \"Count leading whitespace when computing common prefix\\n\\nThis change allows change_begin to differ between minus and plus\\nlines, in the case where they have different amounts of leading whitespace.\\n\",\n        \"min\": 1.07274918217,\n        \"stddev\": 0.036936913873595496,\n        \"system\": 0.06916711,\n        \"time\": 1.07274918217,\n        \"user\": 1.10255335\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n        \"max\": 1.09338621903,\n        \"mean\": 1.08108464963,\n        \"median\": 1.07691352703,\n        \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n        \"min\": 1.07315870303,\n        \"stddev\": 0.008322959019187583,\n        \"system\": 0.063061855,\n        \"time\": 1.09338621903,\n        \"user\": 1.08201391\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n        \"max\": 1.09338621903,\n        \"mean\": 1.08108464963,\n        \"median\": 1.07691352703,\n        \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n        \"min\": 1.07315870303,\n        \"stddev\": 0.008322959019187583,\n        \"system\": 0.063061855,\n        \"time\": 1.08575304803,\n        \"user\": 1.08201391\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n        \"max\": 1.09338621903,\n        \"mean\": 1.08108464963,\n        \"median\": 1.07691352703,\n        \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n        \"min\": 1.07315870303,\n        \"stddev\": 0.008322959019187583,\n        \"system\": 0.063061855,\n        \"time\": 1.07621175103,\n        \"user\": 1.08201391\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n        \"max\": 1.09338621903,\n        \"mean\": 1.08108464963,\n        \"median\": 1.07691352703,\n        \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n        \"min\": 1.07315870303,\n        \"stddev\": 0.008322959019187583,\n        \"system\": 0.063061855,\n        \"time\": 1.07691352703,\n        \"user\": 1.08201391\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8ca97ae30c177a4111969b8cd7612988071e13dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564416623-8ca97ae30c177a4111969b8cd7612988071e13dd\",\n        \"max\": 1.09338621903,\n        \"mean\": 1.08108464963,\n        \"median\": 1.07691352703,\n        \"message\": \"Exclude leading whitespace in edit distance calculation\\n\",\n        \"min\": 1.07315870303,\n        \"stddev\": 0.008322959019187583,\n        \"system\": 0.063061855,\n        \"time\": 1.07315870303,\n        \"user\": 1.08201391\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n        \"max\": 1.09669329545,\n        \"mean\": 1.08093708205,\n        \"median\": 1.0775715204499998,\n        \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n        \"min\": 1.0691630884499999,\n        \"stddev\": 0.010238792969132347,\n        \"system\": 0.06308591,\n        \"time\": 1.09669329545,\n        \"user\": 1.077160525\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n        \"max\": 1.09669329545,\n        \"mean\": 1.08093708205,\n        \"median\": 1.0775715204499998,\n        \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n        \"min\": 1.0691630884499999,\n        \"stddev\": 0.010238792969132347,\n        \"system\": 0.06308591,\n        \"time\": 1.08386365645,\n        \"user\": 1.077160525\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n        \"max\": 1.09669329545,\n        \"mean\": 1.08093708205,\n        \"median\": 1.0775715204499998,\n        \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n        \"min\": 1.0691630884499999,\n        \"stddev\": 0.010238792969132347,\n        \"system\": 0.06308591,\n        \"time\": 1.0691630884499999,\n        \"user\": 1.077160525\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n        \"max\": 1.09669329545,\n        \"mean\": 1.08093708205,\n        \"median\": 1.0775715204499998,\n        \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n        \"min\": 1.0691630884499999,\n        \"stddev\": 0.010238792969132347,\n        \"system\": 0.06308591,\n        \"time\": 1.07739384945,\n        \"user\": 1.077160525\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1bfd17539cba33589e07827f9e577d3d9ced018e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1564706164-1bfd17539cba33589e07827f9e577d3d9ced018e\",\n        \"max\": 1.09669329545,\n        \"mean\": 1.08093708205,\n        \"median\": 1.0775715204499998,\n        \"message\": \"Add GraphQL to syntax definitions\\n\\nhttps://github.com/dncrews/GraphQL-SublimeText3\\n\",\n        \"min\": 1.0691630884499999,\n        \"stddev\": 0.010238792969132347,\n        \"system\": 0.06308591,\n        \"time\": 1.0775715204499998,\n        \"user\": 1.077160525\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n        \"max\": 1.890421234655,\n        \"mean\": 1.839680475655,\n        \"median\": 1.8737948396550002,\n        \"message\": \"Clean up distance-metrics\\n\",\n        \"min\": 1.7557470726550002,\n        \"stddev\": 0.06268163714427763,\n        \"system\": 0.07444002,\n        \"time\": 1.890421234655,\n        \"user\": 1.81711088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n        \"max\": 1.890421234655,\n        \"mean\": 1.839680475655,\n        \"median\": 1.8737948396550002,\n        \"message\": \"Clean up distance-metrics\\n\",\n        \"min\": 1.7557470726550002,\n        \"stddev\": 0.06268163714427763,\n        \"system\": 0.07444002,\n        \"time\": 1.7895592936550002,\n        \"user\": 1.81711088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n        \"max\": 1.890421234655,\n        \"mean\": 1.839680475655,\n        \"median\": 1.8737948396550002,\n        \"message\": \"Clean up distance-metrics\\n\",\n        \"min\": 1.7557470726550002,\n        \"stddev\": 0.06268163714427763,\n        \"system\": 0.07444002,\n        \"time\": 1.8888799376550003,\n        \"user\": 1.81711088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n        \"max\": 1.890421234655,\n        \"mean\": 1.839680475655,\n        \"median\": 1.8737948396550002,\n        \"message\": \"Clean up distance-metrics\\n\",\n        \"min\": 1.7557470726550002,\n        \"stddev\": 0.06268163714427763,\n        \"system\": 0.07444002,\n        \"time\": 1.7557470726550002,\n        \"user\": 1.81711088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/130029449c1048dc1ea409a3094f1a64e3092249 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-130029449c1048dc1ea409a3094f1a64e3092249\",\n        \"max\": 1.890421234655,\n        \"mean\": 1.839680475655,\n        \"median\": 1.8737948396550002,\n        \"message\": \"Clean up distance-metrics\\n\",\n        \"min\": 1.7557470726550002,\n        \"stddev\": 0.06268163714427763,\n        \"system\": 0.07444002,\n        \"time\": 1.8737948396550002,\n        \"user\": 1.81711088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n        \"max\": 1.4350577286400001,\n        \"mean\": 1.38208374564,\n        \"median\": 1.36738143764,\n        \"message\": \"Change tokenization algorithm\\n\",\n        \"min\": 1.35162089564,\n        \"stddev\": 0.035582523221737036,\n        \"system\": 0.063211345,\n        \"time\": 1.40145581264,\n        \"user\": 1.3758691399999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n        \"max\": 1.4350577286400001,\n        \"mean\": 1.38208374564,\n        \"median\": 1.36738143764,\n        \"message\": \"Change tokenization algorithm\\n\",\n        \"min\": 1.35162089564,\n        \"stddev\": 0.035582523221737036,\n        \"system\": 0.063211345,\n        \"time\": 1.4350577286400001,\n        \"user\": 1.3758691399999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n        \"max\": 1.4350577286400001,\n        \"mean\": 1.38208374564,\n        \"median\": 1.36738143764,\n        \"message\": \"Change tokenization algorithm\\n\",\n        \"min\": 1.35162089564,\n        \"stddev\": 0.035582523221737036,\n        \"system\": 0.063211345,\n        \"time\": 1.36738143764,\n        \"user\": 1.3758691399999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n        \"max\": 1.4350577286400001,\n        \"mean\": 1.38208374564,\n        \"median\": 1.36738143764,\n        \"message\": \"Change tokenization algorithm\\n\",\n        \"min\": 1.35162089564,\n        \"stddev\": 0.035582523221737036,\n        \"system\": 0.063211345,\n        \"time\": 1.35490285364,\n        \"user\": 1.3758691399999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8db9a7a786525e560985786448783d234ba9c2cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565158260-8db9a7a786525e560985786448783d234ba9c2cd\",\n        \"max\": 1.4350577286400001,\n        \"mean\": 1.38208374564,\n        \"median\": 1.36738143764,\n        \"message\": \"Change tokenization algorithm\\n\",\n        \"min\": 1.35162089564,\n        \"stddev\": 0.035582523221737036,\n        \"system\": 0.063211345,\n        \"time\": 1.35162089564,\n        \"user\": 1.3758691399999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n        \"max\": 1.608484694355,\n        \"mean\": 1.551365087355,\n        \"median\": 1.5627601633550001,\n        \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n        \"min\": 1.500142921355,\n        \"stddev\": 0.04599551229119883,\n        \"system\": 0.06583958999999999,\n        \"time\": 1.500142921355,\n        \"user\": 1.5393822949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n        \"max\": 1.608484694355,\n        \"mean\": 1.551365087355,\n        \"median\": 1.5627601633550001,\n        \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n        \"min\": 1.500142921355,\n        \"stddev\": 0.04599551229119883,\n        \"system\": 0.06583958999999999,\n        \"time\": 1.508832065355,\n        \"user\": 1.5393822949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n        \"max\": 1.608484694355,\n        \"mean\": 1.551365087355,\n        \"median\": 1.5627601633550001,\n        \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n        \"min\": 1.500142921355,\n        \"stddev\": 0.04599551229119883,\n        \"system\": 0.06583958999999999,\n        \"time\": 1.5627601633550001,\n        \"user\": 1.5393822949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n        \"max\": 1.608484694355,\n        \"mean\": 1.551365087355,\n        \"median\": 1.5627601633550001,\n        \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n        \"min\": 1.500142921355,\n        \"stddev\": 0.04599551229119883,\n        \"system\": 0.06583958999999999,\n        \"time\": 1.576605592355,\n        \"user\": 1.5393822949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0186fbee4f14f84e2ab916bd183e0bc7492cf794 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-0186fbee4f14f84e2ab916bd183e0bc7492cf794\",\n        \"max\": 1.608484694355,\n        \"mean\": 1.551365087355,\n        \"median\": 1.5627601633550001,\n        \"message\": \"Don't right-pad and newline-terminate lines before alignment\\n\\nThe --width feature is broken at this commit\\n\",\n        \"min\": 1.500142921355,\n        \"stddev\": 0.04599551229119883,\n        \"system\": 0.06583958999999999,\n        \"time\": 1.608484694355,\n        \"user\": 1.5393822949999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n        \"max\": 1.401082828415,\n        \"mean\": 1.394299513815,\n        \"median\": 1.3952252414150002,\n        \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n        \"min\": 1.3834161894149999,\n        \"stddev\": 0.0067494589709079155,\n        \"system\": 0.056580845000000005,\n        \"time\": 1.3952252414150002,\n        \"user\": 1.390004735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n        \"max\": 1.401082828415,\n        \"mean\": 1.394299513815,\n        \"median\": 1.3952252414150002,\n        \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n        \"min\": 1.3834161894149999,\n        \"stddev\": 0.0067494589709079155,\n        \"system\": 0.056580845000000005,\n        \"time\": 1.401082828415,\n        \"user\": 1.390004735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n        \"max\": 1.401082828415,\n        \"mean\": 1.394299513815,\n        \"median\": 1.3952252414150002,\n        \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n        \"min\": 1.3834161894149999,\n        \"stddev\": 0.0067494589709079155,\n        \"system\": 0.056580845000000005,\n        \"time\": 1.398322396415,\n        \"user\": 1.390004735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n        \"max\": 1.401082828415,\n        \"mean\": 1.394299513815,\n        \"median\": 1.3952252414150002,\n        \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n        \"min\": 1.3834161894149999,\n        \"stddev\": 0.0067494589709079155,\n        \"system\": 0.056580845000000005,\n        \"time\": 1.393450913415,\n        \"user\": 1.390004735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd2fba3c8a06c796509b5d854cbb111b8eeb69ef < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160231-fd2fba3c8a06c796509b5d854cbb111b8eeb69ef\",\n        \"max\": 1.401082828415,\n        \"mean\": 1.394299513815,\n        \"median\": 1.3952252414150002,\n        \"message\": \"Ignore whitespace in tokens when computing distance\\n\",\n        \"min\": 1.3834161894149999,\n        \"stddev\": 0.0067494589709079155,\n        \"system\": 0.056580845000000005,\n        \"time\": 1.3834161894149999,\n        \"user\": 1.390004735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n        \"max\": 1.45539736432,\n        \"mean\": 1.4182567109200002,\n        \"median\": 1.40469210132,\n        \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n        \"min\": 1.4004749563199999,\n        \"stddev\": 0.023532768118342456,\n        \"system\": 0.058091569999999995,\n        \"time\": 1.42798415032,\n        \"user\": 1.412673735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n        \"max\": 1.45539736432,\n        \"mean\": 1.4182567109200002,\n        \"median\": 1.40469210132,\n        \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n        \"min\": 1.4004749563199999,\n        \"stddev\": 0.023532768118342456,\n        \"system\": 0.058091569999999995,\n        \"time\": 1.40469210132,\n        \"user\": 1.412673735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n        \"max\": 1.45539736432,\n        \"mean\": 1.4182567109200002,\n        \"median\": 1.40469210132,\n        \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n        \"min\": 1.4004749563199999,\n        \"stddev\": 0.023532768118342456,\n        \"system\": 0.058091569999999995,\n        \"time\": 1.4004749563199999,\n        \"user\": 1.412673735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n        \"max\": 1.45539736432,\n        \"mean\": 1.4182567109200002,\n        \"median\": 1.40469210132,\n        \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n        \"min\": 1.4004749563199999,\n        \"stddev\": 0.023532768118342456,\n        \"system\": 0.058091569999999995,\n        \"time\": 1.40273498232,\n        \"user\": 1.412673735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fc9041d5368a071a188f43f05c47c82b6c0ca385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160304-fc9041d5368a071a188f43f05c47c82b6c0ca385\",\n        \"max\": 1.45539736432,\n        \"mean\": 1.4182567109200002,\n        \"median\": 1.40469210132,\n        \"message\": \"Update tests\\n\\n- Fix tests\\n- Reproduce bug: short string vs long\\n\",\n        \"min\": 1.4004749563199999,\n        \"stddev\": 0.023532768118342456,\n        \"system\": 0.058091569999999995,\n        \"time\": 1.45539736432,\n        \"user\": 1.412673735\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n        \"max\": 1.4579623372150001,\n        \"mean\": 1.4285062858150002,\n        \"median\": 1.429565405215,\n        \"message\": \"Fix tests\\n\",\n        \"min\": 1.405910749215,\n        \"stddev\": 0.021356383739036273,\n        \"system\": 0.06354424,\n        \"time\": 1.429565405215,\n        \"user\": 1.41690106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n        \"max\": 1.4579623372150001,\n        \"mean\": 1.4285062858150002,\n        \"median\": 1.429565405215,\n        \"message\": \"Fix tests\\n\",\n        \"min\": 1.405910749215,\n        \"stddev\": 0.021356383739036273,\n        \"system\": 0.06354424,\n        \"time\": 1.438928423215,\n        \"user\": 1.41690106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n        \"max\": 1.4579623372150001,\n        \"mean\": 1.4285062858150002,\n        \"median\": 1.429565405215,\n        \"message\": \"Fix tests\\n\",\n        \"min\": 1.405910749215,\n        \"stddev\": 0.021356383739036273,\n        \"system\": 0.06354424,\n        \"time\": 1.4101645142149999,\n        \"user\": 1.41690106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n        \"max\": 1.4579623372150001,\n        \"mean\": 1.4285062858150002,\n        \"median\": 1.429565405215,\n        \"message\": \"Fix tests\\n\",\n        \"min\": 1.405910749215,\n        \"stddev\": 0.021356383739036273,\n        \"system\": 0.06354424,\n        \"time\": 1.405910749215,\n        \"user\": 1.41690106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/402eace86e579e9666eb879f3637f0c5d09d6c05 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-402eace86e579e9666eb879f3637f0c5d09d6c05\",\n        \"max\": 1.4579623372150001,\n        \"mean\": 1.4285062858150002,\n        \"median\": 1.429565405215,\n        \"message\": \"Fix tests\\n\",\n        \"min\": 1.405910749215,\n        \"stddev\": 0.021356383739036273,\n        \"system\": 0.06354424,\n        \"time\": 1.4579623372150001,\n        \"user\": 1.41690106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n        \"max\": 1.49252457683,\n        \"mean\": 1.4476667384300002,\n        \"median\": 1.45978158883,\n        \"message\": \"Use alignment to annotate line pair\\n\",\n        \"min\": 1.40593207383,\n        \"stddev\": 0.03790045223510938,\n        \"system\": 0.06409549,\n        \"time\": 1.46944926483,\n        \"user\": 1.4353083299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n        \"max\": 1.49252457683,\n        \"mean\": 1.4476667384300002,\n        \"median\": 1.45978158883,\n        \"message\": \"Use alignment to annotate line pair\\n\",\n        \"min\": 1.40593207383,\n        \"stddev\": 0.03790045223510938,\n        \"system\": 0.06409549,\n        \"time\": 1.40593207383,\n        \"user\": 1.4353083299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n        \"max\": 1.49252457683,\n        \"mean\": 1.4476667384300002,\n        \"median\": 1.45978158883,\n        \"message\": \"Use alignment to annotate line pair\\n\",\n        \"min\": 1.40593207383,\n        \"stddev\": 0.03790045223510938,\n        \"system\": 0.06409549,\n        \"time\": 1.45978158883,\n        \"user\": 1.4353083299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n        \"max\": 1.49252457683,\n        \"mean\": 1.4476667384300002,\n        \"median\": 1.45978158883,\n        \"message\": \"Use alignment to annotate line pair\\n\",\n        \"min\": 1.40593207383,\n        \"stddev\": 0.03790045223510938,\n        \"system\": 0.06409549,\n        \"time\": 1.49252457683,\n        \"user\": 1.4353083299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6369e3ced7fd027470d1a2455820c786663d0ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565160344-6369e3ced7fd027470d1a2455820c786663d0ec8\",\n        \"max\": 1.49252457683,\n        \"mean\": 1.4476667384300002,\n        \"median\": 1.45978158883,\n        \"message\": \"Use alignment to annotate line pair\\n\",\n        \"min\": 1.40593207383,\n        \"stddev\": 0.03790045223510938,\n        \"system\": 0.06409549,\n        \"time\": 1.41064618783,\n        \"user\": 1.4353083299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n        \"max\": 1.420639748245,\n        \"mean\": 1.399619065045,\n        \"median\": 1.3969602782450001,\n        \"message\": \"Move run-length encoding\\n\",\n        \"min\": 1.386568210245,\n        \"stddev\": 0.014475683562826325,\n        \"system\": 0.063454375,\n        \"time\": 1.420639748245,\n        \"user\": 1.3839092149999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n        \"max\": 1.420639748245,\n        \"mean\": 1.399619065045,\n        \"median\": 1.3969602782450001,\n        \"message\": \"Move run-length encoding\\n\",\n        \"min\": 1.386568210245,\n        \"stddev\": 0.014475683562826325,\n        \"system\": 0.063454375,\n        \"time\": 1.386568210245,\n        \"user\": 1.3839092149999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n        \"max\": 1.420639748245,\n        \"mean\": 1.399619065045,\n        \"median\": 1.3969602782450001,\n        \"message\": \"Move run-length encoding\\n\",\n        \"min\": 1.386568210245,\n        \"stddev\": 0.014475683562826325,\n        \"system\": 0.063454375,\n        \"time\": 1.407083203245,\n        \"user\": 1.3839092149999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n        \"max\": 1.420639748245,\n        \"mean\": 1.399619065045,\n        \"median\": 1.3969602782450001,\n        \"message\": \"Move run-length encoding\\n\",\n        \"min\": 1.386568210245,\n        \"stddev\": 0.014475683562826325,\n        \"system\": 0.063454375,\n        \"time\": 1.3969602782450001,\n        \"user\": 1.3839092149999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/64001cfbd1543fe0bc8de45e7670ddc46c7d8385 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565194827-64001cfbd1543fe0bc8de45e7670ddc46c7d8385\",\n        \"max\": 1.420639748245,\n        \"mean\": 1.399619065045,\n        \"median\": 1.3969602782450001,\n        \"message\": \"Move run-length encoding\\n\",\n        \"min\": 1.386568210245,\n        \"stddev\": 0.014475683562826325,\n        \"system\": 0.063454375,\n        \"time\": 1.386843885245,\n        \"user\": 1.3839092149999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n        \"max\": 1.43633462241,\n        \"mean\": 1.4193672652100002,\n        \"median\": 1.41348009641,\n        \"message\": \"Compute distance in annotation routine\\n\",\n        \"min\": 1.40206449441,\n        \"stddev\": 0.014753758481636242,\n        \"system\": 0.05827373499999999,\n        \"time\": 1.43318830541,\n        \"user\": 1.4130733450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n        \"max\": 1.43633462241,\n        \"mean\": 1.4193672652100002,\n        \"median\": 1.41348009641,\n        \"message\": \"Compute distance in annotation routine\\n\",\n        \"min\": 1.40206449441,\n        \"stddev\": 0.014753758481636242,\n        \"system\": 0.05827373499999999,\n        \"time\": 1.41176880741,\n        \"user\": 1.4130733450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n        \"max\": 1.43633462241,\n        \"mean\": 1.4193672652100002,\n        \"median\": 1.41348009641,\n        \"message\": \"Compute distance in annotation routine\\n\",\n        \"min\": 1.40206449441,\n        \"stddev\": 0.014753758481636242,\n        \"system\": 0.05827373499999999,\n        \"time\": 1.41348009641,\n        \"user\": 1.4130733450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n        \"max\": 1.43633462241,\n        \"mean\": 1.4193672652100002,\n        \"median\": 1.41348009641,\n        \"message\": \"Compute distance in annotation routine\\n\",\n        \"min\": 1.40206449441,\n        \"stddev\": 0.014753758481636242,\n        \"system\": 0.05827373499999999,\n        \"time\": 1.40206449441,\n        \"user\": 1.4130733450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565197388-9034d0ecb8aeabfeac288adf5e4f5f4ed10974e0\",\n        \"max\": 1.43633462241,\n        \"mean\": 1.4193672652100002,\n        \"median\": 1.41348009641,\n        \"message\": \"Compute distance in annotation routine\\n\",\n        \"min\": 1.40206449441,\n        \"stddev\": 0.014753758481636242,\n        \"system\": 0.05827373499999999,\n        \"time\": 1.43633462241,\n        \"user\": 1.4130733450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n        \"max\": 1.4669542843499999,\n        \"mean\": 1.4559502531500002,\n        \"median\": 1.45864702935,\n        \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n        \"min\": 1.44524877235,\n        \"stddev\": 0.009426365046554832,\n        \"system\": 0.057166850000000005,\n        \"time\": 1.4669542843499999,\n        \"user\": 1.4582724599999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n        \"max\": 1.4669542843499999,\n        \"mean\": 1.4559502531500002,\n        \"median\": 1.45864702935,\n        \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n        \"min\": 1.44524877235,\n        \"stddev\": 0.009426365046554832,\n        \"system\": 0.057166850000000005,\n        \"time\": 1.45864702935,\n        \"user\": 1.4582724599999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n        \"max\": 1.4669542843499999,\n        \"mean\": 1.4559502531500002,\n        \"median\": 1.45864702935,\n        \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n        \"min\": 1.44524877235,\n        \"stddev\": 0.009426365046554832,\n        \"system\": 0.057166850000000005,\n        \"time\": 1.46180057135,\n        \"user\": 1.4582724599999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n        \"max\": 1.4669542843499999,\n        \"mean\": 1.4559502531500002,\n        \"median\": 1.45864702935,\n        \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n        \"min\": 1.44524877235,\n        \"stddev\": 0.009426365046554832,\n        \"system\": 0.057166850000000005,\n        \"time\": 1.44710060835,\n        \"user\": 1.4582724599999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/44c0406460db773da306c089f366c516044a1bce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-44c0406460db773da306c089f366c516044a1bce\",\n        \"max\": 1.4669542843499999,\n        \"mean\": 1.4559502531500002,\n        \"median\": 1.45864702935,\n        \"message\": \"Honor --width: right-pad with background-styled spaces\\n\",\n        \"min\": 1.44524877235,\n        \"stddev\": 0.009426365046554832,\n        \"system\": 0.057166850000000005,\n        \"time\": 1.44524877235,\n        \"user\": 1.4582724599999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n        \"max\": 1.43217648408,\n        \"mean\": 1.4074352006800002,\n        \"median\": 1.4006232470800002,\n        \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n        \"min\": 1.3942678560800001,\n        \"stddev\": 0.01559344241824017,\n        \"system\": 0.057862479999999994,\n        \"time\": 1.39701148608,\n        \"user\": 1.4016661049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n        \"max\": 1.43217648408,\n        \"mean\": 1.4074352006800002,\n        \"median\": 1.4006232470800002,\n        \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n        \"min\": 1.3942678560800001,\n        \"stddev\": 0.01559344241824017,\n        \"system\": 0.057862479999999994,\n        \"time\": 1.41309693008,\n        \"user\": 1.4016661049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n        \"max\": 1.43217648408,\n        \"mean\": 1.4074352006800002,\n        \"median\": 1.4006232470800002,\n        \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n        \"min\": 1.3942678560800001,\n        \"stddev\": 0.01559344241824017,\n        \"system\": 0.057862479999999994,\n        \"time\": 1.43217648408,\n        \"user\": 1.4016661049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n        \"max\": 1.43217648408,\n        \"mean\": 1.4074352006800002,\n        \"median\": 1.4006232470800002,\n        \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n        \"min\": 1.3942678560800001,\n        \"stddev\": 0.01559344241824017,\n        \"system\": 0.057862479999999994,\n        \"time\": 1.4006232470800002,\n        \"user\": 1.4016661049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6889dd609dd812bbb7884d2e392fc1dd81aeef85 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565249484-6889dd609dd812bbb7884d2e392fc1dd81aeef85\",\n        \"max\": 1.43217648408,\n        \"mean\": 1.4074352006800002,\n        \"median\": 1.4006232470800002,\n        \"message\": \"Trim leading and trailing whitespace when computing distance\\n\",\n        \"min\": 1.3942678560800001,\n        \"stddev\": 0.01559344241824017,\n        \"system\": 0.057862479999999994,\n        \"time\": 1.3942678560800001,\n        \"user\": 1.4016661049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n        \"max\": 1.457694638095,\n        \"mean\": 1.4509191396949999,\n        \"median\": 1.4536211670949999,\n        \"message\": \"Edit docstrings and comments\\n\",\n        \"min\": 1.443283054095,\n        \"stddev\": 0.006683422515641823,\n        \"system\": 0.05704848999999999,\n        \"time\": 1.457694638095,\n        \"user\": 1.4541058850000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n        \"max\": 1.457694638095,\n        \"mean\": 1.4509191396949999,\n        \"median\": 1.4536211670949999,\n        \"message\": \"Edit docstrings and comments\\n\",\n        \"min\": 1.443283054095,\n        \"stddev\": 0.006683422515641823,\n        \"system\": 0.05704848999999999,\n        \"time\": 1.4536211670949999,\n        \"user\": 1.4541058850000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n        \"max\": 1.457694638095,\n        \"mean\": 1.4509191396949999,\n        \"median\": 1.4536211670949999,\n        \"message\": \"Edit docstrings and comments\\n\",\n        \"min\": 1.443283054095,\n        \"stddev\": 0.006683422515641823,\n        \"system\": 0.05704848999999999,\n        \"time\": 1.455719388095,\n        \"user\": 1.4541058850000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n        \"max\": 1.457694638095,\n        \"mean\": 1.4509191396949999,\n        \"median\": 1.4536211670949999,\n        \"message\": \"Edit docstrings and comments\\n\",\n        \"min\": 1.443283054095,\n        \"stddev\": 0.006683422515641823,\n        \"system\": 0.05704848999999999,\n        \"time\": 1.443283054095,\n        \"user\": 1.4541058850000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a4165ec397ff161edb4ff7c3aba7cb1b90807d9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565250254-a4165ec397ff161edb4ff7c3aba7cb1b90807d9e\",\n        \"max\": 1.457694638095,\n        \"mean\": 1.4509191396949999,\n        \"median\": 1.4536211670949999,\n        \"message\": \"Edit docstrings and comments\\n\",\n        \"min\": 1.443283054095,\n        \"stddev\": 0.006683422515641823,\n        \"system\": 0.05704848999999999,\n        \"time\": 1.444277451095,\n        \"user\": 1.4541058850000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n        \"max\": 1.5199449962249998,\n        \"mean\": 1.4759515694249998,\n        \"median\": 1.463586556225,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.455293196225,\n        \"stddev\": 0.026267746034283296,\n        \"system\": 0.05891765,\n        \"time\": 1.455293196225,\n        \"user\": 1.4770496299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n        \"max\": 1.5199449962249998,\n        \"mean\": 1.4759515694249998,\n        \"median\": 1.463586556225,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.455293196225,\n        \"stddev\": 0.026267746034283296,\n        \"system\": 0.05891765,\n        \"time\": 1.4800770512249999,\n        \"user\": 1.4770496299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n        \"max\": 1.5199449962249998,\n        \"mean\": 1.4759515694249998,\n        \"median\": 1.463586556225,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.455293196225,\n        \"stddev\": 0.026267746034283296,\n        \"system\": 0.05891765,\n        \"time\": 1.5199449962249998,\n        \"user\": 1.4770496299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n        \"max\": 1.5199449962249998,\n        \"mean\": 1.4759515694249998,\n        \"median\": 1.463586556225,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.455293196225,\n        \"stddev\": 0.026267746034283296,\n        \"system\": 0.05891765,\n        \"time\": 1.463586556225,\n        \"user\": 1.4770496299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/63b30eef695196301d21a85bf60b927fa83f15e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565251677-63b30eef695196301d21a85bf60b927fa83f15e1\",\n        \"max\": 1.5199449962249998,\n        \"mean\": 1.4759515694249998,\n        \"median\": 1.463586556225,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.455293196225,\n        \"stddev\": 0.026267746034283296,\n        \"system\": 0.05891765,\n        \"time\": 1.4608560472249998,\n        \"user\": 1.4770496299999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n        \"max\": 1.464413535675,\n        \"mean\": 1.4489773606749998,\n        \"median\": 1.446718431675,\n        \"message\": \"Clippy\\n\",\n        \"min\": 1.437409905675,\n        \"stddev\": 0.010754239028816129,\n        \"system\": 0.055551545,\n        \"time\": 1.454658397675,\n        \"user\": 1.4526881499999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n        \"max\": 1.464413535675,\n        \"mean\": 1.4489773606749998,\n        \"median\": 1.446718431675,\n        \"message\": \"Clippy\\n\",\n        \"min\": 1.437409905675,\n        \"stddev\": 0.010754239028816129,\n        \"system\": 0.055551545,\n        \"time\": 1.446718431675,\n        \"user\": 1.4526881499999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n        \"max\": 1.464413535675,\n        \"mean\": 1.4489773606749998,\n        \"median\": 1.446718431675,\n        \"message\": \"Clippy\\n\",\n        \"min\": 1.437409905675,\n        \"stddev\": 0.010754239028816129,\n        \"system\": 0.055551545,\n        \"time\": 1.441686532675,\n        \"user\": 1.4526881499999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n        \"max\": 1.464413535675,\n        \"mean\": 1.4489773606749998,\n        \"median\": 1.446718431675,\n        \"message\": \"Clippy\\n\",\n        \"min\": 1.437409905675,\n        \"stddev\": 0.010754239028816129,\n        \"system\": 0.055551545,\n        \"time\": 1.464413535675,\n        \"user\": 1.4526881499999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/96e8109bc89da08ec86aa488f7401f1c634f3b6c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565280360-96e8109bc89da08ec86aa488f7401f1c634f3b6c\",\n        \"max\": 1.464413535675,\n        \"mean\": 1.4489773606749998,\n        \"median\": 1.446718431675,\n        \"message\": \"Clippy\\n\",\n        \"min\": 1.437409905675,\n        \"stddev\": 0.010754239028816129,\n        \"system\": 0.055551545,\n        \"time\": 1.437409905675,\n        \"user\": 1.4526881499999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n        \"max\": 1.54297443287,\n        \"mean\": 1.51880891407,\n        \"median\": 1.53307311687,\n        \"message\": \"Commit Cargo.lock\\n\",\n        \"min\": 1.47251042287,\n        \"stddev\": 0.028698063186810334,\n        \"system\": 0.061138805,\n        \"time\": 1.53307311687,\n        \"user\": 1.51645085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n        \"max\": 1.54297443287,\n        \"mean\": 1.51880891407,\n        \"median\": 1.53307311687,\n        \"message\": \"Commit Cargo.lock\\n\",\n        \"min\": 1.47251042287,\n        \"stddev\": 0.028698063186810334,\n        \"system\": 0.061138805,\n        \"time\": 1.47251042287,\n        \"user\": 1.51645085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n        \"max\": 1.54297443287,\n        \"mean\": 1.51880891407,\n        \"median\": 1.53307311687,\n        \"message\": \"Commit Cargo.lock\\n\",\n        \"min\": 1.47251042287,\n        \"stddev\": 0.028698063186810334,\n        \"system\": 0.061138805,\n        \"time\": 1.50985209087,\n        \"user\": 1.51645085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n        \"max\": 1.54297443287,\n        \"mean\": 1.51880891407,\n        \"median\": 1.53307311687,\n        \"message\": \"Commit Cargo.lock\\n\",\n        \"min\": 1.47251042287,\n        \"stddev\": 0.028698063186810334,\n        \"system\": 0.061138805,\n        \"time\": 1.54297443287,\n        \"user\": 1.51645085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ef0f94fa5f18ad0a076082af65a26b4dbd0f6798 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281158-ef0f94fa5f18ad0a076082af65a26b4dbd0f6798\",\n        \"max\": 1.54297443287,\n        \"mean\": 1.51880891407,\n        \"median\": 1.53307311687,\n        \"message\": \"Commit Cargo.lock\\n\",\n        \"min\": 1.47251042287,\n        \"stddev\": 0.028698063186810334,\n        \"system\": 0.061138805,\n        \"time\": 1.53563450687,\n        \"user\": 1.51645085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n        \"max\": 1.42813345266,\n        \"mean\": 1.40997422186,\n        \"median\": 1.41326262366,\n        \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n        \"min\": 1.38508255766,\n        \"stddev\": 0.0192294295567053,\n        \"system\": 0.060868069999999996,\n        \"time\": 1.42813345266,\n        \"user\": 1.407846595\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n        \"max\": 1.42813345266,\n        \"mean\": 1.40997422186,\n        \"median\": 1.41326262366,\n        \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n        \"min\": 1.38508255766,\n        \"stddev\": 0.0192294295567053,\n        \"system\": 0.060868069999999996,\n        \"time\": 1.41326262366,\n        \"user\": 1.407846595\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n        \"max\": 1.42813345266,\n        \"mean\": 1.40997422186,\n        \"median\": 1.41326262366,\n        \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n        \"min\": 1.38508255766,\n        \"stddev\": 0.0192294295567053,\n        \"system\": 0.060868069999999996,\n        \"time\": 1.39568082366,\n        \"user\": 1.407846595\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n        \"max\": 1.42813345266,\n        \"mean\": 1.40997422186,\n        \"median\": 1.41326262366,\n        \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n        \"min\": 1.38508255766,\n        \"stddev\": 0.0192294295567053,\n        \"system\": 0.060868069999999996,\n        \"time\": 1.4277116516600001,\n        \"user\": 1.407846595\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4542dbc22487337bdd101cd5f1845a4f78068d92 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565281626-4542dbc22487337bdd101cd5f1845a4f78068d92\",\n        \"max\": 1.42813345266,\n        \"mean\": 1.40997422186,\n        \"median\": 1.41326262366,\n        \"message\": \"Update Cargo.lock based on successful build\\n\\nhttps://travis-ci.com/dandavison/delta/jobs/222300710\\n\",\n        \"min\": 1.38508255766,\n        \"stddev\": 0.0192294295567053,\n        \"system\": 0.060868069999999996,\n        \"time\": 1.38508255766,\n        \"user\": 1.407846595\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n        \"max\": 1.46466153691,\n        \"mean\": 1.4345096167100002,\n        \"median\": 1.44067494291,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.4002270299100001,\n        \"stddev\": 0.024832090717049247,\n        \"system\": 0.06195311,\n        \"time\": 1.42041528991,\n        \"user\": 1.426602685\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n        \"max\": 1.46466153691,\n        \"mean\": 1.4345096167100002,\n        \"median\": 1.44067494291,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.4002270299100001,\n        \"stddev\": 0.024832090717049247,\n        \"system\": 0.06195311,\n        \"time\": 1.44656928391,\n        \"user\": 1.426602685\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n        \"max\": 1.46466153691,\n        \"mean\": 1.4345096167100002,\n        \"median\": 1.44067494291,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.4002270299100001,\n        \"stddev\": 0.024832090717049247,\n        \"system\": 0.06195311,\n        \"time\": 1.46466153691,\n        \"user\": 1.426602685\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n        \"max\": 1.46466153691,\n        \"mean\": 1.4345096167100002,\n        \"median\": 1.44067494291,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.4002270299100001,\n        \"stddev\": 0.024832090717049247,\n        \"system\": 0.06195311,\n        \"time\": 1.4002270299100001,\n        \"user\": 1.426602685\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1ae56f924f6f8d4a0d398ea72e47270f0e1112fb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565287609-1ae56f924f6f8d4a0d398ea72e47270f0e1112fb\",\n        \"max\": 1.46466153691,\n        \"mean\": 1.4345096167100002,\n        \"median\": 1.44067494291,\n        \"message\": \"Bump homebrew formula\\n\",\n        \"min\": 1.4002270299100001,\n        \"stddev\": 0.024832090717049247,\n        \"system\": 0.06195311,\n        \"time\": 1.44067494291,\n        \"user\": 1.426602685\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n        \"max\": 1.590179937355,\n        \"mean\": 1.563357085355,\n        \"median\": 1.555865405355,\n        \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n        \"min\": 1.5435781163550002,\n        \"stddev\": 0.020975425832910722,\n        \"system\": 0.055685004999999996,\n        \"time\": 1.590179937355,\n        \"user\": 1.5649283150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n        \"max\": 1.590179937355,\n        \"mean\": 1.563357085355,\n        \"median\": 1.555865405355,\n        \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n        \"min\": 1.5435781163550002,\n        \"stddev\": 0.020975425832910722,\n        \"system\": 0.055685004999999996,\n        \"time\": 1.5435781163550002,\n        \"user\": 1.5649283150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n        \"max\": 1.590179937355,\n        \"mean\": 1.563357085355,\n        \"median\": 1.555865405355,\n        \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n        \"min\": 1.5435781163550002,\n        \"stddev\": 0.020975425832910722,\n        \"system\": 0.055685004999999996,\n        \"time\": 1.546362165355,\n        \"user\": 1.5649283150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n        \"max\": 1.590179937355,\n        \"mean\": 1.563357085355,\n        \"median\": 1.555865405355,\n        \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n        \"min\": 1.5435781163550002,\n        \"stddev\": 0.020975425832910722,\n        \"system\": 0.055685004999999996,\n        \"time\": 1.555865405355,\n        \"user\": 1.5649283150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565336897-81c96c2bb0ba33e5a543ccd5679d94f1a4ef811f\",\n        \"max\": 1.590179937355,\n        \"mean\": 1.563357085355,\n        \"median\": 1.555865405355,\n        \"message\": \"Increase number of buffered lines allowed before emitting\\n\",\n        \"min\": 1.5435781163550002,\n        \"stddev\": 0.020975425832910722,\n        \"system\": 0.055685004999999996,\n        \"time\": 1.580799802355,\n        \"user\": 1.5649283150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n        \"max\": 1.61201628893,\n        \"mean\": 1.59386400973,\n        \"median\": 1.59278190393,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.5824494499300001,\n        \"stddev\": 0.012024158886520845,\n        \"system\": 0.06087510999999999,\n        \"time\": 1.59278190393,\n        \"user\": 1.5909822949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n        \"max\": 1.61201628893,\n        \"mean\": 1.59386400973,\n        \"median\": 1.59278190393,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.5824494499300001,\n        \"stddev\": 0.012024158886520845,\n        \"system\": 0.06087510999999999,\n        \"time\": 1.59815519993,\n        \"user\": 1.5909822949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n        \"max\": 1.61201628893,\n        \"mean\": 1.59386400973,\n        \"median\": 1.59278190393,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.5824494499300001,\n        \"stddev\": 0.012024158886520845,\n        \"system\": 0.06087510999999999,\n        \"time\": 1.58391720593,\n        \"user\": 1.5909822949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n        \"max\": 1.61201628893,\n        \"mean\": 1.59386400973,\n        \"median\": 1.59278190393,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.5824494499300001,\n        \"stddev\": 0.012024158886520845,\n        \"system\": 0.06087510999999999,\n        \"time\": 1.61201628893,\n        \"user\": 1.5909822949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13a210b7004ce431a487ade076f594c4a5f157fe < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-13a210b7004ce431a487ade076f594c4a5f157fe\",\n        \"max\": 1.61201628893,\n        \"mean\": 1.59386400973,\n        \"median\": 1.59278190393,\n        \"message\": \"Clean up\\n\",\n        \"min\": 1.5824494499300001,\n        \"stddev\": 0.012024158886520845,\n        \"system\": 0.06087510999999999,\n        \"time\": 1.5824494499300001,\n        \"user\": 1.5909822949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n        \"max\": 1.621485896845,\n        \"mean\": 1.6107052696450002,\n        \"median\": 1.6163679248450002,\n        \"message\": \"Add test of edits inference\\n\",\n        \"min\": 1.592269030845,\n        \"stddev\": 0.011929734751172549,\n        \"system\": 0.061977359999999995,\n        \"time\": 1.605412635845,\n        \"user\": 1.6054619799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n        \"max\": 1.621485896845,\n        \"mean\": 1.6107052696450002,\n        \"median\": 1.6163679248450002,\n        \"message\": \"Add test of edits inference\\n\",\n        \"min\": 1.592269030845,\n        \"stddev\": 0.011929734751172549,\n        \"system\": 0.061977359999999995,\n        \"time\": 1.6179908598450001,\n        \"user\": 1.6054619799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n        \"max\": 1.621485896845,\n        \"mean\": 1.6107052696450002,\n        \"median\": 1.6163679248450002,\n        \"message\": \"Add test of edits inference\\n\",\n        \"min\": 1.592269030845,\n        \"stddev\": 0.011929734751172549,\n        \"system\": 0.061977359999999995,\n        \"time\": 1.621485896845,\n        \"user\": 1.6054619799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n        \"max\": 1.621485896845,\n        \"mean\": 1.6107052696450002,\n        \"median\": 1.6163679248450002,\n        \"message\": \"Add test of edits inference\\n\",\n        \"min\": 1.592269030845,\n        \"stddev\": 0.011929734751172549,\n        \"system\": 0.061977359999999995,\n        \"time\": 1.6163679248450002,\n        \"user\": 1.6054619799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/72715c728f07d6a9551a860f84891cc786100777 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-72715c728f07d6a9551a860f84891cc786100777\",\n        \"max\": 1.621485896845,\n        \"mean\": 1.6107052696450002,\n        \"median\": 1.6163679248450002,\n        \"message\": \"Add test of edits inference\\n\",\n        \"min\": 1.592269030845,\n        \"stddev\": 0.011929734751172549,\n        \"system\": 0.061977359999999995,\n        \"time\": 1.592269030845,\n        \"user\": 1.6054619799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n        \"max\": 1.6413305397600002,\n        \"mean\": 1.61770353576,\n        \"median\": 1.6081095437600001,\n        \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n        \"min\": 1.5972068737600003,\n        \"stddev\": 0.01925017263245204,\n        \"system\": 0.062551725,\n        \"time\": 1.6349173857600001,\n        \"user\": 1.612231185\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n        \"max\": 1.6413305397600002,\n        \"mean\": 1.61770353576,\n        \"median\": 1.6081095437600001,\n        \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n        \"min\": 1.5972068737600003,\n        \"stddev\": 0.01925017263245204,\n        \"system\": 0.062551725,\n        \"time\": 1.6413305397600002,\n        \"user\": 1.612231185\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n        \"max\": 1.6413305397600002,\n        \"mean\": 1.61770353576,\n        \"median\": 1.6081095437600001,\n        \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n        \"min\": 1.5972068737600003,\n        \"stddev\": 0.01925017263245204,\n        \"system\": 0.062551725,\n        \"time\": 1.6081095437600001,\n        \"user\": 1.612231185\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n        \"max\": 1.6413305397600002,\n        \"mean\": 1.61770353576,\n        \"median\": 1.6081095437600001,\n        \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n        \"min\": 1.5972068737600003,\n        \"stddev\": 0.01925017263245204,\n        \"system\": 0.062551725,\n        \"time\": 1.60695333576,\n        \"user\": 1.612231185\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a7c91b6a17a47852d8a9d77b3eda125f00e04432 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565573951-a7c91b6a17a47852d8a9d77b3eda125f00e04432\",\n        \"max\": 1.6413305397600002,\n        \"mean\": 1.61770353576,\n        \"median\": 1.6081095437600001,\n        \"message\": \"Align separating text as multiple single-character tokens.\\n\",\n        \"min\": 1.5972068737600003,\n        \"stddev\": 0.01925017263245204,\n        \"system\": 0.062551725,\n        \"time\": 1.5972068737600003,\n        \"user\": 1.612231185\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n        \"max\": 1.637437942535,\n        \"mean\": 1.6164849547349998,\n        \"median\": 1.618484266535,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.603655279535,\n        \"stddev\": 0.013846908196829743,\n        \"system\": 0.061425045,\n        \"time\": 1.6187751115350002,\n        \"user\": 1.612314365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n        \"max\": 1.637437942535,\n        \"mean\": 1.6164849547349998,\n        \"median\": 1.618484266535,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.603655279535,\n        \"stddev\": 0.013846908196829743,\n        \"system\": 0.061425045,\n        \"time\": 1.604072173535,\n        \"user\": 1.612314365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n        \"max\": 1.637437942535,\n        \"mean\": 1.6164849547349998,\n        \"median\": 1.618484266535,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.603655279535,\n        \"stddev\": 0.013846908196829743,\n        \"system\": 0.061425045,\n        \"time\": 1.618484266535,\n        \"user\": 1.612314365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n        \"max\": 1.637437942535,\n        \"mean\": 1.6164849547349998,\n        \"median\": 1.618484266535,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.603655279535,\n        \"stddev\": 0.013846908196829743,\n        \"system\": 0.061425045,\n        \"time\": 1.637437942535,\n        \"user\": 1.612314365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/aadf22c53fd5d9acc38b75afa8586eae099fb98a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575202-aadf22c53fd5d9acc38b75afa8586eae099fb98a\",\n        \"max\": 1.637437942535,\n        \"mean\": 1.6164849547349998,\n        \"median\": 1.618484266535,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.603655279535,\n        \"stddev\": 0.013846908196829743,\n        \"system\": 0.061425045,\n        \"time\": 1.603655279535,\n        \"user\": 1.612314365\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n        \"max\": 1.6212467009800002,\n        \"mean\": 1.6089015339800004,\n        \"median\": 1.60846024998,\n        \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n        \"min\": 1.6012375569800001,\n        \"stddev\": 0.008067020267933584,\n        \"system\": 0.062109700000000004,\n        \"time\": 1.6212467009800002,\n        \"user\": 1.60435478\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n        \"max\": 1.6212467009800002,\n        \"mean\": 1.6089015339800004,\n        \"median\": 1.60846024998,\n        \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n        \"min\": 1.6012375569800001,\n        \"stddev\": 0.008067020267933584,\n        \"system\": 0.062109700000000004,\n        \"time\": 1.6012375569800001,\n        \"user\": 1.60435478\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n        \"max\": 1.6212467009800002,\n        \"mean\": 1.6089015339800004,\n        \"median\": 1.60846024998,\n        \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n        \"min\": 1.6012375569800001,\n        \"stddev\": 0.008067020267933584,\n        \"system\": 0.062109700000000004,\n        \"time\": 1.6023103149800002,\n        \"user\": 1.60435478\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n        \"max\": 1.6212467009800002,\n        \"mean\": 1.6089015339800004,\n        \"median\": 1.60846024998,\n        \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n        \"min\": 1.6012375569800001,\n        \"stddev\": 0.008067020267933584,\n        \"system\": 0.062109700000000004,\n        \"time\": 1.61125284698,\n        \"user\": 1.60435478\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2484f11b52500dc7ca034031131a1f11e011e6ec < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575481-2484f11b52500dc7ca034031131a1f11e011e6ec\",\n        \"max\": 1.6212467009800002,\n        \"mean\": 1.6089015339800004,\n        \"median\": 1.60846024998,\n        \"message\": \"Coalesce noop-whitespace with previous operation when annotating\\n\",\n        \"min\": 1.6012375569800001,\n        \"stddev\": 0.008067020267933584,\n        \"system\": 0.062109700000000004,\n        \"time\": 1.60846024998,\n        \"user\": 1.60435478\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n        \"max\": 1.641600140495,\n        \"mean\": 1.627325209895,\n        \"median\": 1.626981257495,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.614347583495,\n        \"stddev\": 0.012139619102070037,\n        \"system\": 0.06288722499999999,\n        \"time\": 1.6164390134950002,\n        \"user\": 1.622033415\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n        \"max\": 1.641600140495,\n        \"mean\": 1.627325209895,\n        \"median\": 1.626981257495,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.614347583495,\n        \"stddev\": 0.012139619102070037,\n        \"system\": 0.06288722499999999,\n        \"time\": 1.614347583495,\n        \"user\": 1.622033415\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n        \"max\": 1.641600140495,\n        \"mean\": 1.627325209895,\n        \"median\": 1.626981257495,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.614347583495,\n        \"stddev\": 0.012139619102070037,\n        \"system\": 0.06288722499999999,\n        \"time\": 1.626981257495,\n        \"user\": 1.622033415\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n        \"max\": 1.641600140495,\n        \"mean\": 1.627325209895,\n        \"median\": 1.626981257495,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.614347583495,\n        \"stddev\": 0.012139619102070037,\n        \"system\": 0.06288722499999999,\n        \"time\": 1.637258054495,\n        \"user\": 1.622033415\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/94ee4279aa6725b293ef4b86cbbe59bdc06d06e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565575523-94ee4279aa6725b293ef4b86cbbe59bdc06d06e8\",\n        \"max\": 1.641600140495,\n        \"mean\": 1.627325209895,\n        \"median\": 1.626981257495,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.614347583495,\n        \"stddev\": 0.012139619102070037,\n        \"system\": 0.06288722499999999,\n        \"time\": 1.641600140495,\n        \"user\": 1.622033415\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n        \"max\": 1.622419431635,\n        \"mean\": 1.6116969494349997,\n        \"median\": 1.607625640635,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.606633670635,\n        \"stddev\": 0.006759544281428719,\n        \"system\": 0.06220397499999999,\n        \"time\": 1.622419431635,\n        \"user\": 1.607890945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n        \"max\": 1.622419431635,\n        \"mean\": 1.6116969494349997,\n        \"median\": 1.607625640635,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.606633670635,\n        \"stddev\": 0.006759544281428719,\n        \"system\": 0.06220397499999999,\n        \"time\": 1.607415805635,\n        \"user\": 1.607890945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n        \"max\": 1.622419431635,\n        \"mean\": 1.6116969494349997,\n        \"median\": 1.607625640635,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.606633670635,\n        \"stddev\": 0.006759544281428719,\n        \"system\": 0.06220397499999999,\n        \"time\": 1.606633670635,\n        \"user\": 1.607890945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n        \"max\": 1.622419431635,\n        \"mean\": 1.6116969494349997,\n        \"median\": 1.607625640635,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.606633670635,\n        \"stddev\": 0.006759544281428719,\n        \"system\": 0.06220397499999999,\n        \"time\": 1.607625640635,\n        \"user\": 1.607890945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/da75f535aae3add7e2f8deb2a8f44762ba3dd094 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1565576590-da75f535aae3add7e2f8deb2a8f44762ba3dd094\",\n        \"max\": 1.622419431635,\n        \"mean\": 1.6116969494349997,\n        \"median\": 1.607625640635,\n        \"message\": \"Add failing test of edits inference\\n\",\n        \"min\": 1.606633670635,\n        \"stddev\": 0.006759544281428719,\n        \"system\": 0.06220397499999999,\n        \"time\": 1.614390198635,\n        \"user\": 1.607890945\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n        \"max\": 1.63780117669,\n        \"mean\": 1.6199484198899998,\n        \"median\": 1.62120694969,\n        \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n        \"min\": 1.59689807669,\n        \"stddev\": 0.014894807104280887,\n        \"system\": 0.061676224999999994,\n        \"time\": 1.62120694969,\n        \"user\": 1.6161418599999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n        \"max\": 1.63780117669,\n        \"mean\": 1.6199484198899998,\n        \"median\": 1.62120694969,\n        \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n        \"min\": 1.59689807669,\n        \"stddev\": 0.014894807104280887,\n        \"system\": 0.061676224999999994,\n        \"time\": 1.63780117669,\n        \"user\": 1.6161418599999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n        \"max\": 1.63780117669,\n        \"mean\": 1.6199484198899998,\n        \"median\": 1.62120694969,\n        \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n        \"min\": 1.59689807669,\n        \"stddev\": 0.014894807104280887,\n        \"system\": 0.061676224999999994,\n        \"time\": 1.61817362669,\n        \"user\": 1.6161418599999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n        \"max\": 1.63780117669,\n        \"mean\": 1.6199484198899998,\n        \"median\": 1.62120694969,\n        \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n        \"min\": 1.59689807669,\n        \"stddev\": 0.014894807104280887,\n        \"system\": 0.061676224999999994,\n        \"time\": 1.62566226969,\n        \"user\": 1.6161418599999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2a3e921bdf7cdd8389849fa863c4adbb7147f63 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516213-c2a3e921bdf7cdd8389849fa863c4adbb7147f63\",\n        \"max\": 1.63780117669,\n        \"mean\": 1.6199484198899998,\n        \"median\": 1.62120694969,\n        \"message\": \"Only trim terminating newline when it was added articificially\\n\",\n        \"min\": 1.59689807669,\n        \"stddev\": 0.014894807104280887,\n        \"system\": 0.061676224999999994,\n        \"time\": 1.59689807669,\n        \"user\": 1.6161418599999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n        \"max\": 1.6222089615150002,\n        \"mean\": 1.6118496819150003,\n        \"median\": 1.6080535775150002,\n        \"message\": \"Ignore failing test\\n\",\n        \"min\": 1.606769350515,\n        \"stddev\": 0.006566068384774224,\n        \"system\": 0.061459405,\n        \"time\": 1.6222089615150002,\n        \"user\": 1.607356195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n        \"max\": 1.6222089615150002,\n        \"mean\": 1.6118496819150003,\n        \"median\": 1.6080535775150002,\n        \"message\": \"Ignore failing test\\n\",\n        \"min\": 1.606769350515,\n        \"stddev\": 0.006566068384774224,\n        \"system\": 0.061459405,\n        \"time\": 1.6145592565150002,\n        \"user\": 1.607356195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n        \"max\": 1.6222089615150002,\n        \"mean\": 1.6118496819150003,\n        \"median\": 1.6080535775150002,\n        \"message\": \"Ignore failing test\\n\",\n        \"min\": 1.606769350515,\n        \"stddev\": 0.006566068384774224,\n        \"system\": 0.061459405,\n        \"time\": 1.6076572635150002,\n        \"user\": 1.607356195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n        \"max\": 1.6222089615150002,\n        \"mean\": 1.6118496819150003,\n        \"median\": 1.6080535775150002,\n        \"message\": \"Ignore failing test\\n\",\n        \"min\": 1.606769350515,\n        \"stddev\": 0.006566068384774224,\n        \"system\": 0.061459405,\n        \"time\": 1.6080535775150002,\n        \"user\": 1.607356195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7cac02f3be89f5a69f0d69b4b39752badbaac62c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567516217-7cac02f3be89f5a69f0d69b4b39752badbaac62c\",\n        \"max\": 1.6222089615150002,\n        \"mean\": 1.6118496819150003,\n        \"median\": 1.6080535775150002,\n        \"message\": \"Ignore failing test\\n\",\n        \"min\": 1.606769350515,\n        \"stddev\": 0.006566068384774224,\n        \"system\": 0.061459405,\n        \"time\": 1.606769350515,\n        \"user\": 1.607356195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n        \"max\": 1.677938599895,\n        \"mean\": 1.6453449510950002,\n        \"median\": 1.648351388895,\n        \"message\": \"Update performance visualization\\n\",\n        \"min\": 1.6190460768950001,\n        \"stddev\": 0.022761516667121406,\n        \"system\": 0.063377515,\n        \"time\": 1.648351388895,\n        \"user\": 1.63907159\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n        \"max\": 1.677938599895,\n        \"mean\": 1.6453449510950002,\n        \"median\": 1.648351388895,\n        \"message\": \"Update performance visualization\\n\",\n        \"min\": 1.6190460768950001,\n        \"stddev\": 0.022761516667121406,\n        \"system\": 0.063377515,\n        \"time\": 1.629160158895,\n        \"user\": 1.63907159\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n        \"max\": 1.677938599895,\n        \"mean\": 1.6453449510950002,\n        \"median\": 1.648351388895,\n        \"message\": \"Update performance visualization\\n\",\n        \"min\": 1.6190460768950001,\n        \"stddev\": 0.022761516667121406,\n        \"system\": 0.063377515,\n        \"time\": 1.6190460768950001,\n        \"user\": 1.63907159\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n        \"max\": 1.677938599895,\n        \"mean\": 1.6453449510950002,\n        \"median\": 1.648351388895,\n        \"message\": \"Update performance visualization\\n\",\n        \"min\": 1.6190460768950001,\n        \"stddev\": 0.022761516667121406,\n        \"system\": 0.063377515,\n        \"time\": 1.677938599895,\n        \"user\": 1.63907159\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9b4fbbfac7c95b82db6691659bfa43878d279d3e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567518048-9b4fbbfac7c95b82db6691659bfa43878d279d3e\",\n        \"max\": 1.677938599895,\n        \"mean\": 1.6453449510950002,\n        \"median\": 1.648351388895,\n        \"message\": \"Update performance visualization\\n\",\n        \"min\": 1.6190460768950001,\n        \"stddev\": 0.022761516667121406,\n        \"system\": 0.063377515,\n        \"time\": 1.652228530895,\n        \"user\": 1.63907159\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n        \"max\": 1.7197722005050002,\n        \"mean\": 1.675659356505,\n        \"median\": 1.6716182405050002,\n        \"message\": \"Fix hunk meta line decoration\\n\",\n        \"min\": 1.637142722505,\n        \"stddev\": 0.03583533151027913,\n        \"system\": 0.068091395,\n        \"time\": 1.637142722505,\n        \"user\": 1.6640438899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n        \"max\": 1.7197722005050002,\n        \"mean\": 1.675659356505,\n        \"median\": 1.6716182405050002,\n        \"message\": \"Fix hunk meta line decoration\\n\",\n        \"min\": 1.637142722505,\n        \"stddev\": 0.03583533151027913,\n        \"system\": 0.068091395,\n        \"time\": 1.6458157635050001,\n        \"user\": 1.6640438899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n        \"max\": 1.7197722005050002,\n        \"mean\": 1.675659356505,\n        \"median\": 1.6716182405050002,\n        \"message\": \"Fix hunk meta line decoration\\n\",\n        \"min\": 1.637142722505,\n        \"stddev\": 0.03583533151027913,\n        \"system\": 0.068091395,\n        \"time\": 1.6716182405050002,\n        \"user\": 1.6640438899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n        \"max\": 1.7197722005050002,\n        \"mean\": 1.675659356505,\n        \"median\": 1.6716182405050002,\n        \"message\": \"Fix hunk meta line decoration\\n\",\n        \"min\": 1.637142722505,\n        \"stddev\": 0.03583533151027913,\n        \"system\": 0.068091395,\n        \"time\": 1.7197722005050002,\n        \"user\": 1.6640438899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b746962437ca9b64d9ac73f20a8d8bb72c5fad2e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567776784-b746962437ca9b64d9ac73f20a8d8bb72c5fad2e\",\n        \"max\": 1.7197722005050002,\n        \"mean\": 1.675659356505,\n        \"median\": 1.6716182405050002,\n        \"message\": \"Fix hunk meta line decoration\\n\",\n        \"min\": 1.637142722505,\n        \"stddev\": 0.03583533151027913,\n        \"system\": 0.068091395,\n        \"time\": 1.703947855505,\n        \"user\": 1.6640438899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n        \"max\": 1.7130768845100002,\n        \"mean\": 1.6620958585100003,\n        \"median\": 1.65101542051,\n        \"message\": \"Delete failing CI builds\\n\",\n        \"min\": 1.6297884715100002,\n        \"stddev\": 0.036268979875692664,\n        \"system\": 0.06681749,\n        \"time\": 1.6853854065100002,\n        \"user\": 1.6506615249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n        \"max\": 1.7130768845100002,\n        \"mean\": 1.6620958585100003,\n        \"median\": 1.65101542051,\n        \"message\": \"Delete failing CI builds\\n\",\n        \"min\": 1.6297884715100002,\n        \"stddev\": 0.036268979875692664,\n        \"system\": 0.06681749,\n        \"time\": 1.7130768845100002,\n        \"user\": 1.6506615249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n        \"max\": 1.7130768845100002,\n        \"mean\": 1.6620958585100003,\n        \"median\": 1.65101542051,\n        \"message\": \"Delete failing CI builds\\n\",\n        \"min\": 1.6297884715100002,\n        \"stddev\": 0.036268979875692664,\n        \"system\": 0.06681749,\n        \"time\": 1.65101542051,\n        \"user\": 1.6506615249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n        \"max\": 1.7130768845100002,\n        \"mean\": 1.6620958585100003,\n        \"median\": 1.65101542051,\n        \"message\": \"Delete failing CI builds\\n\",\n        \"min\": 1.6297884715100002,\n        \"stddev\": 0.036268979875692664,\n        \"system\": 0.06681749,\n        \"time\": 1.6312131095100002,\n        \"user\": 1.6506615249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/acf28113539f44dd315273cb73904fd0267a1b75 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567779654-acf28113539f44dd315273cb73904fd0267a1b75\",\n        \"max\": 1.7130768845100002,\n        \"mean\": 1.6620958585100003,\n        \"median\": 1.65101542051,\n        \"message\": \"Delete failing CI builds\\n\",\n        \"min\": 1.6297884715100002,\n        \"stddev\": 0.036268979875692664,\n        \"system\": 0.06681749,\n        \"time\": 1.6297884715100002,\n        \"user\": 1.6506615249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n        \"max\": 1.8051302245549998,\n        \"mean\": 1.743689329555,\n        \"median\": 1.7104908745549998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.695918350555,\n        \"stddev\": 0.054514379152339816,\n        \"system\": 0.073357325,\n        \"time\": 1.7104908745549998,\n        \"user\": 1.719667045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n        \"max\": 1.8051302245549998,\n        \"mean\": 1.743689329555,\n        \"median\": 1.7104908745549998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.695918350555,\n        \"stddev\": 0.054514379152339816,\n        \"system\": 0.073357325,\n        \"time\": 1.801084475555,\n        \"user\": 1.719667045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n        \"max\": 1.8051302245549998,\n        \"mean\": 1.743689329555,\n        \"median\": 1.7104908745549998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.695918350555,\n        \"stddev\": 0.054514379152339816,\n        \"system\": 0.073357325,\n        \"time\": 1.8051302245549998,\n        \"user\": 1.719667045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n        \"max\": 1.8051302245549998,\n        \"mean\": 1.743689329555,\n        \"median\": 1.7104908745549998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.695918350555,\n        \"stddev\": 0.054514379152339816,\n        \"system\": 0.073357325,\n        \"time\": 1.695918350555,\n        \"user\": 1.719667045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f016bf2b322b7d565e3dcf3245ddc51a6ca09b53 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780031-f016bf2b322b7d565e3dcf3245ddc51a6ca09b53\",\n        \"max\": 1.8051302245549998,\n        \"mean\": 1.743689329555,\n        \"median\": 1.7104908745549998,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.695918350555,\n        \"stddev\": 0.054514379152339816,\n        \"system\": 0.073357325,\n        \"time\": 1.705822722555,\n        \"user\": 1.719667045\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n        \"max\": 1.8351394702150001,\n        \"mean\": 1.756211987015,\n        \"median\": 1.7577498252150001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.666282008215,\n        \"stddev\": 0.05998602394043235,\n        \"system\": 0.080410175,\n        \"time\": 1.7571240562150001,\n        \"user\": 1.7294329300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n        \"max\": 1.8351394702150001,\n        \"mean\": 1.756211987015,\n        \"median\": 1.7577498252150001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.666282008215,\n        \"stddev\": 0.05998602394043235,\n        \"system\": 0.080410175,\n        \"time\": 1.8351394702150001,\n        \"user\": 1.7294329300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n        \"max\": 1.8351394702150001,\n        \"mean\": 1.756211987015,\n        \"median\": 1.7577498252150001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.666282008215,\n        \"stddev\": 0.05998602394043235,\n        \"system\": 0.080410175,\n        \"time\": 1.7577498252150001,\n        \"user\": 1.7294329300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n        \"max\": 1.8351394702150001,\n        \"mean\": 1.756211987015,\n        \"median\": 1.7577498252150001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.666282008215,\n        \"stddev\": 0.05998602394043235,\n        \"system\": 0.080410175,\n        \"time\": 1.764764575215,\n        \"user\": 1.7294329300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b32c81d83b320f0a3920adc2b313e659b8c65980 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567780039-b32c81d83b320f0a3920adc2b313e659b8c65980\",\n        \"max\": 1.8351394702150001,\n        \"mean\": 1.756211987015,\n        \"median\": 1.7577498252150001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.666282008215,\n        \"stddev\": 0.05998602394043235,\n        \"system\": 0.080410175,\n        \"time\": 1.666282008215,\n        \"user\": 1.7294329300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n        \"max\": 1.692535984525,\n        \"mean\": 1.664135997125,\n        \"median\": 1.6539010765250002,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.647526203525,\n        \"stddev\": 0.02039901262794854,\n        \"system\": 0.06695234,\n        \"time\": 1.678786764525,\n        \"user\": 1.65269905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n        \"max\": 1.692535984525,\n        \"mean\": 1.664135997125,\n        \"median\": 1.6539010765250002,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.647526203525,\n        \"stddev\": 0.02039901262794854,\n        \"system\": 0.06695234,\n        \"time\": 1.647526203525,\n        \"user\": 1.65269905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n        \"max\": 1.692535984525,\n        \"mean\": 1.664135997125,\n        \"median\": 1.6539010765250002,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.647526203525,\n        \"stddev\": 0.02039901262794854,\n        \"system\": 0.06695234,\n        \"time\": 1.647929956525,\n        \"user\": 1.65269905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n        \"max\": 1.692535984525,\n        \"mean\": 1.664135997125,\n        \"median\": 1.6539010765250002,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.647526203525,\n        \"stddev\": 0.02039901262794854,\n        \"system\": 0.06695234,\n        \"time\": 1.692535984525,\n        \"user\": 1.65269905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5036310ebb8af0d0818a10a87e99ef674765aa19 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1567781610-5036310ebb8af0d0818a10a87e99ef674765aa19\",\n        \"max\": 1.692535984525,\n        \"mean\": 1.664135997125,\n        \"median\": 1.6539010765250002,\n        \"message\": \"Bump homebrew version\\n\",\n        \"min\": 1.647526203525,\n        \"stddev\": 0.02039901262794854,\n        \"system\": 0.06695234,\n        \"time\": 1.6539010765250002,\n        \"user\": 1.65269905\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n        \"max\": 1.64277560907,\n        \"mean\": 1.6291618514700001,\n        \"median\": 1.6287222650700002,\n        \"message\": \"Update Cargo.lock\\n\",\n        \"min\": 1.61610087407,\n        \"stddev\": 0.010025149888283905,\n        \"system\": 0.06256916500000001,\n        \"time\": 1.64277560907,\n        \"user\": 1.6236312649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n        \"max\": 1.64277560907,\n        \"mean\": 1.6291618514700001,\n        \"median\": 1.6287222650700002,\n        \"message\": \"Update Cargo.lock\\n\",\n        \"min\": 1.61610087407,\n        \"stddev\": 0.010025149888283905,\n        \"system\": 0.06256916500000001,\n        \"time\": 1.6287222650700002,\n        \"user\": 1.6236312649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n        \"max\": 1.64277560907,\n        \"mean\": 1.6291618514700001,\n        \"median\": 1.6287222650700002,\n        \"message\": \"Update Cargo.lock\\n\",\n        \"min\": 1.61610087407,\n        \"stddev\": 0.010025149888283905,\n        \"system\": 0.06256916500000001,\n        \"time\": 1.6338954190700001,\n        \"user\": 1.6236312649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n        \"max\": 1.64277560907,\n        \"mean\": 1.6291618514700001,\n        \"median\": 1.6287222650700002,\n        \"message\": \"Update Cargo.lock\\n\",\n        \"min\": 1.61610087407,\n        \"stddev\": 0.010025149888283905,\n        \"system\": 0.06256916500000001,\n        \"time\": 1.62431509007,\n        \"user\": 1.6236312649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7c4d447359347e9d19a17b5ab9b1cec004dca976 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568632799-7c4d447359347e9d19a17b5ab9b1cec004dca976\",\n        \"max\": 1.64277560907,\n        \"mean\": 1.6291618514700001,\n        \"median\": 1.6287222650700002,\n        \"message\": \"Update Cargo.lock\\n\",\n        \"min\": 1.61610087407,\n        \"stddev\": 0.010025149888283905,\n        \"system\": 0.06256916500000001,\n        \"time\": 1.61610087407,\n        \"user\": 1.6236312649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n        \"max\": 1.642601361405,\n        \"mean\": 1.630099566805,\n        \"median\": 1.630423373405,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.617749218405,\n        \"stddev\": 0.010947100727547556,\n        \"system\": 0.062266119999999994,\n        \"time\": 1.639089949405,\n        \"user\": 1.624585475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n        \"max\": 1.642601361405,\n        \"mean\": 1.630099566805,\n        \"median\": 1.630423373405,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.617749218405,\n        \"stddev\": 0.010947100727547556,\n        \"system\": 0.062266119999999994,\n        \"time\": 1.630423373405,\n        \"user\": 1.624585475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n        \"max\": 1.642601361405,\n        \"mean\": 1.630099566805,\n        \"median\": 1.630423373405,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.617749218405,\n        \"stddev\": 0.010947100727547556,\n        \"system\": 0.062266119999999994,\n        \"time\": 1.620633931405,\n        \"user\": 1.624585475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n        \"max\": 1.642601361405,\n        \"mean\": 1.630099566805,\n        \"median\": 1.630423373405,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.617749218405,\n        \"stddev\": 0.010947100727547556,\n        \"system\": 0.062266119999999994,\n        \"time\": 1.617749218405,\n        \"user\": 1.624585475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9fff322822ef168f71ace23bd60f8be6c90f0026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1568900803-9fff322822ef168f71ace23bd60f8be6c90f0026\",\n        \"max\": 1.642601361405,\n        \"mean\": 1.630099566805,\n        \"median\": 1.630423373405,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.617749218405,\n        \"stddev\": 0.010947100727547556,\n        \"system\": 0.062266119999999994,\n        \"time\": 1.642601361405,\n        \"user\": 1.624585475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n        \"max\": 1.643441392965,\n        \"mean\": 1.635906154965,\n        \"median\": 1.6378001559650002,\n        \"message\": \"Rearrange comparison images in README\\n\",\n        \"min\": 1.6259777799650001,\n        \"stddev\": 0.007194296679448744,\n        \"system\": 0.06321168999999999,\n        \"time\": 1.641053036965,\n        \"user\": 1.629560885\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n        \"max\": 1.643441392965,\n        \"mean\": 1.635906154965,\n        \"median\": 1.6378001559650002,\n        \"message\": \"Rearrange comparison images in README\\n\",\n        \"min\": 1.6259777799650001,\n        \"stddev\": 0.007194296679448744,\n        \"system\": 0.06321168999999999,\n        \"time\": 1.6259777799650001,\n        \"user\": 1.629560885\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n        \"max\": 1.643441392965,\n        \"mean\": 1.635906154965,\n        \"median\": 1.6378001559650002,\n        \"message\": \"Rearrange comparison images in README\\n\",\n        \"min\": 1.6259777799650001,\n        \"stddev\": 0.007194296679448744,\n        \"system\": 0.06321168999999999,\n        \"time\": 1.6378001559650002,\n        \"user\": 1.629560885\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n        \"max\": 1.643441392965,\n        \"mean\": 1.635906154965,\n        \"median\": 1.6378001559650002,\n        \"message\": \"Rearrange comparison images in README\\n\",\n        \"min\": 1.6259777799650001,\n        \"stddev\": 0.007194296679448744,\n        \"system\": 0.06321168999999999,\n        \"time\": 1.643441392965,\n        \"user\": 1.629560885\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfb2e9f958ce16749f60a9d6890326cf0a000e8f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569064538-dfb2e9f958ce16749f60a9d6890326cf0a000e8f\",\n        \"max\": 1.643441392965,\n        \"mean\": 1.635906154965,\n        \"median\": 1.6378001559650002,\n        \"message\": \"Rearrange comparison images in README\\n\",\n        \"min\": 1.6259777799650001,\n        \"stddev\": 0.007194296679448744,\n        \"system\": 0.06321168999999999,\n        \"time\": 1.631258408965,\n        \"user\": 1.629560885\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n        \"max\": 1.677900899215,\n        \"mean\": 1.647233470415,\n        \"median\": 1.6467486032149998,\n        \"message\": \"Reinstate windows build\\n\",\n        \"min\": 1.629861471215,\n        \"stddev\": 0.01871276871509892,\n        \"system\": 0.06380067999999998,\n        \"time\": 1.646996777215,\n        \"user\": 1.6405300049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n        \"max\": 1.677900899215,\n        \"mean\": 1.647233470415,\n        \"median\": 1.6467486032149998,\n        \"message\": \"Reinstate windows build\\n\",\n        \"min\": 1.629861471215,\n        \"stddev\": 0.01871276871509892,\n        \"system\": 0.06380067999999998,\n        \"time\": 1.634659601215,\n        \"user\": 1.6405300049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n        \"max\": 1.677900899215,\n        \"mean\": 1.647233470415,\n        \"median\": 1.6467486032149998,\n        \"message\": \"Reinstate windows build\\n\",\n        \"min\": 1.629861471215,\n        \"stddev\": 0.01871276871509892,\n        \"system\": 0.06380067999999998,\n        \"time\": 1.6467486032149998,\n        \"user\": 1.6405300049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n        \"max\": 1.677900899215,\n        \"mean\": 1.647233470415,\n        \"median\": 1.6467486032149998,\n        \"message\": \"Reinstate windows build\\n\",\n        \"min\": 1.629861471215,\n        \"stddev\": 0.01871276871509892,\n        \"system\": 0.06380067999999998,\n        \"time\": 1.629861471215,\n        \"user\": 1.6405300049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0e0ea021bad2b1efef27a53d85af3df5b86be9b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569864707-0e0ea021bad2b1efef27a53d85af3df5b86be9b1\",\n        \"max\": 1.677900899215,\n        \"mean\": 1.647233470415,\n        \"median\": 1.6467486032149998,\n        \"message\": \"Reinstate windows build\\n\",\n        \"min\": 1.629861471215,\n        \"stddev\": 0.01871276871509892,\n        \"system\": 0.06380067999999998,\n        \"time\": 1.677900899215,\n        \"user\": 1.6405300049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n        \"max\": 1.63965316965,\n        \"mean\": 1.6247637618500002,\n        \"median\": 1.62242526665,\n        \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n        \"min\": 1.61014093565,\n        \"stddev\": 0.011076504821941531,\n        \"system\": 0.06322296,\n        \"time\": 1.63067923465,\n        \"user\": 1.6181163399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n        \"max\": 1.63965316965,\n        \"mean\": 1.6247637618500002,\n        \"median\": 1.62242526665,\n        \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n        \"min\": 1.61014093565,\n        \"stddev\": 0.011076504821941531,\n        \"system\": 0.06322296,\n        \"time\": 1.63965316965,\n        \"user\": 1.6181163399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n        \"max\": 1.63965316965,\n        \"mean\": 1.6247637618500002,\n        \"median\": 1.62242526665,\n        \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n        \"min\": 1.61014093565,\n        \"stddev\": 0.011076504821941531,\n        \"system\": 0.06322296,\n        \"time\": 1.62242526665,\n        \"user\": 1.6181163399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n        \"max\": 1.63965316965,\n        \"mean\": 1.6247637618500002,\n        \"median\": 1.62242526665,\n        \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n        \"min\": 1.61014093565,\n        \"stddev\": 0.011076504821941531,\n        \"system\": 0.06322296,\n        \"time\": 1.62092020265,\n        \"user\": 1.6181163399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d4663f90ddea04e9a12f6c5c276cfc1b2093140 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569870817-2d4663f90ddea04e9a12f6c5c276cfc1b2093140\",\n        \"max\": 1.63965316965,\n        \"mean\": 1.6247637618500002,\n        \"median\": 1.62242526665,\n        \"message\": \"Only list first-order dependencies in Cargo.toml\\n\",\n        \"min\": 1.61014093565,\n        \"stddev\": 0.011076504821941531,\n        \"system\": 0.06322296,\n        \"time\": 1.61014093565,\n        \"user\": 1.6181163399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n        \"max\": 1.658488187255,\n        \"mean\": 1.639298080255,\n        \"median\": 1.6317385842549998,\n        \"message\": \"Bump version, add Windows build\\n\",\n        \"min\": 1.6204699322549998,\n        \"stddev\": 0.01715027000103697,\n        \"system\": 0.06264037,\n        \"time\": 1.658488187255,\n        \"user\": 1.6332719699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n        \"max\": 1.658488187255,\n        \"mean\": 1.639298080255,\n        \"median\": 1.6317385842549998,\n        \"message\": \"Bump version, add Windows build\\n\",\n        \"min\": 1.6204699322549998,\n        \"stddev\": 0.01715027000103697,\n        \"system\": 0.06264037,\n        \"time\": 1.6204699322549998,\n        \"user\": 1.6332719699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n        \"max\": 1.658488187255,\n        \"mean\": 1.639298080255,\n        \"median\": 1.6317385842549998,\n        \"message\": \"Bump version, add Windows build\\n\",\n        \"min\": 1.6204699322549998,\n        \"stddev\": 0.01715027000103697,\n        \"system\": 0.06264037,\n        \"time\": 1.6317385842549998,\n        \"user\": 1.6332719699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n        \"max\": 1.658488187255,\n        \"mean\": 1.639298080255,\n        \"median\": 1.6317385842549998,\n        \"message\": \"Bump version, add Windows build\\n\",\n        \"min\": 1.6204699322549998,\n        \"stddev\": 0.01715027000103697,\n        \"system\": 0.06264037,\n        \"time\": 1.656511536255,\n        \"user\": 1.6332719699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe9c2e66c7758d320287c126ad41dedae5b8de9a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569873350-fe9c2e66c7758d320287c126ad41dedae5b8de9a\",\n        \"max\": 1.658488187255,\n        \"mean\": 1.639298080255,\n        \"median\": 1.6317385842549998,\n        \"message\": \"Bump version, add Windows build\\n\",\n        \"min\": 1.6204699322549998,\n        \"stddev\": 0.01715027000103697,\n        \"system\": 0.06264037,\n        \"time\": 1.629282161255,\n        \"user\": 1.6332719699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n        \"max\": 1.646648960205,\n        \"mean\": 1.6349993162049998,\n        \"median\": 1.6380603252050001,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.623141527205,\n        \"stddev\": 0.009797452271780919,\n        \"system\": 0.06324717500000002,\n        \"time\": 1.646648960205,\n        \"user\": 1.6294359049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n        \"max\": 1.646648960205,\n        \"mean\": 1.6349993162049998,\n        \"median\": 1.6380603252050001,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.623141527205,\n        \"stddev\": 0.009797452271780919,\n        \"system\": 0.06324717500000002,\n        \"time\": 1.640435818205,\n        \"user\": 1.6294359049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n        \"max\": 1.646648960205,\n        \"mean\": 1.6349993162049998,\n        \"median\": 1.6380603252050001,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.623141527205,\n        \"stddev\": 0.009797452271780919,\n        \"system\": 0.06324717500000002,\n        \"time\": 1.6380603252050001,\n        \"user\": 1.6294359049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n        \"max\": 1.646648960205,\n        \"mean\": 1.6349993162049998,\n        \"median\": 1.6380603252050001,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.623141527205,\n        \"stddev\": 0.009797452271780919,\n        \"system\": 0.06324717500000002,\n        \"time\": 1.623141527205,\n        \"user\": 1.6294359049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eb80e24911a497886ed99ad6e434cdcced00b1cc < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569874949-eb80e24911a497886ed99ad6e434cdcced00b1cc\",\n        \"max\": 1.646648960205,\n        \"mean\": 1.6349993162049998,\n        \"median\": 1.6380603252050001,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.623141527205,\n        \"stddev\": 0.009797452271780919,\n        \"system\": 0.06324717500000002,\n        \"time\": 1.626709950205,\n        \"user\": 1.6294359049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n        \"max\": 1.65140744633,\n        \"mean\": 1.6396907601300001,\n        \"median\": 1.6389726063299999,\n        \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n        \"min\": 1.6244568633299998,\n        \"stddev\": 0.011180011698744044,\n        \"system\": 0.06403154999999999,\n        \"time\": 1.65140744633,\n        \"user\": 1.6329478350000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n        \"max\": 1.65140744633,\n        \"mean\": 1.6396907601300001,\n        \"median\": 1.6389726063299999,\n        \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n        \"min\": 1.6244568633299998,\n        \"stddev\": 0.011180011698744044,\n        \"system\": 0.06403154999999999,\n        \"time\": 1.63402598133,\n        \"user\": 1.6329478350000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n        \"max\": 1.65140744633,\n        \"mean\": 1.6396907601300001,\n        \"median\": 1.6389726063299999,\n        \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n        \"min\": 1.6244568633299998,\n        \"stddev\": 0.011180011698744044,\n        \"system\": 0.06403154999999999,\n        \"time\": 1.6389726063299999,\n        \"user\": 1.6329478350000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n        \"max\": 1.65140744633,\n        \"mean\": 1.6396907601300001,\n        \"median\": 1.6389726063299999,\n        \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n        \"min\": 1.6244568633299998,\n        \"stddev\": 0.011180011698744044,\n        \"system\": 0.06403154999999999,\n        \"time\": 1.64959090333,\n        \"user\": 1.6329478350000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/360cc710d06ec0645bfe74218d9f5d6752e4fecd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875316-360cc710d06ec0645bfe74218d9f5d6752e4fecd\",\n        \"max\": 1.65140744633,\n        \"mean\": 1.6396907601300001,\n        \"median\": 1.6389726063299999,\n        \"message\": \"Update Cargo.toml for publication to crates.io\\n\",\n        \"min\": 1.6244568633299998,\n        \"stddev\": 0.011180011698744044,\n        \"system\": 0.06403154999999999,\n        \"time\": 1.6244568633299998,\n        \"user\": 1.6329478350000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n        \"max\": 1.61508574798,\n        \"mean\": 1.60531550438,\n        \"median\": 1.60194117398,\n        \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n        \"min\": 1.59861601498,\n        \"stddev\": 0.0073949955429037885,\n        \"system\": 0.060186895,\n        \"time\": 1.61508574798,\n        \"user\": 1.6002806999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n        \"max\": 1.61508574798,\n        \"mean\": 1.60531550438,\n        \"median\": 1.60194117398,\n        \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n        \"min\": 1.59861601498,\n        \"stddev\": 0.0073949955429037885,\n        \"system\": 0.060186895,\n        \"time\": 1.6112539509800001,\n        \"user\": 1.6002806999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n        \"max\": 1.61508574798,\n        \"mean\": 1.60531550438,\n        \"median\": 1.60194117398,\n        \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n        \"min\": 1.59861601498,\n        \"stddev\": 0.0073949955429037885,\n        \"system\": 0.060186895,\n        \"time\": 1.59861601498,\n        \"user\": 1.6002806999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n        \"max\": 1.61508574798,\n        \"mean\": 1.60531550438,\n        \"median\": 1.60194117398,\n        \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n        \"min\": 1.59861601498,\n        \"stddev\": 0.0073949955429037885,\n        \"system\": 0.060186895,\n        \"time\": 1.60194117398,\n        \"user\": 1.6002806999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2a5d6ea97a4947ecc95603ba31c627fa341b391c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569875589-2a5d6ea97a4947ecc95603ba31c627fa341b391c\",\n        \"max\": 1.61508574798,\n        \"mean\": 1.60531550438,\n        \"median\": 1.60194117398,\n        \"message\": \"Reinstate aarch64-unknown-linux-gnu build\\n\",\n        \"min\": 1.59861601498,\n        \"stddev\": 0.0073949955429037885,\n        \"system\": 0.060186895,\n        \"time\": 1.59968063398,\n        \"user\": 1.6002806999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n        \"max\": 1.665947790035,\n        \"mean\": 1.610957042235,\n        \"median\": 1.587014992035,\n        \"message\": \"Update crate metadata\\n\",\n        \"min\": 1.5841190330350001,\n        \"stddev\": 0.03721396503527582,\n        \"system\": 0.06306811,\n        \"time\": 1.633480634035,\n        \"user\": 1.6038088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n        \"max\": 1.665947790035,\n        \"mean\": 1.610957042235,\n        \"median\": 1.587014992035,\n        \"message\": \"Update crate metadata\\n\",\n        \"min\": 1.5841190330350001,\n        \"stddev\": 0.03721396503527582,\n        \"system\": 0.06306811,\n        \"time\": 1.665947790035,\n        \"user\": 1.6038088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n        \"max\": 1.665947790035,\n        \"mean\": 1.610957042235,\n        \"median\": 1.587014992035,\n        \"message\": \"Update crate metadata\\n\",\n        \"min\": 1.5841190330350001,\n        \"stddev\": 0.03721396503527582,\n        \"system\": 0.06306811,\n        \"time\": 1.587014992035,\n        \"user\": 1.6038088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n        \"max\": 1.665947790035,\n        \"mean\": 1.610957042235,\n        \"median\": 1.587014992035,\n        \"message\": \"Update crate metadata\\n\",\n        \"min\": 1.5841190330350001,\n        \"stddev\": 0.03721396503527582,\n        \"system\": 0.06306811,\n        \"time\": 1.5842227620350002,\n        \"user\": 1.6038088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7babf3a087991ac54d6c7aadb0ef98da13547888 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569876501-7babf3a087991ac54d6c7aadb0ef98da13547888\",\n        \"max\": 1.665947790035,\n        \"mean\": 1.610957042235,\n        \"median\": 1.587014992035,\n        \"message\": \"Update crate metadata\\n\",\n        \"min\": 1.5841190330350001,\n        \"stddev\": 0.03721396503527582,\n        \"system\": 0.06306811,\n        \"time\": 1.5841190330350001,\n        \"user\": 1.6038088\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n        \"max\": 1.61990471232,\n        \"mean\": 1.6005628787200004,\n        \"median\": 1.59306101132,\n        \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n        \"min\": 1.58413276932,\n        \"stddev\": 0.016325873376081365,\n        \"system\": 0.060011505,\n        \"time\": 1.61990471232,\n        \"user\": 1.5967676199999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n        \"max\": 1.61990471232,\n        \"mean\": 1.6005628787200004,\n        \"median\": 1.59306101132,\n        \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n        \"min\": 1.58413276932,\n        \"stddev\": 0.016325873376081365,\n        \"system\": 0.060011505,\n        \"time\": 1.6161859063200001,\n        \"user\": 1.5967676199999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n        \"max\": 1.61990471232,\n        \"mean\": 1.6005628787200004,\n        \"median\": 1.59306101132,\n        \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n        \"min\": 1.58413276932,\n        \"stddev\": 0.016325873376081365,\n        \"system\": 0.060011505,\n        \"time\": 1.58952999432,\n        \"user\": 1.5967676199999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n        \"max\": 1.61990471232,\n        \"mean\": 1.6005628787200004,\n        \"median\": 1.59306101132,\n        \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n        \"min\": 1.58413276932,\n        \"stddev\": 0.016325873376081365,\n        \"system\": 0.060011505,\n        \"time\": 1.59306101132,\n        \"user\": 1.5967676199999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e2b6da0dd429339ccfd6a67739fc1595afad41c7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569878067-e2b6da0dd429339ccfd6a67739fc1595afad41c7\",\n        \"max\": 1.61990471232,\n        \"mean\": 1.6005628787200004,\n        \"median\": 1.59306101132,\n        \"message\": \"Revert \\\"Reinstate aarch64-unknown-linux-gnu build\\\"\\n\\nThis reverts commit 2a5d6ea97a4947ecc95603ba31c627fa341b391c.\\n\",\n        \"min\": 1.58413276932,\n        \"stddev\": 0.016325873376081365,\n        \"system\": 0.060011505,\n        \"time\": 1.58413276932,\n        \"user\": 1.5967676199999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n        \"max\": 1.602677429425,\n        \"mean\": 1.5817615402249998,\n        \"median\": 1.576571988425,\n        \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n        \"min\": 1.570252552425,\n        \"stddev\": 0.0127358722267928,\n        \"system\": 0.058496755,\n        \"time\": 1.602677429425,\n        \"user\": 1.57970722\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n        \"max\": 1.602677429425,\n        \"mean\": 1.5817615402249998,\n        \"median\": 1.576571988425,\n        \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n        \"min\": 1.570252552425,\n        \"stddev\": 0.0127358722267928,\n        \"system\": 0.058496755,\n        \"time\": 1.576571988425,\n        \"user\": 1.57970722\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n        \"max\": 1.602677429425,\n        \"mean\": 1.5817615402249998,\n        \"median\": 1.576571988425,\n        \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n        \"min\": 1.570252552425,\n        \"stddev\": 0.0127358722267928,\n        \"system\": 0.058496755,\n        \"time\": 1.584292589425,\n        \"user\": 1.57970722\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n        \"max\": 1.602677429425,\n        \"mean\": 1.5817615402249998,\n        \"median\": 1.576571988425,\n        \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n        \"min\": 1.570252552425,\n        \"stddev\": 0.0127358722267928,\n        \"system\": 0.058496755,\n        \"time\": 1.570252552425,\n        \"user\": 1.57970722\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a6d16c315f14243f23c8a59f37ad26088fb71fb4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953350-a6d16c315f14243f23c8a59f37ad26088fb71fb4\",\n        \"max\": 1.602677429425,\n        \"mean\": 1.5817615402249998,\n        \"median\": 1.576571988425,\n        \"message\": \"Support --theme=none\\n\\nFixes #14\\n\",\n        \"min\": 1.570252552425,\n        \"stddev\": 0.0127358722267928,\n        \"system\": 0.058496755,\n        \"time\": 1.575013141425,\n        \"user\": 1.57970722\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n        \"max\": 1.71524980448,\n        \"mean\": 1.6693305110799996,\n        \"median\": 1.67152033848,\n        \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n        \"min\": 1.62187118348,\n        \"stddev\": 0.03677833569512099,\n        \"system\": 0.06633048,\n        \"time\": 1.69185958748,\n        \"user\": 1.659438295\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n        \"max\": 1.71524980448,\n        \"mean\": 1.6693305110799996,\n        \"median\": 1.67152033848,\n        \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n        \"min\": 1.62187118348,\n        \"stddev\": 0.03677833569512099,\n        \"system\": 0.06633048,\n        \"time\": 1.67152033848,\n        \"user\": 1.659438295\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n        \"max\": 1.71524980448,\n        \"mean\": 1.6693305110799996,\n        \"median\": 1.67152033848,\n        \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n        \"min\": 1.62187118348,\n        \"stddev\": 0.03677833569512099,\n        \"system\": 0.06633048,\n        \"time\": 1.71524980448,\n        \"user\": 1.659438295\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n        \"max\": 1.71524980448,\n        \"mean\": 1.6693305110799996,\n        \"median\": 1.67152033848,\n        \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n        \"min\": 1.62187118348,\n        \"stddev\": 0.03677833569512099,\n        \"system\": 0.06633048,\n        \"time\": 1.64615164148,\n        \"user\": 1.659438295\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2396737f0010e2f657b23f0811b76deda60c5e30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569953581-2396737f0010e2f657b23f0811b76deda60c5e30\",\n        \"max\": 1.71524980448,\n        \"mean\": 1.6693305110799996,\n        \"median\": 1.67152033848,\n        \"message\": \"Merge pull request #15 from dandavison/14-no-syntax-highlighting\\n\\nSupport --theme=none\",\n        \"min\": 1.62187118348,\n        \"stddev\": 0.03677833569512099,\n        \"system\": 0.06633048,\n        \"time\": 1.62187118348,\n        \"user\": 1.659438295\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n        \"max\": 1.606045005245,\n        \"mean\": 1.596333297045,\n        \"median\": 1.595837075245,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.585553895245,\n        \"stddev\": 0.007644961448476466,\n        \"system\": 0.059523835000000004,\n        \"time\": 1.606045005245,\n        \"user\": 1.5930052999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n        \"max\": 1.606045005245,\n        \"mean\": 1.596333297045,\n        \"median\": 1.595837075245,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.585553895245,\n        \"stddev\": 0.007644961448476466,\n        \"system\": 0.059523835000000004,\n        \"time\": 1.600416755245,\n        \"user\": 1.5930052999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n        \"max\": 1.606045005245,\n        \"mean\": 1.596333297045,\n        \"median\": 1.595837075245,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.585553895245,\n        \"stddev\": 0.007644961448476466,\n        \"system\": 0.059523835000000004,\n        \"time\": 1.593813754245,\n        \"user\": 1.5930052999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n        \"max\": 1.606045005245,\n        \"mean\": 1.596333297045,\n        \"median\": 1.595837075245,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.585553895245,\n        \"stddev\": 0.007644961448476466,\n        \"system\": 0.059523835000000004,\n        \"time\": 1.585553895245,\n        \"user\": 1.5930052999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e01ab3702df11095d0492cde720b2c26a72ef69 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569960641-8e01ab3702df11095d0492cde720b2c26a72ef69\",\n        \"max\": 1.606045005245,\n        \"mean\": 1.596333297045,\n        \"median\": 1.595837075245,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.585553895245,\n        \"stddev\": 0.007644961448476466,\n        \"system\": 0.059523835000000004,\n        \"time\": 1.595837075245,\n        \"user\": 1.5930052999999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n        \"max\": 1.6144799456349999,\n        \"mean\": 1.602107905435,\n        \"median\": 1.603468813635,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.583704676635,\n        \"stddev\": 0.011475700950687642,\n        \"system\": 0.060423965,\n        \"time\": 1.6144799456349999,\n        \"user\": 1.59765461\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n        \"max\": 1.6144799456349999,\n        \"mean\": 1.602107905435,\n        \"median\": 1.603468813635,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.583704676635,\n        \"stddev\": 0.011475700950687642,\n        \"system\": 0.060423965,\n        \"time\": 1.601106669635,\n        \"user\": 1.59765461\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n        \"max\": 1.6144799456349999,\n        \"mean\": 1.602107905435,\n        \"median\": 1.603468813635,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.583704676635,\n        \"stddev\": 0.011475700950687642,\n        \"system\": 0.060423965,\n        \"time\": 1.607779421635,\n        \"user\": 1.59765461\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n        \"max\": 1.6144799456349999,\n        \"mean\": 1.602107905435,\n        \"median\": 1.603468813635,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.583704676635,\n        \"stddev\": 0.011475700950687642,\n        \"system\": 0.060423965,\n        \"time\": 1.603468813635,\n        \"user\": 1.59765461\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d2f8921293e5e60021060168d423e8a920afb46 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569962369-1d2f8921293e5e60021060168d423e8a920afb46\",\n        \"max\": 1.6144799456349999,\n        \"mean\": 1.602107905435,\n        \"median\": 1.603468813635,\n        \"message\": \"Bump Homebrew formula\\n\",\n        \"min\": 1.583704676635,\n        \"stddev\": 0.011475700950687642,\n        \"system\": 0.060423965,\n        \"time\": 1.583704676635,\n        \"user\": 1.59765461\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n        \"max\": 1.6123748016650001,\n        \"mean\": 1.601108461665,\n        \"median\": 1.6017197406650001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.591137724665,\n        \"stddev\": 0.008239017837828828,\n        \"system\": 0.06107934,\n        \"time\": 1.6123748016650001,\n        \"user\": 1.596559755\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n        \"max\": 1.6123748016650001,\n        \"mean\": 1.601108461665,\n        \"median\": 1.6017197406650001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.591137724665,\n        \"stddev\": 0.008239017837828828,\n        \"system\": 0.06107934,\n        \"time\": 1.604791176665,\n        \"user\": 1.596559755\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n        \"max\": 1.6123748016650001,\n        \"mean\": 1.601108461665,\n        \"median\": 1.6017197406650001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.591137724665,\n        \"stddev\": 0.008239017837828828,\n        \"system\": 0.06107934,\n        \"time\": 1.6017197406650001,\n        \"user\": 1.596559755\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n        \"max\": 1.6123748016650001,\n        \"mean\": 1.601108461665,\n        \"median\": 1.6017197406650001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.591137724665,\n        \"stddev\": 0.008239017837828828,\n        \"system\": 0.06107934,\n        \"time\": 1.591137724665,\n        \"user\": 1.596559755\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ba73e32d57075bb8b34181752f977fcbadfe5f5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569968830-2ba73e32d57075bb8b34181752f977fcbadfe5f5\",\n        \"max\": 1.6123748016650001,\n        \"mean\": 1.601108461665,\n        \"median\": 1.6017197406650001,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.591137724665,\n        \"stddev\": 0.008239017837828828,\n        \"system\": 0.06107934,\n        \"time\": 1.595518864665,\n        \"user\": 1.596559755\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n        \"max\": 1.617912944525,\n        \"mean\": 1.599631649925,\n        \"median\": 1.595604750525,\n        \"message\": \"Bump Homebrew formula and README links\\n\",\n        \"min\": 1.589600727525,\n        \"stddev\": 0.011054461896995518,\n        \"system\": 0.06048252,\n        \"time\": 1.617912944525,\n        \"user\": 1.5955137700000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n        \"max\": 1.617912944525,\n        \"mean\": 1.599631649925,\n        \"median\": 1.595604750525,\n        \"message\": \"Bump Homebrew formula and README links\\n\",\n        \"min\": 1.589600727525,\n        \"stddev\": 0.011054461896995518,\n        \"system\": 0.06048252,\n        \"time\": 1.589600727525,\n        \"user\": 1.5955137700000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n        \"max\": 1.617912944525,\n        \"mean\": 1.599631649925,\n        \"median\": 1.595604750525,\n        \"message\": \"Bump Homebrew formula and README links\\n\",\n        \"min\": 1.589600727525,\n        \"stddev\": 0.011054461896995518,\n        \"system\": 0.06048252,\n        \"time\": 1.593722243525,\n        \"user\": 1.5955137700000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n        \"max\": 1.617912944525,\n        \"mean\": 1.599631649925,\n        \"median\": 1.595604750525,\n        \"message\": \"Bump Homebrew formula and README links\\n\",\n        \"min\": 1.589600727525,\n        \"stddev\": 0.011054461896995518,\n        \"system\": 0.06048252,\n        \"time\": 1.601317583525,\n        \"user\": 1.5955137700000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ccbae6b91cfdf1afdbea0220e72bf1a887d7e631 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1569971234-ccbae6b91cfdf1afdbea0220e72bf1a887d7e631\",\n        \"max\": 1.617912944525,\n        \"mean\": 1.599631649925,\n        \"median\": 1.595604750525,\n        \"message\": \"Bump Homebrew formula and README links\\n\",\n        \"min\": 1.589600727525,\n        \"stddev\": 0.011054461896995518,\n        \"system\": 0.06048252,\n        \"time\": 1.595604750525,\n        \"user\": 1.5955137700000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n        \"max\": 1.638529681875,\n        \"mean\": 1.628777822675,\n        \"median\": 1.6277093398750002,\n        \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n        \"min\": 1.620959216875,\n        \"stddev\": 0.006299787148928856,\n        \"system\": 0.05946923,\n        \"time\": 1.638529681875,\n        \"user\": 1.62467653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n        \"max\": 1.638529681875,\n        \"mean\": 1.628777822675,\n        \"median\": 1.6277093398750002,\n        \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n        \"min\": 1.620959216875,\n        \"stddev\": 0.006299787148928856,\n        \"system\": 0.05946923,\n        \"time\": 1.620959216875,\n        \"user\": 1.62467653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n        \"max\": 1.638529681875,\n        \"mean\": 1.628777822675,\n        \"median\": 1.6277093398750002,\n        \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n        \"min\": 1.620959216875,\n        \"stddev\": 0.006299787148928856,\n        \"system\": 0.05946923,\n        \"time\": 1.6277093398750002,\n        \"user\": 1.62467653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n        \"max\": 1.638529681875,\n        \"mean\": 1.628777822675,\n        \"median\": 1.6277093398750002,\n        \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n        \"min\": 1.620959216875,\n        \"stddev\": 0.006299787148928856,\n        \"system\": 0.05946923,\n        \"time\": 1.6290540798750002,\n        \"user\": 1.62467653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19276b5b4ec380e1e00d784595efaeaf6ce5f40d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570046230-19276b5b4ec380e1e00d784595efaeaf6ce5f40d\",\n        \"max\": 1.638529681875,\n        \"mean\": 1.628777822675,\n        \"median\": 1.6277093398750002,\n        \"message\": \"Replace tabs with spaces\\n\\nFixes #16\\n\",\n        \"min\": 1.620959216875,\n        \"stddev\": 0.006299787148928856,\n        \"system\": 0.05946923,\n        \"time\": 1.6276367948750001,\n        \"user\": 1.62467653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n        \"max\": 1.66115147656,\n        \"mean\": 1.6375783137600002,\n        \"median\": 1.64112771156,\n        \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n        \"min\": 1.61757751856,\n        \"stddev\": 0.01669260464598445,\n        \"system\": 0.060786305,\n        \"time\": 1.64112771156,\n        \"user\": 1.63361211\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n        \"max\": 1.66115147656,\n        \"mean\": 1.6375783137600002,\n        \"median\": 1.64112771156,\n        \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n        \"min\": 1.61757751856,\n        \"stddev\": 0.01669260464598445,\n        \"system\": 0.060786305,\n        \"time\": 1.64179201756,\n        \"user\": 1.63361211\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n        \"max\": 1.66115147656,\n        \"mean\": 1.6375783137600002,\n        \"median\": 1.64112771156,\n        \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n        \"min\": 1.61757751856,\n        \"stddev\": 0.01669260464598445,\n        \"system\": 0.060786305,\n        \"time\": 1.66115147656,\n        \"user\": 1.63361211\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n        \"max\": 1.66115147656,\n        \"mean\": 1.6375783137600002,\n        \"median\": 1.64112771156,\n        \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n        \"min\": 1.61757751856,\n        \"stddev\": 0.01669260464598445,\n        \"system\": 0.060786305,\n        \"time\": 1.6262428445600001,\n        \"user\": 1.63361211\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f89300a69f531f630ff7e053b39ceddb9a6a3283 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570050941-f89300a69f531f630ff7e053b39ceddb9a6a3283\",\n        \"max\": 1.66115147656,\n        \"mean\": 1.6375783137600002,\n        \"median\": 1.64112771156,\n        \"message\": \"Merge pull request #17 from dandavison/16-tabs\\n\\nReplace tabs with spaces\",\n        \"min\": 1.61757751856,\n        \"stddev\": 0.01669260464598445,\n        \"system\": 0.060786305,\n        \"time\": 1.61757751856,\n        \"user\": 1.63361211\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n        \"max\": 1.644057854585,\n        \"mean\": 1.6296379473850002,\n        \"median\": 1.625491105585,\n        \"message\": \"Improve documentation for adding new theme/language\\n\",\n        \"min\": 1.6152449555850001,\n        \"stddev\": 0.0127306300525996,\n        \"system\": 0.06022705500000001,\n        \"time\": 1.625491105585,\n        \"user\": 1.625834625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n        \"max\": 1.644057854585,\n        \"mean\": 1.6296379473850002,\n        \"median\": 1.625491105585,\n        \"message\": \"Improve documentation for adding new theme/language\\n\",\n        \"min\": 1.6152449555850001,\n        \"stddev\": 0.0127306300525996,\n        \"system\": 0.06022705500000001,\n        \"time\": 1.641883700585,\n        \"user\": 1.625834625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n        \"max\": 1.644057854585,\n        \"mean\": 1.6296379473850002,\n        \"median\": 1.625491105585,\n        \"message\": \"Improve documentation for adding new theme/language\\n\",\n        \"min\": 1.6152449555850001,\n        \"stddev\": 0.0127306300525996,\n        \"system\": 0.06022705500000001,\n        \"time\": 1.6152449555850001,\n        \"user\": 1.625834625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n        \"max\": 1.644057854585,\n        \"mean\": 1.6296379473850002,\n        \"median\": 1.625491105585,\n        \"message\": \"Improve documentation for adding new theme/language\\n\",\n        \"min\": 1.6152449555850001,\n        \"stddev\": 0.0127306300525996,\n        \"system\": 0.06022705500000001,\n        \"time\": 1.644057854585,\n        \"user\": 1.625834625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3280e66def4d41d7c8cb503c4e59a4eacd71268e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570986561-3280e66def4d41d7c8cb503c4e59a4eacd71268e\",\n        \"max\": 1.644057854585,\n        \"mean\": 1.6296379473850002,\n        \"median\": 1.625491105585,\n        \"message\": \"Improve documentation for adding new theme/language\\n\",\n        \"min\": 1.6152449555850001,\n        \"stddev\": 0.0127306300525996,\n        \"system\": 0.06022705500000001,\n        \"time\": 1.621512120585,\n        \"user\": 1.625834625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n        \"max\": 1.6404970199700002,\n        \"mean\": 1.6269346527700002,\n        \"median\": 1.62509372597,\n        \"message\": \"Add dyn to suppress warning\\n\",\n        \"min\": 1.6182806569700001,\n        \"stddev\": 0.009167792105731473,\n        \"system\": 0.06002196,\n        \"time\": 1.6404970199700002,\n        \"user\": 1.622752835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n        \"max\": 1.6404970199700002,\n        \"mean\": 1.6269346527700002,\n        \"median\": 1.62509372597,\n        \"message\": \"Add dyn to suppress warning\\n\",\n        \"min\": 1.6182806569700001,\n        \"stddev\": 0.009167792105731473,\n        \"system\": 0.06002196,\n        \"time\": 1.6182806569700001,\n        \"user\": 1.622752835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n        \"max\": 1.6404970199700002,\n        \"mean\": 1.6269346527700002,\n        \"median\": 1.62509372597,\n        \"message\": \"Add dyn to suppress warning\\n\",\n        \"min\": 1.6182806569700001,\n        \"stddev\": 0.009167792105731473,\n        \"system\": 0.06002196,\n        \"time\": 1.62509372597,\n        \"user\": 1.622752835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n        \"max\": 1.6404970199700002,\n        \"mean\": 1.6269346527700002,\n        \"median\": 1.62509372597,\n        \"message\": \"Add dyn to suppress warning\\n\",\n        \"min\": 1.6182806569700001,\n        \"stddev\": 0.009167792105731473,\n        \"system\": 0.06002196,\n        \"time\": 1.61951575497,\n        \"user\": 1.622752835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/049da5faaa8a6242f0c989859cb4cfb2823dadd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570987329-049da5faaa8a6242f0c989859cb4cfb2823dadd8\",\n        \"max\": 1.6404970199700002,\n        \"mean\": 1.6269346527700002,\n        \"median\": 1.62509372597,\n        \"message\": \"Add dyn to suppress warning\\n\",\n        \"min\": 1.6182806569700001,\n        \"stddev\": 0.009167792105731473,\n        \"system\": 0.06002196,\n        \"time\": 1.6312861059700001,\n        \"user\": 1.622752835\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n        \"max\": 1.6747071376150002,\n        \"mean\": 1.6453819354150003,\n        \"median\": 1.6412350856150002,\n        \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n        \"min\": 1.6273688626150002,\n        \"stddev\": 0.01785144670615405,\n        \"system\": 0.062295909999999996,\n        \"time\": 1.6466671156150001,\n        \"user\": 1.640053065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n        \"max\": 1.6747071376150002,\n        \"mean\": 1.6453819354150003,\n        \"median\": 1.6412350856150002,\n        \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n        \"min\": 1.6273688626150002,\n        \"stddev\": 0.01785144670615405,\n        \"system\": 0.062295909999999996,\n        \"time\": 1.6369314756150002,\n        \"user\": 1.640053065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n        \"max\": 1.6747071376150002,\n        \"mean\": 1.6453819354150003,\n        \"median\": 1.6412350856150002,\n        \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n        \"min\": 1.6273688626150002,\n        \"stddev\": 0.01785144670615405,\n        \"system\": 0.062295909999999996,\n        \"time\": 1.6273688626150002,\n        \"user\": 1.640053065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n        \"max\": 1.6747071376150002,\n        \"mean\": 1.6453819354150003,\n        \"median\": 1.6412350856150002,\n        \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n        \"min\": 1.6273688626150002,\n        \"stddev\": 0.01785144670615405,\n        \"system\": 0.062295909999999996,\n        \"time\": 1.6412350856150002,\n        \"user\": 1.640053065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bc6212e3c6a24214731980ab3a8ae2d26dab9db6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1570993372-bc6212e3c6a24214731980ab3a8ae2d26dab9db6\",\n        \"max\": 1.6747071376150002,\n        \"mean\": 1.6453819354150003,\n        \"median\": 1.6412350856150002,\n        \"message\": \"Merge pull request #20 from lzybkr/dyn\\n\\nAdd dyn to suppress warning\",\n        \"min\": 1.6273688626150002,\n        \"stddev\": 0.01785144670615405,\n        \"system\": 0.062295909999999996,\n        \"time\": 1.6747071376150002,\n        \"user\": 1.640053065\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n        \"max\": 1.67822770332,\n        \"mean\": 1.6500650445199998,\n        \"median\": 1.6478134203199999,\n        \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n        \"min\": 1.62428631932,\n        \"stddev\": 0.026209521938918803,\n        \"system\": 0.061703224999999993,\n        \"time\": 1.67822770332,\n        \"user\": 1.6454195900000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n        \"max\": 1.67822770332,\n        \"mean\": 1.6500650445199998,\n        \"median\": 1.6478134203199999,\n        \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n        \"min\": 1.62428631932,\n        \"stddev\": 0.026209521938918803,\n        \"system\": 0.061703224999999993,\n        \"time\": 1.62428631932,\n        \"user\": 1.6454195900000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n        \"max\": 1.67822770332,\n        \"mean\": 1.6500650445199998,\n        \"median\": 1.6478134203199999,\n        \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n        \"min\": 1.62428631932,\n        \"stddev\": 0.026209521938918803,\n        \"system\": 0.061703224999999993,\n        \"time\": 1.62465131032,\n        \"user\": 1.6454195900000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n        \"max\": 1.67822770332,\n        \"mean\": 1.6500650445199998,\n        \"median\": 1.6478134203199999,\n        \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n        \"min\": 1.62428631932,\n        \"stddev\": 0.026209521938918803,\n        \"system\": 0.061703224999999993,\n        \"time\": 1.67534646932,\n        \"user\": 1.6454195900000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571031955-8e4ade1bf1ed4a6b0b453af8e2ff6c7168df0b59\",\n        \"max\": 1.67822770332,\n        \"mean\": 1.6500650445199998,\n        \"median\": 1.6478134203199999,\n        \"message\": \"Don't compute negative line lengths\\n\\nFixes #18\\n\",\n        \"min\": 1.62428631932,\n        \"stddev\": 0.026209521938918803,\n        \"system\": 0.061703224999999993,\n        \"time\": 1.6478134203199999,\n        \"user\": 1.6454195900000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n        \"max\": 1.64427059526,\n        \"mean\": 1.63203894326,\n        \"median\": 1.62535426126,\n        \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n        \"min\": 1.6238235382600001,\n        \"stddev\": 0.010508759998986417,\n        \"system\": 0.06039542999999999,\n        \"time\": 1.64427059526,\n        \"user\": 1.628694015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n        \"max\": 1.64427059526,\n        \"mean\": 1.63203894326,\n        \"median\": 1.62535426126,\n        \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n        \"min\": 1.6238235382600001,\n        \"stddev\": 0.010508759998986417,\n        \"system\": 0.06039542999999999,\n        \"time\": 1.6238235382600001,\n        \"user\": 1.628694015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n        \"max\": 1.64427059526,\n        \"mean\": 1.63203894326,\n        \"median\": 1.62535426126,\n        \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n        \"min\": 1.6238235382600001,\n        \"stddev\": 0.010508759998986417,\n        \"system\": 0.06039542999999999,\n        \"time\": 1.64276423926,\n        \"user\": 1.628694015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n        \"max\": 1.64427059526,\n        \"mean\": 1.63203894326,\n        \"median\": 1.62535426126,\n        \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n        \"min\": 1.6238235382600001,\n        \"stddev\": 0.010508759998986417,\n        \"system\": 0.06039542999999999,\n        \"time\": 1.62398208226,\n        \"user\": 1.628694015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6cb09eafe622598479cfa0b2ece63b8a91f5026 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032239-d6cb09eafe622598479cfa0b2ece63b8a91f5026\",\n        \"max\": 1.64427059526,\n        \"mean\": 1.63203894326,\n        \"median\": 1.62535426126,\n        \"message\": \"Fix width calculation and terminating newline when writing underline\\n\\nFixes #10\\n\",\n        \"min\": 1.6238235382600001,\n        \"stddev\": 0.010508759998986417,\n        \"system\": 0.06039542999999999,\n        \"time\": 1.62535426126,\n        \"user\": 1.628694015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n        \"max\": 1.636431547365,\n        \"mean\": 1.631161573165,\n        \"median\": 1.630565653365,\n        \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n        \"min\": 1.6258436213649998,\n        \"stddev\": 0.0044283236529808504,\n        \"system\": 0.059869565,\n        \"time\": 1.636431547365,\n        \"user\": 1.6276303149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n        \"max\": 1.636431547365,\n        \"mean\": 1.631161573165,\n        \"median\": 1.630565653365,\n        \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n        \"min\": 1.6258436213649998,\n        \"stddev\": 0.0044283236529808504,\n        \"system\": 0.059869565,\n        \"time\": 1.6347868943650001,\n        \"user\": 1.6276303149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n        \"max\": 1.636431547365,\n        \"mean\": 1.631161573165,\n        \"median\": 1.630565653365,\n        \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n        \"min\": 1.6258436213649998,\n        \"stddev\": 0.0044283236529808504,\n        \"system\": 0.059869565,\n        \"time\": 1.6258436213649998,\n        \"user\": 1.6276303149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n        \"max\": 1.636431547365,\n        \"mean\": 1.631161573165,\n        \"median\": 1.630565653365,\n        \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n        \"min\": 1.6258436213649998,\n        \"stddev\": 0.0044283236529808504,\n        \"system\": 0.059869565,\n        \"time\": 1.628180149365,\n        \"user\": 1.6276303149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b235110c1ed72fc581c2df41e85de2dc21377fe9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032416-b235110c1ed72fc581c2df41e85de2dc21377fe9\",\n        \"max\": 1.636431547365,\n        \"mean\": 1.631161573165,\n        \"median\": 1.630565653365,\n        \"message\": \"Merge pull request #21 from dandavison/18-terminal-width-subtraction\\n\\nDon't compute negative line lengths\",\n        \"min\": 1.6258436213649998,\n        \"stddev\": 0.0044283236529808504,\n        \"system\": 0.059869565,\n        \"time\": 1.630565653365,\n        \"user\": 1.6276303149999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n        \"max\": 1.635819647455,\n        \"mean\": 1.628453480655,\n        \"median\": 1.6310303984549999,\n        \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n        \"min\": 1.6163183194550002,\n        \"stddev\": 0.007398781525765136,\n        \"system\": 0.059939959999999994,\n        \"time\": 1.635819647455,\n        \"user\": 1.6248044849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n        \"max\": 1.635819647455,\n        \"mean\": 1.628453480655,\n        \"median\": 1.6310303984549999,\n        \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n        \"min\": 1.6163183194550002,\n        \"stddev\": 0.007398781525765136,\n        \"system\": 0.059939959999999994,\n        \"time\": 1.627499858455,\n        \"user\": 1.6248044849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n        \"max\": 1.635819647455,\n        \"mean\": 1.628453480655,\n        \"median\": 1.6310303984549999,\n        \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n        \"min\": 1.6163183194550002,\n        \"stddev\": 0.007398781525765136,\n        \"system\": 0.059939959999999994,\n        \"time\": 1.631599179455,\n        \"user\": 1.6248044849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n        \"max\": 1.635819647455,\n        \"mean\": 1.628453480655,\n        \"median\": 1.6310303984549999,\n        \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n        \"min\": 1.6163183194550002,\n        \"stddev\": 0.007398781525765136,\n        \"system\": 0.059939959999999994,\n        \"time\": 1.6310303984549999,\n        \"user\": 1.6248044849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8b186b2dfc9f45610490138b850d6cb939525f04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032475-8b186b2dfc9f45610490138b850d6cb939525f04\",\n        \"max\": 1.635819647455,\n        \"mean\": 1.628453480655,\n        \"median\": 1.6310303984549999,\n        \"message\": \"Merge pull request #22 from dandavison/10-allow-less-extra-column\\n\\nFix width calculation and terminating newline when writing underline\",\n        \"min\": 1.6163183194550002,\n        \"stddev\": 0.007398781525765136,\n        \"system\": 0.059939959999999994,\n        \"time\": 1.6163183194550002,\n        \"user\": 1.6248044849999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n        \"max\": 1.655786791065,\n        \"mean\": 1.6403615874650002,\n        \"median\": 1.6390859700650002,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6274938070650002,\n        \"stddev\": 0.011427560364484215,\n        \"system\": 0.06162586499999999,\n        \"time\": 1.6473492870650002,\n        \"user\": 1.63627577\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n        \"max\": 1.655786791065,\n        \"mean\": 1.6403615874650002,\n        \"median\": 1.6390859700650002,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6274938070650002,\n        \"stddev\": 0.011427560364484215,\n        \"system\": 0.06162586499999999,\n        \"time\": 1.655786791065,\n        \"user\": 1.63627577\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n        \"max\": 1.655786791065,\n        \"mean\": 1.6403615874650002,\n        \"median\": 1.6390859700650002,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6274938070650002,\n        \"stddev\": 0.011427560364484215,\n        \"system\": 0.06162586499999999,\n        \"time\": 1.6390859700650002,\n        \"user\": 1.63627577\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n        \"max\": 1.655786791065,\n        \"mean\": 1.6403615874650002,\n        \"median\": 1.6390859700650002,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6274938070650002,\n        \"stddev\": 0.011427560364484215,\n        \"system\": 0.06162586499999999,\n        \"time\": 1.6274938070650002,\n        \"user\": 1.63627577\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2360a90d75e2d574a5d89d3c608ee77748e6d37 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571032747-c2360a90d75e2d574a5d89d3c608ee77748e6d37\",\n        \"max\": 1.655786791065,\n        \"mean\": 1.6403615874650002,\n        \"median\": 1.6390859700650002,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6274938070650002,\n        \"stddev\": 0.011427560364484215,\n        \"system\": 0.06162586499999999,\n        \"time\": 1.632092082065,\n        \"user\": 1.63627577\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n        \"max\": 1.639072630075,\n        \"mean\": 1.630302710075,\n        \"median\": 1.6354536930749999,\n        \"message\": \"Bump homebrew version and README links\\n\",\n        \"min\": 1.614423932075,\n        \"stddev\": 0.010660401735130427,\n        \"system\": 0.060475875,\n        \"time\": 1.639072630075,\n        \"user\": 1.6272672849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n        \"max\": 1.639072630075,\n        \"mean\": 1.630302710075,\n        \"median\": 1.6354536930749999,\n        \"message\": \"Bump homebrew version and README links\\n\",\n        \"min\": 1.614423932075,\n        \"stddev\": 0.010660401735130427,\n        \"system\": 0.060475875,\n        \"time\": 1.6382487240749999,\n        \"user\": 1.6272672849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n        \"max\": 1.639072630075,\n        \"mean\": 1.630302710075,\n        \"median\": 1.6354536930749999,\n        \"message\": \"Bump homebrew version and README links\\n\",\n        \"min\": 1.614423932075,\n        \"stddev\": 0.010660401735130427,\n        \"system\": 0.060475875,\n        \"time\": 1.6354536930749999,\n        \"user\": 1.6272672849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n        \"max\": 1.639072630075,\n        \"mean\": 1.630302710075,\n        \"median\": 1.6354536930749999,\n        \"message\": \"Bump homebrew version and README links\\n\",\n        \"min\": 1.614423932075,\n        \"stddev\": 0.010660401735130427,\n        \"system\": 0.060475875,\n        \"time\": 1.624314571075,\n        \"user\": 1.6272672849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0985f4071ef7d00d8d6d511c737b8e47bc5fae54 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571035568-0985f4071ef7d00d8d6d511c737b8e47bc5fae54\",\n        \"max\": 1.639072630075,\n        \"mean\": 1.630302710075,\n        \"median\": 1.6354536930749999,\n        \"message\": \"Bump homebrew version and README links\\n\",\n        \"min\": 1.614423932075,\n        \"stddev\": 0.010660401735130427,\n        \"system\": 0.060475875,\n        \"time\": 1.614423932075,\n        \"user\": 1.6272672849999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n        \"max\": 1.6485821145,\n        \"mean\": 1.6290897213000002,\n        \"median\": 1.6247137264999998,\n        \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n        \"min\": 1.6167792955,\n        \"stddev\": 0.013195343876359934,\n        \"system\": 0.06110814499999999,\n        \"time\": 1.6485821145,\n        \"user\": 1.621737155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n        \"max\": 1.6485821145,\n        \"mean\": 1.6290897213000002,\n        \"median\": 1.6247137264999998,\n        \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n        \"min\": 1.6167792955,\n        \"stddev\": 0.013195343876359934,\n        \"system\": 0.06110814499999999,\n        \"time\": 1.6192640765,\n        \"user\": 1.621737155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n        \"max\": 1.6485821145,\n        \"mean\": 1.6290897213000002,\n        \"median\": 1.6247137264999998,\n        \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n        \"min\": 1.6167792955,\n        \"stddev\": 0.013195343876359934,\n        \"system\": 0.06110814499999999,\n        \"time\": 1.6361093935,\n        \"user\": 1.621737155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n        \"max\": 1.6485821145,\n        \"mean\": 1.6290897213000002,\n        \"median\": 1.6247137264999998,\n        \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n        \"min\": 1.6167792955,\n        \"stddev\": 0.013195343876359934,\n        \"system\": 0.06110814499999999,\n        \"time\": 1.6167792955,\n        \"user\": 1.621737155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/788fd3453bcaacdf9150be53524283c59ef99be9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571036826-788fd3453bcaacdf9150be53524283c59ef99be9\",\n        \"max\": 1.6485821145,\n        \"mean\": 1.6290897213000002,\n        \"median\": 1.6247137264999998,\n        \"message\": \"Update Homebrew instructions\\n\\nFixes #23\\n\",\n        \"min\": 1.6167792955,\n        \"stddev\": 0.013195343876359934,\n        \"system\": 0.06110814499999999,\n        \"time\": 1.6247137264999998,\n        \"user\": 1.621737155\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n        \"max\": 1.69138940248,\n        \"mean\": 1.6815805562800001,\n        \"median\": 1.68541593648,\n        \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n        \"min\": 1.66257309348,\n        \"stddev\": 0.011279529486789055,\n        \"system\": 0.06601737,\n        \"time\": 1.69138940248,\n        \"user\": 1.67305106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n        \"max\": 1.69138940248,\n        \"mean\": 1.6815805562800001,\n        \"median\": 1.68541593648,\n        \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n        \"min\": 1.66257309348,\n        \"stddev\": 0.011279529486789055,\n        \"system\": 0.06601737,\n        \"time\": 1.66257309348,\n        \"user\": 1.67305106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n        \"max\": 1.69138940248,\n        \"mean\": 1.6815805562800001,\n        \"median\": 1.68541593648,\n        \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n        \"min\": 1.66257309348,\n        \"stddev\": 0.011279529486789055,\n        \"system\": 0.06601737,\n        \"time\": 1.68760296348,\n        \"user\": 1.67305106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n        \"max\": 1.69138940248,\n        \"mean\": 1.6815805562800001,\n        \"median\": 1.68541593648,\n        \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n        \"min\": 1.66257309348,\n        \"stddev\": 0.011279529486789055,\n        \"system\": 0.06601737,\n        \"time\": 1.68541593648,\n        \"user\": 1.67305106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d86b57ba6ea62226d662108751acd2ec5048fa30 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571068291-d86b57ba6ea62226d662108751acd2ec5048fa30\",\n        \"max\": 1.69138940248,\n        \"mean\": 1.6815805562800001,\n        \"median\": 1.68541593648,\n        \"message\": \"Revert \\\"Update Homebrew instructions\\\"\\n\\nThis reverts commit 788fd3453bcaacdf9150be53524283c59ef99be9.\\n\",\n        \"min\": 1.66257309348,\n        \"stddev\": 0.011279529486789055,\n        \"system\": 0.06601737,\n        \"time\": 1.68092138548,\n        \"user\": 1.67305106\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n        \"max\": 1.749377778755,\n        \"mean\": 1.686167555755,\n        \"median\": 1.6574258047550001,\n        \"message\": \"Extended separators to better match github diff\\n\",\n        \"min\": 1.6487677487549999,\n        \"stddev\": 0.04549684692256057,\n        \"system\": 0.061877075000000004,\n        \"time\": 1.6574258047550001,\n        \"user\": 1.6779897749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n        \"max\": 1.749377778755,\n        \"mean\": 1.686167555755,\n        \"median\": 1.6574258047550001,\n        \"message\": \"Extended separators to better match github diff\\n\",\n        \"min\": 1.6487677487549999,\n        \"stddev\": 0.04549684692256057,\n        \"system\": 0.061877075000000004,\n        \"time\": 1.6487677487549999,\n        \"user\": 1.6779897749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n        \"max\": 1.749377778755,\n        \"mean\": 1.686167555755,\n        \"median\": 1.6574258047550001,\n        \"message\": \"Extended separators to better match github diff\\n\",\n        \"min\": 1.6487677487549999,\n        \"stddev\": 0.04549684692256057,\n        \"system\": 0.061877075000000004,\n        \"time\": 1.6555771017549998,\n        \"user\": 1.6779897749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n        \"max\": 1.749377778755,\n        \"mean\": 1.686167555755,\n        \"median\": 1.6574258047550001,\n        \"message\": \"Extended separators to better match github diff\\n\",\n        \"min\": 1.6487677487549999,\n        \"stddev\": 0.04549684692256057,\n        \"system\": 0.061877075000000004,\n        \"time\": 1.749377778755,\n        \"user\": 1.6779897749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571193121-1d4b208e4c15f68729c6a8d5e2b138a10e8e44a5\",\n        \"max\": 1.749377778755,\n        \"mean\": 1.686167555755,\n        \"median\": 1.6574258047550001,\n        \"message\": \"Extended separators to better match github diff\\n\",\n        \"min\": 1.6487677487549999,\n        \"stddev\": 0.04549684692256057,\n        \"system\": 0.061877075000000004,\n        \"time\": 1.7196893447550001,\n        \"user\": 1.6779897749999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n        \"max\": 1.6900714604550002,\n        \"mean\": 1.6759762746550002,\n        \"median\": 1.6759364914550001,\n        \"message\": \"Changed the tests to reflect the change\\n\",\n        \"min\": 1.662290072455,\n        \"stddev\": 0.01112933826050537,\n        \"system\": 0.06200281999999999,\n        \"time\": 1.6759364914550001,\n        \"user\": 1.6705801699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n        \"max\": 1.6900714604550002,\n        \"mean\": 1.6759762746550002,\n        \"median\": 1.6759364914550001,\n        \"message\": \"Changed the tests to reflect the change\\n\",\n        \"min\": 1.662290072455,\n        \"stddev\": 0.01112933826050537,\n        \"system\": 0.06200281999999999,\n        \"time\": 1.662290072455,\n        \"user\": 1.6705801699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n        \"max\": 1.6900714604550002,\n        \"mean\": 1.6759762746550002,\n        \"median\": 1.6759364914550001,\n        \"message\": \"Changed the tests to reflect the change\\n\",\n        \"min\": 1.662290072455,\n        \"stddev\": 0.01112933826050537,\n        \"system\": 0.06200281999999999,\n        \"time\": 1.6831873674550002,\n        \"user\": 1.6705801699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n        \"max\": 1.6900714604550002,\n        \"mean\": 1.6759762746550002,\n        \"median\": 1.6759364914550001,\n        \"message\": \"Changed the tests to reflect the change\\n\",\n        \"min\": 1.662290072455,\n        \"stddev\": 0.01112933826050537,\n        \"system\": 0.06200281999999999,\n        \"time\": 1.668395981455,\n        \"user\": 1.6705801699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ad17e22d5f76f07d01885653ebd27f236845a1c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571195168-ad17e22d5f76f07d01885653ebd27f236845a1c4\",\n        \"max\": 1.6900714604550002,\n        \"mean\": 1.6759762746550002,\n        \"median\": 1.6759364914550001,\n        \"message\": \"Changed the tests to reflect the change\\n\",\n        \"min\": 1.662290072455,\n        \"stddev\": 0.01112933826050537,\n        \"system\": 0.06200281999999999,\n        \"time\": 1.6900714604550002,\n        \"user\": 1.6705801699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n        \"max\": 1.75481204301,\n        \"mean\": 1.7095853940099999,\n        \"median\": 1.6983473910100002,\n        \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n        \"min\": 1.6744371180100002,\n        \"stddev\": 0.03132478896482747,\n        \"system\": 0.06290029999999999,\n        \"time\": 1.7262455300100001,\n        \"user\": 1.70286868\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n        \"max\": 1.75481204301,\n        \"mean\": 1.7095853940099999,\n        \"median\": 1.6983473910100002,\n        \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n        \"min\": 1.6744371180100002,\n        \"stddev\": 0.03132478896482747,\n        \"system\": 0.06290029999999999,\n        \"time\": 1.75481204301,\n        \"user\": 1.70286868\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n        \"max\": 1.75481204301,\n        \"mean\": 1.7095853940099999,\n        \"median\": 1.6983473910100002,\n        \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n        \"min\": 1.6744371180100002,\n        \"stddev\": 0.03132478896482747,\n        \"system\": 0.06290029999999999,\n        \"time\": 1.6940848880100001,\n        \"user\": 1.70286868\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n        \"max\": 1.75481204301,\n        \"mean\": 1.7095853940099999,\n        \"median\": 1.6983473910100002,\n        \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n        \"min\": 1.6744371180100002,\n        \"stddev\": 0.03132478896482747,\n        \"system\": 0.06290029999999999,\n        \"time\": 1.6983473910100002,\n        \"user\": 1.70286868\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571203287-0ca352c2d7269fd7d0a309ddf8416efee9d3d3bf\",\n        \"max\": 1.75481204301,\n        \"mean\": 1.7095853940099999,\n        \"median\": 1.6983473910100002,\n        \"message\": \"Merge pull request #28 from ath3/separators\\n\\nExtended separators to better match github diff\",\n        \"min\": 1.6744371180100002,\n        \"stddev\": 0.03132478896482747,\n        \"system\": 0.06290029999999999,\n        \"time\": 1.6744371180100002,\n        \"user\": 1.70286868\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n        \"max\": 1.957333729855,\n        \"mean\": 1.8064056842549998,\n        \"median\": 1.7490844508549999,\n        \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n        \"min\": 1.725274955855,\n        \"stddev\": 0.0983351928501913,\n        \"system\": 0.07143803499999998,\n        \"time\": 1.854730543855,\n        \"user\": 1.7978843699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n        \"max\": 1.957333729855,\n        \"mean\": 1.8064056842549998,\n        \"median\": 1.7490844508549999,\n        \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n        \"min\": 1.725274955855,\n        \"stddev\": 0.0983351928501913,\n        \"system\": 0.07143803499999998,\n        \"time\": 1.7490844508549999,\n        \"user\": 1.7978843699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n        \"max\": 1.957333729855,\n        \"mean\": 1.8064056842549998,\n        \"median\": 1.7490844508549999,\n        \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n        \"min\": 1.725274955855,\n        \"stddev\": 0.0983351928501913,\n        \"system\": 0.07143803499999998,\n        \"time\": 1.725274955855,\n        \"user\": 1.7978843699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n        \"max\": 1.957333729855,\n        \"mean\": 1.8064056842549998,\n        \"median\": 1.7490844508549999,\n        \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n        \"min\": 1.725274955855,\n        \"stddev\": 0.0983351928501913,\n        \"system\": 0.07143803499999998,\n        \"time\": 1.957333729855,\n        \"user\": 1.7978843699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/583d761dcaa5f4bbab2fc0e51825c36083578815 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571253145-583d761dcaa5f4bbab2fc0e51825c36083578815\",\n        \"max\": 1.957333729855,\n        \"mean\": 1.8064056842549998,\n        \"median\": 1.7490844508549999,\n        \"message\": \"Use $BAT_PAGER || $PAGER instead of hardcoded less\\n\\nAmong other things, this allows passing custom flags to less, which disables the default flags, which include --no-init (-X) which removes Page Down / Page Up handling.\",\n        \"min\": 1.725274955855,\n        \"stddev\": 0.0983351928501913,\n        \"system\": 0.07143803499999998,\n        \"time\": 1.745604740855,\n        \"user\": 1.7978843699999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n        \"max\": 1.86261783881,\n        \"mean\": 1.7665748556100003,\n        \"median\": 1.71610219281,\n        \"message\": \"Add `git reflog -p` to README examples\\n\",\n        \"min\": 1.68896238781,\n        \"stddev\": 0.0842338071582119,\n        \"system\": 0.06876859499999999,\n        \"time\": 1.85356263981,\n        \"user\": 1.7484881250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n        \"max\": 1.86261783881,\n        \"mean\": 1.7665748556100003,\n        \"median\": 1.71610219281,\n        \"message\": \"Add `git reflog -p` to README examples\\n\",\n        \"min\": 1.68896238781,\n        \"stddev\": 0.0842338071582119,\n        \"system\": 0.06876859499999999,\n        \"time\": 1.86261783881,\n        \"user\": 1.7484881250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n        \"max\": 1.86261783881,\n        \"mean\": 1.7665748556100003,\n        \"median\": 1.71610219281,\n        \"message\": \"Add `git reflog -p` to README examples\\n\",\n        \"min\": 1.68896238781,\n        \"stddev\": 0.0842338071582119,\n        \"system\": 0.06876859499999999,\n        \"time\": 1.68896238781,\n        \"user\": 1.7484881250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n        \"max\": 1.86261783881,\n        \"mean\": 1.7665748556100003,\n        \"median\": 1.71610219281,\n        \"message\": \"Add `git reflog -p` to README examples\\n\",\n        \"min\": 1.68896238781,\n        \"stddev\": 0.0842338071582119,\n        \"system\": 0.06876859499999999,\n        \"time\": 1.71610219281,\n        \"user\": 1.7484881250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f08b7a62802065f775b305383cd23844c36a854b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571254959-f08b7a62802065f775b305383cd23844c36a854b\",\n        \"max\": 1.86261783881,\n        \"mean\": 1.7665748556100003,\n        \"median\": 1.71610219281,\n        \"message\": \"Add `git reflog -p` to README examples\\n\",\n        \"min\": 1.68896238781,\n        \"stddev\": 0.0842338071582119,\n        \"system\": 0.06876859499999999,\n        \"time\": 1.7116292188100002,\n        \"user\": 1.7484881250000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n        \"max\": 1.75699213357,\n        \"mean\": 1.73466011337,\n        \"median\": 1.7362164955700001,\n        \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n        \"min\": 1.71930740057,\n        \"stddev\": 0.01588391870681567,\n        \"system\": 0.066213565,\n        \"time\": 1.71930740057,\n        \"user\": 1.72590431\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n        \"max\": 1.75699213357,\n        \"mean\": 1.73466011337,\n        \"median\": 1.7362164955700001,\n        \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n        \"min\": 1.71930740057,\n        \"stddev\": 0.01588391870681567,\n        \"system\": 0.066213565,\n        \"time\": 1.71953134657,\n        \"user\": 1.72590431\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n        \"max\": 1.75699213357,\n        \"mean\": 1.73466011337,\n        \"median\": 1.7362164955700001,\n        \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n        \"min\": 1.71930740057,\n        \"stddev\": 0.01588391870681567,\n        \"system\": 0.066213565,\n        \"time\": 1.7362164955700001,\n        \"user\": 1.72590431\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n        \"max\": 1.75699213357,\n        \"mean\": 1.73466011337,\n        \"median\": 1.7362164955700001,\n        \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n        \"min\": 1.71930740057,\n        \"stddev\": 0.01588391870681567,\n        \"system\": 0.066213565,\n        \"time\": 1.75699213357,\n        \"user\": 1.72590431\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cca2c470a5a9bcd6770c72647038ccf490af14c0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288427-cca2c470a5a9bcd6770c72647038ccf490af14c0\",\n        \"max\": 1.75699213357,\n        \"mean\": 1.73466011337,\n        \"median\": 1.7362164955700001,\n        \"message\": \"Rename CLI option: --show-background-colors\\n\\nSee #31\\n\",\n        \"min\": 1.71930740057,\n        \"stddev\": 0.01588391870681567,\n        \"system\": 0.066213565,\n        \"time\": 1.74125319057,\n        \"user\": 1.72590431\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n        \"max\": 1.7812901622550001,\n        \"mean\": 1.746670443455,\n        \"median\": 1.7459991402550001,\n        \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n        \"min\": 1.709454223255,\n        \"stddev\": 0.026805152434650998,\n        \"system\": 0.06662376499999999,\n        \"time\": 1.7602354582550002,\n        \"user\": 1.7342631049999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n        \"max\": 1.7812901622550001,\n        \"mean\": 1.746670443455,\n        \"median\": 1.7459991402550001,\n        \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n        \"min\": 1.709454223255,\n        \"stddev\": 0.026805152434650998,\n        \"system\": 0.06662376499999999,\n        \"time\": 1.709454223255,\n        \"user\": 1.7342631049999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n        \"max\": 1.7812901622550001,\n        \"mean\": 1.746670443455,\n        \"median\": 1.7459991402550001,\n        \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n        \"min\": 1.709454223255,\n        \"stddev\": 0.026805152434650998,\n        \"system\": 0.06662376499999999,\n        \"time\": 1.736373233255,\n        \"user\": 1.7342631049999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n        \"max\": 1.7812901622550001,\n        \"mean\": 1.746670443455,\n        \"median\": 1.7459991402550001,\n        \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n        \"min\": 1.709454223255,\n        \"stddev\": 0.026805152434650998,\n        \"system\": 0.06662376499999999,\n        \"time\": 1.7812901622550001,\n        \"user\": 1.7342631049999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571288492-08aa08d0b86c25c2856a37c9be0a3f09a2f07e1b\",\n        \"max\": 1.7812901622550001,\n        \"mean\": 1.746670443455,\n        \"median\": 1.7459991402550001,\n        \"message\": \"Merge pull request #32 from dandavison/31-show-colors\\n\\nRename CLI option: --show-background-colors\",\n        \"min\": 1.709454223255,\n        \"stddev\": 0.026805152434650998,\n        \"system\": 0.06662376499999999,\n        \"time\": 1.7459991402550001,\n        \"user\": 1.7342631049999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n        \"max\": 1.67974222769,\n        \"mean\": 1.67332389669,\n        \"median\": 1.67829146569,\n        \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n        \"min\": 1.65897500469,\n        \"stddev\": 0.008773517504711704,\n        \"system\": 0.06006478499999999,\n        \"time\": 1.67974222769,\n        \"user\": 1.6696383350000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n        \"max\": 1.67974222769,\n        \"mean\": 1.67332389669,\n        \"median\": 1.67829146569,\n        \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n        \"min\": 1.65897500469,\n        \"stddev\": 0.008773517504711704,\n        \"system\": 0.06006478499999999,\n        \"time\": 1.67082127669,\n        \"user\": 1.6696383350000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n        \"max\": 1.67974222769,\n        \"mean\": 1.67332389669,\n        \"median\": 1.67829146569,\n        \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n        \"min\": 1.65897500469,\n        \"stddev\": 0.008773517504711704,\n        \"system\": 0.06006478499999999,\n        \"time\": 1.67878950869,\n        \"user\": 1.6696383350000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n        \"max\": 1.67974222769,\n        \"mean\": 1.67332389669,\n        \"median\": 1.67829146569,\n        \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n        \"min\": 1.65897500469,\n        \"stddev\": 0.008773517504711704,\n        \"system\": 0.06006478499999999,\n        \"time\": 1.67829146569,\n        \"user\": 1.6696383350000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571292285-8c3733a699ee63b77c0d8ef2460b4a3b652c0bf2\",\n        \"max\": 1.67974222769,\n        \"mean\": 1.67332389669,\n        \"median\": 1.67829146569,\n        \"message\": \"Replace all tabs in line with spaces\\n\\nFixes #27\\n\",\n        \"min\": 1.65897500469,\n        \"stddev\": 0.008773517504711704,\n        \"system\": 0.06006478499999999,\n        \"time\": 1.65897500469,\n        \"user\": 1.6696383350000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n        \"max\": 1.691281485235,\n        \"mean\": 1.676561741035,\n        \"median\": 1.676946701235,\n        \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n        \"min\": 1.6614765442350001,\n        \"stddev\": 0.010547753005403813,\n        \"system\": 0.059964365,\n        \"time\": 1.691281485235,\n        \"user\": 1.673374145\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n        \"max\": 1.691281485235,\n        \"mean\": 1.676561741035,\n        \"median\": 1.676946701235,\n        \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n        \"min\": 1.6614765442350001,\n        \"stddev\": 0.010547753005403813,\n        \"system\": 0.059964365,\n        \"time\": 1.675987205235,\n        \"user\": 1.673374145\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n        \"max\": 1.691281485235,\n        \"mean\": 1.676561741035,\n        \"median\": 1.676946701235,\n        \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n        \"min\": 1.6614765442350001,\n        \"stddev\": 0.010547753005403813,\n        \"system\": 0.059964365,\n        \"time\": 1.676946701235,\n        \"user\": 1.673374145\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n        \"max\": 1.691281485235,\n        \"mean\": 1.676561741035,\n        \"median\": 1.676946701235,\n        \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n        \"min\": 1.6614765442350001,\n        \"stddev\": 0.010547753005403813,\n        \"system\": 0.059964365,\n        \"time\": 1.677116769235,\n        \"user\": 1.673374145\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8fbeaef618497b33f0fe3b0529a825bb60fea03d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571334057-8fbeaef618497b33f0fe3b0529a825bb60fea03d\",\n        \"max\": 1.691281485235,\n        \"mean\": 1.676561741035,\n        \"median\": 1.676946701235,\n        \"message\": \"Fix compiler warning: variable does not need to be mutable\\n\",\n        \"min\": 1.6614765442350001,\n        \"stddev\": 0.010547753005403813,\n        \"system\": 0.059964365,\n        \"time\": 1.6614765442350001,\n        \"user\": 1.673374145\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n        \"max\": 1.6965043663750001,\n        \"mean\": 1.6812644377750001,\n        \"median\": 1.6825589983750002,\n        \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n        \"min\": 1.667276333375,\n        \"stddev\": 0.01191736572280662,\n        \"system\": 0.061040605000000005,\n        \"time\": 1.6825589983750002,\n        \"user\": 1.6765844199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n        \"max\": 1.6965043663750001,\n        \"mean\": 1.6812644377750001,\n        \"median\": 1.6825589983750002,\n        \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n        \"min\": 1.667276333375,\n        \"stddev\": 0.01191736572280662,\n        \"system\": 0.061040605000000005,\n        \"time\": 1.6882148093750002,\n        \"user\": 1.6765844199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n        \"max\": 1.6965043663750001,\n        \"mean\": 1.6812644377750001,\n        \"median\": 1.6825589983750002,\n        \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n        \"min\": 1.667276333375,\n        \"stddev\": 0.01191736572280662,\n        \"system\": 0.061040605000000005,\n        \"time\": 1.667276333375,\n        \"user\": 1.6765844199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n        \"max\": 1.6965043663750001,\n        \"mean\": 1.6812644377750001,\n        \"median\": 1.6825589983750002,\n        \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n        \"min\": 1.667276333375,\n        \"stddev\": 0.01191736572280662,\n        \"system\": 0.061040605000000005,\n        \"time\": 1.671767681375,\n        \"user\": 1.6765844199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2eff124075f6b57402b07423cace7da183a7cdbb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571335092-2eff124075f6b57402b07423cace7da183a7cdbb\",\n        \"max\": 1.6965043663750001,\n        \"mean\": 1.6812644377750001,\n        \"median\": 1.6825589983750002,\n        \"message\": \"Merge pull request #33 from dandavison/27-tabs\\n\\nReplace all tabs in line with spaces\",\n        \"min\": 1.667276333375,\n        \"stddev\": 0.01191736572280662,\n        \"system\": 0.061040605000000005,\n        \"time\": 1.6965043663750001,\n        \"user\": 1.6765844199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n        \"max\": 2.076995202875,\n        \"mean\": 1.891151899075,\n        \"median\": 1.912134700875,\n        \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n        \"min\": 1.732048745875,\n        \"stddev\": 0.12950498074984354,\n        \"system\": 0.083686485,\n        \"time\": 1.920467462875,\n        \"user\": 1.87067567\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n        \"max\": 2.076995202875,\n        \"mean\": 1.891151899075,\n        \"median\": 1.912134700875,\n        \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n        \"min\": 1.732048745875,\n        \"stddev\": 0.12950498074984354,\n        \"system\": 0.083686485,\n        \"time\": 1.814113382875,\n        \"user\": 1.87067567\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n        \"max\": 2.076995202875,\n        \"mean\": 1.891151899075,\n        \"median\": 1.912134700875,\n        \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n        \"min\": 1.732048745875,\n        \"stddev\": 0.12950498074984354,\n        \"system\": 0.083686485,\n        \"time\": 2.076995202875,\n        \"user\": 1.87067567\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n        \"max\": 2.076995202875,\n        \"mean\": 1.891151899075,\n        \"median\": 1.912134700875,\n        \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n        \"min\": 1.732048745875,\n        \"stddev\": 0.12950498074984354,\n        \"system\": 0.083686485,\n        \"time\": 1.732048745875,\n        \"user\": 1.87067567\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3af7f5a08b5e1eb321ed0f5d148ee06d78321a64 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571360762-3af7f5a08b5e1eb321ed0f5d148ee06d78321a64\",\n        \"max\": 2.076995202875,\n        \"mean\": 1.891151899075,\n        \"median\": 1.912134700875,\n        \"message\": \"Apply background colors to unrecognized file types\\n\\nIf a theme is selected, foreground highlighting will be highlighted as .txt.\\nIf theme=none there will be no foreground highlighting.\\n\\nFixes #34\\n\",\n        \"min\": 1.732048745875,\n        \"stddev\": 0.12950498074984354,\n        \"system\": 0.083686485,\n        \"time\": 1.912134700875,\n        \"user\": 1.87067567\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n        \"max\": 2.0220149348149996,\n        \"mean\": 1.836561624815,\n        \"median\": 1.7480367248150002,\n        \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n        \"min\": 1.727463985815,\n        \"stddev\": 0.1387355185981961,\n        \"system\": 0.07262614999999999,\n        \"time\": 1.7480367248150002,\n        \"user\": 1.8243777049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n        \"max\": 2.0220149348149996,\n        \"mean\": 1.836561624815,\n        \"median\": 1.7480367248150002,\n        \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n        \"min\": 1.727463985815,\n        \"stddev\": 0.1387355185981961,\n        \"system\": 0.07262614999999999,\n        \"time\": 1.727463985815,\n        \"user\": 1.8243777049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n        \"max\": 2.0220149348149996,\n        \"mean\": 1.836561624815,\n        \"median\": 1.7480367248150002,\n        \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n        \"min\": 1.727463985815,\n        \"stddev\": 0.1387355185981961,\n        \"system\": 0.07262614999999999,\n        \"time\": 2.0220149348149996,\n        \"user\": 1.8243777049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n        \"max\": 2.0220149348149996,\n        \"mean\": 1.836561624815,\n        \"median\": 1.7480367248150002,\n        \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n        \"min\": 1.727463985815,\n        \"stddev\": 0.1387355185981961,\n        \"system\": 0.07262614999999999,\n        \"time\": 1.7359123448150002,\n        \"user\": 1.8243777049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2d52dded116c6e6e776800108b01914c1f60e40e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376289-2d52dded116c6e6e776800108b01914c1f60e40e\",\n        \"max\": 2.0220149348149996,\n        \"mean\": 1.836561624815,\n        \"median\": 1.7480367248150002,\n        \"message\": \"Handle broken pipe in --compare-themes\\n\\nFixes #38\\n\",\n        \"min\": 1.727463985815,\n        \"stddev\": 0.1387355185981961,\n        \"system\": 0.07262614999999999,\n        \"time\": 1.949380133815,\n        \"user\": 1.8243777049999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n        \"max\": 1.9791077594100002,\n        \"mean\": 1.85194980381,\n        \"median\": 1.87725294441,\n        \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n        \"min\": 1.73153866041,\n        \"stddev\": 0.09866019406898846,\n        \"system\": 0.0770565,\n        \"time\": 1.7762863424100002,\n        \"user\": 1.8330042899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n        \"max\": 1.9791077594100002,\n        \"mean\": 1.85194980381,\n        \"median\": 1.87725294441,\n        \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n        \"min\": 1.73153866041,\n        \"stddev\": 0.09866019406898846,\n        \"system\": 0.0770565,\n        \"time\": 1.89556331241,\n        \"user\": 1.8330042899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n        \"max\": 1.9791077594100002,\n        \"mean\": 1.85194980381,\n        \"median\": 1.87725294441,\n        \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n        \"min\": 1.73153866041,\n        \"stddev\": 0.09866019406898846,\n        \"system\": 0.0770565,\n        \"time\": 1.73153866041,\n        \"user\": 1.8330042899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n        \"max\": 1.9791077594100002,\n        \"mean\": 1.85194980381,\n        \"median\": 1.87725294441,\n        \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n        \"min\": 1.73153866041,\n        \"stddev\": 0.09866019406898846,\n        \"system\": 0.0770565,\n        \"time\": 1.87725294441,\n        \"user\": 1.8330042899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/92b7fd5d5f04d0b2043806f244ab0953ecbf3de3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571376373-92b7fd5d5f04d0b2043806f244ab0953ecbf3de3\",\n        \"max\": 1.9791077594100002,\n        \"mean\": 1.85194980381,\n        \"median\": 1.87725294441,\n        \"message\": \"Merge pull request #39 from dandavison/38-compare-themes-broken-pipe\\n\\nHandle broken pipe in --compare-themes\",\n        \"min\": 1.73153866041,\n        \"stddev\": 0.09866019406898846,\n        \"system\": 0.0770565,\n        \"time\": 1.9791077594100002,\n        \"user\": 1.8330042899999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n        \"max\": 2.05251940022,\n        \"mean\": 1.9014428428199999,\n        \"median\": 1.85271021722,\n        \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n        \"min\": 1.79446283522,\n        \"stddev\": 0.11975562659829767,\n        \"system\": 0.08017157999999999,\n        \"time\": 1.85271021722,\n        \"user\": 1.8817974450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n        \"max\": 2.05251940022,\n        \"mean\": 1.9014428428199999,\n        \"median\": 1.85271021722,\n        \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n        \"min\": 1.79446283522,\n        \"stddev\": 0.11975562659829767,\n        \"system\": 0.08017157999999999,\n        \"time\": 1.79446283522,\n        \"user\": 1.8817974450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n        \"max\": 2.05251940022,\n        \"mean\": 1.9014428428199999,\n        \"median\": 1.85271021722,\n        \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n        \"min\": 1.79446283522,\n        \"stddev\": 0.11975562659829767,\n        \"system\": 0.08017157999999999,\n        \"time\": 1.8019984692200002,\n        \"user\": 1.8817974450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n        \"max\": 2.05251940022,\n        \"mean\": 1.9014428428199999,\n        \"median\": 1.85271021722,\n        \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n        \"min\": 1.79446283522,\n        \"stddev\": 0.11975562659829767,\n        \"system\": 0.08017157999999999,\n        \"time\": 2.05251940022,\n        \"user\": 1.8817974450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5da325f3e1a1bee6bf1db1560846364e12d6aec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468045-5da325f3e1a1bee6bf1db1560846364e12d6aec7\",\n        \"max\": 2.05251940022,\n        \"mean\": 1.9014428428199999,\n        \"median\": 1.85271021722,\n        \"message\": \"Refactor tests, don't parse command line arguments in tests\\n\",\n        \"min\": 1.79446283522,\n        \"stddev\": 0.11975562659829767,\n        \"system\": 0.08017157999999999,\n        \"time\": 2.00552329222,\n        \"user\": 1.8817974450000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n        \"max\": 1.99661255905,\n        \"mean\": 1.8663282752500003,\n        \"median\": 1.83534819405,\n        \"message\": \"Test recognized and unrecognized file types\\n\",\n        \"min\": 1.78535833305,\n        \"stddev\": 0.08818298609131972,\n        \"system\": 0.07729403499999998,\n        \"time\": 1.83534819405,\n        \"user\": 1.8518293899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n        \"max\": 1.99661255905,\n        \"mean\": 1.8663282752500003,\n        \"median\": 1.83534819405,\n        \"message\": \"Test recognized and unrecognized file types\\n\",\n        \"min\": 1.78535833305,\n        \"stddev\": 0.08818298609131972,\n        \"system\": 0.07729403499999998,\n        \"time\": 1.78535833305,\n        \"user\": 1.8518293899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n        \"max\": 1.99661255905,\n        \"mean\": 1.8663282752500003,\n        \"median\": 1.83534819405,\n        \"message\": \"Test recognized and unrecognized file types\\n\",\n        \"min\": 1.78535833305,\n        \"stddev\": 0.08818298609131972,\n        \"system\": 0.07729403499999998,\n        \"time\": 1.99661255905,\n        \"user\": 1.8518293899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n        \"max\": 1.99661255905,\n        \"mean\": 1.8663282752500003,\n        \"median\": 1.83534819405,\n        \"message\": \"Test recognized and unrecognized file types\\n\",\n        \"min\": 1.78535833305,\n        \"stddev\": 0.08818298609131972,\n        \"system\": 0.07729403499999998,\n        \"time\": 1.91393698505,\n        \"user\": 1.8518293899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b87d215754b7c9d7bb1d459a63230043c9b173f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468322-b87d215754b7c9d7bb1d459a63230043c9b173f0\",\n        \"max\": 1.99661255905,\n        \"mean\": 1.8663282752500003,\n        \"median\": 1.83534819405,\n        \"message\": \"Test recognized and unrecognized file types\\n\",\n        \"min\": 1.78535833305,\n        \"stddev\": 0.08818298609131972,\n        \"system\": 0.07729403499999998,\n        \"time\": 1.80038530505,\n        \"user\": 1.8518293899999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n        \"max\": 2.019309025635,\n        \"mean\": 1.8329849652350003,\n        \"median\": 1.8032783136350001,\n        \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n        \"min\": 1.7239523246350001,\n        \"stddev\": 0.11509860244473041,\n        \"system\": 0.07363996999999999,\n        \"time\": 1.855943734635,\n        \"user\": 1.821862795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n        \"max\": 2.019309025635,\n        \"mean\": 1.8329849652350003,\n        \"median\": 1.8032783136350001,\n        \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n        \"min\": 1.7239523246350001,\n        \"stddev\": 0.11509860244473041,\n        \"system\": 0.07363996999999999,\n        \"time\": 1.8032783136350001,\n        \"user\": 1.821862795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n        \"max\": 2.019309025635,\n        \"mean\": 1.8329849652350003,\n        \"median\": 1.8032783136350001,\n        \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n        \"min\": 1.7239523246350001,\n        \"stddev\": 0.11509860244473041,\n        \"system\": 0.07363996999999999,\n        \"time\": 1.762441427635,\n        \"user\": 1.821862795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n        \"max\": 2.019309025635,\n        \"mean\": 1.8329849652350003,\n        \"median\": 1.8032783136350001,\n        \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n        \"min\": 1.7239523246350001,\n        \"stddev\": 0.11509860244473041,\n        \"system\": 0.07363996999999999,\n        \"time\": 1.7239523246350001,\n        \"user\": 1.821862795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3c668da30001446b82156a9dc4a477c299679ccd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571468444-3c668da30001446b82156a9dc4a477c299679ccd\",\n        \"max\": 2.019309025635,\n        \"mean\": 1.8329849652350003,\n        \"median\": 1.8032783136350001,\n        \"message\": \"Merge pull request #36 from dandavison/34-unrecognized-file-types\\n\\nHandle unrecognised file types\",\n        \"min\": 1.7239523246350001,\n        \"stddev\": 0.11509860244473041,\n        \"system\": 0.07363996999999999,\n        \"time\": 2.019309025635,\n        \"user\": 1.821862795\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n        \"max\": 1.91038226295,\n        \"mean\": 1.83770777135,\n        \"median\": 1.83881793195,\n        \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n        \"min\": 1.7661111619499998,\n        \"stddev\": 0.051568545449354755,\n        \"system\": 0.07472437999999999,\n        \"time\": 1.91038226295,\n        \"user\": 1.824329565\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n        \"max\": 1.91038226295,\n        \"mean\": 1.83770777135,\n        \"median\": 1.83881793195,\n        \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n        \"min\": 1.7661111619499998,\n        \"stddev\": 0.051568545449354755,\n        \"system\": 0.07472437999999999,\n        \"time\": 1.84724335695,\n        \"user\": 1.824329565\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n        \"max\": 1.91038226295,\n        \"mean\": 1.83770777135,\n        \"median\": 1.83881793195,\n        \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n        \"min\": 1.7661111619499998,\n        \"stddev\": 0.051568545449354755,\n        \"system\": 0.07472437999999999,\n        \"time\": 1.82598414295,\n        \"user\": 1.824329565\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n        \"max\": 1.91038226295,\n        \"mean\": 1.83770777135,\n        \"median\": 1.83881793195,\n        \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n        \"min\": 1.7661111619499998,\n        \"stddev\": 0.051568545449354755,\n        \"system\": 0.07472437999999999,\n        \"time\": 1.83881793195,\n        \"user\": 1.824329565\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20666bd08c02ef891d154f6a5b1b706d720f4f61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874486-20666bd08c02ef891d154f6a5b1b706d720f4f61\",\n        \"max\": 1.91038226295,\n        \"mean\": 1.83770777135,\n        \"median\": 1.83881793195,\n        \"message\": \"Merge pull request #30 from myfreeweb/patch-1\\n\\nUse $BAT_PAGER || $PAGER instead of hardcoded less\",\n        \"min\": 1.7661111619499998,\n        \"stddev\": 0.051568545449354755,\n        \"system\": 0.07472437999999999,\n        \"time\": 1.7661111619499998,\n        \"user\": 1.824329565\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n        \"max\": 1.85544390386,\n        \"mean\": 1.8087920730599998,\n        \"median\": 1.7982192288599999,\n        \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n        \"min\": 1.78086014086,\n        \"stddev\": 0.02933469913390957,\n        \"system\": 0.07323297999999998,\n        \"time\": 1.78086014086,\n        \"user\": 1.796521705\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n        \"max\": 1.85544390386,\n        \"mean\": 1.8087920730599998,\n        \"median\": 1.7982192288599999,\n        \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n        \"min\": 1.78086014086,\n        \"stddev\": 0.02933469913390957,\n        \"system\": 0.07323297999999998,\n        \"time\": 1.7916697938600001,\n        \"user\": 1.796521705\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n        \"max\": 1.85544390386,\n        \"mean\": 1.8087920730599998,\n        \"median\": 1.7982192288599999,\n        \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n        \"min\": 1.78086014086,\n        \"stddev\": 0.02933469913390957,\n        \"system\": 0.07323297999999998,\n        \"time\": 1.8177672978600001,\n        \"user\": 1.796521705\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n        \"max\": 1.85544390386,\n        \"mean\": 1.8087920730599998,\n        \"median\": 1.7982192288599999,\n        \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n        \"min\": 1.78086014086,\n        \"stddev\": 0.02933469913390957,\n        \"system\": 0.07323297999999998,\n        \"time\": 1.85544390386,\n        \"user\": 1.796521705\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c6517fadfc7250fe0cedb1388f18a10e32ecfbe3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571874506-c6517fadfc7250fe0cedb1388f18a10e32ecfbe3\",\n        \"max\": 1.85544390386,\n        \"mean\": 1.8087920730599998,\n        \"median\": 1.7982192288599999,\n        \"message\": \"Remove pager from config struct\\n\\nRef #30\\n\",\n        \"min\": 1.78086014086,\n        \"stddev\": 0.02933469913390957,\n        \"system\": 0.07323297999999998,\n        \"time\": 1.7982192288599999,\n        \"user\": 1.796521705\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n        \"max\": 1.94367948187,\n        \"mean\": 1.8221982468699998,\n        \"median\": 1.79064750387,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.7725180078699998,\n        \"stddev\": 0.0698583148711172,\n        \"system\": 0.07403870499999998,\n        \"time\": 1.78642976387,\n        \"user\": 1.8057163949999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n        \"max\": 1.94367948187,\n        \"mean\": 1.8221982468699998,\n        \"median\": 1.79064750387,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.7725180078699998,\n        \"stddev\": 0.0698583148711172,\n        \"system\": 0.07403870499999998,\n        \"time\": 1.79064750387,\n        \"user\": 1.8057163949999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n        \"max\": 1.94367948187,\n        \"mean\": 1.8221982468699998,\n        \"median\": 1.79064750387,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.7725180078699998,\n        \"stddev\": 0.0698583148711172,\n        \"system\": 0.07403870499999998,\n        \"time\": 1.7725180078699998,\n        \"user\": 1.8057163949999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n        \"max\": 1.94367948187,\n        \"mean\": 1.8221982468699998,\n        \"median\": 1.79064750387,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.7725180078699998,\n        \"stddev\": 0.0698583148711172,\n        \"system\": 0.07403870499999998,\n        \"time\": 1.81771647687,\n        \"user\": 1.8057163949999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f702874e58ef36ecd859f298c454126d718a41b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571875206-f702874e58ef36ecd859f298c454126d718a41b6\",\n        \"max\": 1.94367948187,\n        \"mean\": 1.8221982468699998,\n        \"median\": 1.79064750387,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.7725180078699998,\n        \"stddev\": 0.0698583148711172,\n        \"system\": 0.07403870499999998,\n        \"time\": 1.94367948187,\n        \"user\": 1.8057163949999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n        \"max\": 1.986528651685,\n        \"mean\": 1.8237671366850001,\n        \"median\": 1.787681014685,\n        \"message\": \"Bump version in links\\n\",\n        \"min\": 1.7612490146850002,\n        \"stddev\": 0.09231565957979386,\n        \"system\": 0.077240765,\n        \"time\": 1.986528651685,\n        \"user\": 1.80825521\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n        \"max\": 1.986528651685,\n        \"mean\": 1.8237671366850001,\n        \"median\": 1.787681014685,\n        \"message\": \"Bump version in links\\n\",\n        \"min\": 1.7612490146850002,\n        \"stddev\": 0.09231565957979386,\n        \"system\": 0.077240765,\n        \"time\": 1.804506686685,\n        \"user\": 1.80825521\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n        \"max\": 1.986528651685,\n        \"mean\": 1.8237671366850001,\n        \"median\": 1.787681014685,\n        \"message\": \"Bump version in links\\n\",\n        \"min\": 1.7612490146850002,\n        \"stddev\": 0.09231565957979386,\n        \"system\": 0.077240765,\n        \"time\": 1.7612490146850002,\n        \"user\": 1.80825521\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n        \"max\": 1.986528651685,\n        \"mean\": 1.8237671366850001,\n        \"median\": 1.787681014685,\n        \"message\": \"Bump version in links\\n\",\n        \"min\": 1.7612490146850002,\n        \"stddev\": 0.09231565957979386,\n        \"system\": 0.077240765,\n        \"time\": 1.7788703156849999,\n        \"user\": 1.80825521\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ba454ba3863e3976911e31efb14b0dac25e6c8f0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1571897689-ba454ba3863e3976911e31efb14b0dac25e6c8f0\",\n        \"max\": 1.986528651685,\n        \"mean\": 1.8237671366850001,\n        \"median\": 1.787681014685,\n        \"message\": \"Bump version in links\\n\",\n        \"min\": 1.7612490146850002,\n        \"stddev\": 0.09231565957979386,\n        \"system\": 0.077240765,\n        \"time\": 1.787681014685,\n        \"user\": 1.80825521\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n        \"max\": 2.0446609367799997,\n        \"mean\": 1.82828507998,\n        \"median\": 1.7888713087800001,\n        \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n        \"min\": 1.73641691778,\n        \"stddev\": 0.12683916892072247,\n        \"system\": 0.07124981,\n        \"time\": 1.7888713087800001,\n        \"user\": 1.8155802600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n        \"max\": 2.0446609367799997,\n        \"mean\": 1.82828507998,\n        \"median\": 1.7888713087800001,\n        \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n        \"min\": 1.73641691778,\n        \"stddev\": 0.12683916892072247,\n        \"system\": 0.07124981,\n        \"time\": 1.8300128017800001,\n        \"user\": 1.8155802600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n        \"max\": 2.0446609367799997,\n        \"mean\": 1.82828507998,\n        \"median\": 1.7888713087800001,\n        \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n        \"min\": 1.73641691778,\n        \"stddev\": 0.12683916892072247,\n        \"system\": 0.07124981,\n        \"time\": 2.0446609367799997,\n        \"user\": 1.8155802600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n        \"max\": 2.0446609367799997,\n        \"mean\": 1.82828507998,\n        \"median\": 1.7888713087800001,\n        \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n        \"min\": 1.73641691778,\n        \"stddev\": 0.12683916892072247,\n        \"system\": 0.07124981,\n        \"time\": 1.7414634347800002,\n        \"user\": 1.8155802600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/20a9f78a825c3fe786302ab412a6af7651c6bd68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191717-20a9f78a825c3fe786302ab412a6af7651c6bd68\",\n        \"max\": 2.0446609367799997,\n        \"mean\": 1.82828507998,\n        \"median\": 1.7888713087800001,\n        \"message\": \"Make one more character available for less\\n\\nFixes #41\\n\",\n        \"min\": 1.73641691778,\n        \"stddev\": 0.12683916892072247,\n        \"system\": 0.07124981,\n        \"time\": 1.73641691778,\n        \"user\": 1.8155802600000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n        \"max\": 2.0216179263300003,\n        \"mean\": 1.8411191099300002,\n        \"median\": 1.78738878533,\n        \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n        \"min\": 1.7501132373300001,\n        \"stddev\": 0.11561843369651265,\n        \"system\": 0.07357433,\n        \"time\": 1.75585023833,\n        \"user\": 1.82455338\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n        \"max\": 2.0216179263300003,\n        \"mean\": 1.8411191099300002,\n        \"median\": 1.78738878533,\n        \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n        \"min\": 1.7501132373300001,\n        \"stddev\": 0.11561843369651265,\n        \"system\": 0.07357433,\n        \"time\": 2.0216179263300003,\n        \"user\": 1.82455338\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n        \"max\": 2.0216179263300003,\n        \"mean\": 1.8411191099300002,\n        \"median\": 1.78738878533,\n        \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n        \"min\": 1.7501132373300001,\n        \"stddev\": 0.11561843369651265,\n        \"system\": 0.07357433,\n        \"time\": 1.7501132373300001,\n        \"user\": 1.82455338\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n        \"max\": 2.0216179263300003,\n        \"mean\": 1.8411191099300002,\n        \"median\": 1.78738878533,\n        \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n        \"min\": 1.7501132373300001,\n        \"stddev\": 0.11561843369651265,\n        \"system\": 0.07357433,\n        \"time\": 1.78738878533,\n        \"user\": 1.82455338\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f61824b2c13220dcc5f101e9be5fa1c3e2c79000 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572191847-f61824b2c13220dcc5f101e9be5fa1c3e2c79000\",\n        \"max\": 2.0216179263300003,\n        \"mean\": 1.8411191099300002,\n        \"median\": 1.78738878533,\n        \"message\": \"Merge pull request #43 from dandavison/41-allocate-extra-space-for-less\\n\\nMake one more character available for less\",\n        \"min\": 1.7501132373300001,\n        \"stddev\": 0.11561843369651265,\n        \"system\": 0.07357433,\n        \"time\": 1.89062536233,\n        \"user\": 1.82455338\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n        \"max\": 1.90121851209,\n        \"mean\": 1.82223031209,\n        \"median\": 1.8250404530900002,\n        \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n        \"min\": 1.7338159030900002,\n        \"stddev\": 0.06416541352922212,\n        \"system\": 0.07547793,\n        \"time\": 1.8600548250900002,\n        \"user\": 1.8091722349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n        \"max\": 1.90121851209,\n        \"mean\": 1.82223031209,\n        \"median\": 1.8250404530900002,\n        \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n        \"min\": 1.7338159030900002,\n        \"stddev\": 0.06416541352922212,\n        \"system\": 0.07547793,\n        \"time\": 1.7910218670900002,\n        \"user\": 1.8091722349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n        \"max\": 1.90121851209,\n        \"mean\": 1.82223031209,\n        \"median\": 1.8250404530900002,\n        \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n        \"min\": 1.7338159030900002,\n        \"stddev\": 0.06416541352922212,\n        \"system\": 0.07547793,\n        \"time\": 1.90121851209,\n        \"user\": 1.8091722349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n        \"max\": 1.90121851209,\n        \"mean\": 1.82223031209,\n        \"median\": 1.8250404530900002,\n        \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n        \"min\": 1.7338159030900002,\n        \"stddev\": 0.06416541352922212,\n        \"system\": 0.07547793,\n        \"time\": 1.8250404530900002,\n        \"user\": 1.8091722349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/50a277385a3f20fdd3baac1b4263ceea6bca5882 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194523-50a277385a3f20fdd3baac1b4263ceea6bca5882\",\n        \"max\": 1.90121851209,\n        \"mean\": 1.82223031209,\n        \"median\": 1.8250404530900002,\n        \"message\": \"Ignore environment variables if they are empty\\n\\nFixes #42\\n\",\n        \"min\": 1.7338159030900002,\n        \"stddev\": 0.06416541352922212,\n        \"system\": 0.07547793,\n        \"time\": 1.7338159030900002,\n        \"user\": 1.8091722349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n        \"max\": 1.913544771435,\n        \"mean\": 1.827434752835,\n        \"median\": 1.796430682435,\n        \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n        \"min\": 1.7818857604349998,\n        \"stddev\": 0.05500856201111077,\n        \"system\": 0.07617627499999999,\n        \"time\": 1.796430682435,\n        \"user\": 1.812930085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n        \"max\": 1.913544771435,\n        \"mean\": 1.827434752835,\n        \"median\": 1.796430682435,\n        \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n        \"min\": 1.7818857604349998,\n        \"stddev\": 0.05500856201111077,\n        \"system\": 0.07617627499999999,\n        \"time\": 1.851004127435,\n        \"user\": 1.812930085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n        \"max\": 1.913544771435,\n        \"mean\": 1.827434752835,\n        \"median\": 1.796430682435,\n        \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n        \"min\": 1.7818857604349998,\n        \"stddev\": 0.05500856201111077,\n        \"system\": 0.07617627499999999,\n        \"time\": 1.913544771435,\n        \"user\": 1.812930085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n        \"max\": 1.913544771435,\n        \"mean\": 1.827434752835,\n        \"median\": 1.796430682435,\n        \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n        \"min\": 1.7818857604349998,\n        \"stddev\": 0.05500856201111077,\n        \"system\": 0.07617627499999999,\n        \"time\": 1.7818857604349998,\n        \"user\": 1.812930085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4b7bbdde4064821f0d536b234d53bfb7677343ae < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572194680-4b7bbdde4064821f0d536b234d53bfb7677343ae\",\n        \"max\": 1.913544771435,\n        \"mean\": 1.827434752835,\n        \"median\": 1.796430682435,\n        \"message\": \"Merge pull request #44 from dandavison/42-ignore-empty-env-vars\\n\\nIgnore environment variables if they are empty\",\n        \"min\": 1.7818857604349998,\n        \"stddev\": 0.05500856201111077,\n        \"system\": 0.07617627499999999,\n        \"time\": 1.7943084224349999,\n        \"user\": 1.812930085\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n        \"max\": 1.9952455650499998,\n        \"mean\": 1.83274611605,\n        \"median\": 1.76209074205,\n        \"message\": \"Formatting\\n\",\n        \"min\": 1.74966581405,\n        \"stddev\": 0.11133912816718725,\n        \"system\": 0.07451551,\n        \"time\": 1.9952455650499998,\n        \"user\": 1.82076629\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n        \"max\": 1.9952455650499998,\n        \"mean\": 1.83274611605,\n        \"median\": 1.76209074205,\n        \"message\": \"Formatting\\n\",\n        \"min\": 1.74966581405,\n        \"stddev\": 0.11133912816718725,\n        \"system\": 0.07451551,\n        \"time\": 1.76209074205,\n        \"user\": 1.82076629\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n        \"max\": 1.9952455650499998,\n        \"mean\": 1.83274611605,\n        \"median\": 1.76209074205,\n        \"message\": \"Formatting\\n\",\n        \"min\": 1.74966581405,\n        \"stddev\": 0.11133912816718725,\n        \"system\": 0.07451551,\n        \"time\": 1.74966581405,\n        \"user\": 1.82076629\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n        \"max\": 1.9952455650499998,\n        \"mean\": 1.83274611605,\n        \"median\": 1.76209074205,\n        \"message\": \"Formatting\\n\",\n        \"min\": 1.74966581405,\n        \"stddev\": 0.11133912816718725,\n        \"system\": 0.07451551,\n        \"time\": 1.90335294405,\n        \"user\": 1.82076629\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-f8d2151891a4c16b64f592949f3b5ce0cd0e0d4d\",\n        \"max\": 1.9952455650499998,\n        \"mean\": 1.83274611605,\n        \"median\": 1.76209074205,\n        \"message\": \"Formatting\\n\",\n        \"min\": 1.74966581405,\n        \"stddev\": 0.11133912816718725,\n        \"system\": 0.07451551,\n        \"time\": 1.75337551505,\n        \"user\": 1.82076629\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n        \"max\": 1.8969139696750001,\n        \"mean\": 1.8028116620749999,\n        \"median\": 1.798569944675,\n        \"message\": \"Add env module\\n\",\n        \"min\": 1.748478282675,\n        \"stddev\": 0.05793334808419222,\n        \"system\": 0.072015455,\n        \"time\": 1.748478282675,\n        \"user\": 1.788403615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n        \"max\": 1.8969139696750001,\n        \"mean\": 1.8028116620749999,\n        \"median\": 1.798569944675,\n        \"message\": \"Add env module\\n\",\n        \"min\": 1.748478282675,\n        \"stddev\": 0.05793334808419222,\n        \"system\": 0.072015455,\n        \"time\": 1.8969139696750001,\n        \"user\": 1.788403615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n        \"max\": 1.8969139696750001,\n        \"mean\": 1.8028116620749999,\n        \"median\": 1.798569944675,\n        \"message\": \"Add env module\\n\",\n        \"min\": 1.748478282675,\n        \"stddev\": 0.05793334808419222,\n        \"system\": 0.072015455,\n        \"time\": 1.798569944675,\n        \"user\": 1.788403615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n        \"max\": 1.8969139696750001,\n        \"mean\": 1.8028116620749999,\n        \"median\": 1.798569944675,\n        \"message\": \"Add env module\\n\",\n        \"min\": 1.748478282675,\n        \"stddev\": 0.05793334808419222,\n        \"system\": 0.072015455,\n        \"time\": 1.8070554116750002,\n        \"user\": 1.788403615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fa14a6b144df8a4fae995aa3608c414aad73ed9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572404599-fa14a6b144df8a4fae995aa3608c414aad73ed9c\",\n        \"max\": 1.8969139696750001,\n        \"mean\": 1.8028116620749999,\n        \"median\": 1.798569944675,\n        \"message\": \"Add env module\\n\",\n        \"min\": 1.748478282675,\n        \"stddev\": 0.05793334808419222,\n        \"system\": 0.072015455,\n        \"time\": 1.763040701675,\n        \"user\": 1.788403615\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n        \"max\": 1.80440154425,\n        \"mean\": 1.7433834768499998,\n        \"median\": 1.7322291762500002,\n        \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n        \"min\": 1.7151271652500002,\n        \"stddev\": 0.03627278910565622,\n        \"system\": 0.06548375499999999,\n        \"time\": 1.7322291762500002,\n        \"user\": 1.7358233200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n        \"max\": 1.80440154425,\n        \"mean\": 1.7433834768499998,\n        \"median\": 1.7322291762500002,\n        \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n        \"min\": 1.7151271652500002,\n        \"stddev\": 0.03627278910565622,\n        \"system\": 0.06548375499999999,\n        \"time\": 1.80440154425,\n        \"user\": 1.7358233200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n        \"max\": 1.80440154425,\n        \"mean\": 1.7433834768499998,\n        \"median\": 1.7322291762500002,\n        \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n        \"min\": 1.7151271652500002,\n        \"stddev\": 0.03627278910565622,\n        \"system\": 0.06548375499999999,\n        \"time\": 1.74642492425,\n        \"user\": 1.7358233200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n        \"max\": 1.80440154425,\n        \"mean\": 1.7433834768499998,\n        \"median\": 1.7322291762500002,\n        \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n        \"min\": 1.7151271652500002,\n        \"stddev\": 0.03627278910565622,\n        \"system\": 0.06548375499999999,\n        \"time\": 1.7151271652500002,\n        \"user\": 1.7358233200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9820856631c7bf9ff69f6f3220073b7c876542da < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572671841-9820856631c7bf9ff69f6f3220073b7c876542da\",\n        \"max\": 1.80440154425,\n        \"mean\": 1.7433834768499998,\n        \"median\": 1.7322291762500002,\n        \"message\": \"Use as_ref() rather than &Option<T>\\n\",\n        \"min\": 1.7151271652500002,\n        \"stddev\": 0.03627278910565622,\n        \"system\": 0.06548375499999999,\n        \"time\": 1.71873457425,\n        \"user\": 1.7358233200000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n        \"max\": 1.78506000683,\n        \"mean\": 1.7479044830300001,\n        \"median\": 1.7308000228300002,\n        \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n        \"min\": 1.7226189628300002,\n        \"stddev\": 0.02983931309908452,\n        \"system\": 0.06664693000000001,\n        \"time\": 1.7308000228300002,\n        \"user\": 1.7374236399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n        \"max\": 1.78506000683,\n        \"mean\": 1.7479044830300001,\n        \"median\": 1.7308000228300002,\n        \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n        \"min\": 1.7226189628300002,\n        \"stddev\": 0.02983931309908452,\n        \"system\": 0.06664693000000001,\n        \"time\": 1.72566828483,\n        \"user\": 1.7374236399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n        \"max\": 1.78506000683,\n        \"mean\": 1.7479044830300001,\n        \"median\": 1.7308000228300002,\n        \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n        \"min\": 1.7226189628300002,\n        \"stddev\": 0.02983931309908452,\n        \"system\": 0.06664693000000001,\n        \"time\": 1.77537513783,\n        \"user\": 1.7374236399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n        \"max\": 1.78506000683,\n        \"mean\": 1.7479044830300001,\n        \"median\": 1.7308000228300002,\n        \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n        \"min\": 1.7226189628300002,\n        \"stddev\": 0.02983931309908452,\n        \"system\": 0.06664693000000001,\n        \"time\": 1.7226189628300002,\n        \"user\": 1.7374236399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2ec95785d0c11fb852ce196b052410f9df003531 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681868-2ec95785d0c11fb852ce196b052410f9df003531\",\n        \"max\": 1.78506000683,\n        \"mean\": 1.7479044830300001,\n        \"median\": 1.7308000228300002,\n        \"message\": \"Honor BAT_THEME environment variable and refactor.\\n\\nRefactor setting of syntax highlighting theme and background color\\nmode from command line arguments.\\n\\nFixes #2\\n\",\n        \"min\": 1.7226189628300002,\n        \"stddev\": 0.02983931309908452,\n        \"system\": 0.06664693000000001,\n        \"time\": 1.78506000683,\n        \"user\": 1.7374236399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n        \"max\": 1.8081866743700001,\n        \"mean\": 1.76490237717,\n        \"median\": 1.7559170003700002,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.7011162393700001,\n        \"stddev\": 0.043900302441628104,\n        \"system\": 0.06802973999999999,\n        \"time\": 1.8081866743700001,\n        \"user\": 1.7520235100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n        \"max\": 1.8081866743700001,\n        \"mean\": 1.76490237717,\n        \"median\": 1.7559170003700002,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.7011162393700001,\n        \"stddev\": 0.043900302441628104,\n        \"system\": 0.06802973999999999,\n        \"time\": 1.75463339437,\n        \"user\": 1.7520235100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n        \"max\": 1.8081866743700001,\n        \"mean\": 1.76490237717,\n        \"median\": 1.7559170003700002,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.7011162393700001,\n        \"stddev\": 0.043900302441628104,\n        \"system\": 0.06802973999999999,\n        \"time\": 1.8046585773700001,\n        \"user\": 1.7520235100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n        \"max\": 1.8081866743700001,\n        \"mean\": 1.76490237717,\n        \"median\": 1.7559170003700002,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.7011162393700001,\n        \"stddev\": 0.043900302441628104,\n        \"system\": 0.06802973999999999,\n        \"time\": 1.7559170003700002,\n        \"user\": 1.7520235100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ce5c4d840807d09e3715afc084e63676f19fdb2f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572681991-ce5c4d840807d09e3715afc084e63676f19fdb2f\",\n        \"max\": 1.8081866743700001,\n        \"mean\": 1.76490237717,\n        \"median\": 1.7559170003700002,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.7011162393700001,\n        \"stddev\": 0.043900302441628104,\n        \"system\": 0.06802973999999999,\n        \"time\": 1.7011162393700001,\n        \"user\": 1.7520235100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n        \"max\": 1.9902862111300001,\n        \"mean\": 1.8612786607300003,\n        \"median\": 1.8752033651300002,\n        \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n        \"min\": 1.75878981213,\n        \"stddev\": 0.09169724585403145,\n        \"system\": 0.078084115,\n        \"time\": 1.89337758213,\n        \"user\": 1.8257122\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n        \"max\": 1.9902862111300001,\n        \"mean\": 1.8612786607300003,\n        \"median\": 1.8752033651300002,\n        \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n        \"min\": 1.75878981213,\n        \"stddev\": 0.09169724585403145,\n        \"system\": 0.078084115,\n        \"time\": 1.75878981213,\n        \"user\": 1.8257122\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n        \"max\": 1.9902862111300001,\n        \"mean\": 1.8612786607300003,\n        \"median\": 1.8752033651300002,\n        \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n        \"min\": 1.75878981213,\n        \"stddev\": 0.09169724585403145,\n        \"system\": 0.078084115,\n        \"time\": 1.7887363331300001,\n        \"user\": 1.8257122\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n        \"max\": 1.9902862111300001,\n        \"mean\": 1.8612786607300003,\n        \"median\": 1.8752033651300002,\n        \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n        \"min\": 1.75878981213,\n        \"stddev\": 0.09169724585403145,\n        \"system\": 0.078084115,\n        \"time\": 1.8752033651300002,\n        \"user\": 1.8257122\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0052bd7b170188ec30fd1beb5ed89b51c8efbd70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1572682078-0052bd7b170188ec30fd1beb5ed89b51c8efbd70\",\n        \"max\": 1.9902862111300001,\n        \"mean\": 1.8612786607300003,\n        \"median\": 1.8752033651300002,\n        \"message\": \"Merge pull request #49 from dandavison/2-honor-theme-env-vars\\n\\nHonor BAT_THEME env var, refactor theme selection\",\n        \"min\": 1.75878981213,\n        \"stddev\": 0.09169724585403145,\n        \"system\": 0.078084115,\n        \"time\": 1.9902862111300001,\n        \"user\": 1.8257122\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n        \"max\": 1.9700390929400002,\n        \"mean\": 1.79226277614,\n        \"median\": 1.7434098609400002,\n        \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n        \"min\": 1.72549364994,\n        \"stddev\": 0.10134841750749464,\n        \"system\": 0.06945716499999999,\n        \"time\": 1.77996445094,\n        \"user\": 1.7813124949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n        \"max\": 1.9700390929400002,\n        \"mean\": 1.79226277614,\n        \"median\": 1.7434098609400002,\n        \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n        \"min\": 1.72549364994,\n        \"stddev\": 0.10134841750749464,\n        \"system\": 0.06945716499999999,\n        \"time\": 1.9700390929400002,\n        \"user\": 1.7813124949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n        \"max\": 1.9700390929400002,\n        \"mean\": 1.79226277614,\n        \"median\": 1.7434098609400002,\n        \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n        \"min\": 1.72549364994,\n        \"stddev\": 0.10134841750749464,\n        \"system\": 0.06945716499999999,\n        \"time\": 1.72549364994,\n        \"user\": 1.7813124949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n        \"max\": 1.9700390929400002,\n        \"mean\": 1.79226277614,\n        \"median\": 1.7434098609400002,\n        \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n        \"min\": 1.72549364994,\n        \"stddev\": 0.10134841750749464,\n        \"system\": 0.06945716499999999,\n        \"time\": 1.7434098609400002,\n        \"user\": 1.7813124949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ee8aee1a5865e4f8670eb1e5d65d23e6265174d7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574003755-ee8aee1a5865e4f8670eb1e5d65d23e6265174d7\",\n        \"max\": 1.9700390929400002,\n        \"mean\": 1.79226277614,\n        \"median\": 1.7434098609400002,\n        \"message\": \"Allow ignoring `git diff` virtual path\\n\",\n        \"min\": 1.72549364994,\n        \"stddev\": 0.10134841750749464,\n        \"system\": 0.06945716499999999,\n        \"time\": 1.74240682594,\n        \"user\": 1.7813124949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n        \"max\": 1.890860086785,\n        \"mean\": 1.7622859071850001,\n        \"median\": 1.7372634237850002,\n        \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n        \"min\": 1.722321494785,\n        \"stddev\": 0.07226796677091027,\n        \"system\": 0.06874821,\n        \"time\": 1.890860086785,\n        \"user\": 1.7491261949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n        \"max\": 1.890860086785,\n        \"mean\": 1.7622859071850001,\n        \"median\": 1.7372634237850002,\n        \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n        \"min\": 1.722321494785,\n        \"stddev\": 0.07226796677091027,\n        \"system\": 0.06874821,\n        \"time\": 1.7372634237850002,\n        \"user\": 1.7491261949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n        \"max\": 1.890860086785,\n        \"mean\": 1.7622859071850001,\n        \"median\": 1.7372634237850002,\n        \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n        \"min\": 1.722321494785,\n        \"stddev\": 0.07226796677091027,\n        \"system\": 0.06874821,\n        \"time\": 1.7380542147850002,\n        \"user\": 1.7491261949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n        \"max\": 1.890860086785,\n        \"mean\": 1.7622859071850001,\n        \"median\": 1.7372634237850002,\n        \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n        \"min\": 1.722321494785,\n        \"stddev\": 0.07226796677091027,\n        \"system\": 0.06874821,\n        \"time\": 1.722321494785,\n        \"user\": 1.7491261949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574098105-f93ffbeb9cd01ece30b2f6a11a86d90aa12a5202\",\n        \"max\": 1.890860086785,\n        \"mean\": 1.7622859071850001,\n        \"median\": 1.7372634237850002,\n        \"message\": \"If a `+++` or `---` block is found, make sure to set state\\n\",\n        \"min\": 1.722321494785,\n        \"stddev\": 0.07226796677091027,\n        \"system\": 0.06874821,\n        \"time\": 1.722930315785,\n        \"user\": 1.7491261949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n        \"max\": 1.9355528163800002,\n        \"mean\": 1.77397646518,\n        \"median\": 1.73998661438,\n        \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n        \"min\": 1.71537233238,\n        \"stddev\": 0.09095633994494735,\n        \"system\": 0.067539405,\n        \"time\": 1.7423372963800001,\n        \"user\": 1.7650124799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n        \"max\": 1.9355528163800002,\n        \"mean\": 1.77397646518,\n        \"median\": 1.73998661438,\n        \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n        \"min\": 1.71537233238,\n        \"stddev\": 0.09095633994494735,\n        \"system\": 0.067539405,\n        \"time\": 1.9355528163800002,\n        \"user\": 1.7650124799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n        \"max\": 1.9355528163800002,\n        \"mean\": 1.77397646518,\n        \"median\": 1.73998661438,\n        \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n        \"min\": 1.71537233238,\n        \"stddev\": 0.09095633994494735,\n        \"system\": 0.067539405,\n        \"time\": 1.71537233238,\n        \"user\": 1.7650124799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n        \"max\": 1.9355528163800002,\n        \"mean\": 1.77397646518,\n        \"median\": 1.73998661438,\n        \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n        \"min\": 1.71537233238,\n        \"stddev\": 0.09095633994494735,\n        \"system\": 0.067539405,\n        \"time\": 1.73998661438,\n        \"user\": 1.7650124799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/200f97e633bec17486b1dda4a98d0ad3cbd8484a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574099099-200f97e633bec17486b1dda4a98d0ad3cbd8484a\",\n        \"max\": 1.9355528163800002,\n        \"mean\": 1.77397646518,\n        \"median\": 1.73998661438,\n        \"message\": \"Create a new state for \\\"diff -u\\\" file header\\n\",\n        \"min\": 1.71537233238,\n        \"stddev\": 0.09095633994494735,\n        \"system\": 0.067539405,\n        \"time\": 1.73663326638,\n        \"user\": 1.7650124799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n        \"max\": 1.884791069675,\n        \"mean\": 1.752104331875,\n        \"median\": 1.718118490675,\n        \"message\": \"Add unified diff test cases\\n\",\n        \"min\": 1.716816406675,\n        \"stddev\": 0.07421914521535924,\n        \"system\": 0.06718537999999999,\n        \"time\": 1.884791069675,\n        \"user\": 1.742930915\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n        \"max\": 1.884791069675,\n        \"mean\": 1.752104331875,\n        \"median\": 1.718118490675,\n        \"message\": \"Add unified diff test cases\\n\",\n        \"min\": 1.716816406675,\n        \"stddev\": 0.07421914521535924,\n        \"system\": 0.06718537999999999,\n        \"time\": 1.717458616675,\n        \"user\": 1.742930915\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n        \"max\": 1.884791069675,\n        \"mean\": 1.752104331875,\n        \"median\": 1.718118490675,\n        \"message\": \"Add unified diff test cases\\n\",\n        \"min\": 1.716816406675,\n        \"stddev\": 0.07421914521535924,\n        \"system\": 0.06718537999999999,\n        \"time\": 1.716816406675,\n        \"user\": 1.742930915\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n        \"max\": 1.884791069675,\n        \"mean\": 1.752104331875,\n        \"median\": 1.718118490675,\n        \"message\": \"Add unified diff test cases\\n\",\n        \"min\": 1.716816406675,\n        \"stddev\": 0.07421914521535924,\n        \"system\": 0.06718537999999999,\n        \"time\": 1.723337075675,\n        \"user\": 1.742930915\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/29bba742f69fd21a49db40d9d4080f5e2e795788 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574230328-29bba742f69fd21a49db40d9d4080f5e2e795788\",\n        \"max\": 1.884791069675,\n        \"mean\": 1.752104331875,\n        \"median\": 1.718118490675,\n        \"message\": \"Add unified diff test cases\\n\",\n        \"min\": 1.716816406675,\n        \"stddev\": 0.07421914521535924,\n        \"system\": 0.06718537999999999,\n        \"time\": 1.718118490675,\n        \"user\": 1.742930915\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n        \"max\": 2.060141057445,\n        \"mean\": 1.8413991088450001,\n        \"median\": 1.766810911445,\n        \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n        \"min\": 1.741885731445,\n        \"stddev\": 0.13275005202853926,\n        \"system\": 0.07775181,\n        \"time\": 1.766810911445,\n        \"user\": 1.816977485\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n        \"max\": 2.060141057445,\n        \"mean\": 1.8413991088450001,\n        \"median\": 1.766810911445,\n        \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n        \"min\": 1.741885731445,\n        \"stddev\": 0.13275005202853926,\n        \"system\": 0.07775181,\n        \"time\": 2.060141057445,\n        \"user\": 1.816977485\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n        \"max\": 2.060141057445,\n        \"mean\": 1.8413991088450001,\n        \"median\": 1.766810911445,\n        \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n        \"min\": 1.741885731445,\n        \"stddev\": 0.13275005202853926,\n        \"system\": 0.07775181,\n        \"time\": 1.874664766445,\n        \"user\": 1.816977485\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n        \"max\": 2.060141057445,\n        \"mean\": 1.8413991088450001,\n        \"median\": 1.766810911445,\n        \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n        \"min\": 1.741885731445,\n        \"stddev\": 0.13275005202853926,\n        \"system\": 0.07775181,\n        \"time\": 1.763493077445,\n        \"user\": 1.816977485\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5313df149bb9f3e495393849cff72a11a66bef9b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574277617-5313df149bb9f3e495393849cff72a11a66bef9b\",\n        \"max\": 2.060141057445,\n        \"mean\": 1.8413991088450001,\n        \"median\": 1.766810911445,\n        \"message\": \"* Parse diff -u between directories\\n* Detect the input and passthrough if not a diff\\n* Show better header for diff -u between files\\n\",\n        \"min\": 1.741885731445,\n        \"stddev\": 0.13275005202853926,\n        \"system\": 0.07775181,\n        \"time\": 1.741885731445,\n        \"user\": 1.816977485\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n        \"max\": 1.81917060991,\n        \"mean\": 1.74973279451,\n        \"median\": 1.7553648489100002,\n        \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n        \"min\": 1.6946826459100002,\n        \"stddev\": 0.04645959314109739,\n        \"system\": 0.06782392999999999,\n        \"time\": 1.81917060991,\n        \"user\": 1.739323015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n        \"max\": 1.81917060991,\n        \"mean\": 1.74973279451,\n        \"median\": 1.7553648489100002,\n        \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n        \"min\": 1.6946826459100002,\n        \"stddev\": 0.04645959314109739,\n        \"system\": 0.06782392999999999,\n        \"time\": 1.72314385891,\n        \"user\": 1.739323015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n        \"max\": 1.81917060991,\n        \"mean\": 1.74973279451,\n        \"median\": 1.7553648489100002,\n        \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n        \"min\": 1.6946826459100002,\n        \"stddev\": 0.04645959314109739,\n        \"system\": 0.06782392999999999,\n        \"time\": 1.6946826459100002,\n        \"user\": 1.739323015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n        \"max\": 1.81917060991,\n        \"mean\": 1.74973279451,\n        \"median\": 1.7553648489100002,\n        \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n        \"min\": 1.6946826459100002,\n        \"stddev\": 0.04645959314109739,\n        \"system\": 0.06782392999999999,\n        \"time\": 1.75630200891,\n        \"user\": 1.739323015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/5daa9ba7cec96ca0c868b23676dd38c968d7a04e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574280049-5daa9ba7cec96ca0c868b23676dd38c968d7a04e\",\n        \"max\": 1.81917060991,\n        \"mean\": 1.74973279451,\n        \"median\": 1.7553648489100002,\n        \"message\": \"* Make main delta loop more readable\\n* Fix typo\\n\",\n        \"min\": 1.6946826459100002,\n        \"stddev\": 0.04645959314109739,\n        \"system\": 0.06782392999999999,\n        \"time\": 1.7553648489100002,\n        \"user\": 1.739323015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n        \"max\": 1.870477839045,\n        \"mean\": 1.7558544434449999,\n        \"median\": 1.739302121045,\n        \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n        \"min\": 1.6877249270449999,\n        \"stddev\": 0.07420234694305905,\n        \"system\": 0.068530495,\n        \"time\": 1.739302121045,\n        \"user\": 1.74372653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n        \"max\": 1.870477839045,\n        \"mean\": 1.7558544434449999,\n        \"median\": 1.739302121045,\n        \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n        \"min\": 1.6877249270449999,\n        \"stddev\": 0.07420234694305905,\n        \"system\": 0.068530495,\n        \"time\": 1.870477839045,\n        \"user\": 1.74372653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n        \"max\": 1.870477839045,\n        \"mean\": 1.7558544434449999,\n        \"median\": 1.739302121045,\n        \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n        \"min\": 1.6877249270449999,\n        \"stddev\": 0.07420234694305905,\n        \"system\": 0.068530495,\n        \"time\": 1.6877249270449999,\n        \"user\": 1.74372653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n        \"max\": 1.870477839045,\n        \"mean\": 1.7558544434449999,\n        \"median\": 1.739302121045,\n        \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n        \"min\": 1.6877249270449999,\n        \"stddev\": 0.07420234694305905,\n        \"system\": 0.068530495,\n        \"time\": 1.6989219470449999,\n        \"user\": 1.74372653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/b6a9a635f09208dd82085c79d63711ce1a0ba3ac < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574452931-b6a9a635f09208dd82085c79d63711ce1a0ba3ac\",\n        \"max\": 1.870477839045,\n        \"mean\": 1.7558544434449999,\n        \"median\": 1.739302121045,\n        \"message\": \"* Trim out the date from diff -u file name\\n* Change diff -u function name and add doc\\n* Handle file uniqueness after a hunk change\\n\",\n        \"min\": 1.6877249270449999,\n        \"stddev\": 0.07420234694305905,\n        \"system\": 0.068530495,\n        \"time\": 1.782845383045,\n        \"user\": 1.74372653\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n        \"max\": 2.0545705884350003,\n        \"mean\": 1.9077855028349997,\n        \"median\": 1.973506168435,\n        \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n        \"min\": 1.7581159424350001,\n        \"stddev\": 0.13255039249359457,\n        \"system\": 0.08406512499999999,\n        \"time\": 1.976462832435,\n        \"user\": 1.872501105\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n        \"max\": 2.0545705884350003,\n        \"mean\": 1.9077855028349997,\n        \"median\": 1.973506168435,\n        \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n        \"min\": 1.7581159424350001,\n        \"stddev\": 0.13255039249359457,\n        \"system\": 0.08406512499999999,\n        \"time\": 2.0545705884350003,\n        \"user\": 1.872501105\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n        \"max\": 2.0545705884350003,\n        \"mean\": 1.9077855028349997,\n        \"median\": 1.973506168435,\n        \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n        \"min\": 1.7581159424350001,\n        \"stddev\": 0.13255039249359457,\n        \"system\": 0.08406512499999999,\n        \"time\": 1.973506168435,\n        \"user\": 1.872501105\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n        \"max\": 2.0545705884350003,\n        \"mean\": 1.9077855028349997,\n        \"median\": 1.973506168435,\n        \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n        \"min\": 1.7581159424350001,\n        \"stddev\": 0.13255039249359457,\n        \"system\": 0.08406512499999999,\n        \"time\": 1.776271982435,\n        \"user\": 1.872501105\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/98e82439c8742ba5d162b27f2fd2c2576d8749b6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574695714-98e82439c8742ba5d162b27f2fd2c2576d8749b6\",\n        \"max\": 2.0545705884350003,\n        \"mean\": 1.9077855028349997,\n        \"median\": 1.973506168435,\n        \"message\": \"Merge pull request #56 from m-lima/53-allow-pipe-from-diff\\n\\nSupport unified diff format\",\n        \"min\": 1.7581159424350001,\n        \"stddev\": 0.13255039249359457,\n        \"system\": 0.08406512499999999,\n        \"time\": 1.7581159424350001,\n        \"user\": 1.872501105\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n        \"max\": 1.809274956765,\n        \"mean\": 1.775152447765,\n        \"median\": 1.766661709765,\n        \"message\": \"Add `release` Make target\\n\",\n        \"min\": 1.744853069765,\n        \"stddev\": 0.027702905887636672,\n        \"system\": 0.06784535,\n        \"time\": 1.744853069765,\n        \"user\": 1.763628395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n        \"max\": 1.809274956765,\n        \"mean\": 1.775152447765,\n        \"median\": 1.766661709765,\n        \"message\": \"Add `release` Make target\\n\",\n        \"min\": 1.744853069765,\n        \"stddev\": 0.027702905887636672,\n        \"system\": 0.06784535,\n        \"time\": 1.756221019765,\n        \"user\": 1.763628395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n        \"max\": 1.809274956765,\n        \"mean\": 1.775152447765,\n        \"median\": 1.766661709765,\n        \"message\": \"Add `release` Make target\\n\",\n        \"min\": 1.744853069765,\n        \"stddev\": 0.027702905887636672,\n        \"system\": 0.06784535,\n        \"time\": 1.798751482765,\n        \"user\": 1.763628395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n        \"max\": 1.809274956765,\n        \"mean\": 1.775152447765,\n        \"median\": 1.766661709765,\n        \"message\": \"Add `release` Make target\\n\",\n        \"min\": 1.744853069765,\n        \"stddev\": 0.027702905887636672,\n        \"system\": 0.06784535,\n        \"time\": 1.766661709765,\n        \"user\": 1.763628395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff08dbb0622a554f71b445f334f80d14c7bded6f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574718064-ff08dbb0622a554f71b445f334f80d14c7bded6f\",\n        \"max\": 1.809274956765,\n        \"mean\": 1.775152447765,\n        \"median\": 1.766661709765,\n        \"message\": \"Add `release` Make target\\n\",\n        \"min\": 1.744853069765,\n        \"stddev\": 0.027702905887636672,\n        \"system\": 0.06784535,\n        \"time\": 1.809274956765,\n        \"user\": 1.763628395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n        \"max\": 1.828273901615,\n        \"mean\": 1.782778586415,\n        \"median\": 1.772457287615,\n        \"message\": \"Add testing scripts and example inputs\\n\",\n        \"min\": 1.7631397716150001,\n        \"stddev\": 0.02613422710861564,\n        \"system\": 0.07022519499999999,\n        \"time\": 1.779975061615,\n        \"user\": 1.769133025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n        \"max\": 1.828273901615,\n        \"mean\": 1.782778586415,\n        \"median\": 1.772457287615,\n        \"message\": \"Add testing scripts and example inputs\\n\",\n        \"min\": 1.7631397716150001,\n        \"stddev\": 0.02613422710861564,\n        \"system\": 0.07022519499999999,\n        \"time\": 1.828273901615,\n        \"user\": 1.769133025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n        \"max\": 1.828273901615,\n        \"mean\": 1.782778586415,\n        \"median\": 1.772457287615,\n        \"message\": \"Add testing scripts and example inputs\\n\",\n        \"min\": 1.7631397716150001,\n        \"stddev\": 0.02613422710861564,\n        \"system\": 0.07022519499999999,\n        \"time\": 1.770046909615,\n        \"user\": 1.769133025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n        \"max\": 1.828273901615,\n        \"mean\": 1.782778586415,\n        \"median\": 1.772457287615,\n        \"message\": \"Add testing scripts and example inputs\\n\",\n        \"min\": 1.7631397716150001,\n        \"stddev\": 0.02613422710861564,\n        \"system\": 0.07022519499999999,\n        \"time\": 1.7631397716150001,\n        \"user\": 1.769133025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-1b92463206f2cbdf5cff71b6d40eb87f3f9b8cd8\",\n        \"max\": 1.828273901615,\n        \"mean\": 1.782778586415,\n        \"median\": 1.772457287615,\n        \"message\": \"Add testing scripts and example inputs\\n\",\n        \"min\": 1.7631397716150001,\n        \"stddev\": 0.02613422710861564,\n        \"system\": 0.07022519499999999,\n        \"time\": 1.772457287615,\n        \"user\": 1.769133025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n        \"max\": 2.16985111498,\n        \"mean\": 2.0500043573799998,\n        \"median\": 2.11232607498,\n        \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n        \"min\": 1.72889610598,\n        \"stddev\": 0.18437660464738737,\n        \"system\": 0.093383365,\n        \"time\": 2.16931924398,\n        \"user\": 2.01654257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n        \"max\": 2.16985111498,\n        \"mean\": 2.0500043573799998,\n        \"median\": 2.11232607498,\n        \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n        \"min\": 1.72889610598,\n        \"stddev\": 0.18437660464738737,\n        \"system\": 0.093383365,\n        \"time\": 1.72889610598,\n        \"user\": 2.01654257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n        \"max\": 2.16985111498,\n        \"mean\": 2.0500043573799998,\n        \"median\": 2.11232607498,\n        \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n        \"min\": 1.72889610598,\n        \"stddev\": 0.18437660464738737,\n        \"system\": 0.093383365,\n        \"time\": 2.16985111498,\n        \"user\": 2.01654257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n        \"max\": 2.16985111498,\n        \"mean\": 2.0500043573799998,\n        \"median\": 2.11232607498,\n        \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n        \"min\": 1.72889610598,\n        \"stddev\": 0.18437660464738737,\n        \"system\": 0.093383365,\n        \"time\": 2.06962924698,\n        \"user\": 2.01654257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25ec6b0d64819e148a8ef58f081fe9197979281b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782265-25ec6b0d64819e148a8ef58f081fe9197979281b\",\n        \"max\": 2.16985111498,\n        \"mean\": 2.0500043573799998,\n        \"median\": 2.11232607498,\n        \"message\": \"Refactor: handle_generic_file_meta_header_line\\n\",\n        \"min\": 1.72889610598,\n        \"stddev\": 0.18437660464738737,\n        \"system\": 0.093383365,\n        \"time\": 2.11232607498,\n        \"user\": 2.01654257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n        \"max\": 1.96139085345,\n        \"mean\": 1.81271288125,\n        \"median\": 1.8343118244499999,\n        \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n        \"min\": 1.71225408945,\n        \"stddev\": 0.10269398230747821,\n        \"system\": 0.06784299499999999,\n        \"time\": 1.83731561745,\n        \"user\": 1.8032660649999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n        \"max\": 1.96139085345,\n        \"mean\": 1.81271288125,\n        \"median\": 1.8343118244499999,\n        \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n        \"min\": 1.71225408945,\n        \"stddev\": 0.10269398230747821,\n        \"system\": 0.06784299499999999,\n        \"time\": 1.96139085345,\n        \"user\": 1.8032660649999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n        \"max\": 1.96139085345,\n        \"mean\": 1.81271288125,\n        \"median\": 1.8343118244499999,\n        \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n        \"min\": 1.71225408945,\n        \"stddev\": 0.10269398230747821,\n        \"system\": 0.06784299499999999,\n        \"time\": 1.8343118244499999,\n        \"user\": 1.8032660649999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n        \"max\": 1.96139085345,\n        \"mean\": 1.81271288125,\n        \"median\": 1.8343118244499999,\n        \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n        \"min\": 1.71225408945,\n        \"stddev\": 0.10269398230747821,\n        \"system\": 0.06784299499999999,\n        \"time\": 1.71829202145,\n        \"user\": 1.8032660649999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/07f9421ba8e7ce35be64026322d2b5e834e5b608 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-07f9421ba8e7ce35be64026322d2b5e834e5b608\",\n        \"max\": 1.96139085345,\n        \"mean\": 1.81271288125,\n        \"median\": 1.8343118244499999,\n        \"message\": \"Add failing test for \\\"submodule contains untracked content\\\"\\n\",\n        \"min\": 1.71225408945,\n        \"stddev\": 0.10269398230747821,\n        \"system\": 0.06784299499999999,\n        \"time\": 1.71225408945,\n        \"user\": 1.8032660649999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n        \"max\": 1.784067283005,\n        \"mean\": 1.736962495205,\n        \"median\": 1.7136084640050002,\n        \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n        \"min\": 1.7087975180050001,\n        \"stddev\": 0.03500146699463659,\n        \"system\": 0.06350882999999999,\n        \"time\": 1.784067283005,\n        \"user\": 1.73129475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n        \"max\": 1.784067283005,\n        \"mean\": 1.736962495205,\n        \"median\": 1.7136084640050002,\n        \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n        \"min\": 1.7087975180050001,\n        \"stddev\": 0.03500146699463659,\n        \"system\": 0.06350882999999999,\n        \"time\": 1.713351682005,\n        \"user\": 1.73129475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n        \"max\": 1.784067283005,\n        \"mean\": 1.736962495205,\n        \"median\": 1.7136084640050002,\n        \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n        \"min\": 1.7087975180050001,\n        \"stddev\": 0.03500146699463659,\n        \"system\": 0.06350882999999999,\n        \"time\": 1.7136084640050002,\n        \"user\": 1.73129475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n        \"max\": 1.784067283005,\n        \"mean\": 1.736962495205,\n        \"median\": 1.7136084640050002,\n        \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n        \"min\": 1.7087975180050001,\n        \"stddev\": 0.03500146699463659,\n        \"system\": 0.06350882999999999,\n        \"time\": 1.7087975180050001,\n        \"user\": 1.73129475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1a88adf8e42f3033bf04ecfadd0807296b3748ce < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574782310-1a88adf8e42f3033bf04ecfadd0807296b3748ce\",\n        \"max\": 1.784067283005,\n        \"mean\": 1.736962495205,\n        \"median\": 1.7136084640050002,\n        \"message\": \"Handle submodule line\\n\\nFixes #60\\n\",\n        \"min\": 1.7087975180050001,\n        \"stddev\": 0.03500146699463659,\n        \"system\": 0.06350882999999999,\n        \"time\": 1.764987529005,\n        \"user\": 1.73129475\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n        \"max\": 2.0646388873349997,\n        \"mean\": 1.863203477735,\n        \"median\": 1.8274146003350002,\n        \"message\": \"Fix typo\\n\",\n        \"min\": 1.783246688335,\n        \"stddev\": 0.11494586209844614,\n        \"system\": 0.07677693000000001,\n        \"time\": 1.8274146003350002,\n        \"user\": 1.83561598\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n        \"max\": 2.0646388873349997,\n        \"mean\": 1.863203477735,\n        \"median\": 1.8274146003350002,\n        \"message\": \"Fix typo\\n\",\n        \"min\": 1.783246688335,\n        \"stddev\": 0.11494586209844614,\n        \"system\": 0.07677693000000001,\n        \"time\": 1.783246688335,\n        \"user\": 1.83561598\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n        \"max\": 2.0646388873349997,\n        \"mean\": 1.863203477735,\n        \"median\": 1.8274146003350002,\n        \"message\": \"Fix typo\\n\",\n        \"min\": 1.783246688335,\n        \"stddev\": 0.11494586209844614,\n        \"system\": 0.07677693000000001,\n        \"time\": 1.7988100253350001,\n        \"user\": 1.83561598\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n        \"max\": 2.0646388873349997,\n        \"mean\": 1.863203477735,\n        \"median\": 1.8274146003350002,\n        \"message\": \"Fix typo\\n\",\n        \"min\": 1.783246688335,\n        \"stddev\": 0.11494586209844614,\n        \"system\": 0.07677693000000001,\n        \"time\": 2.0646388873349997,\n        \"user\": 1.83561598\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574783428-8e1f83ce21b7a7bc84480dc3bb21f96b22f8079c\",\n        \"max\": 2.0646388873349997,\n        \"mean\": 1.863203477735,\n        \"median\": 1.8274146003350002,\n        \"message\": \"Fix typo\\n\",\n        \"min\": 1.783246688335,\n        \"stddev\": 0.11494586209844614,\n        \"system\": 0.07677693000000001,\n        \"time\": 1.8419071873350001,\n        \"user\": 1.83561598\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n        \"max\": 2.01648766941,\n        \"mean\": 1.8405199820100002,\n        \"median\": 1.75377974741,\n        \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n        \"min\": 1.7467903144099999,\n        \"stddev\": 0.12755702497827326,\n        \"system\": 0.07597980999999998,\n        \"time\": 1.74843313941,\n        \"user\": 1.8220800449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n        \"max\": 2.01648766941,\n        \"mean\": 1.8405199820100002,\n        \"median\": 1.75377974741,\n        \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n        \"min\": 1.7467903144099999,\n        \"stddev\": 0.12755702497827326,\n        \"system\": 0.07597980999999998,\n        \"time\": 1.93710903941,\n        \"user\": 1.8220800449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n        \"max\": 2.01648766941,\n        \"mean\": 1.8405199820100002,\n        \"median\": 1.75377974741,\n        \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n        \"min\": 1.7467903144099999,\n        \"stddev\": 0.12755702497827326,\n        \"system\": 0.07597980999999998,\n        \"time\": 1.75377974741,\n        \"user\": 1.8220800449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n        \"max\": 2.01648766941,\n        \"mean\": 1.8405199820100002,\n        \"median\": 1.75377974741,\n        \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n        \"min\": 1.7467903144099999,\n        \"stddev\": 0.12755702497827326,\n        \"system\": 0.07597980999999998,\n        \"time\": 1.7467903144099999,\n        \"user\": 1.8220800449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9736ddb1c368e834d3f68845025c840a450b9d68 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860058-9736ddb1c368e834d3f68845025c840a450b9d68\",\n        \"max\": 2.01648766941,\n        \"mean\": 1.8405199820100002,\n        \"median\": 1.75377974741,\n        \"message\": \"Configure git to emit `Submodule contains untracked content` message\\n\",\n        \"min\": 1.7467903144099999,\n        \"stddev\": 0.12755702497827326,\n        \"system\": 0.07597980999999998,\n        \"time\": 2.01648766941,\n        \"user\": 1.8220800449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n        \"max\": 1.887194778835,\n        \"mean\": 1.834970631235,\n        \"median\": 1.828786328835,\n        \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n        \"min\": 1.776720745835,\n        \"stddev\": 0.043072186059372346,\n        \"system\": 0.074128835,\n        \"time\": 1.828786328835,\n        \"user\": 1.813339605\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n        \"max\": 1.887194778835,\n        \"mean\": 1.834970631235,\n        \"median\": 1.828786328835,\n        \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n        \"min\": 1.776720745835,\n        \"stddev\": 0.043072186059372346,\n        \"system\": 0.074128835,\n        \"time\": 1.887194778835,\n        \"user\": 1.813339605\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n        \"max\": 1.887194778835,\n        \"mean\": 1.834970631235,\n        \"median\": 1.828786328835,\n        \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n        \"min\": 1.776720745835,\n        \"stddev\": 0.043072186059372346,\n        \"system\": 0.074128835,\n        \"time\": 1.865444216835,\n        \"user\": 1.813339605\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n        \"max\": 1.887194778835,\n        \"mean\": 1.834970631235,\n        \"median\": 1.828786328835,\n        \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n        \"min\": 1.776720745835,\n        \"stddev\": 0.043072186059372346,\n        \"system\": 0.074128835,\n        \"time\": 1.816707085835,\n        \"user\": 1.813339605\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e60a3db7be3c215de1b296f19942c23482ff6fa2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574860394-e60a3db7be3c215de1b296f19942c23482ff6fa2\",\n        \"max\": 1.887194778835,\n        \"mean\": 1.834970631235,\n        \"median\": 1.828786328835,\n        \"message\": \"Merge pull request #62 from dandavison/60-handle-submodule-line\\n\\nHandle git diff submodule change lines\",\n        \"min\": 1.776720745835,\n        \"stddev\": 0.043072186059372346,\n        \"system\": 0.074128835,\n        \"time\": 1.776720745835,\n        \"user\": 1.813339605\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n        \"max\": 1.885550187925,\n        \"mean\": 1.7691039499250003,\n        \"median\": 1.742845110925,\n        \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n        \"min\": 1.732916669925,\n        \"stddev\": 0.06523831620027269,\n        \"system\": 0.07034281499999999,\n        \"time\": 1.7440239129250001,\n        \"user\": 1.7555570449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n        \"max\": 1.885550187925,\n        \"mean\": 1.7691039499250003,\n        \"median\": 1.742845110925,\n        \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n        \"min\": 1.732916669925,\n        \"stddev\": 0.06523831620027269,\n        \"system\": 0.07034281499999999,\n        \"time\": 1.732916669925,\n        \"user\": 1.7555570449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n        \"max\": 1.885550187925,\n        \"mean\": 1.7691039499250003,\n        \"median\": 1.742845110925,\n        \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n        \"min\": 1.732916669925,\n        \"stddev\": 0.06523831620027269,\n        \"system\": 0.07034281499999999,\n        \"time\": 1.7401838679250001,\n        \"user\": 1.7555570449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n        \"max\": 1.885550187925,\n        \"mean\": 1.7691039499250003,\n        \"median\": 1.742845110925,\n        \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n        \"min\": 1.732916669925,\n        \"stddev\": 0.06523831620027269,\n        \"system\": 0.07034281499999999,\n        \"time\": 1.885550187925,\n        \"user\": 1.7555570449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/a135c32532b566920a1be0a29098c651acb3abe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574955262-a135c32532b566920a1be0a29098c651acb3abe1\",\n        \"max\": 1.885550187925,\n        \"mean\": 1.7691039499250003,\n        \"median\": 1.742845110925,\n        \"message\": \"Add FreeBSD installation instructions\\n\\nhttps://www.freshports.org/devel/git-delta\",\n        \"min\": 1.732916669925,\n        \"stddev\": 0.06523831620027269,\n        \"system\": 0.07034281499999999,\n        \"time\": 1.742845110925,\n        \"user\": 1.7555570449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n        \"max\": 1.9593360822750001,\n        \"mean\": 1.785638008075,\n        \"median\": 1.716234251275,\n        \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n        \"min\": 1.7022954162750001,\n        \"stddev\": 0.11321223283905828,\n        \"system\": 0.07020551,\n        \"time\": 1.707654141275,\n        \"user\": 1.773688775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n        \"max\": 1.9593360822750001,\n        \"mean\": 1.785638008075,\n        \"median\": 1.716234251275,\n        \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n        \"min\": 1.7022954162750001,\n        \"stddev\": 0.11321223283905828,\n        \"system\": 0.07020551,\n        \"time\": 1.842670149275,\n        \"user\": 1.773688775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n        \"max\": 1.9593360822750001,\n        \"mean\": 1.785638008075,\n        \"median\": 1.716234251275,\n        \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n        \"min\": 1.7022954162750001,\n        \"stddev\": 0.11321223283905828,\n        \"system\": 0.07020551,\n        \"time\": 1.9593360822750001,\n        \"user\": 1.773688775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n        \"max\": 1.9593360822750001,\n        \"mean\": 1.785638008075,\n        \"median\": 1.716234251275,\n        \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n        \"min\": 1.7022954162750001,\n        \"stddev\": 0.11321223283905828,\n        \"system\": 0.07020551,\n        \"time\": 1.716234251275,\n        \"user\": 1.773688775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/68e90c0766c746034c89fd967c7f79b898138b52 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1574968396-68e90c0766c746034c89fd967c7f79b898138b52\",\n        \"max\": 1.9593360822750001,\n        \"mean\": 1.785638008075,\n        \"median\": 1.716234251275,\n        \"message\": \"Merge pull request #63 from 0mp/patch-1\\n\\nAdd FreeBSD installation instructions\",\n        \"min\": 1.7022954162750001,\n        \"stddev\": 0.11321223283905828,\n        \"system\": 0.07020551,\n        \"time\": 1.7022954162750001,\n        \"user\": 1.773688775\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n        \"max\": 1.969366948235,\n        \"mean\": 1.8611125406350002,\n        \"median\": 1.876465716235,\n        \"message\": \"[refactor] change zip to enumerate\\n\",\n        \"min\": 1.752953839235,\n        \"stddev\": 0.07919639947236763,\n        \"system\": 0.08015589999999999,\n        \"time\": 1.876465716235,\n        \"user\": 1.822921505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n        \"max\": 1.969366948235,\n        \"mean\": 1.8611125406350002,\n        \"median\": 1.876465716235,\n        \"message\": \"[refactor] change zip to enumerate\\n\",\n        \"min\": 1.752953839235,\n        \"stddev\": 0.07919639947236763,\n        \"system\": 0.08015589999999999,\n        \"time\": 1.879038668235,\n        \"user\": 1.822921505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n        \"max\": 1.969366948235,\n        \"mean\": 1.8611125406350002,\n        \"median\": 1.876465716235,\n        \"message\": \"[refactor] change zip to enumerate\\n\",\n        \"min\": 1.752953839235,\n        \"stddev\": 0.07919639947236763,\n        \"system\": 0.08015589999999999,\n        \"time\": 1.752953839235,\n        \"user\": 1.822921505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n        \"max\": 1.969366948235,\n        \"mean\": 1.8611125406350002,\n        \"median\": 1.876465716235,\n        \"message\": \"[refactor] change zip to enumerate\\n\",\n        \"min\": 1.752953839235,\n        \"stddev\": 0.07919639947236763,\n        \"system\": 0.08015589999999999,\n        \"time\": 1.827737531235,\n        \"user\": 1.822921505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fd6901431518fff9f98859652703bd7f74e6dbe1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575291755-fd6901431518fff9f98859652703bd7f74e6dbe1\",\n        \"max\": 1.969366948235,\n        \"mean\": 1.8611125406350002,\n        \"median\": 1.876465716235,\n        \"message\": \"[refactor] change zip to enumerate\\n\",\n        \"min\": 1.752953839235,\n        \"stddev\": 0.07919639947236763,\n        \"system\": 0.08015589999999999,\n        \"time\": 1.969366948235,\n        \"user\": 1.822921505\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n        \"max\": 1.765968552865,\n        \"mean\": 1.7152383274650003,\n        \"median\": 1.699851156865,\n        \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n        \"min\": 1.691852727865,\n        \"stddev\": 0.030396615957156956,\n        \"system\": 0.06347913499999999,\n        \"time\": 1.697702791865,\n        \"user\": 1.70972853\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n        \"max\": 1.765968552865,\n        \"mean\": 1.7152383274650003,\n        \"median\": 1.699851156865,\n        \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n        \"min\": 1.691852727865,\n        \"stddev\": 0.030396615957156956,\n        \"system\": 0.06347913499999999,\n        \"time\": 1.720816407865,\n        \"user\": 1.70972853\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n        \"max\": 1.765968552865,\n        \"mean\": 1.7152383274650003,\n        \"median\": 1.699851156865,\n        \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n        \"min\": 1.691852727865,\n        \"stddev\": 0.030396615957156956,\n        \"system\": 0.06347913499999999,\n        \"time\": 1.765968552865,\n        \"user\": 1.70972853\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n        \"max\": 1.765968552865,\n        \"mean\": 1.7152383274650003,\n        \"median\": 1.699851156865,\n        \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n        \"min\": 1.691852727865,\n        \"stddev\": 0.030396615957156956,\n        \"system\": 0.06347913499999999,\n        \"time\": 1.691852727865,\n        \"user\": 1.70972853\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bee498e7fb65ea1b3815efa745d745df6512ed5c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575408144-bee498e7fb65ea1b3815efa745d745df6512ed5c\",\n        \"max\": 1.765968552865,\n        \"mean\": 1.7152383274650003,\n        \"median\": 1.699851156865,\n        \"message\": \"Use package name git-delta for debian package\\n\\nFixes #26\\n\",\n        \"min\": 1.691852727865,\n        \"stddev\": 0.030396615957156956,\n        \"system\": 0.06347913499999999,\n        \"time\": 1.699851156865,\n        \"user\": 1.70972853\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n        \"max\": 1.800449760755,\n        \"mean\": 1.7152615567550005,\n        \"median\": 1.6917130417550001,\n        \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n        \"min\": 1.6837314047550003,\n        \"stddev\": 0.04931830137512596,\n        \"system\": 0.063203425,\n        \"time\": 1.800449760755,\n        \"user\": 1.71076731\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n        \"max\": 1.800449760755,\n        \"mean\": 1.7152615567550005,\n        \"median\": 1.6917130417550001,\n        \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n        \"min\": 1.6837314047550003,\n        \"stddev\": 0.04931830137512596,\n        \"system\": 0.063203425,\n        \"time\": 1.6917130417550001,\n        \"user\": 1.71076731\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n        \"max\": 1.800449760755,\n        \"mean\": 1.7152615567550005,\n        \"median\": 1.6917130417550001,\n        \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n        \"min\": 1.6837314047550003,\n        \"stddev\": 0.04931830137512596,\n        \"system\": 0.063203425,\n        \"time\": 1.7155393377550001,\n        \"user\": 1.71076731\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n        \"max\": 1.800449760755,\n        \"mean\": 1.7152615567550005,\n        \"median\": 1.6917130417550001,\n        \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n        \"min\": 1.6837314047550003,\n        \"stddev\": 0.04931830137512596,\n        \"system\": 0.063203425,\n        \"time\": 1.6848742387550002,\n        \"user\": 1.71076731\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/feda72e97a02ec840bc90f63c9afa5ca534d68ba < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575421659-feda72e97a02ec840bc90f63c9afa5ca534d68ba\",\n        \"max\": 1.800449760755,\n        \"mean\": 1.7152615567550005,\n        \"median\": 1.6917130417550001,\n        \"message\": \"Merge pull request #65 from dandavison/26-debian-package-name\\n\\nUse package name git-delta for debian package\",\n        \"min\": 1.6837314047550003,\n        \"stddev\": 0.04931830137512596,\n        \"system\": 0.063203425,\n        \"time\": 1.6837314047550003,\n        \"user\": 1.71076731\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n        \"max\": 1.8090117241750001,\n        \"mean\": 1.733292647575,\n        \"median\": 1.725534336175,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6876825821750001,\n        \"stddev\": 0.04726681904727656,\n        \"system\": 0.06506543,\n        \"time\": 1.701955653175,\n        \"user\": 1.72709733\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n        \"max\": 1.8090117241750001,\n        \"mean\": 1.733292647575,\n        \"median\": 1.725534336175,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6876825821750001,\n        \"stddev\": 0.04726681904727656,\n        \"system\": 0.06506543,\n        \"time\": 1.8090117241750001,\n        \"user\": 1.72709733\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n        \"max\": 1.8090117241750001,\n        \"mean\": 1.733292647575,\n        \"median\": 1.725534336175,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6876825821750001,\n        \"stddev\": 0.04726681904727656,\n        \"system\": 0.06506543,\n        \"time\": 1.725534336175,\n        \"user\": 1.72709733\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n        \"max\": 1.8090117241750001,\n        \"mean\": 1.733292647575,\n        \"median\": 1.725534336175,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6876825821750001,\n        \"stddev\": 0.04726681904727656,\n        \"system\": 0.06506543,\n        \"time\": 1.742278942175,\n        \"user\": 1.72709733\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c86332b18dca62976f6fcee69859a422d25c5582 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423260-c86332b18dca62976f6fcee69859a422d25c5582\",\n        \"max\": 1.8090117241750001,\n        \"mean\": 1.733292647575,\n        \"median\": 1.725534336175,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.6876825821750001,\n        \"stddev\": 0.04726681904727656,\n        \"system\": 0.06506543,\n        \"time\": 1.6876825821750001,\n        \"user\": 1.72709733\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n        \"max\": 1.74080273796,\n        \"mean\": 1.70424271676,\n        \"median\": 1.69727591496,\n        \"message\": \"Bug fix: fix .deb file release\\n\",\n        \"min\": 1.6851659689599998,\n        \"stddev\": 0.021331010631207792,\n        \"system\": 0.06232525499999999,\n        \"time\": 1.69618660796,\n        \"user\": 1.7007375100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n        \"max\": 1.74080273796,\n        \"mean\": 1.70424271676,\n        \"median\": 1.69727591496,\n        \"message\": \"Bug fix: fix .deb file release\\n\",\n        \"min\": 1.6851659689599998,\n        \"stddev\": 0.021331010631207792,\n        \"system\": 0.06232525499999999,\n        \"time\": 1.70178235396,\n        \"user\": 1.7007375100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n        \"max\": 1.74080273796,\n        \"mean\": 1.70424271676,\n        \"median\": 1.69727591496,\n        \"message\": \"Bug fix: fix .deb file release\\n\",\n        \"min\": 1.6851659689599998,\n        \"stddev\": 0.021331010631207792,\n        \"system\": 0.06232525499999999,\n        \"time\": 1.74080273796,\n        \"user\": 1.7007375100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n        \"max\": 1.74080273796,\n        \"mean\": 1.70424271676,\n        \"median\": 1.69727591496,\n        \"message\": \"Bug fix: fix .deb file release\\n\",\n        \"min\": 1.6851659689599998,\n        \"stddev\": 0.021331010631207792,\n        \"system\": 0.06232525499999999,\n        \"time\": 1.6851659689599998,\n        \"user\": 1.7007375100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/90b7dfee7b13d240d5a9c43df98d26767642617e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575423703-90b7dfee7b13d240d5a9c43df98d26767642617e\",\n        \"max\": 1.74080273796,\n        \"mean\": 1.70424271676,\n        \"median\": 1.69727591496,\n        \"message\": \"Bug fix: fix .deb file release\\n\",\n        \"min\": 1.6851659689599998,\n        \"stddev\": 0.021331010631207792,\n        \"system\": 0.06232525499999999,\n        \"time\": 1.69727591496,\n        \"user\": 1.7007375100000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n        \"max\": 1.7841092898900002,\n        \"mean\": 1.7053419582899998,\n        \"median\": 1.68682390489,\n        \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n        \"min\": 1.6783637848900002,\n        \"stddev\": 0.044336377519811426,\n        \"system\": 0.062467695000000004,\n        \"time\": 1.7841092898900002,\n        \"user\": 1.70167516\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n        \"max\": 1.7841092898900002,\n        \"mean\": 1.7053419582899998,\n        \"median\": 1.68682390489,\n        \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n        \"min\": 1.6783637848900002,\n        \"stddev\": 0.044336377519811426,\n        \"system\": 0.062467695000000004,\n        \"time\": 1.68682390489,\n        \"user\": 1.70167516\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n        \"max\": 1.7841092898900002,\n        \"mean\": 1.7053419582899998,\n        \"median\": 1.68682390489,\n        \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n        \"min\": 1.6783637848900002,\n        \"stddev\": 0.044336377519811426,\n        \"system\": 0.062467695000000004,\n        \"time\": 1.6783637848900002,\n        \"user\": 1.70167516\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n        \"max\": 1.7841092898900002,\n        \"mean\": 1.7053419582899998,\n        \"median\": 1.68682390489,\n        \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n        \"min\": 1.6783637848900002,\n        \"stddev\": 0.044336377519811426,\n        \"system\": 0.062467695000000004,\n        \"time\": 1.69285017289,\n        \"user\": 1.70167516\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27fa1626ae4ceb2de4432a0fba546d964bc051de < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575469912-27fa1626ae4ceb2de4432a0fba546d964bc051de\",\n        \"max\": 1.7841092898900002,\n        \"mean\": 1.7053419582899998,\n        \"median\": 1.68682390489,\n        \"message\": \"Fix Homebrew formula hashes\\n\\nFixes #66\\n\",\n        \"min\": 1.6783637848900002,\n        \"stddev\": 0.044336377519811426,\n        \"system\": 0.062467695000000004,\n        \"time\": 1.6845626388900001,\n        \"user\": 1.70167516\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n        \"max\": 1.7856152301550001,\n        \"mean\": 1.733343594355,\n        \"median\": 1.7426877171550001,\n        \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6800599231550002,\n        \"stddev\": 0.043710934060250034,\n        \"system\": 0.06354481000000001,\n        \"time\": 1.7426877171550001,\n        \"user\": 1.7293809\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n        \"max\": 1.7856152301550001,\n        \"mean\": 1.733343594355,\n        \"median\": 1.7426877171550001,\n        \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6800599231550002,\n        \"stddev\": 0.043710934060250034,\n        \"system\": 0.06354481000000001,\n        \"time\": 1.760395214155,\n        \"user\": 1.7293809\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n        \"max\": 1.7856152301550001,\n        \"mean\": 1.733343594355,\n        \"median\": 1.7426877171550001,\n        \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6800599231550002,\n        \"stddev\": 0.043710934060250034,\n        \"system\": 0.06354481000000001,\n        \"time\": 1.7856152301550001,\n        \"user\": 1.7293809\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n        \"max\": 1.7856152301550001,\n        \"mean\": 1.733343594355,\n        \"median\": 1.7426877171550001,\n        \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6800599231550002,\n        \"stddev\": 0.043710934060250034,\n        \"system\": 0.06354481000000001,\n        \"time\": 1.6979598871550001,\n        \"user\": 1.7293809\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/01868010f265c0e0fa72dd9d0f9599f096e9060a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575487870-01868010f265c0e0fa72dd9d0f9599f096e9060a\",\n        \"max\": 1.7856152301550001,\n        \"mean\": 1.733343594355,\n        \"median\": 1.7426877171550001,\n        \"message\": \"README: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6800599231550002,\n        \"stddev\": 0.043710934060250034,\n        \"system\": 0.06354481000000001,\n        \"time\": 1.6800599231550002,\n        \"user\": 1.7293809\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n        \"max\": 1.7031450742300003,\n        \"mean\": 1.6847794086300003,\n        \"median\": 1.68249237823,\n        \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6708220792300001,\n        \"stddev\": 0.011673269086068241,\n        \"system\": 0.061481799999999996,\n        \"time\": 1.7031450742300003,\n        \"user\": 1.682657115\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n        \"max\": 1.7031450742300003,\n        \"mean\": 1.6847794086300003,\n        \"median\": 1.68249237823,\n        \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6708220792300001,\n        \"stddev\": 0.011673269086068241,\n        \"system\": 0.061481799999999996,\n        \"time\": 1.68249237823,\n        \"user\": 1.682657115\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n        \"max\": 1.7031450742300003,\n        \"mean\": 1.6847794086300003,\n        \"median\": 1.68249237823,\n        \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6708220792300001,\n        \"stddev\": 0.011673269086068241,\n        \"system\": 0.061481799999999996,\n        \"time\": 1.6708220792300001,\n        \"user\": 1.682657115\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n        \"max\": 1.7031450742300003,\n        \"mean\": 1.6847794086300003,\n        \"median\": 1.68249237823,\n        \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6708220792300001,\n        \"stddev\": 0.011673269086068241,\n        \"system\": 0.061481799999999996,\n        \"time\": 1.6853733932300001,\n        \"user\": 1.682657115\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/716c37f219f78b8021284773fece528a1e8cd918 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575488682-716c37f219f78b8021284773fece528a1e8cd918\",\n        \"max\": 1.7031450742300003,\n        \"mean\": 1.6847794086300003,\n        \"median\": 1.68249237823,\n        \"message\": \"Merge pull request #67 from ronjouch/patch-1\\n\\nREADME: Document env. var to fix mouse scrolling (fix #58)\",\n        \"min\": 1.6708220792300001,\n        \"stddev\": 0.011673269086068241,\n        \"system\": 0.061481799999999996,\n        \"time\": 1.6820641182300002,\n        \"user\": 1.682657115\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n        \"max\": 1.7630251715750003,\n        \"mean\": 1.705127332975,\n        \"median\": 1.691320345575,\n        \"message\": \"Output hash of source tar.gz\\n\",\n        \"min\": 1.6891258525750001,\n        \"stddev\": 0.0323852598602117,\n        \"system\": 0.062575225,\n        \"time\": 1.7630251715750003,\n        \"user\": 1.701169025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n        \"max\": 1.7630251715750003,\n        \"mean\": 1.705127332975,\n        \"median\": 1.691320345575,\n        \"message\": \"Output hash of source tar.gz\\n\",\n        \"min\": 1.6891258525750001,\n        \"stddev\": 0.0323852598602117,\n        \"system\": 0.062575225,\n        \"time\": 1.691320345575,\n        \"user\": 1.701169025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n        \"max\": 1.7630251715750003,\n        \"mean\": 1.705127332975,\n        \"median\": 1.691320345575,\n        \"message\": \"Output hash of source tar.gz\\n\",\n        \"min\": 1.6891258525750001,\n        \"stddev\": 0.0323852598602117,\n        \"system\": 0.062575225,\n        \"time\": 1.692050598575,\n        \"user\": 1.701169025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n        \"max\": 1.7630251715750003,\n        \"mean\": 1.705127332975,\n        \"median\": 1.691320345575,\n        \"message\": \"Output hash of source tar.gz\\n\",\n        \"min\": 1.6891258525750001,\n        \"stddev\": 0.0323852598602117,\n        \"system\": 0.062575225,\n        \"time\": 1.6891258525750001,\n        \"user\": 1.701169025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d90060f8d2a668546fe267d35f41c9d4d904240a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-d90060f8d2a668546fe267d35f41c9d4d904240a\",\n        \"max\": 1.7630251715750003,\n        \"mean\": 1.705127332975,\n        \"median\": 1.691320345575,\n        \"message\": \"Output hash of source tar.gz\\n\",\n        \"min\": 1.6891258525750001,\n        \"stddev\": 0.0323852598602117,\n        \"system\": 0.062575225,\n        \"time\": 1.6901146965750002,\n        \"user\": 1.701169025\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n        \"max\": 1.76307804303,\n        \"mean\": 1.73264567383,\n        \"median\": 1.72891147703,\n        \"message\": \"Add homebrew check formula commands\\n\",\n        \"min\": 1.70626188503,\n        \"stddev\": 0.02065705858815224,\n        \"system\": 0.06599477,\n        \"time\": 1.72654587203,\n        \"user\": 1.72582778\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n        \"max\": 1.76307804303,\n        \"mean\": 1.73264567383,\n        \"median\": 1.72891147703,\n        \"message\": \"Add homebrew check formula commands\\n\",\n        \"min\": 1.70626188503,\n        \"stddev\": 0.02065705858815224,\n        \"system\": 0.06599477,\n        \"time\": 1.76307804303,\n        \"user\": 1.72582778\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n        \"max\": 1.76307804303,\n        \"mean\": 1.73264567383,\n        \"median\": 1.72891147703,\n        \"message\": \"Add homebrew check formula commands\\n\",\n        \"min\": 1.70626188503,\n        \"stddev\": 0.02065705858815224,\n        \"system\": 0.06599477,\n        \"time\": 1.7384310920300001,\n        \"user\": 1.72582778\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n        \"max\": 1.76307804303,\n        \"mean\": 1.73264567383,\n        \"median\": 1.72891147703,\n        \"message\": \"Add homebrew check formula commands\\n\",\n        \"min\": 1.70626188503,\n        \"stddev\": 0.02065705858815224,\n        \"system\": 0.06599477,\n        \"time\": 1.70626188503,\n        \"user\": 1.72582778\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-ed347d3a0bbde42a1c3b7d7b9b67b8bfaa001752\",\n        \"max\": 1.76307804303,\n        \"mean\": 1.73264567383,\n        \"median\": 1.72891147703,\n        \"message\": \"Add homebrew check formula commands\\n\",\n        \"min\": 1.70626188503,\n        \"stddev\": 0.02065705858815224,\n        \"system\": 0.06599477,\n        \"time\": 1.72891147703,\n        \"user\": 1.72582778\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n        \"max\": 1.80142779966,\n        \"mean\": 1.7328176036600003,\n        \"median\": 1.7180291196600002,\n        \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n        \"min\": 1.7056153856600003,\n        \"stddev\": 0.03906584602123567,\n        \"system\": 0.06480214,\n        \"time\": 1.80142779966,\n        \"user\": 1.72563931\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n        \"max\": 1.80142779966,\n        \"mean\": 1.7328176036600003,\n        \"median\": 1.7180291196600002,\n        \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n        \"min\": 1.7056153856600003,\n        \"stddev\": 0.03906584602123567,\n        \"system\": 0.06480214,\n        \"time\": 1.7056153856600003,\n        \"user\": 1.72563931\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n        \"max\": 1.80142779966,\n        \"mean\": 1.7328176036600003,\n        \"median\": 1.7180291196600002,\n        \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n        \"min\": 1.7056153856600003,\n        \"stddev\": 0.03906584602123567,\n        \"system\": 0.06480214,\n        \"time\": 1.7259979896600002,\n        \"user\": 1.72563931\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n        \"max\": 1.80142779966,\n        \"mean\": 1.7328176036600003,\n        \"median\": 1.7180291196600002,\n        \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n        \"min\": 1.7056153856600003,\n        \"stddev\": 0.03906584602123567,\n        \"system\": 0.06480214,\n        \"time\": 1.7130177236600002,\n        \"user\": 1.72563931\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f68fbc7b83e4c0806dd8039fb65b35dcecc3c527 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575559261-f68fbc7b83e4c0806dd8039fb65b35dcecc3c527\",\n        \"max\": 1.80142779966,\n        \"mean\": 1.7328176036600003,\n        \"median\": 1.7180291196600002,\n        \"message\": \"Revert \\\"Revert \\\"Update Homebrew instructions\\\"\\\"\\n\\nThis reverts commit d86b57ba6ea62226d662108751acd2ec5048fa30.\\n\",\n        \"min\": 1.7056153856600003,\n        \"stddev\": 0.03906584602123567,\n        \"system\": 0.06480214,\n        \"time\": 1.7180291196600002,\n        \"user\": 1.72563931\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n        \"max\": 1.83259020187,\n        \"mean\": 1.74815591167,\n        \"median\": 1.7394092028700001,\n        \"message\": \"Mention unified diff handling in README\\n\",\n        \"min\": 1.7062481948700001,\n        \"stddev\": 0.049442940578773686,\n        \"system\": 0.06614155999999999,\n        \"time\": 1.72017618987,\n        \"user\": 1.7399936249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n        \"max\": 1.83259020187,\n        \"mean\": 1.74815591167,\n        \"median\": 1.7394092028700001,\n        \"message\": \"Mention unified diff handling in README\\n\",\n        \"min\": 1.7062481948700001,\n        \"stddev\": 0.049442940578773686,\n        \"system\": 0.06614155999999999,\n        \"time\": 1.83259020187,\n        \"user\": 1.7399936249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n        \"max\": 1.83259020187,\n        \"mean\": 1.74815591167,\n        \"median\": 1.7394092028700001,\n        \"message\": \"Mention unified diff handling in README\\n\",\n        \"min\": 1.7062481948700001,\n        \"stddev\": 0.049442940578773686,\n        \"system\": 0.06614155999999999,\n        \"time\": 1.74235576887,\n        \"user\": 1.7399936249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n        \"max\": 1.83259020187,\n        \"mean\": 1.74815591167,\n        \"median\": 1.7394092028700001,\n        \"message\": \"Mention unified diff handling in README\\n\",\n        \"min\": 1.7062481948700001,\n        \"stddev\": 0.049442940578773686,\n        \"system\": 0.06614155999999999,\n        \"time\": 1.7394092028700001,\n        \"user\": 1.7399936249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575599169-1c3e7baf0f96bc0ff07da8d0aab9b1f2d15b02d2\",\n        \"max\": 1.83259020187,\n        \"mean\": 1.74815591167,\n        \"median\": 1.7394092028700001,\n        \"message\": \"Mention unified diff handling in README\\n\",\n        \"min\": 1.7062481948700001,\n        \"stddev\": 0.049442940578773686,\n        \"system\": 0.06614155999999999,\n        \"time\": 1.7062481948700001,\n        \"user\": 1.7399936249999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n        \"max\": 1.7813807281499998,\n        \"mean\": 1.73829926795,\n        \"median\": 1.72278341315,\n        \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n        \"min\": 1.71043814015,\n        \"stddev\": 0.030534840258810456,\n        \"system\": 0.066705545,\n        \"time\": 1.7813807281499998,\n        \"user\": 1.7305669599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n        \"max\": 1.7813807281499998,\n        \"mean\": 1.73829926795,\n        \"median\": 1.72278341315,\n        \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n        \"min\": 1.71043814015,\n        \"stddev\": 0.030534840258810456,\n        \"system\": 0.066705545,\n        \"time\": 1.71775324015,\n        \"user\": 1.7305669599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n        \"max\": 1.7813807281499998,\n        \"mean\": 1.73829926795,\n        \"median\": 1.72278341315,\n        \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n        \"min\": 1.71043814015,\n        \"stddev\": 0.030534840258810456,\n        \"system\": 0.066705545,\n        \"time\": 1.71043814015,\n        \"user\": 1.7305669599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n        \"max\": 1.7813807281499998,\n        \"mean\": 1.73829926795,\n        \"median\": 1.72278341315,\n        \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n        \"min\": 1.71043814015,\n        \"stddev\": 0.030534840258810456,\n        \"system\": 0.066705545,\n        \"time\": 1.72278341315,\n        \"user\": 1.7305669599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/03d825ef7ebdce948683daf9f69cc7f04ddddd7f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575645495-03d825ef7ebdce948683daf9f69cc7f04ddddd7f\",\n        \"max\": 1.7813807281499998,\n        \"mean\": 1.73829926795,\n        \"median\": 1.72278341315,\n        \"message\": \"feat: Solarized themes\\n\\nadding Solarized (light/dark) themes from\\nhttps://github.com/paulcpederson/solarized-sublime\\n\",\n        \"min\": 1.71043814015,\n        \"stddev\": 0.030534840258810456,\n        \"system\": 0.066705545,\n        \"time\": 1.7591408181500001,\n        \"user\": 1.7305669599999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n        \"max\": 1.773982492885,\n        \"mean\": 1.7364383394850003,\n        \"median\": 1.718406510885,\n        \"message\": \"Update README.md for Windows\\n\",\n        \"min\": 1.702438013885,\n        \"stddev\": 0.033384415968986725,\n        \"system\": 0.06561997,\n        \"time\": 1.770722988885,\n        \"user\": 1.7278135899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n        \"max\": 1.773982492885,\n        \"mean\": 1.7364383394850003,\n        \"median\": 1.718406510885,\n        \"message\": \"Update README.md for Windows\\n\",\n        \"min\": 1.702438013885,\n        \"stddev\": 0.033384415968986725,\n        \"system\": 0.06561997,\n        \"time\": 1.773982492885,\n        \"user\": 1.7278135899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n        \"max\": 1.773982492885,\n        \"mean\": 1.7364383394850003,\n        \"median\": 1.718406510885,\n        \"message\": \"Update README.md for Windows\\n\",\n        \"min\": 1.702438013885,\n        \"stddev\": 0.033384415968986725,\n        \"system\": 0.06561997,\n        \"time\": 1.702438013885,\n        \"user\": 1.7278135899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n        \"max\": 1.773982492885,\n        \"mean\": 1.7364383394850003,\n        \"median\": 1.718406510885,\n        \"message\": \"Update README.md for Windows\\n\",\n        \"min\": 1.702438013885,\n        \"stddev\": 0.033384415968986725,\n        \"system\": 0.06561997,\n        \"time\": 1.716641690885,\n        \"user\": 1.7278135899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1777723d39f5fa83dd37a3de452e46c5b30bbee5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938151-1777723d39f5fa83dd37a3de452e46c5b30bbee5\",\n        \"max\": 1.773982492885,\n        \"mean\": 1.7364383394850003,\n        \"median\": 1.718406510885,\n        \"message\": \"Update README.md for Windows\\n\",\n        \"min\": 1.702438013885,\n        \"stddev\": 0.033384415968986725,\n        \"system\": 0.06561997,\n        \"time\": 1.718406510885,\n        \"user\": 1.7278135899999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n        \"max\": 1.75708569261,\n        \"mean\": 1.72663583161,\n        \"median\": 1.71604613461,\n        \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n        \"min\": 1.71270060761,\n        \"stddev\": 0.019071966398996724,\n        \"system\": 0.06469340999999998,\n        \"time\": 1.73376991961,\n        \"user\": 1.7196566400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n        \"max\": 1.75708569261,\n        \"mean\": 1.72663583161,\n        \"median\": 1.71604613461,\n        \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n        \"min\": 1.71270060761,\n        \"stddev\": 0.019071966398996724,\n        \"system\": 0.06469340999999998,\n        \"time\": 1.71270060761,\n        \"user\": 1.7196566400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n        \"max\": 1.75708569261,\n        \"mean\": 1.72663583161,\n        \"median\": 1.71604613461,\n        \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n        \"min\": 1.71270060761,\n        \"stddev\": 0.019071966398996724,\n        \"system\": 0.06469340999999998,\n        \"time\": 1.75708569261,\n        \"user\": 1.7196566400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n        \"max\": 1.75708569261,\n        \"mean\": 1.72663583161,\n        \"median\": 1.71604613461,\n        \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n        \"min\": 1.71270060761,\n        \"stddev\": 0.019071966398996724,\n        \"system\": 0.06469340999999998,\n        \"time\": 1.71604613461,\n        \"user\": 1.7196566400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d6fd2334ee10bf3616cc302a1d5464bfabefd9bb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1575938859-d6fd2334ee10bf3616cc302a1d5464bfabefd9bb\",\n        \"max\": 1.75708569261,\n        \"mean\": 1.72663583161,\n        \"median\": 1.71604613461,\n        \"message\": \"Merge pull request #69 from lzybkr/readme_windows\\n\\nUpdate README.md for Windows\",\n        \"min\": 1.71270060761,\n        \"stddev\": 0.019071966398996724,\n        \"system\": 0.06469340999999998,\n        \"time\": 1.7135768036099999,\n        \"user\": 1.7196566400000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n        \"max\": 1.7902104083400001,\n        \"mean\": 1.73799640774,\n        \"median\": 1.73215136334,\n        \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n        \"min\": 1.7130974163400001,\n        \"stddev\": 0.030517402018895363,\n        \"system\": 0.066181725,\n        \"time\": 1.7902104083400001,\n        \"user\": 1.730201215\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n        \"max\": 1.7902104083400001,\n        \"mean\": 1.73799640774,\n        \"median\": 1.73215136334,\n        \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n        \"min\": 1.7130974163400001,\n        \"stddev\": 0.030517402018895363,\n        \"system\": 0.066181725,\n        \"time\": 1.73215136334,\n        \"user\": 1.730201215\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n        \"max\": 1.7902104083400001,\n        \"mean\": 1.73799640774,\n        \"median\": 1.73215136334,\n        \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n        \"min\": 1.7130974163400001,\n        \"stddev\": 0.030517402018895363,\n        \"system\": 0.066181725,\n        \"time\": 1.7130974163400001,\n        \"user\": 1.730201215\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n        \"max\": 1.7902104083400001,\n        \"mean\": 1.73799640774,\n        \"median\": 1.73215136334,\n        \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n        \"min\": 1.7130974163400001,\n        \"stddev\": 0.030517402018895363,\n        \"system\": 0.066181725,\n        \"time\": 1.73482255734,\n        \"user\": 1.730201215\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576004252-dfc359bd6d8ec2a1c2c10a0ced4f21caf3bc8b79\",\n        \"max\": 1.7902104083400001,\n        \"mean\": 1.73799640774,\n        \"median\": 1.73215136334,\n        \"message\": \"fix: designate Solarized (light) as a light theme\\n\",\n        \"min\": 1.7130974163400001,\n        \"stddev\": 0.030517402018895363,\n        \"system\": 0.066181725,\n        \"time\": 1.71970029334,\n        \"user\": 1.730201215\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n        \"max\": 1.762584821845,\n        \"mean\": 1.737005596045,\n        \"median\": 1.7246944238450002,\n        \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n        \"min\": 1.716915029845,\n        \"stddev\": 0.021277979500375143,\n        \"system\": 0.066701575,\n        \"time\": 1.7246944238450002,\n        \"user\": 1.7277869049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n        \"max\": 1.762584821845,\n        \"mean\": 1.737005596045,\n        \"median\": 1.7246944238450002,\n        \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n        \"min\": 1.716915029845,\n        \"stddev\": 0.021277979500375143,\n        \"system\": 0.066701575,\n        \"time\": 1.757420435845,\n        \"user\": 1.7277869049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n        \"max\": 1.762584821845,\n        \"mean\": 1.737005596045,\n        \"median\": 1.7246944238450002,\n        \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n        \"min\": 1.716915029845,\n        \"stddev\": 0.021277979500375143,\n        \"system\": 0.066701575,\n        \"time\": 1.762584821845,\n        \"user\": 1.7277869049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n        \"max\": 1.762584821845,\n        \"mean\": 1.737005596045,\n        \"median\": 1.7246944238450002,\n        \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n        \"min\": 1.716915029845,\n        \"stddev\": 0.021277979500375143,\n        \"system\": 0.066701575,\n        \"time\": 1.716915029845,\n        \"user\": 1.7277869049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7951807910045f1280e5eeffb91d9044381749d3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576006119-7951807910045f1280e5eeffb91d9044381749d3\",\n        \"max\": 1.762584821845,\n        \"mean\": 1.737005596045,\n        \"median\": 1.7246944238450002,\n        \"message\": \"Merge pull request #68 from hakamadare/solarized-themes\\n\\nfeat: Solarized themes\",\n        \"min\": 1.716915029845,\n        \"stddev\": 0.021277979500375143,\n        \"system\": 0.066701575,\n        \"time\": 1.7234132688450001,\n        \"user\": 1.7277869049999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n        \"max\": 2.029071802765,\n        \"mean\": 1.8137771207650002,\n        \"median\": 1.747259987765,\n        \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n        \"min\": 1.703194684765,\n        \"stddev\": 0.13824184725612948,\n        \"system\": 0.07512369999999999,\n        \"time\": 2.029071802765,\n        \"user\": 1.792600075\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n        \"max\": 2.029071802765,\n        \"mean\": 1.8137771207650002,\n        \"median\": 1.747259987765,\n        \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n        \"min\": 1.703194684765,\n        \"stddev\": 0.13824184725612948,\n        \"system\": 0.07512369999999999,\n        \"time\": 1.8743946687650002,\n        \"user\": 1.792600075\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n        \"max\": 2.029071802765,\n        \"mean\": 1.8137771207650002,\n        \"median\": 1.747259987765,\n        \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n        \"min\": 1.703194684765,\n        \"stddev\": 0.13824184725612948,\n        \"system\": 0.07512369999999999,\n        \"time\": 1.747259987765,\n        \"user\": 1.792600075\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n        \"max\": 2.029071802765,\n        \"mean\": 1.8137771207650002,\n        \"median\": 1.747259987765,\n        \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n        \"min\": 1.703194684765,\n        \"stddev\": 0.13824184725612948,\n        \"system\": 0.07512369999999999,\n        \"time\": 1.703194684765,\n        \"user\": 1.792600075\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e0afabbebb6106e130fa383561bfd4d9d78667cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576026970-e0afabbebb6106e130fa383561bfd4d9d78667cb\",\n        \"max\": 2.029071802765,\n        \"mean\": 1.8137771207650002,\n        \"median\": 1.747259987765,\n        \"message\": \"Merge pull request #64 from HerringtonDarkholme/master\\n\\n[refactor] change zip to enumerate\",\n        \"min\": 1.703194684765,\n        \"stddev\": 0.13824184725612948,\n        \"system\": 0.07512369999999999,\n        \"time\": 1.714964459765,\n        \"user\": 1.792600075\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n        \"max\": 1.7709951682700003,\n        \"mean\": 1.7493819816700005,\n        \"median\": 1.75624770227,\n        \"message\": \"Bug fix: bash completion\\n\",\n        \"min\": 1.7136161862700001,\n        \"stddev\": 0.02329886541173713,\n        \"system\": 0.06791496,\n        \"time\": 1.7397713872700002,\n        \"user\": 1.7383158399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n        \"max\": 1.7709951682700003,\n        \"mean\": 1.7493819816700005,\n        \"median\": 1.75624770227,\n        \"message\": \"Bug fix: bash completion\\n\",\n        \"min\": 1.7136161862700001,\n        \"stddev\": 0.02329886541173713,\n        \"system\": 0.06791496,\n        \"time\": 1.7709951682700003,\n        \"user\": 1.7383158399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n        \"max\": 1.7709951682700003,\n        \"mean\": 1.7493819816700005,\n        \"median\": 1.75624770227,\n        \"message\": \"Bug fix: bash completion\\n\",\n        \"min\": 1.7136161862700001,\n        \"stddev\": 0.02329886541173713,\n        \"system\": 0.06791496,\n        \"time\": 1.7662794642700002,\n        \"user\": 1.7383158399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n        \"max\": 1.7709951682700003,\n        \"mean\": 1.7493819816700005,\n        \"median\": 1.75624770227,\n        \"message\": \"Bug fix: bash completion\\n\",\n        \"min\": 1.7136161862700001,\n        \"stddev\": 0.02329886541173713,\n        \"system\": 0.06791496,\n        \"time\": 1.7136161862700001,\n        \"user\": 1.7383158399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e7502c85f0ac08895de02c04ec813677bbbd8ca5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576112924-e7502c85f0ac08895de02c04ec813677bbbd8ca5\",\n        \"max\": 1.7709951682700003,\n        \"mean\": 1.7493819816700005,\n        \"median\": 1.75624770227,\n        \"message\": \"Bug fix: bash completion\\n\",\n        \"min\": 1.7136161862700001,\n        \"stddev\": 0.02329886541173713,\n        \"system\": 0.06791496,\n        \"time\": 1.75624770227,\n        \"user\": 1.7383158399999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n        \"max\": 1.785348839515,\n        \"mean\": 1.739504648315,\n        \"median\": 1.729359575515,\n        \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n        \"min\": 1.721856755515,\n        \"stddev\": 0.025989271241545375,\n        \"system\": 0.067212735,\n        \"time\": 1.785348839515,\n        \"user\": 1.731041015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n        \"max\": 1.785348839515,\n        \"mean\": 1.739504648315,\n        \"median\": 1.729359575515,\n        \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n        \"min\": 1.721856755515,\n        \"stddev\": 0.025989271241545375,\n        \"system\": 0.067212735,\n        \"time\": 1.733854314515,\n        \"user\": 1.731041015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n        \"max\": 1.785348839515,\n        \"mean\": 1.739504648315,\n        \"median\": 1.729359575515,\n        \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n        \"min\": 1.721856755515,\n        \"stddev\": 0.025989271241545375,\n        \"system\": 0.067212735,\n        \"time\": 1.727103756515,\n        \"user\": 1.731041015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n        \"max\": 1.785348839515,\n        \"mean\": 1.739504648315,\n        \"median\": 1.729359575515,\n        \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n        \"min\": 1.721856755515,\n        \"stddev\": 0.025989271241545375,\n        \"system\": 0.067212735,\n        \"time\": 1.721856755515,\n        \"user\": 1.731041015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/0b4452165889406245afedc76434e68d03a881c9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576192760-0b4452165889406245afedc76434e68d03a881c9\",\n        \"max\": 1.785348839515,\n        \"mean\": 1.739504648315,\n        \"median\": 1.729359575515,\n        \"message\": \"Change --plus-emph-color default for dark mode\\n\\nFixes #71, thanks @YaLTeR\\n\",\n        \"min\": 1.721856755515,\n        \"stddev\": 0.025989271241545375,\n        \"system\": 0.067212735,\n        \"time\": 1.729359575515,\n        \"user\": 1.731041015\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n        \"max\": 1.78181453441,\n        \"mean\": 1.74100094581,\n        \"median\": 1.72459607541,\n        \"message\": \"Fix formatting of RGB hex codes\\n\",\n        \"min\": 1.7199766324099999,\n        \"stddev\": 0.026612427072925448,\n        \"system\": 0.067176985,\n        \"time\": 1.75431320041,\n        \"user\": 1.7318469799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n        \"max\": 1.78181453441,\n        \"mean\": 1.74100094581,\n        \"median\": 1.72459607541,\n        \"message\": \"Fix formatting of RGB hex codes\\n\",\n        \"min\": 1.7199766324099999,\n        \"stddev\": 0.026612427072925448,\n        \"system\": 0.067176985,\n        \"time\": 1.78181453441,\n        \"user\": 1.7318469799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n        \"max\": 1.78181453441,\n        \"mean\": 1.74100094581,\n        \"median\": 1.72459607541,\n        \"message\": \"Fix formatting of RGB hex codes\\n\",\n        \"min\": 1.7199766324099999,\n        \"stddev\": 0.026612427072925448,\n        \"system\": 0.067176985,\n        \"time\": 1.72459607541,\n        \"user\": 1.7318469799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n        \"max\": 1.78181453441,\n        \"mean\": 1.74100094581,\n        \"median\": 1.72459607541,\n        \"message\": \"Fix formatting of RGB hex codes\\n\",\n        \"min\": 1.7199766324099999,\n        \"stddev\": 0.026612427072925448,\n        \"system\": 0.067176985,\n        \"time\": 1.72430428641,\n        \"user\": 1.7318469799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73b915ed057eab5d8910952f111248d89ce5c9f9 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576193391-73b915ed057eab5d8910952f111248d89ce5c9f9\",\n        \"max\": 1.78181453441,\n        \"mean\": 1.74100094581,\n        \"median\": 1.72459607541,\n        \"message\": \"Fix formatting of RGB hex codes\\n\",\n        \"min\": 1.7199766324099999,\n        \"stddev\": 0.026612427072925448,\n        \"system\": 0.067176985,\n        \"time\": 1.7199766324099999,\n        \"user\": 1.7318469799999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n        \"max\": 1.8150611729400001,\n        \"mean\": 1.7481442321400003,\n        \"median\": 1.73992402594,\n        \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n        \"min\": 1.7167127469399999,\n        \"stddev\": 0.03965354382224564,\n        \"system\": 0.06724778000000001,\n        \"time\": 1.8150611729400001,\n        \"user\": 1.7382797349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n        \"max\": 1.8150611729400001,\n        \"mean\": 1.7481442321400003,\n        \"median\": 1.73992402594,\n        \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n        \"min\": 1.7167127469399999,\n        \"stddev\": 0.03965354382224564,\n        \"system\": 0.06724778000000001,\n        \"time\": 1.7483775769399998,\n        \"user\": 1.7382797349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n        \"max\": 1.8150611729400001,\n        \"mean\": 1.7481442321400003,\n        \"median\": 1.73992402594,\n        \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n        \"min\": 1.7167127469399999,\n        \"stddev\": 0.03965354382224564,\n        \"system\": 0.06724778000000001,\n        \"time\": 1.73992402594,\n        \"user\": 1.7382797349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n        \"max\": 1.8150611729400001,\n        \"mean\": 1.7481442321400003,\n        \"median\": 1.73992402594,\n        \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n        \"min\": 1.7167127469399999,\n        \"stddev\": 0.03965354382224564,\n        \"system\": 0.06724778000000001,\n        \"time\": 1.7206456379400001,\n        \"user\": 1.7382797349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/25f890c84c5858bf70c9efdb9bfc9ceb6d259b70 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576194680-25f890c84c5858bf70c9efdb9bfc9ceb6d259b70\",\n        \"max\": 1.8150611729400001,\n        \"mean\": 1.7481442321400003,\n        \"median\": 1.73992402594,\n        \"message\": \"Merge pull request #73 from dandavison/71-plus-emph-color\\n\\nTweak --plus-emph-color default for dark mode\",\n        \"min\": 1.7167127469399999,\n        \"stddev\": 0.03965354382224564,\n        \"system\": 0.06724778000000001,\n        \"time\": 1.7167127469399999,\n        \"user\": 1.7382797349999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n        \"max\": 1.80250005202,\n        \"mean\": 1.75376824002,\n        \"median\": 1.74391234702,\n        \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n        \"min\": 1.72759804402,\n        \"stddev\": 0.029683839831726542,\n        \"system\": 0.06561909,\n        \"time\": 1.7593944520200002,\n        \"user\": 1.74534529\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n        \"max\": 1.80250005202,\n        \"mean\": 1.75376824002,\n        \"median\": 1.74391234702,\n        \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n        \"min\": 1.72759804402,\n        \"stddev\": 0.029683839831726542,\n        \"system\": 0.06561909,\n        \"time\": 1.80250005202,\n        \"user\": 1.74534529\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n        \"max\": 1.80250005202,\n        \"mean\": 1.75376824002,\n        \"median\": 1.74391234702,\n        \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n        \"min\": 1.72759804402,\n        \"stddev\": 0.029683839831726542,\n        \"system\": 0.06561909,\n        \"time\": 1.72759804402,\n        \"user\": 1.74534529\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n        \"max\": 1.80250005202,\n        \"mean\": 1.75376824002,\n        \"median\": 1.74391234702,\n        \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n        \"min\": 1.72759804402,\n        \"stddev\": 0.029683839831726542,\n        \"system\": 0.06561909,\n        \"time\": 1.74391234702,\n        \"user\": 1.74534529\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/ff02c53af3aae065f13243e908e7b6245c49dd95 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576204906-ff02c53af3aae065f13243e908e7b6245c49dd95\",\n        \"max\": 1.80250005202,\n        \"mean\": 1.75376824002,\n        \"median\": 1.74391234702,\n        \"message\": \"Fix ansi-light, ansi-dark, and base16 themes\\n\\nFixes #54\\nSee https://github.com/sharkdp/bat/pull/543\\n\",\n        \"min\": 1.72759804402,\n        \"stddev\": 0.029683839831726542,\n        \"system\": 0.06561909,\n        \"time\": 1.7354363050200001,\n        \"user\": 1.74534529\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n        \"max\": 1.810342420905,\n        \"mean\": 1.763795519105,\n        \"median\": 1.758598795905,\n        \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n        \"min\": 1.7348098699049999,\n        \"stddev\": 0.02801153745946587,\n        \"system\": 0.068354355,\n        \"time\": 1.7538478679049998,\n        \"user\": 1.7527845750000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n        \"max\": 1.810342420905,\n        \"mean\": 1.763795519105,\n        \"median\": 1.758598795905,\n        \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n        \"min\": 1.7348098699049999,\n        \"stddev\": 0.02801153745946587,\n        \"system\": 0.068354355,\n        \"time\": 1.7613786409049998,\n        \"user\": 1.7527845750000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n        \"max\": 1.810342420905,\n        \"mean\": 1.763795519105,\n        \"median\": 1.758598795905,\n        \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n        \"min\": 1.7348098699049999,\n        \"stddev\": 0.02801153745946587,\n        \"system\": 0.068354355,\n        \"time\": 1.810342420905,\n        \"user\": 1.7527845750000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n        \"max\": 1.810342420905,\n        \"mean\": 1.763795519105,\n        \"median\": 1.758598795905,\n        \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n        \"min\": 1.7348098699049999,\n        \"stddev\": 0.02801153745946587,\n        \"system\": 0.068354355,\n        \"time\": 1.7348098699049999,\n        \"user\": 1.7527845750000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576206974-d1f1e1ad6749d361b57c9e5d7e7bbf30f6992282\",\n        \"max\": 1.810342420905,\n        \"mean\": 1.763795519105,\n        \"median\": 1.758598795905,\n        \"message\": \"Merge pull request #74 from dandavison/54-support-ansi-and-base16-themes\\n\\nFix ansi-light, ansi-dark, and base16 themes\",\n        \"min\": 1.7348098699049999,\n        \"stddev\": 0.02801153745946587,\n        \"system\": 0.068354355,\n        \"time\": 1.758598795905,\n        \"user\": 1.7527845750000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n        \"max\": 1.8086778144900002,\n        \"mean\": 1.76091374189,\n        \"median\": 1.7569221994900002,\n        \"message\": \"Delete credit line\\n\",\n        \"min\": 1.7383521754900002,\n        \"stddev\": 0.028471066843524486,\n        \"system\": 0.06801810999999999,\n        \"time\": 1.8086778144900002,\n        \"user\": 1.7494496300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n        \"max\": 1.8086778144900002,\n        \"mean\": 1.76091374189,\n        \"median\": 1.7569221994900002,\n        \"message\": \"Delete credit line\\n\",\n        \"min\": 1.7383521754900002,\n        \"stddev\": 0.028471066843524486,\n        \"system\": 0.06801810999999999,\n        \"time\": 1.7605817884900001,\n        \"user\": 1.7494496300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n        \"max\": 1.8086778144900002,\n        \"mean\": 1.76091374189,\n        \"median\": 1.7569221994900002,\n        \"message\": \"Delete credit line\\n\",\n        \"min\": 1.7383521754900002,\n        \"stddev\": 0.028471066843524486,\n        \"system\": 0.06801810999999999,\n        \"time\": 1.7569221994900002,\n        \"user\": 1.7494496300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n        \"max\": 1.8086778144900002,\n        \"mean\": 1.76091374189,\n        \"median\": 1.7569221994900002,\n        \"message\": \"Delete credit line\\n\",\n        \"min\": 1.7383521754900002,\n        \"stddev\": 0.028471066843524486,\n        \"system\": 0.06801810999999999,\n        \"time\": 1.7383521754900002,\n        \"user\": 1.7494496300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/6414875c37b3679187adbd74fa3745ff67b02821 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207036-6414875c37b3679187adbd74fa3745ff67b02821\",\n        \"max\": 1.8086778144900002,\n        \"mean\": 1.76091374189,\n        \"median\": 1.7569221994900002,\n        \"message\": \"Delete credit line\\n\",\n        \"min\": 1.7383521754900002,\n        \"stddev\": 0.028471066843524486,\n        \"system\": 0.06801810999999999,\n        \"time\": 1.7400347314900002,\n        \"user\": 1.7494496300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n        \"max\": 1.797192426,\n        \"mean\": 1.7535994206,\n        \"median\": 1.7399863320000002,\n        \"message\": \"Change theme demo input\\n\",\n        \"min\": 1.735913007,\n        \"stddev\": 0.02588635240249829,\n        \"system\": 0.06732950000000001,\n        \"time\": 1.797192426,\n        \"user\": 1.7449345700000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n        \"max\": 1.797192426,\n        \"mean\": 1.7535994206,\n        \"median\": 1.7399863320000002,\n        \"message\": \"Change theme demo input\\n\",\n        \"min\": 1.735913007,\n        \"stddev\": 0.02588635240249829,\n        \"system\": 0.06732950000000001,\n        \"time\": 1.735913007,\n        \"user\": 1.7449345700000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n        \"max\": 1.797192426,\n        \"mean\": 1.7535994206,\n        \"median\": 1.7399863320000002,\n        \"message\": \"Change theme demo input\\n\",\n        \"min\": 1.735913007,\n        \"stddev\": 0.02588635240249829,\n        \"system\": 0.06732950000000001,\n        \"time\": 1.7399863320000002,\n        \"user\": 1.7449345700000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n        \"max\": 1.797192426,\n        \"mean\": 1.7535994206,\n        \"median\": 1.7399863320000002,\n        \"message\": \"Change theme demo input\\n\",\n        \"min\": 1.735913007,\n        \"stddev\": 0.02588635240249829,\n        \"system\": 0.06732950000000001,\n        \"time\": 1.7576107280000002,\n        \"user\": 1.7449345700000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c2ce7b079a8b5ab05b07c9482218ea5eda199eab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-c2ce7b079a8b5ab05b07c9482218ea5eda199eab\",\n        \"max\": 1.797192426,\n        \"mean\": 1.7535994206,\n        \"median\": 1.7399863320000002,\n        \"message\": \"Change theme demo input\\n\",\n        \"min\": 1.735913007,\n        \"stddev\": 0.02588635240249829,\n        \"system\": 0.06732950000000001,\n        \"time\": 1.73729461,\n        \"user\": 1.7449345700000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n        \"max\": 1.7913811534350002,\n        \"mean\": 1.7575240146350002,\n        \"median\": 1.744569561435,\n        \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n        \"min\": 1.734361796435,\n        \"stddev\": 0.02392081974234167,\n        \"system\": 0.06653098500000001,\n        \"time\": 1.744569561435,\n        \"user\": 1.748133625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n        \"max\": 1.7913811534350002,\n        \"mean\": 1.7575240146350002,\n        \"median\": 1.744569561435,\n        \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n        \"min\": 1.734361796435,\n        \"stddev\": 0.02392081974234167,\n        \"system\": 0.06653098500000001,\n        \"time\": 1.773412806435,\n        \"user\": 1.748133625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n        \"max\": 1.7913811534350002,\n        \"mean\": 1.7575240146350002,\n        \"median\": 1.744569561435,\n        \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n        \"min\": 1.734361796435,\n        \"stddev\": 0.02392081974234167,\n        \"system\": 0.06653098500000001,\n        \"time\": 1.7913811534350002,\n        \"user\": 1.748133625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n        \"max\": 1.7913811534350002,\n        \"mean\": 1.7575240146350002,\n        \"median\": 1.744569561435,\n        \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n        \"min\": 1.734361796435,\n        \"stddev\": 0.02392081974234167,\n        \"system\": 0.06653098500000001,\n        \"time\": 1.743894755435,\n        \"user\": 1.748133625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/fe299347d738e65caf48a79286907896e5ed1a9c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207372-fe299347d738e65caf48a79286907896e5ed1a9c\",\n        \"max\": 1.7913811534350002,\n        \"mean\": 1.7575240146350002,\n        \"median\": 1.744569561435,\n        \"message\": \"Update commands for listing themes\\n\\n- Make --list-themes analogous to bat's --list-themes\\n- Rename --compare-themes to --list-theme-names\\n\",\n        \"min\": 1.734361796435,\n        \"stddev\": 0.02392081974234167,\n        \"system\": 0.06653098500000001,\n        \"time\": 1.734361796435,\n        \"user\": 1.748133625\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n        \"max\": 1.877290501555,\n        \"mean\": 1.8136028509549997,\n        \"median\": 1.8093861275549998,\n        \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n        \"min\": 1.7800130375549998,\n        \"stddev\": 0.037761238056712616,\n        \"system\": 0.07216732,\n        \"time\": 1.7800130375549998,\n        \"user\": 1.7972332300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n        \"max\": 1.877290501555,\n        \"mean\": 1.8136028509549997,\n        \"median\": 1.8093861275549998,\n        \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n        \"min\": 1.7800130375549998,\n        \"stddev\": 0.037761238056712616,\n        \"system\": 0.07216732,\n        \"time\": 1.7915366375550001,\n        \"user\": 1.7972332300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n        \"max\": 1.877290501555,\n        \"mean\": 1.8136028509549997,\n        \"median\": 1.8093861275549998,\n        \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n        \"min\": 1.7800130375549998,\n        \"stddev\": 0.037761238056712616,\n        \"system\": 0.07216732,\n        \"time\": 1.809787950555,\n        \"user\": 1.7972332300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n        \"max\": 1.877290501555,\n        \"mean\": 1.8136028509549997,\n        \"median\": 1.8093861275549998,\n        \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n        \"min\": 1.7800130375549998,\n        \"stddev\": 0.037761238056712616,\n        \"system\": 0.07216732,\n        \"time\": 1.877290501555,\n        \"user\": 1.7972332300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/13e39b1de9ef0a8324b882fade04eeff65241f40 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1576207689-13e39b1de9ef0a8324b882fade04eeff65241f40\",\n        \"max\": 1.877290501555,\n        \"mean\": 1.8136028509549997,\n        \"median\": 1.8093861275549998,\n        \"message\": \"Merge pull request #75 from dandavison/make-compare-themes-like-bat\\n\\nMake compare themes like bat\",\n        \"min\": 1.7800130375549998,\n        \"stddev\": 0.037761238056712616,\n        \"system\": 0.07216732,\n        \"time\": 1.8093861275549998,\n        \"user\": 1.7972332300000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n        \"max\": 1.7453558771300002,\n        \"mean\": 1.71368296433,\n        \"median\": 1.70568084013,\n        \"message\": \"read themes from bat's cache as well\\n\",\n        \"min\": 1.6995923621300002,\n        \"stddev\": 0.018322650685448385,\n        \"system\": 0.06203837999999999,\n        \"time\": 1.7453558771300002,\n        \"user\": 1.7079396000000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n        \"max\": 1.7453558771300002,\n        \"mean\": 1.71368296433,\n        \"median\": 1.70568084013,\n        \"message\": \"read themes from bat's cache as well\\n\",\n        \"min\": 1.6995923621300002,\n        \"stddev\": 0.018322650685448385,\n        \"system\": 0.06203837999999999,\n        \"time\": 1.70568084013,\n        \"user\": 1.7079396000000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n        \"max\": 1.7453558771300002,\n        \"mean\": 1.71368296433,\n        \"median\": 1.70568084013,\n        \"message\": \"read themes from bat's cache as well\\n\",\n        \"min\": 1.6995923621300002,\n        \"stddev\": 0.018322650685448385,\n        \"system\": 0.06203837999999999,\n        \"time\": 1.7049409311300001,\n        \"user\": 1.7079396000000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n        \"max\": 1.7453558771300002,\n        \"mean\": 1.71368296433,\n        \"median\": 1.70568084013,\n        \"message\": \"read themes from bat's cache as well\\n\",\n        \"min\": 1.6995923621300002,\n        \"stddev\": 0.018322650685448385,\n        \"system\": 0.06203837999999999,\n        \"time\": 1.71284481113,\n        \"user\": 1.7079396000000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/19c2db538760694feaf194db9d59e1435c83ca9e < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577151913-19c2db538760694feaf194db9d59e1435c83ca9e\",\n        \"max\": 1.7453558771300002,\n        \"mean\": 1.71368296433,\n        \"median\": 1.70568084013,\n        \"message\": \"read themes from bat's cache as well\\n\",\n        \"min\": 1.6995923621300002,\n        \"stddev\": 0.018322650685448385,\n        \"system\": 0.06203837999999999,\n        \"time\": 1.6995923621300002,\n        \"user\": 1.7079396000000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n        \"max\": 1.98083996069,\n        \"mean\": 1.8181036060900002,\n        \"median\": 1.7810805156900003,\n        \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n        \"min\": 1.76932616669,\n        \"stddev\": 0.09122061598546864,\n        \"system\": 0.07496427000000001,\n        \"time\": 1.98083996069,\n        \"user\": 1.8008996949999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n        \"max\": 1.98083996069,\n        \"mean\": 1.8181036060900002,\n        \"median\": 1.7810805156900003,\n        \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n        \"min\": 1.76932616669,\n        \"stddev\": 0.09122061598546864,\n        \"system\": 0.07496427000000001,\n        \"time\": 1.7728469666900002,\n        \"user\": 1.8008996949999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n        \"max\": 1.98083996069,\n        \"mean\": 1.8181036060900002,\n        \"median\": 1.7810805156900003,\n        \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n        \"min\": 1.76932616669,\n        \"stddev\": 0.09122061598546864,\n        \"system\": 0.07496427000000001,\n        \"time\": 1.7864244206900002,\n        \"user\": 1.8008996949999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n        \"max\": 1.98083996069,\n        \"mean\": 1.8181036060900002,\n        \"median\": 1.7810805156900003,\n        \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n        \"min\": 1.76932616669,\n        \"stddev\": 0.09122061598546864,\n        \"system\": 0.07496427000000001,\n        \"time\": 1.76932616669,\n        \"user\": 1.8008996949999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/050551ac99d47e7772ab0413ef1e5bd10a562365 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1577545373-050551ac99d47e7772ab0413ef1e5bd10a562365\",\n        \"max\": 1.98083996069,\n        \"mean\": 1.8181036060900002,\n        \"median\": 1.7810805156900003,\n        \"message\": \"Fix panic when showing a diff which contains a diff\\n\\nWhen committing e.g. a patch-file in a git repository that has a line\\nwhich contains `--- ` only, `delta` fails with the following error (as it\\nexpects such a line to contain keywords for the diff):\\n\\n```\\nthread 'delta::tests::test_diff_in_diff' panicked at 'byte index 2 is out of bounds of ``', src/libcore/str/mod.rs:2017:9\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.\\n```\\n\\nThis patch changes the diffing behavior to ensure that lines containing\\n`--- ` only won't be parsed.\\n\",\n        \"min\": 1.76932616669,\n        \"stddev\": 0.09122061598546864,\n        \"system\": 0.07496427000000001,\n        \"time\": 1.7810805156900003,\n        \"user\": 1.8008996949999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n        \"max\": 1.7527428231350002,\n        \"mean\": 1.709586381735,\n        \"median\": 1.6993984421350001,\n        \"message\": \"[README] document mercurial configuration\",\n        \"min\": 1.6962721201350002,\n        \"stddev\": 0.024287431286105988,\n        \"system\": 0.06250958,\n        \"time\": 1.7527428231350002,\n        \"user\": 1.7055425100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n        \"max\": 1.7527428231350002,\n        \"mean\": 1.709586381735,\n        \"median\": 1.6993984421350001,\n        \"message\": \"[README] document mercurial configuration\",\n        \"min\": 1.6962721201350002,\n        \"stddev\": 0.024287431286105988,\n        \"system\": 0.06250958,\n        \"time\": 1.6963806091350002,\n        \"user\": 1.7055425100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n        \"max\": 1.7527428231350002,\n        \"mean\": 1.709586381735,\n        \"median\": 1.6993984421350001,\n        \"message\": \"[README] document mercurial configuration\",\n        \"min\": 1.6962721201350002,\n        \"stddev\": 0.024287431286105988,\n        \"system\": 0.06250958,\n        \"time\": 1.6962721201350002,\n        \"user\": 1.7055425100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n        \"max\": 1.7527428231350002,\n        \"mean\": 1.709586381735,\n        \"median\": 1.6993984421350001,\n        \"message\": \"[README] document mercurial configuration\",\n        \"min\": 1.6962721201350002,\n        \"stddev\": 0.024287431286105988,\n        \"system\": 0.06250958,\n        \"time\": 1.703137914135,\n        \"user\": 1.7055425100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578571930-91a61e3f0b1dfd332ad4d2107f9e99c77db93bb3\",\n        \"max\": 1.7527428231350002,\n        \"mean\": 1.709586381735,\n        \"median\": 1.6993984421350001,\n        \"message\": \"[README] document mercurial configuration\",\n        \"min\": 1.6962721201350002,\n        \"stddev\": 0.024287431286105988,\n        \"system\": 0.06250958,\n        \"time\": 1.6993984421350001,\n        \"user\": 1.7055425100000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n        \"max\": 1.78598752604,\n        \"mean\": 1.7264466846399997,\n        \"median\": 1.71512951404,\n        \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n        \"min\": 1.6953918150399998,\n        \"stddev\": 0.03552083561847007,\n        \"system\": 0.06473171999999999,\n        \"time\": 1.70641806904,\n        \"user\": 1.719856895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n        \"max\": 1.78598752604,\n        \"mean\": 1.7264466846399997,\n        \"median\": 1.71512951404,\n        \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n        \"min\": 1.6953918150399998,\n        \"stddev\": 0.03552083561847007,\n        \"system\": 0.06473171999999999,\n        \"time\": 1.78598752604,\n        \"user\": 1.719856895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n        \"max\": 1.78598752604,\n        \"mean\": 1.7264466846399997,\n        \"median\": 1.71512951404,\n        \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n        \"min\": 1.6953918150399998,\n        \"stddev\": 0.03552083561847007,\n        \"system\": 0.06473171999999999,\n        \"time\": 1.6953918150399998,\n        \"user\": 1.719856895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n        \"max\": 1.78598752604,\n        \"mean\": 1.7264466846399997,\n        \"median\": 1.71512951404,\n        \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n        \"min\": 1.6953918150399998,\n        \"stddev\": 0.03552083561847007,\n        \"system\": 0.06473171999999999,\n        \"time\": 1.72930649904,\n        \"user\": 1.719856895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e00ecda778e6a6f51e1ec1a2b1fc64bad848210f < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578594586-e00ecda778e6a6f51e1ec1a2b1fc64bad848210f\",\n        \"max\": 1.78598752604,\n        \"mean\": 1.7264466846399997,\n        \"median\": 1.71512951404,\n        \"message\": \"Merge pull request #81 from Psycojoker/patch-1\\n\\n[README] document mercurial configuration\",\n        \"min\": 1.6953918150399998,\n        \"stddev\": 0.03552083561847007,\n        \"system\": 0.06473171999999999,\n        \"time\": 1.71512951404,\n        \"user\": 1.719856895\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n        \"max\": 1.722760595005,\n        \"mean\": 1.7065114014050002,\n        \"median\": 1.706559638005,\n        \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n        \"min\": 1.692520849005,\n        \"stddev\": 0.012274768216726661,\n        \"system\": 0.06274336,\n        \"time\": 1.706559638005,\n        \"user\": 1.700643255\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n        \"max\": 1.722760595005,\n        \"mean\": 1.7065114014050002,\n        \"median\": 1.706559638005,\n        \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n        \"min\": 1.692520849005,\n        \"stddev\": 0.012274768216726661,\n        \"system\": 0.06274336,\n        \"time\": 1.696984053005,\n        \"user\": 1.700643255\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n        \"max\": 1.722760595005,\n        \"mean\": 1.7065114014050002,\n        \"median\": 1.706559638005,\n        \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n        \"min\": 1.692520849005,\n        \"stddev\": 0.012274768216726661,\n        \"system\": 0.06274336,\n        \"time\": 1.722760595005,\n        \"user\": 1.700643255\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n        \"max\": 1.722760595005,\n        \"mean\": 1.7065114014050002,\n        \"median\": 1.706559638005,\n        \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n        \"min\": 1.692520849005,\n        \"stddev\": 0.012274768216726661,\n        \"system\": 0.06274336,\n        \"time\": 1.692520849005,\n        \"user\": 1.700643255\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9f258c1c1e625210306ba04af6bbadd3d1503ec7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578596863-9f258c1c1e625210306ba04af6bbadd3d1503ec7\",\n        \"max\": 1.722760595005,\n        \"mean\": 1.7065114014050002,\n        \"median\": 1.706559638005,\n        \"message\": \"Merge pull request #76 from data-pup/read-themes-from-bat-cache\\n\\nread themes from bat's cache\",\n        \"min\": 1.692520849005,\n        \"stddev\": 0.012274768216726661,\n        \"system\": 0.06274336,\n        \"time\": 1.713731872005,\n        \"user\": 1.700643255\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n        \"max\": 1.73321229866,\n        \"mean\": 1.7026571012600002,\n        \"median\": 1.69749542166,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.68269648866,\n        \"stddev\": 0.02010799400830877,\n        \"system\": 0.063197515,\n        \"time\": 1.73321229866,\n        \"user\": 1.69779991\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n        \"max\": 1.73321229866,\n        \"mean\": 1.7026571012600002,\n        \"median\": 1.69749542166,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.68269648866,\n        \"stddev\": 0.02010799400830877,\n        \"system\": 0.063197515,\n        \"time\": 1.71098325666,\n        \"user\": 1.69779991\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n        \"max\": 1.73321229866,\n        \"mean\": 1.7026571012600002,\n        \"median\": 1.69749542166,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.68269648866,\n        \"stddev\": 0.02010799400830877,\n        \"system\": 0.063197515,\n        \"time\": 1.69749542166,\n        \"user\": 1.69779991\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n        \"max\": 1.73321229866,\n        \"mean\": 1.7026571012600002,\n        \"median\": 1.69749542166,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.68269648866,\n        \"stddev\": 0.02010799400830877,\n        \"system\": 0.063197515,\n        \"time\": 1.68889804066,\n        \"user\": 1.69779991\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f7dc37d732f97a62011d51e68f5a3558c50c639 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578865020-1f7dc37d732f97a62011d51e68f5a3558c50c639\",\n        \"max\": 1.73321229866,\n        \"mean\": 1.7026571012600002,\n        \"median\": 1.69749542166,\n        \"message\": \"Update bash completion\\n\",\n        \"min\": 1.68269648866,\n        \"stddev\": 0.02010799400830877,\n        \"system\": 0.063197515,\n        \"time\": 1.68269648866,\n        \"user\": 1.69779991\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n        \"max\": 1.7625388730350002,\n        \"mean\": 1.7179560954350002,\n        \"median\": 1.710845849035,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.6817819560350002,\n        \"stddev\": 0.0373450009165691,\n        \"system\": 0.064136475,\n        \"time\": 1.7625388730350002,\n        \"user\": 1.7131403199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n        \"max\": 1.7625388730350002,\n        \"mean\": 1.7179560954350002,\n        \"median\": 1.710845849035,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.6817819560350002,\n        \"stddev\": 0.0373450009165691,\n        \"system\": 0.064136475,\n        \"time\": 1.683907757035,\n        \"user\": 1.7131403199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n        \"max\": 1.7625388730350002,\n        \"mean\": 1.7179560954350002,\n        \"median\": 1.710845849035,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.6817819560350002,\n        \"stddev\": 0.0373450009165691,\n        \"system\": 0.064136475,\n        \"time\": 1.710845849035,\n        \"user\": 1.7131403199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n        \"max\": 1.7625388730350002,\n        \"mean\": 1.7179560954350002,\n        \"median\": 1.710845849035,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.6817819560350002,\n        \"stddev\": 0.0373450009165691,\n        \"system\": 0.064136475,\n        \"time\": 1.7507060420350002,\n        \"user\": 1.7131403199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cfe873493cbdab5d209d1e2cef32666690660634 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953149-cfe873493cbdab5d209d1e2cef32666690660634\",\n        \"max\": 1.7625388730350002,\n        \"mean\": 1.7179560954350002,\n        \"median\": 1.710845849035,\n        \"message\": \"Update README\\n\",\n        \"min\": 1.6817819560350002,\n        \"stddev\": 0.0373450009165691,\n        \"system\": 0.064136475,\n        \"time\": 1.6817819560350002,\n        \"user\": 1.7131403199999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n        \"max\": 1.7776440166550003,\n        \"mean\": 1.760375952055,\n        \"median\": 1.759354909655,\n        \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n        \"min\": 1.7467981056550002,\n        \"stddev\": 0.01105077745537346,\n        \"system\": 0.068363855,\n        \"time\": 1.759856834655,\n        \"user\": 1.7510739649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n        \"max\": 1.7776440166550003,\n        \"mean\": 1.760375952055,\n        \"median\": 1.759354909655,\n        \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n        \"min\": 1.7467981056550002,\n        \"stddev\": 0.01105077745537346,\n        \"system\": 0.068363855,\n        \"time\": 1.7776440166550003,\n        \"user\": 1.7510739649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n        \"max\": 1.7776440166550003,\n        \"mean\": 1.760375952055,\n        \"median\": 1.759354909655,\n        \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n        \"min\": 1.7467981056550002,\n        \"stddev\": 0.01105077745537346,\n        \"system\": 0.068363855,\n        \"time\": 1.7467981056550002,\n        \"user\": 1.7510739649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n        \"max\": 1.7776440166550003,\n        \"mean\": 1.760375952055,\n        \"median\": 1.759354909655,\n        \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n        \"min\": 1.7467981056550002,\n        \"stddev\": 0.01105077745537346,\n        \"system\": 0.068363855,\n        \"time\": 1.7582258936550001,\n        \"user\": 1.7510739649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/88e967c8a4eaed46e9b17288fb2a3d9606bac2e8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1578953342-88e967c8a4eaed46e9b17288fb2a3d9606bac2e8\",\n        \"max\": 1.7776440166550003,\n        \"mean\": 1.760375952055,\n        \"median\": 1.759354909655,\n        \"message\": \"Merge pull request #84 from dandavison/update-readme-theme-language-docs\\n\\nUpdate README\",\n        \"min\": 1.7467981056550002,\n        \"stddev\": 0.01105077745537346,\n        \"system\": 0.068363855,\n        \"time\": 1.759354909655,\n        \"user\": 1.7510739649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n        \"max\": 1.78841082833,\n        \"mean\": 1.72063597253,\n        \"median\": 1.69705451033,\n        \"message\": \"Add failing test for issue #89\\n\",\n        \"min\": 1.6923187633299999,\n        \"stddev\": 0.041416469603081554,\n        \"system\": 0.06328825,\n        \"time\": 1.73249546133,\n        \"user\": 1.7162025800000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n        \"max\": 1.78841082833,\n        \"mean\": 1.72063597253,\n        \"median\": 1.69705451033,\n        \"message\": \"Add failing test for issue #89\\n\",\n        \"min\": 1.6923187633299999,\n        \"stddev\": 0.041416469603081554,\n        \"system\": 0.06328825,\n        \"time\": 1.78841082833,\n        \"user\": 1.7162025800000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n        \"max\": 1.78841082833,\n        \"mean\": 1.72063597253,\n        \"median\": 1.69705451033,\n        \"message\": \"Add failing test for issue #89\\n\",\n        \"min\": 1.6923187633299999,\n        \"stddev\": 0.041416469603081554,\n        \"system\": 0.06328825,\n        \"time\": 1.6923187633299999,\n        \"user\": 1.7162025800000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n        \"max\": 1.78841082833,\n        \"mean\": 1.72063597253,\n        \"median\": 1.69705451033,\n        \"message\": \"Add failing test for issue #89\\n\",\n        \"min\": 1.6923187633299999,\n        \"stddev\": 0.041416469603081554,\n        \"system\": 0.06328825,\n        \"time\": 1.69705451033,\n        \"user\": 1.7162025800000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c29dcf280ee1d2d00bcfce776ba857fe7cd7d189 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581018883-c29dcf280ee1d2d00bcfce776ba857fe7cd7d189\",\n        \"max\": 1.78841082833,\n        \"mean\": 1.72063597253,\n        \"median\": 1.69705451033,\n        \"message\": \"Add failing test for issue #89\\n\",\n        \"min\": 1.6923187633299999,\n        \"stddev\": 0.041416469603081554,\n        \"system\": 0.06328825,\n        \"time\": 1.69290029933,\n        \"user\": 1.7162025800000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n        \"max\": 1.75497858829,\n        \"mean\": 1.72749685009,\n        \"median\": 1.7324663392900002,\n        \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n        \"min\": 1.70078651229,\n        \"stddev\": 0.020347833287244467,\n        \"system\": 0.064247185,\n        \"time\": 1.71607437429,\n        \"user\": 1.721554395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n        \"max\": 1.75497858829,\n        \"mean\": 1.72749685009,\n        \"median\": 1.7324663392900002,\n        \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n        \"min\": 1.70078651229,\n        \"stddev\": 0.020347833287244467,\n        \"system\": 0.064247185,\n        \"time\": 1.7324663392900002,\n        \"user\": 1.721554395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n        \"max\": 1.75497858829,\n        \"mean\": 1.72749685009,\n        \"median\": 1.7324663392900002,\n        \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n        \"min\": 1.70078651229,\n        \"stddev\": 0.020347833287244467,\n        \"system\": 0.064247185,\n        \"time\": 1.75497858829,\n        \"user\": 1.721554395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n        \"max\": 1.75497858829,\n        \"mean\": 1.72749685009,\n        \"median\": 1.7324663392900002,\n        \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n        \"min\": 1.70078651229,\n        \"stddev\": 0.020347833287244467,\n        \"system\": 0.064247185,\n        \"time\": 1.73317843629,\n        \"user\": 1.721554395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/f6d4d333d5c06f66643622206f384a3410c14c61 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019139-f6d4d333d5c06f66643622206f384a3410c14c61\",\n        \"max\": 1.75497858829,\n        \"mean\": 1.72749685009,\n        \"median\": 1.7324663392900002,\n        \"message\": \"Tighten up state machine parser. Fixes #89\\n\\nPrior to this commit, in a language in which -- at the beginning of a\\nline is valid (e.g. a Haskell or SQL comment), then removal of such a\\nline was being confused with the --- marker used in unified/git diff\\nto introduce the file paths.\\n\",\n        \"min\": 1.70078651229,\n        \"stddev\": 0.020347833287244467,\n        \"system\": 0.064247185,\n        \"time\": 1.70078651229,\n        \"user\": 1.721554395\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n        \"max\": 1.74286421015,\n        \"mean\": 1.7158173933500003,\n        \"median\": 1.70289755115,\n        \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n        \"min\": 1.70046906015,\n        \"stddev\": 0.019568731419090046,\n        \"system\": 0.06236265999999999,\n        \"time\": 1.73051656415,\n        \"user\": 1.7106476050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n        \"max\": 1.74286421015,\n        \"mean\": 1.7158173933500003,\n        \"median\": 1.70289755115,\n        \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n        \"min\": 1.70046906015,\n        \"stddev\": 0.019568731419090046,\n        \"system\": 0.06236265999999999,\n        \"time\": 1.70233958115,\n        \"user\": 1.7106476050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n        \"max\": 1.74286421015,\n        \"mean\": 1.7158173933500003,\n        \"median\": 1.70289755115,\n        \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n        \"min\": 1.70046906015,\n        \"stddev\": 0.019568731419090046,\n        \"system\": 0.06236265999999999,\n        \"time\": 1.74286421015,\n        \"user\": 1.7106476050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n        \"max\": 1.74286421015,\n        \"mean\": 1.7158173933500003,\n        \"median\": 1.70289755115,\n        \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n        \"min\": 1.70046906015,\n        \"stddev\": 0.019568731419090046,\n        \"system\": 0.06236265999999999,\n        \"time\": 1.70289755115,\n        \"user\": 1.7106476050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/d98b46391638063790c34c5e78e585ad98f43588 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581019237-d98b46391638063790c34c5e78e585ad98f43588\",\n        \"max\": 1.74286421015,\n        \"mean\": 1.7158173933500003,\n        \"median\": 1.70289755115,\n        \"message\": \"Merge pull request #90 from dandavison/89-fix-parser-comment-ambiguity\\n\\nFix parser comment ambiguity\",\n        \"min\": 1.70046906015,\n        \"stddev\": 0.019568731419090046,\n        \"system\": 0.06236265999999999,\n        \"time\": 1.70046906015,\n        \"user\": 1.7106476050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n        \"max\": 1.72426911564,\n        \"mean\": 1.70646791524,\n        \"median\": 1.70480218164,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.68782391264,\n        \"stddev\": 0.01685551654045634,\n        \"system\": 0.062619335,\n        \"time\": 1.70480218164,\n        \"user\": 1.7023503650000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n        \"max\": 1.72426911564,\n        \"mean\": 1.70646791524,\n        \"median\": 1.70480218164,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.68782391264,\n        \"stddev\": 0.01685551654045634,\n        \"system\": 0.062619335,\n        \"time\": 1.68782391264,\n        \"user\": 1.7023503650000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n        \"max\": 1.72426911564,\n        \"mean\": 1.70646791524,\n        \"median\": 1.70480218164,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.68782391264,\n        \"stddev\": 0.01685551654045634,\n        \"system\": 0.062619335,\n        \"time\": 1.72426911564,\n        \"user\": 1.7023503650000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n        \"max\": 1.72426911564,\n        \"mean\": 1.70646791524,\n        \"median\": 1.70480218164,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.68782391264,\n        \"stddev\": 0.01685551654045634,\n        \"system\": 0.062619335,\n        \"time\": 1.6924573356400001,\n        \"user\": 1.7023503650000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/8dafe5418d1c79c0a32397268b2312f2b276723c < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581025008-8dafe5418d1c79c0a32397268b2312f2b276723c\",\n        \"max\": 1.72426911564,\n        \"mean\": 1.70646791524,\n        \"median\": 1.70480218164,\n        \"message\": \"Bump version\\n\",\n        \"min\": 1.68782391264,\n        \"stddev\": 0.01685551654045634,\n        \"system\": 0.062619335,\n        \"time\": 1.7229870306400001,\n        \"user\": 1.7023503650000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n        \"max\": 1.73247464523,\n        \"mean\": 1.7067824378300003,\n        \"median\": 1.69497844823,\n        \"message\": \"Stop running Windows build since it is broken\\n\",\n        \"min\": 1.68995150223,\n        \"stddev\": 0.019080193185594303,\n        \"system\": 0.061649659999999995,\n        \"time\": 1.73247464523,\n        \"user\": 1.7038774500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n        \"max\": 1.73247464523,\n        \"mean\": 1.7067824378300003,\n        \"median\": 1.69497844823,\n        \"message\": \"Stop running Windows build since it is broken\\n\",\n        \"min\": 1.68995150223,\n        \"stddev\": 0.019080193185594303,\n        \"system\": 0.061649659999999995,\n        \"time\": 1.69497844823,\n        \"user\": 1.7038774500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n        \"max\": 1.73247464523,\n        \"mean\": 1.7067824378300003,\n        \"median\": 1.69497844823,\n        \"message\": \"Stop running Windows build since it is broken\\n\",\n        \"min\": 1.68995150223,\n        \"stddev\": 0.019080193185594303,\n        \"system\": 0.061649659999999995,\n        \"time\": 1.69466738423,\n        \"user\": 1.7038774500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n        \"max\": 1.73247464523,\n        \"mean\": 1.7067824378300003,\n        \"median\": 1.69497844823,\n        \"message\": \"Stop running Windows build since it is broken\\n\",\n        \"min\": 1.68995150223,\n        \"stddev\": 0.019080193185594303,\n        \"system\": 0.061649659999999995,\n        \"time\": 1.68995150223,\n        \"user\": 1.7038774500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c8b01b741efe8e392910012c902f1ff63456a1f1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581087724-c8b01b741efe8e392910012c902f1ff63456a1f1\",\n        \"max\": 1.73247464523,\n        \"mean\": 1.7067824378300003,\n        \"median\": 1.69497844823,\n        \"message\": \"Stop running Windows build since it is broken\\n\",\n        \"min\": 1.68995150223,\n        \"stddev\": 0.019080193185594303,\n        \"system\": 0.061649659999999995,\n        \"time\": 1.72184020923,\n        \"user\": 1.7038774500000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n        \"max\": 1.7729502163800002,\n        \"mean\": 1.73819716098,\n        \"median\": 1.72126373238,\n        \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n        \"min\": 1.70840724538,\n        \"stddev\": 0.03164390351922424,\n        \"system\": 0.06304179000000001,\n        \"time\": 1.7729502163800002,\n        \"user\": 1.7319566600000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n        \"max\": 1.7729502163800002,\n        \"mean\": 1.73819716098,\n        \"median\": 1.72126373238,\n        \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n        \"min\": 1.70840724538,\n        \"stddev\": 0.03164390351922424,\n        \"system\": 0.06304179000000001,\n        \"time\": 1.71632779338,\n        \"user\": 1.7319566600000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n        \"max\": 1.7729502163800002,\n        \"mean\": 1.73819716098,\n        \"median\": 1.72126373238,\n        \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n        \"min\": 1.70840724538,\n        \"stddev\": 0.03164390351922424,\n        \"system\": 0.06304179000000001,\n        \"time\": 1.70840724538,\n        \"user\": 1.7319566600000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n        \"max\": 1.7729502163800002,\n        \"mean\": 1.73819716098,\n        \"median\": 1.72126373238,\n        \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n        \"min\": 1.70840724538,\n        \"stddev\": 0.03164390351922424,\n        \"system\": 0.06304179000000001,\n        \"time\": 1.72126373238,\n        \"user\": 1.7319566600000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/38a3a2ca694b65514e2fb139da2299c69ea059e1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581131512-38a3a2ca694b65514e2fb139da2299c69ea059e1\",\n        \"max\": 1.7729502163800002,\n        \"mean\": 1.73819716098,\n        \"median\": 1.72126373238,\n        \"message\": \"Fix hashes in homebrew formula\\n\\nFixes #92\\n\",\n        \"min\": 1.70840724538,\n        \"stddev\": 0.03164390351922424,\n        \"system\": 0.06304179000000001,\n        \"time\": 1.77203681738,\n        \"user\": 1.7319566600000003\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n        \"max\": 1.820126484695,\n        \"mean\": 1.744022566095,\n        \"median\": 1.726617566695,\n        \"message\": \"Change to white terminal background in screenshot\\n\",\n        \"min\": 1.712128090695,\n        \"stddev\": 0.04357715279388712,\n        \"system\": 0.06727332499999998,\n        \"time\": 1.820126484695,\n        \"user\": 1.7341709\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n        \"max\": 1.820126484695,\n        \"mean\": 1.744022566095,\n        \"median\": 1.726617566695,\n        \"message\": \"Change to white terminal background in screenshot\\n\",\n        \"min\": 1.712128090695,\n        \"stddev\": 0.04357715279388712,\n        \"system\": 0.06727332499999998,\n        \"time\": 1.712128090695,\n        \"user\": 1.7341709\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n        \"max\": 1.820126484695,\n        \"mean\": 1.744022566095,\n        \"median\": 1.726617566695,\n        \"message\": \"Change to white terminal background in screenshot\\n\",\n        \"min\": 1.712128090695,\n        \"stddev\": 0.04357715279388712,\n        \"system\": 0.06727332499999998,\n        \"time\": 1.722726172695,\n        \"user\": 1.7341709\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n        \"max\": 1.820126484695,\n        \"mean\": 1.744022566095,\n        \"median\": 1.726617566695,\n        \"message\": \"Change to white terminal background in screenshot\\n\",\n        \"min\": 1.712128090695,\n        \"stddev\": 0.04357715279388712,\n        \"system\": 0.06727332499999998,\n        \"time\": 1.738514515695,\n        \"user\": 1.7341709\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/4c0027b2bc1b249aa93471570cd257493e21b7d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189758-4c0027b2bc1b249aa93471570cd257493e21b7d6\",\n        \"max\": 1.820126484695,\n        \"mean\": 1.744022566095,\n        \"median\": 1.726617566695,\n        \"message\": \"Change to white terminal background in screenshot\\n\",\n        \"min\": 1.712128090695,\n        \"stddev\": 0.04357715279388712,\n        \"system\": 0.06727332499999998,\n        \"time\": 1.726617566695,\n        \"user\": 1.7341709\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n        \"max\": 1.78346546804,\n        \"mean\": 1.7498244660399997,\n        \"median\": 1.7440130560399998,\n        \"message\": \"Simplify README title\\n\",\n        \"min\": 1.73370229204,\n        \"stddev\": 0.019431245965050054,\n        \"system\": 0.06446849,\n        \"time\": 1.7468297310399998,\n        \"user\": 1.7436783649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n        \"max\": 1.78346546804,\n        \"mean\": 1.7498244660399997,\n        \"median\": 1.7440130560399998,\n        \"message\": \"Simplify README title\\n\",\n        \"min\": 1.73370229204,\n        \"stddev\": 0.019431245965050054,\n        \"system\": 0.06446849,\n        \"time\": 1.78346546804,\n        \"user\": 1.7436783649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n        \"max\": 1.78346546804,\n        \"mean\": 1.7498244660399997,\n        \"median\": 1.7440130560399998,\n        \"message\": \"Simplify README title\\n\",\n        \"min\": 1.73370229204,\n        \"stddev\": 0.019431245965050054,\n        \"system\": 0.06446849,\n        \"time\": 1.7411117830399998,\n        \"user\": 1.7436783649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n        \"max\": 1.78346546804,\n        \"mean\": 1.7498244660399997,\n        \"median\": 1.7440130560399998,\n        \"message\": \"Simplify README title\\n\",\n        \"min\": 1.73370229204,\n        \"stddev\": 0.019431245965050054,\n        \"system\": 0.06446849,\n        \"time\": 1.73370229204,\n        \"user\": 1.7436783649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/08d3b5db2d6332fc8080d095cf92184ae7e3ca00 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581189903-08d3b5db2d6332fc8080d095cf92184ae7e3ca00\",\n        \"max\": 1.78346546804,\n        \"mean\": 1.7498244660399997,\n        \"median\": 1.7440130560399998,\n        \"message\": \"Simplify README title\\n\",\n        \"min\": 1.73370229204,\n        \"stddev\": 0.019431245965050054,\n        \"system\": 0.06446849,\n        \"time\": 1.7440130560399998,\n        \"user\": 1.7436783649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n        \"max\": 1.79507545206,\n        \"mean\": 1.77534611106,\n        \"median\": 1.78801427306,\n        \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n        \"min\": 1.73912308706,\n        \"stddev\": 0.024341445238032444,\n        \"system\": 0.06784201,\n        \"time\": 1.76143373606,\n        \"user\": 1.7657405449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n        \"max\": 1.79507545206,\n        \"mean\": 1.77534611106,\n        \"median\": 1.78801427306,\n        \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n        \"min\": 1.73912308706,\n        \"stddev\": 0.024341445238032444,\n        \"system\": 0.06784201,\n        \"time\": 1.79507545206,\n        \"user\": 1.7657405449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n        \"max\": 1.79507545206,\n        \"mean\": 1.77534611106,\n        \"median\": 1.78801427306,\n        \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n        \"min\": 1.73912308706,\n        \"stddev\": 0.024341445238032444,\n        \"system\": 0.06784201,\n        \"time\": 1.78801427306,\n        \"user\": 1.7657405449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n        \"max\": 1.79507545206,\n        \"mean\": 1.77534611106,\n        \"median\": 1.78801427306,\n        \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n        \"min\": 1.73912308706,\n        \"stddev\": 0.024341445238032444,\n        \"system\": 0.06784201,\n        \"time\": 1.7930840070599998,\n        \"user\": 1.7657405449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/af84d5c7019f4481a6d64112d74e4eae727c4bd1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517341-af84d5c7019f4481a6d64112d74e4eae727c4bd1\",\n        \"max\": 1.79507545206,\n        \"mean\": 1.77534611106,\n        \"median\": 1.78801427306,\n        \"message\": \"Add test for \\\"Binary files ... differ\\\" line\\n\\nRef #93\\n\",\n        \"min\": 1.73912308706,\n        \"stddev\": 0.024341445238032444,\n        \"system\": 0.06784201,\n        \"time\": 1.73912308706,\n        \"user\": 1.7657405449999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n        \"max\": 1.8189877566050001,\n        \"mean\": 1.7599466058050002,\n        \"median\": 1.7444405356050001,\n        \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n        \"min\": 1.7396441826050002,\n        \"stddev\": 0.033337833882278504,\n        \"system\": 0.06701742,\n        \"time\": 1.8189877566050001,\n        \"user\": 1.7502270399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n        \"max\": 1.8189877566050001,\n        \"mean\": 1.7599466058050002,\n        \"median\": 1.7444405356050001,\n        \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n        \"min\": 1.7396441826050002,\n        \"stddev\": 0.033337833882278504,\n        \"system\": 0.06701742,\n        \"time\": 1.7444405356050001,\n        \"user\": 1.7502270399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n        \"max\": 1.8189877566050001,\n        \"mean\": 1.7599466058050002,\n        \"median\": 1.7444405356050001,\n        \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n        \"min\": 1.7396441826050002,\n        \"stddev\": 0.033337833882278504,\n        \"system\": 0.06701742,\n        \"time\": 1.7396441826050002,\n        \"user\": 1.7502270399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n        \"max\": 1.8189877566050001,\n        \"mean\": 1.7599466058050002,\n        \"median\": 1.7444405356050001,\n        \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n        \"min\": 1.7396441826050002,\n        \"stddev\": 0.033337833882278504,\n        \"system\": 0.06701742,\n        \"time\": 1.7526478226050002,\n        \"user\": 1.7502270399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/270de8fb5ff0a0c6db489e6ce713d124fe16c7b2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581517344-270de8fb5ff0a0c6db489e6ce713d124fe16c7b2\",\n        \"max\": 1.8189877566050001,\n        \"mean\": 1.7599466058050002,\n        \"median\": 1.7444405356050001,\n        \"message\": \"Output Git's \\\"Binary files $file_1 and $file_2 differ\\\" line\\n\\nFixes #93\\n\",\n        \"min\": 1.7396441826050002,\n        \"stddev\": 0.033337833882278504,\n        \"system\": 0.06701742,\n        \"time\": 1.7440127316050003,\n        \"user\": 1.7502270399999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n        \"max\": 1.807111046465,\n        \"mean\": 1.749977554265,\n        \"median\": 1.733875897465,\n        \"message\": \"Add test script for #93\\n\",\n        \"min\": 1.727958317465,\n        \"stddev\": 0.032717061954397074,\n        \"system\": 0.06583560499999999,\n        \"time\": 1.807111046465,\n        \"user\": 1.7431830199999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n        \"max\": 1.807111046465,\n        \"mean\": 1.749977554265,\n        \"median\": 1.733875897465,\n        \"message\": \"Add test script for #93\\n\",\n        \"min\": 1.727958317465,\n        \"stddev\": 0.032717061954397074,\n        \"system\": 0.06583560499999999,\n        \"time\": 1.727958317465,\n        \"user\": 1.7431830199999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n        \"max\": 1.807111046465,\n        \"mean\": 1.749977554265,\n        \"median\": 1.733875897465,\n        \"message\": \"Add test script for #93\\n\",\n        \"min\": 1.727958317465,\n        \"stddev\": 0.032717061954397074,\n        \"system\": 0.06583560499999999,\n        \"time\": 1.747273425465,\n        \"user\": 1.7431830199999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n        \"max\": 1.807111046465,\n        \"mean\": 1.749977554265,\n        \"median\": 1.733875897465,\n        \"message\": \"Add test script for #93\\n\",\n        \"min\": 1.727958317465,\n        \"stddev\": 0.032717061954397074,\n        \"system\": 0.06583560499999999,\n        \"time\": 1.733875897465,\n        \"user\": 1.7431830199999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/dad1aea90c27b7a74ee2c8f8eafab9d472756040 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581518971-dad1aea90c27b7a74ee2c8f8eafab9d472756040\",\n        \"max\": 1.807111046465,\n        \"mean\": 1.749977554265,\n        \"median\": 1.733875897465,\n        \"message\": \"Add test script for #93\\n\",\n        \"min\": 1.727958317465,\n        \"stddev\": 0.032717061954397074,\n        \"system\": 0.06583560499999999,\n        \"time\": 1.733669084465,\n        \"user\": 1.7431830199999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n        \"max\": 1.82447647995,\n        \"mean\": 1.7803297211499998,\n        \"median\": 1.7806307179499998,\n        \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n        \"min\": 1.7397373699499998,\n        \"stddev\": 0.030265335050387025,\n        \"system\": 0.06610395499999999,\n        \"time\": 1.7729355729499998,\n        \"user\": 1.772994965\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n        \"max\": 1.82447647995,\n        \"mean\": 1.7803297211499998,\n        \"median\": 1.7806307179499998,\n        \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n        \"min\": 1.7397373699499998,\n        \"stddev\": 0.030265335050387025,\n        \"system\": 0.06610395499999999,\n        \"time\": 1.82447647995,\n        \"user\": 1.772994965\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n        \"max\": 1.82447647995,\n        \"mean\": 1.7803297211499998,\n        \"median\": 1.7806307179499998,\n        \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n        \"min\": 1.7397373699499998,\n        \"stddev\": 0.030265335050387025,\n        \"system\": 0.06610395499999999,\n        \"time\": 1.7806307179499998,\n        \"user\": 1.772994965\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n        \"max\": 1.82447647995,\n        \"mean\": 1.7803297211499998,\n        \"median\": 1.7806307179499998,\n        \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n        \"min\": 1.7397373699499998,\n        \"stddev\": 0.030265335050387025,\n        \"system\": 0.06610395499999999,\n        \"time\": 1.7838684649499998,\n        \"user\": 1.772994965\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cd3226a8f6449ab76bb772d30d74f009a28e1cb0 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581535786-cd3226a8f6449ab76bb772d30d74f009a28e1cb0\",\n        \"max\": 1.82447647995,\n        \"mean\": 1.7803297211499998,\n        \"median\": 1.7806307179499998,\n        \"message\": \"Merge pull request #94 from dandavison/93-show-binary-file-diff-line\\n\\nShow binary file diff line\",\n        \"min\": 1.7397373699499998,\n        \"stddev\": 0.030265335050387025,\n        \"system\": 0.06610395499999999,\n        \"time\": 1.7397373699499998,\n        \"user\": 1.772994965\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n        \"max\": 1.7724654352050002,\n        \"mean\": 1.752796854405,\n        \"median\": 1.748965909205,\n        \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n        \"min\": 1.7396820292050001,\n        \"stddev\": 0.01261198114884924,\n        \"system\": 0.065383025,\n        \"time\": 1.748965909205,\n        \"user\": 1.745210305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n        \"max\": 1.7724654352050002,\n        \"mean\": 1.752796854405,\n        \"median\": 1.748965909205,\n        \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n        \"min\": 1.7396820292050001,\n        \"stddev\": 0.01261198114884924,\n        \"system\": 0.065383025,\n        \"time\": 1.7724654352050002,\n        \"user\": 1.745210305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n        \"max\": 1.7724654352050002,\n        \"mean\": 1.752796854405,\n        \"median\": 1.748965909205,\n        \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n        \"min\": 1.7396820292050001,\n        \"stddev\": 0.01261198114884924,\n        \"system\": 0.065383025,\n        \"time\": 1.7568674642050002,\n        \"user\": 1.745210305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n        \"max\": 1.7724654352050002,\n        \"mean\": 1.752796854405,\n        \"median\": 1.748965909205,\n        \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n        \"min\": 1.7396820292050001,\n        \"stddev\": 0.01261198114884924,\n        \"system\": 0.065383025,\n        \"time\": 1.7460034342050001,\n        \"user\": 1.745210305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/308751bc09872f301b303ccfd8b9e4f204ddd229 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581686842-308751bc09872f301b303ccfd8b9e4f204ddd229\",\n        \"max\": 1.7724654352050002,\n        \"mean\": 1.752796854405,\n        \"median\": 1.748965909205,\n        \"message\": \"Fix missing newline in draw::write_boxed_with_line\\n\",\n        \"min\": 1.7396820292050001,\n        \"stddev\": 0.01261198114884924,\n        \"system\": 0.065383025,\n        \"time\": 1.7396820292050001,\n        \"user\": 1.745210305\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n        \"max\": 1.74129294465,\n        \"mean\": 1.7384661490500002,\n        \"median\": 1.73848461965,\n        \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n        \"min\": 1.73536997165,\n        \"stddev\": 0.0026622768449931136,\n        \"system\": 0.06494129500000001,\n        \"time\": 1.74090914265,\n        \"user\": 1.73163197\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n        \"max\": 1.74129294465,\n        \"mean\": 1.7384661490500002,\n        \"median\": 1.73848461965,\n        \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n        \"min\": 1.73536997165,\n        \"stddev\": 0.0026622768449931136,\n        \"system\": 0.06494129500000001,\n        \"time\": 1.73848461965,\n        \"user\": 1.73163197\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n        \"max\": 1.74129294465,\n        \"mean\": 1.7384661490500002,\n        \"median\": 1.73848461965,\n        \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n        \"min\": 1.73536997165,\n        \"stddev\": 0.0026622768449931136,\n        \"system\": 0.06494129500000001,\n        \"time\": 1.73536997165,\n        \"user\": 1.73163197\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n        \"max\": 1.74129294465,\n        \"mean\": 1.7384661490500002,\n        \"median\": 1.73848461965,\n        \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n        \"min\": 1.73536997165,\n        \"stddev\": 0.0026622768449931136,\n        \"system\": 0.06494129500000001,\n        \"time\": 1.73627406665,\n        \"user\": 1.73163197\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/10871b1814ae6d09bc3c7a872e25d91201a257dd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1581898259-10871b1814ae6d09bc3c7a872e25d91201a257dd\",\n        \"max\": 1.74129294465,\n        \"mean\": 1.7384661490500002,\n        \"median\": 1.73848461965,\n        \"message\": \"Merge pull request #98 from guyboltonking/gbk-fix-missing-newline-in-write-boxed-with-line\\n\\nFix missing newline in --commit-style=box\",\n        \"min\": 1.73536997165,\n        \"stddev\": 0.0026622768449931136,\n        \"system\": 0.06494129500000001,\n        \"time\": 1.74129294465,\n        \"user\": 1.73163197\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n        \"max\": 1.78541630298,\n        \"mean\": 1.7542504703800001,\n        \"median\": 1.7516690649800002,\n        \"message\": \"Add Archlinux installation instructions\\n\",\n        \"min\": 1.73482217198,\n        \"stddev\": 0.021237342140144735,\n        \"system\": 0.06564145,\n        \"time\": 1.78541630298,\n        \"user\": 1.74720257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n        \"max\": 1.78541630298,\n        \"mean\": 1.7542504703800001,\n        \"median\": 1.7516690649800002,\n        \"message\": \"Add Archlinux installation instructions\\n\",\n        \"min\": 1.73482217198,\n        \"stddev\": 0.021237342140144735,\n        \"system\": 0.06564145,\n        \"time\": 1.7639333649800002,\n        \"user\": 1.74720257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n        \"max\": 1.78541630298,\n        \"mean\": 1.7542504703800001,\n        \"median\": 1.7516690649800002,\n        \"message\": \"Add Archlinux installation instructions\\n\",\n        \"min\": 1.73482217198,\n        \"stddev\": 0.021237342140144735,\n        \"system\": 0.06564145,\n        \"time\": 1.73482217198,\n        \"user\": 1.74720257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n        \"max\": 1.78541630298,\n        \"mean\": 1.7542504703800001,\n        \"median\": 1.7516690649800002,\n        \"message\": \"Add Archlinux installation instructions\\n\",\n        \"min\": 1.73482217198,\n        \"stddev\": 0.021237342140144735,\n        \"system\": 0.06564145,\n        \"time\": 1.7354114469800002,\n        \"user\": 1.74720257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1f83397bf6028c3e4f927adb8b3bc06408f28d7b < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582757408-1f83397bf6028c3e4f927adb8b3bc06408f28d7b\",\n        \"max\": 1.78541630298,\n        \"mean\": 1.7542504703800001,\n        \"median\": 1.7516690649800002,\n        \"message\": \"Add Archlinux installation instructions\\n\",\n        \"min\": 1.73482217198,\n        \"stddev\": 0.021237342140144735,\n        \"system\": 0.06564145,\n        \"time\": 1.7516690649800002,\n        \"user\": 1.74720257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n        \"max\": 1.8105418114549998,\n        \"mean\": 1.761891984655,\n        \"median\": 1.756427933455,\n        \"message\": \"Add Gitter badge\\n\",\n        \"min\": 1.731991894455,\n        \"stddev\": 0.03281350915294803,\n        \"system\": 0.067055665,\n        \"time\": 1.8105418114549998,\n        \"user\": 1.7526797250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n        \"max\": 1.8105418114549998,\n        \"mean\": 1.761891984655,\n        \"median\": 1.756427933455,\n        \"message\": \"Add Gitter badge\\n\",\n        \"min\": 1.731991894455,\n        \"stddev\": 0.03281350915294803,\n        \"system\": 0.067055665,\n        \"time\": 1.776789498455,\n        \"user\": 1.7526797250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n        \"max\": 1.8105418114549998,\n        \"mean\": 1.761891984655,\n        \"median\": 1.756427933455,\n        \"message\": \"Add Gitter badge\\n\",\n        \"min\": 1.731991894455,\n        \"stddev\": 0.03281350915294803,\n        \"system\": 0.067055665,\n        \"time\": 1.731991894455,\n        \"user\": 1.7526797250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n        \"max\": 1.8105418114549998,\n        \"mean\": 1.761891984655,\n        \"median\": 1.756427933455,\n        \"message\": \"Add Gitter badge\\n\",\n        \"min\": 1.731991894455,\n        \"stddev\": 0.03281350915294803,\n        \"system\": 0.067055665,\n        \"time\": 1.733708785455,\n        \"user\": 1.7526797250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73edbf7bc0d9dc27d24b86d379c920c967a102e5 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582784042-73edbf7bc0d9dc27d24b86d379c920c967a102e5\",\n        \"max\": 1.8105418114549998,\n        \"mean\": 1.761891984655,\n        \"median\": 1.756427933455,\n        \"message\": \"Add Gitter badge\\n\",\n        \"min\": 1.731991894455,\n        \"stddev\": 0.03281350915294803,\n        \"system\": 0.067055665,\n        \"time\": 1.756427933455,\n        \"user\": 1.7526797250000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n        \"max\": 1.781338758385,\n        \"mean\": 1.7585527807850003,\n        \"median\": 1.761574628385,\n        \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n        \"min\": 1.7358546603850002,\n        \"stddev\": 0.020248035373183575,\n        \"system\": 0.05670252,\n        \"time\": 1.7397996783850003,\n        \"user\": 1.7555504999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n        \"max\": 1.781338758385,\n        \"mean\": 1.7585527807850003,\n        \"median\": 1.761574628385,\n        \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n        \"min\": 1.7358546603850002,\n        \"stddev\": 0.020248035373183575,\n        \"system\": 0.05670252,\n        \"time\": 1.761574628385,\n        \"user\": 1.7555504999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n        \"max\": 1.781338758385,\n        \"mean\": 1.7585527807850003,\n        \"median\": 1.761574628385,\n        \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n        \"min\": 1.7358546603850002,\n        \"stddev\": 0.020248035373183575,\n        \"system\": 0.05670252,\n        \"time\": 1.774196178385,\n        \"user\": 1.7555504999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n        \"max\": 1.781338758385,\n        \"mean\": 1.7585527807850003,\n        \"median\": 1.761574628385,\n        \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n        \"min\": 1.7358546603850002,\n        \"stddev\": 0.020248035373183575,\n        \"system\": 0.05670252,\n        \"time\": 1.781338758385,\n        \"user\": 1.7555504999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/27e5673a40edbb7fe9d5429d60c052e5c91fba04 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-27e5673a40edbb7fe9d5429d60c052e5c91fba04\",\n        \"max\": 1.781338758385,\n        \"mean\": 1.7585527807850003,\n        \"median\": 1.761574628385,\n        \"message\": \"Provide CLI options for all colors\\n\\n- Fixes #99, #103\\n- Support both RGB and ANSI codes\\n- Eliminate (almost) ansi_term crate in favor of syntect for representing colors\\n\",\n        \"min\": 1.7358546603850002,\n        \"stddev\": 0.020248035373183575,\n        \"system\": 0.05670252,\n        \"time\": 1.7358546603850002,\n        \"user\": 1.7555504999999996\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n        \"max\": 1.78592160629,\n        \"mean\": 1.7483632726900002,\n        \"median\": 1.7382024182900002,\n        \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n        \"min\": 1.7326807292900002,\n        \"stddev\": 0.022369706507801967,\n        \"system\": 0.053887725,\n        \"time\": 1.78592160629,\n        \"user\": 1.7480655549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n        \"max\": 1.78592160629,\n        \"mean\": 1.7483632726900002,\n        \"median\": 1.7382024182900002,\n        \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n        \"min\": 1.7326807292900002,\n        \"stddev\": 0.022369706507801967,\n        \"system\": 0.053887725,\n        \"time\": 1.7518112242900001,\n        \"user\": 1.7480655549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n        \"max\": 1.78592160629,\n        \"mean\": 1.7483632726900002,\n        \"median\": 1.7382024182900002,\n        \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n        \"min\": 1.7326807292900002,\n        \"stddev\": 0.022369706507801967,\n        \"system\": 0.053887725,\n        \"time\": 1.73320038529,\n        \"user\": 1.7480655549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n        \"max\": 1.78592160629,\n        \"mean\": 1.7483632726900002,\n        \"median\": 1.7382024182900002,\n        \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n        \"min\": 1.7326807292900002,\n        \"stddev\": 0.022369706507801967,\n        \"system\": 0.053887725,\n        \"time\": 1.7382024182900002,\n        \"user\": 1.7480655549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3a73fff4341734b58922b1f6d7747ae98a4b28c4 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582822283-3a73fff4341734b58922b1f6d7747ae98a4b28c4\",\n        \"max\": 1.78592160629,\n        \"mean\": 1.7483632726900002,\n        \"median\": 1.7382024182900002,\n        \"message\": \"Exit when an invalid color is supplied as a command line option\\n\",\n        \"min\": 1.7326807292900002,\n        \"stddev\": 0.022369706507801967,\n        \"system\": 0.053887725,\n        \"time\": 1.7326807292900002,\n        \"user\": 1.7480655549999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n        \"max\": 1.88366411861,\n        \"mean\": 1.8051976622099999,\n        \"median\": 1.7908447006100001,\n        \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.77231446761,\n        \"stddev\": 0.04580286019441076,\n        \"system\": 0.07409187999999998,\n        \"time\": 1.80474241661,\n        \"user\": 1.7913832150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n        \"max\": 1.88366411861,\n        \"mean\": 1.8051976622099999,\n        \"median\": 1.7908447006100001,\n        \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.77231446761,\n        \"stddev\": 0.04580286019441076,\n        \"system\": 0.07409187999999998,\n        \"time\": 1.88366411861,\n        \"user\": 1.7913832150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n        \"max\": 1.88366411861,\n        \"mean\": 1.8051976622099999,\n        \"median\": 1.7908447006100001,\n        \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.77231446761,\n        \"stddev\": 0.04580286019441076,\n        \"system\": 0.07409187999999998,\n        \"time\": 1.77442260761,\n        \"user\": 1.7913832150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n        \"max\": 1.88366411861,\n        \"mean\": 1.8051976622099999,\n        \"median\": 1.7908447006100001,\n        \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.77231446761,\n        \"stddev\": 0.04580286019441076,\n        \"system\": 0.07409187999999998,\n        \"time\": 1.77231446761,\n        \"user\": 1.7913832150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/bb7f0b33cc5091a6690e1c72564d4f960af47b73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582828965-bb7f0b33cc5091a6690e1c72564d4f960af47b73\",\n        \"max\": 1.88366411861,\n        \"mean\": 1.8051976622099999,\n        \"median\": 1.7908447006100001,\n        \"message\": \"Merge branch 'fix-diff-in-diff' of https://github.com/Ma27/delta into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.77231446761,\n        \"stddev\": 0.04580286019441076,\n        \"system\": 0.07409187999999998,\n        \"time\": 1.7908447006100001,\n        \"user\": 1.7913832150000002\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n        \"max\": 1.7693582972900002,\n        \"mean\": 1.7393603072900004,\n        \"median\": 1.7315381042900002,\n        \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n        \"min\": 1.7230221242900001,\n        \"stddev\": 0.019709785338008462,\n        \"system\": 0.054321049999999996,\n        \"time\": 1.7693582972900002,\n        \"user\": 1.738519325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n        \"max\": 1.7693582972900002,\n        \"mean\": 1.7393603072900004,\n        \"median\": 1.7315381042900002,\n        \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n        \"min\": 1.7230221242900001,\n        \"stddev\": 0.019709785338008462,\n        \"system\": 0.054321049999999996,\n        \"time\": 1.7240144932900001,\n        \"user\": 1.738519325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n        \"max\": 1.7693582972900002,\n        \"mean\": 1.7393603072900004,\n        \"median\": 1.7315381042900002,\n        \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n        \"min\": 1.7230221242900001,\n        \"stddev\": 0.019709785338008462,\n        \"system\": 0.054321049999999996,\n        \"time\": 1.7315381042900002,\n        \"user\": 1.738519325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n        \"max\": 1.7693582972900002,\n        \"mean\": 1.7393603072900004,\n        \"median\": 1.7315381042900002,\n        \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n        \"min\": 1.7230221242900001,\n        \"stddev\": 0.019709785338008462,\n        \"system\": 0.054321049999999996,\n        \"time\": 1.74886851729,\n        \"user\": 1.738519325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582835219-cc8ffaa9b4fd1fc91ccfd73b4da258ed4a433ec8\",\n        \"max\": 1.7693582972900002,\n        \"mean\": 1.7393603072900004,\n        \"median\": 1.7315381042900002,\n        \"message\": \"Merge pull request #107 from dandavison/99-103-color-options\\n\\nProvide CLI options for all colors\",\n        \"min\": 1.7230221242900001,\n        \"stddev\": 0.019709785338008462,\n        \"system\": 0.054321049999999996,\n        \"time\": 1.7230221242900001,\n        \"user\": 1.738519325\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n        \"max\": 1.765705451565,\n        \"mean\": 1.7468450071650001,\n        \"median\": 1.7394878845650001,\n        \"message\": \"Build release version in Makefile\\n\",\n        \"min\": 1.7266577945650001,\n        \"stddev\": 0.01690419338411752,\n        \"system\": 0.05379511,\n        \"time\": 1.763185595565,\n        \"user\": 1.7467932050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n        \"max\": 1.765705451565,\n        \"mean\": 1.7468450071650001,\n        \"median\": 1.7394878845650001,\n        \"message\": \"Build release version in Makefile\\n\",\n        \"min\": 1.7266577945650001,\n        \"stddev\": 0.01690419338411752,\n        \"system\": 0.05379511,\n        \"time\": 1.765705451565,\n        \"user\": 1.7467932050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n        \"max\": 1.765705451565,\n        \"mean\": 1.7468450071650001,\n        \"median\": 1.7394878845650001,\n        \"message\": \"Build release version in Makefile\\n\",\n        \"min\": 1.7266577945650001,\n        \"stddev\": 0.01690419338411752,\n        \"system\": 0.05379511,\n        \"time\": 1.7266577945650001,\n        \"user\": 1.7467932050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n        \"max\": 1.765705451565,\n        \"mean\": 1.7468450071650001,\n        \"median\": 1.7394878845650001,\n        \"message\": \"Build release version in Makefile\\n\",\n        \"min\": 1.7266577945650001,\n        \"stddev\": 0.01690419338411752,\n        \"system\": 0.05379511,\n        \"time\": 1.739188309565,\n        \"user\": 1.7467932050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/657bdf030790155803c6498c93a1a2f2efdf35cd < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913094-657bdf030790155803c6498c93a1a2f2efdf35cd\",\n        \"max\": 1.765705451565,\n        \"mean\": 1.7468450071650001,\n        \"median\": 1.7394878845650001,\n        \"message\": \"Build release version in Makefile\\n\",\n        \"min\": 1.7266577945650001,\n        \"stddev\": 0.01690419338411752,\n        \"system\": 0.05379511,\n        \"time\": 1.7394878845650001,\n        \"user\": 1.7467932050000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n        \"max\": 1.830103265705,\n        \"mean\": 1.7974901237049998,\n        \"median\": 1.7990933757049998,\n        \"message\": \"Remove extra space characters\\n\",\n        \"min\": 1.7683434277049999,\n        \"stddev\": 0.024682147969833673,\n        \"system\": 0.07268667999999998,\n        \"time\": 1.810896815705,\n        \"user\": 1.7847512399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n        \"max\": 1.830103265705,\n        \"mean\": 1.7974901237049998,\n        \"median\": 1.7990933757049998,\n        \"message\": \"Remove extra space characters\\n\",\n        \"min\": 1.7683434277049999,\n        \"stddev\": 0.024682147969833673,\n        \"system\": 0.07268667999999998,\n        \"time\": 1.830103265705,\n        \"user\": 1.7847512399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n        \"max\": 1.830103265705,\n        \"mean\": 1.7974901237049998,\n        \"median\": 1.7990933757049998,\n        \"message\": \"Remove extra space characters\\n\",\n        \"min\": 1.7683434277049999,\n        \"stddev\": 0.024682147969833673,\n        \"system\": 0.07268667999999998,\n        \"time\": 1.7683434277049999,\n        \"user\": 1.7847512399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n        \"max\": 1.830103265705,\n        \"mean\": 1.7974901237049998,\n        \"median\": 1.7990933757049998,\n        \"message\": \"Remove extra space characters\\n\",\n        \"min\": 1.7683434277049999,\n        \"stddev\": 0.024682147969833673,\n        \"system\": 0.07268667999999998,\n        \"time\": 1.779013733705,\n        \"user\": 1.7847512399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/52074eea076a0758c2590352d12bb161533a34d6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582913525-52074eea076a0758c2590352d12bb161533a34d6\",\n        \"max\": 1.830103265705,\n        \"mean\": 1.7974901237049998,\n        \"median\": 1.7990933757049998,\n        \"message\": \"Remove extra space characters\\n\",\n        \"min\": 1.7683434277049999,\n        \"stddev\": 0.024682147969833673,\n        \"system\": 0.07268667999999998,\n        \"time\": 1.7990933757049998,\n        \"user\": 1.7847512399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n        \"max\": 1.8903376101300002,\n        \"mean\": 1.80079330613,\n        \"median\": 1.77637100213,\n        \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n        \"min\": 1.7697518711300002,\n        \"stddev\": 0.0507921957524227,\n        \"system\": 0.072303735,\n        \"time\": 1.8903376101300002,\n        \"user\": 1.7879836550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n        \"max\": 1.8903376101300002,\n        \"mean\": 1.80079330613,\n        \"median\": 1.77637100213,\n        \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n        \"min\": 1.7697518711300002,\n        \"stddev\": 0.0507921957524227,\n        \"system\": 0.072303735,\n        \"time\": 1.77637100213,\n        \"user\": 1.7879836550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n        \"max\": 1.8903376101300002,\n        \"mean\": 1.80079330613,\n        \"median\": 1.77637100213,\n        \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n        \"min\": 1.7697518711300002,\n        \"stddev\": 0.0507921957524227,\n        \"system\": 0.072303735,\n        \"time\": 1.7697518711300002,\n        \"user\": 1.7879836550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n        \"max\": 1.8903376101300002,\n        \"mean\": 1.80079330613,\n        \"median\": 1.77637100213,\n        \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n        \"min\": 1.7697518711300002,\n        \"stddev\": 0.0507921957524227,\n        \"system\": 0.072303735,\n        \"time\": 1.79270970113,\n        \"user\": 1.7879836550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/24a6a4916b3914b3467587731b62f1335813f6e7 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582914401-24a6a4916b3914b3467587731b62f1335813f6e7\",\n        \"max\": 1.8903376101300002,\n        \"mean\": 1.80079330613,\n        \"median\": 1.77637100213,\n        \"message\": \"Revert fix\\n\\nA similar fix was added at f6d4d333d5c06f66643622206f384a3410c14c61\\n\",\n        \"min\": 1.7697518711300002,\n        \"stddev\": 0.0507921957524227,\n        \"system\": 0.072303735,\n        \"time\": 1.77479634613,\n        \"user\": 1.7879836550000001\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n        \"max\": 1.8264574080299998,\n        \"mean\": 1.7871120938299998,\n        \"median\": 1.77992174103,\n        \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.7670551830299999,\n        \"stddev\": 0.02335444267185184,\n        \"system\": 0.059764384999999996,\n        \"time\": 1.78836046403,\n        \"user\": 1.7808466649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n        \"max\": 1.8264574080299998,\n        \"mean\": 1.7871120938299998,\n        \"median\": 1.77992174103,\n        \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.7670551830299999,\n        \"stddev\": 0.02335444267185184,\n        \"system\": 0.059764384999999996,\n        \"time\": 1.8264574080299998,\n        \"user\": 1.7808466649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n        \"max\": 1.8264574080299998,\n        \"mean\": 1.7871120938299998,\n        \"median\": 1.77992174103,\n        \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.7670551830299999,\n        \"stddev\": 0.02335444267185184,\n        \"system\": 0.059764384999999996,\n        \"time\": 1.7670551830299999,\n        \"user\": 1.7808466649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n        \"max\": 1.8264574080299998,\n        \"mean\": 1.7871120938299998,\n        \"median\": 1.77992174103,\n        \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.7670551830299999,\n        \"stddev\": 0.02335444267185184,\n        \"system\": 0.059764384999999996,\n        \"time\": 1.77992174103,\n        \"user\": 1.7808466649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9cbbca93632db7bb571809811e1586f01a74cc44 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1582916596-9cbbca93632db7bb571809811e1586f01a74cc44\",\n        \"max\": 1.8264574080299998,\n        \"mean\": 1.7871120938299998,\n        \"median\": 1.77992174103,\n        \"message\": \"Merge branch 'master' into Ma27-fix-diff-in-diff\\n\",\n        \"min\": 1.7670551830299999,\n        \"stddev\": 0.02335444267185184,\n        \"system\": 0.059764384999999996,\n        \"time\": 1.77376567303,\n        \"user\": 1.7808466649999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n        \"max\": 1.75845217594,\n        \"mean\": 1.7413905167400003,\n        \"median\": 1.7374429079400002,\n        \"message\": \"add paging mode option\\n\",\n        \"min\": 1.7315199519400002,\n        \"stddev\": 0.010349256164918346,\n        \"system\": 0.055303635,\n        \"time\": 1.7366819929400001,\n        \"user\": 1.74028961\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n        \"max\": 1.75845217594,\n        \"mean\": 1.7413905167400003,\n        \"median\": 1.7374429079400002,\n        \"message\": \"add paging mode option\\n\",\n        \"min\": 1.7315199519400002,\n        \"stddev\": 0.010349256164918346,\n        \"system\": 0.055303635,\n        \"time\": 1.75845217594,\n        \"user\": 1.74028961\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n        \"max\": 1.75845217594,\n        \"mean\": 1.7413905167400003,\n        \"median\": 1.7374429079400002,\n        \"message\": \"add paging mode option\\n\",\n        \"min\": 1.7315199519400002,\n        \"stddev\": 0.010349256164918346,\n        \"system\": 0.055303635,\n        \"time\": 1.7374429079400002,\n        \"user\": 1.74028961\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n        \"max\": 1.75845217594,\n        \"mean\": 1.7413905167400003,\n        \"median\": 1.7374429079400002,\n        \"message\": \"add paging mode option\\n\",\n        \"min\": 1.7315199519400002,\n        \"stddev\": 0.010349256164918346,\n        \"system\": 0.055303635,\n        \"time\": 1.7428555549400002,\n        \"user\": 1.74028961\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/c5ab4503f733211d4fc37489c3043e170c14330d < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583062688-c5ab4503f733211d4fc37489c3043e170c14330d\",\n        \"max\": 1.75845217594,\n        \"mean\": 1.7413905167400003,\n        \"median\": 1.7374429079400002,\n        \"message\": \"add paging mode option\\n\",\n        \"min\": 1.7315199519400002,\n        \"stddev\": 0.010349256164918346,\n        \"system\": 0.055303635,\n        \"time\": 1.7315199519400002,\n        \"user\": 1.74028961\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n        \"max\": 1.8376985693799999,\n        \"mean\": 1.80868724238,\n        \"median\": 1.8230524713799998,\n        \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n        \"min\": 1.75458930638,\n        \"stddev\": 0.03517112659295339,\n        \"system\": 0.06136492,\n        \"time\": 1.8230524713799998,\n        \"user\": 1.7983985099999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n        \"max\": 1.8376985693799999,\n        \"mean\": 1.80868724238,\n        \"median\": 1.8230524713799998,\n        \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n        \"min\": 1.75458930638,\n        \"stddev\": 0.03517112659295339,\n        \"system\": 0.06136492,\n        \"time\": 1.75458930638,\n        \"user\": 1.7983985099999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n        \"max\": 1.8376985693799999,\n        \"mean\": 1.80868724238,\n        \"median\": 1.8230524713799998,\n        \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n        \"min\": 1.75458930638,\n        \"stddev\": 0.03517112659295339,\n        \"system\": 0.06136492,\n        \"time\": 1.83544834138,\n        \"user\": 1.7983985099999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n        \"max\": 1.8376985693799999,\n        \"mean\": 1.80868724238,\n        \"median\": 1.8230524713799998,\n        \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n        \"min\": 1.75458930638,\n        \"stddev\": 0.03517112659295339,\n        \"system\": 0.06136492,\n        \"time\": 1.79264752338,\n        \"user\": 1.7983985099999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/2f8e2218eef320edee289742ee5705e0b58b2a73 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083390-2f8e2218eef320edee289742ee5705e0b58b2a73\",\n        \"max\": 1.8376985693799999,\n        \"mean\": 1.80868724238,\n        \"median\": 1.8230524713799998,\n        \"message\": \"Make CLI --paging option have the same interface as bat's\\n\",\n        \"min\": 1.75458930638,\n        \"stddev\": 0.03517112659295339,\n        \"system\": 0.06136492,\n        \"time\": 1.8376985693799999,\n        \"user\": 1.7983985099999997\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n        \"max\": 2.042758140655,\n        \"mean\": 1.8529119274549999,\n        \"median\": 1.761144485655,\n        \"message\": \"Demand valid command line value\\n\",\n        \"min\": 1.719908376655,\n        \"stddev\": 0.14995691335349326,\n        \"system\": 0.064689725,\n        \"time\": 1.761144485655,\n        \"user\": 1.8259569949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n        \"max\": 2.042758140655,\n        \"mean\": 1.8529119274549999,\n        \"median\": 1.761144485655,\n        \"message\": \"Demand valid command line value\\n\",\n        \"min\": 1.719908376655,\n        \"stddev\": 0.14995691335349326,\n        \"system\": 0.064689725,\n        \"time\": 1.719908376655,\n        \"user\": 1.8259569949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n        \"max\": 2.042758140655,\n        \"mean\": 1.8529119274549999,\n        \"median\": 1.761144485655,\n        \"message\": \"Demand valid command line value\\n\",\n        \"min\": 1.719908376655,\n        \"stddev\": 0.14995691335349326,\n        \"system\": 0.064689725,\n        \"time\": 1.986962568655,\n        \"user\": 1.8259569949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n        \"max\": 2.042758140655,\n        \"mean\": 1.8529119274549999,\n        \"median\": 1.761144485655,\n        \"message\": \"Demand valid command line value\\n\",\n        \"min\": 1.719908376655,\n        \"stddev\": 0.14995691335349326,\n        \"system\": 0.064689725,\n        \"time\": 1.753786065655,\n        \"user\": 1.8259569949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/e12478971bdce737e60b3b9d5dc86fe5f7d96e4a < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583083914-e12478971bdce737e60b3b9d5dc86fe5f7d96e4a\",\n        \"max\": 2.042758140655,\n        \"mean\": 1.8529119274549999,\n        \"median\": 1.761144485655,\n        \"message\": \"Demand valid command line value\\n\",\n        \"min\": 1.719908376655,\n        \"stddev\": 0.14995691335349326,\n        \"system\": 0.064689725,\n        \"time\": 2.042758140655,\n        \"user\": 1.8259569949999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n        \"max\": 1.78045797481,\n        \"mean\": 1.74773789401,\n        \"median\": 1.74113776181,\n        \"message\": \"Edit help text\\n\",\n        \"min\": 1.72281283581,\n        \"stddev\": 0.02651668314998145,\n        \"system\": 0.0553663,\n        \"time\": 1.78045797481,\n        \"user\": 1.74657257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n        \"max\": 1.78045797481,\n        \"mean\": 1.74773789401,\n        \"median\": 1.74113776181,\n        \"message\": \"Edit help text\\n\",\n        \"min\": 1.72281283581,\n        \"stddev\": 0.02651668314998145,\n        \"system\": 0.0553663,\n        \"time\": 1.77033958781,\n        \"user\": 1.74657257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n        \"max\": 1.78045797481,\n        \"mean\": 1.74773789401,\n        \"median\": 1.74113776181,\n        \"message\": \"Edit help text\\n\",\n        \"min\": 1.72281283581,\n        \"stddev\": 0.02651668314998145,\n        \"system\": 0.0553663,\n        \"time\": 1.74113776181,\n        \"user\": 1.74657257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n        \"max\": 1.78045797481,\n        \"mean\": 1.74773789401,\n        \"median\": 1.74113776181,\n        \"message\": \"Edit help text\\n\",\n        \"min\": 1.72281283581,\n        \"stddev\": 0.02651668314998145,\n        \"system\": 0.0553663,\n        \"time\": 1.7239413098099998,\n        \"user\": 1.74657257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583084670-7b5a3a3d95dfc421cbe5d25ffd7259e692fcbcc6\",\n        \"max\": 1.78045797481,\n        \"mean\": 1.74773789401,\n        \"median\": 1.74113776181,\n        \"message\": \"Edit help text\\n\",\n        \"min\": 1.72281283581,\n        \"stddev\": 0.02651668314998145,\n        \"system\": 0.0553663,\n        \"time\": 1.72281283581,\n        \"user\": 1.74657257\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n        \"max\": 1.762202821665,\n        \"mean\": 1.7416039896650002,\n        \"median\": 1.7388914056650002,\n        \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n        \"min\": 1.7180258076650001,\n        \"stddev\": 0.01667367613971032,\n        \"system\": 0.05429662999999999,\n        \"time\": 1.7518067966650002,\n        \"user\": 1.740105195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n        \"max\": 1.762202821665,\n        \"mean\": 1.7416039896650002,\n        \"median\": 1.7388914056650002,\n        \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n        \"min\": 1.7180258076650001,\n        \"stddev\": 0.01667367613971032,\n        \"system\": 0.05429662999999999,\n        \"time\": 1.762202821665,\n        \"user\": 1.740105195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n        \"max\": 1.762202821665,\n        \"mean\": 1.7416039896650002,\n        \"median\": 1.7388914056650002,\n        \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n        \"min\": 1.7180258076650001,\n        \"stddev\": 0.01667367613971032,\n        \"system\": 0.05429662999999999,\n        \"time\": 1.7180258076650001,\n        \"user\": 1.740105195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n        \"max\": 1.762202821665,\n        \"mean\": 1.7416039896650002,\n        \"median\": 1.7388914056650002,\n        \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n        \"min\": 1.7180258076650001,\n        \"stddev\": 0.01667367613971032,\n        \"system\": 0.05429662999999999,\n        \"time\": 1.737093116665,\n        \"user\": 1.740105195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/655af49cb978d3b0d2fd0358c111f7434e9e60ab < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583086127-655af49cb978d3b0d2fd0358c111f7434e9e60ab\",\n        \"max\": 1.762202821665,\n        \"mean\": 1.7416039896650002,\n        \"median\": 1.7388914056650002,\n        \"message\": \"Merge pull request #109 from jesseduffield/master\\n\\nadd paging mode option\",\n        \"min\": 1.7180258076650001,\n        \"stddev\": 0.01667367613971032,\n        \"system\": 0.05429662999999999,\n        \"time\": 1.7388914056650002,\n        \"user\": 1.740105195\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n        \"max\": 2.1697659624849996,\n        \"mean\": 1.9452508282849998,\n        \"median\": 1.9053711374850002,\n        \"message\": \"Change function name\\n\",\n        \"min\": 1.7763392684850001,\n        \"stddev\": 0.16734989462514932,\n        \"system\": 0.0696879,\n        \"time\": 1.8121455664850001,\n        \"user\": 1.937568515\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n        \"max\": 2.1697659624849996,\n        \"mean\": 1.9452508282849998,\n        \"median\": 1.9053711374850002,\n        \"message\": \"Change function name\\n\",\n        \"min\": 1.7763392684850001,\n        \"stddev\": 0.16734989462514932,\n        \"system\": 0.0696879,\n        \"time\": 2.1697659624849996,\n        \"user\": 1.937568515\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n        \"max\": 2.1697659624849996,\n        \"mean\": 1.9452508282849998,\n        \"median\": 1.9053711374850002,\n        \"message\": \"Change function name\\n\",\n        \"min\": 1.7763392684850001,\n        \"stddev\": 0.16734989462514932,\n        \"system\": 0.0696879,\n        \"time\": 2.062632206485,\n        \"user\": 1.937568515\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n        \"max\": 2.1697659624849996,\n        \"mean\": 1.9452508282849998,\n        \"median\": 1.9053711374850002,\n        \"message\": \"Change function name\\n\",\n        \"min\": 1.7763392684850001,\n        \"stddev\": 0.16734989462514932,\n        \"system\": 0.0696879,\n        \"time\": 1.7763392684850001,\n        \"user\": 1.937568515\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/742855ecd9534479e1283ae79632274c0dd564cb < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583090583-742855ecd9534479e1283ae79632274c0dd564cb\",\n        \"max\": 2.1697659624849996,\n        \"mean\": 1.9452508282849998,\n        \"median\": 1.9053711374850002,\n        \"message\": \"Change function name\\n\",\n        \"min\": 1.7763392684850001,\n        \"stddev\": 0.16734989462514932,\n        \"system\": 0.0696879,\n        \"time\": 1.9053711374850002,\n        \"user\": 1.937568515\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n        \"max\": 1.901437887425,\n        \"mean\": 1.8375553192249998,\n        \"median\": 1.843542233425,\n        \"message\": \"Use lowercase characters in color hex codes\\n\",\n        \"min\": 1.795058579425,\n        \"stddev\": 0.04445840270717323,\n        \"system\": 0.06180339,\n        \"time\": 1.7955072994249999,\n        \"user\": 1.82918613\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n        \"max\": 1.901437887425,\n        \"mean\": 1.8375553192249998,\n        \"median\": 1.843542233425,\n        \"message\": \"Use lowercase characters in color hex codes\\n\",\n        \"min\": 1.795058579425,\n        \"stddev\": 0.04445840270717323,\n        \"system\": 0.06180339,\n        \"time\": 1.901437887425,\n        \"user\": 1.82918613\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n        \"max\": 1.901437887425,\n        \"mean\": 1.8375553192249998,\n        \"median\": 1.843542233425,\n        \"message\": \"Use lowercase characters in color hex codes\\n\",\n        \"min\": 1.795058579425,\n        \"stddev\": 0.04445840270717323,\n        \"system\": 0.06180339,\n        \"time\": 1.843542233425,\n        \"user\": 1.82918613\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n        \"max\": 1.901437887425,\n        \"mean\": 1.8375553192249998,\n        \"median\": 1.843542233425,\n        \"message\": \"Use lowercase characters in color hex codes\\n\",\n        \"min\": 1.795058579425,\n        \"stddev\": 0.04445840270717323,\n        \"system\": 0.06180339,\n        \"time\": 1.8522305964249999,\n        \"user\": 1.82918613\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/eeee3d4732479295248b49164f8db58d3244b1ff < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583099487-eeee3d4732479295248b49164f8db58d3244b1ff\",\n        \"max\": 1.901437887425,\n        \"mean\": 1.8375553192249998,\n        \"median\": 1.843542233425,\n        \"message\": \"Use lowercase characters in color hex codes\\n\",\n        \"min\": 1.795058579425,\n        \"stddev\": 0.04445840270717323,\n        \"system\": 0.06180339,\n        \"time\": 1.795058579425,\n        \"user\": 1.82918613\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n        \"max\": 1.8471992786350002,\n        \"mean\": 1.765532444835,\n        \"median\": 1.747796594635,\n        \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n        \"min\": 1.731898041635,\n        \"stddev\": 0.046612503646523834,\n        \"system\": 0.05763302499999999,\n        \"time\": 1.731898041635,\n        \"user\": 1.76114125\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n        \"max\": 1.8471992786350002,\n        \"mean\": 1.765532444835,\n        \"median\": 1.747796594635,\n        \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n        \"min\": 1.731898041635,\n        \"stddev\": 0.046612503646523834,\n        \"system\": 0.05763302499999999,\n        \"time\": 1.742746897635,\n        \"user\": 1.76114125\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n        \"max\": 1.8471992786350002,\n        \"mean\": 1.765532444835,\n        \"median\": 1.747796594635,\n        \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n        \"min\": 1.731898041635,\n        \"stddev\": 0.046612503646523834,\n        \"system\": 0.05763302499999999,\n        \"time\": 1.8471992786350002,\n        \"user\": 1.76114125\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n        \"max\": 1.8471992786350002,\n        \"mean\": 1.765532444835,\n        \"median\": 1.747796594635,\n        \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n        \"min\": 1.731898041635,\n        \"stddev\": 0.046612503646523834,\n        \"system\": 0.05763302499999999,\n        \"time\": 1.7580214116350001,\n        \"user\": 1.76114125\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583101510-37cc69ea434303ec8ebf4f248d4bd7f1febfe3e2\",\n        \"max\": 1.8471992786350002,\n        \"mean\": 1.765532444835,\n        \"median\": 1.747796594635,\n        \"message\": \"Support 256-color terminal environments\\n\\nFixes #110\\n\\nWith this commit, delta enters \\\"24 bit color mode\\\" iff either of the\\nfollowing are true:\\n\\n1. The --24-bit-color command line option value is \\\"always\\\"\\n\\n2. The --24-bit-color command line option value is \\\"auto\\\" and the\\n   COLORTERM environment variable is set to \\\"truecolor\\\" or \\\"24bit\\\".\\n   See\\n   https://gist.github.com/XVilka/8346728#true-color-detection\\n   https://github.com/sharkdp/bat/blob/7779d9f6221b3e98c43a43ceb5596ba285fdf4f8/src/bin/bat/app.rs#L29-L33\\n\\nOtherwise, delta enters \\\"8-bit color mode\\\".\\n\\nIn \\\"24 bit color mode\\\", delta will\\n\\n1. Emit 24-bit RGB color shell escape sequences that will only be\\n   displayed correctly by a terminal application that supports 24 bit\\n   colors.\\n\\n2. Select default background colors that will only be displayed\\n   correctly by a terminal application that supports 24 bit colors.\\n\\nIn \\\"8-bit color mode\\\", delta will\\n\\n1. Emit color shell escape sequences specifying the entry in the ANSI\\n   256 color palette that is closest (according to the ansi_colours\\n   library) to the requested color.\\n\\n2. Select default background colors that will work well in a terminal\\n   application that supports 8-bit color but not 24-bit color.\\n\",\n        \"min\": 1.731898041635,\n        \"stddev\": 0.046612503646523834,\n        \"system\": 0.05763302499999999,\n        \"time\": 1.747796594635,\n        \"user\": 1.76114125\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n        \"max\": 1.868441498195,\n        \"mean\": 1.759433710795,\n        \"median\": 1.7407650641949999,\n        \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n        \"min\": 1.703264207195,\n        \"stddev\": 0.06400967260182078,\n        \"system\": 0.054517815000000004,\n        \"time\": 1.868441498195,\n        \"user\": 1.7565349449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n        \"max\": 1.868441498195,\n        \"mean\": 1.759433710795,\n        \"median\": 1.7407650641949999,\n        \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n        \"min\": 1.703264207195,\n        \"stddev\": 0.06400967260182078,\n        \"system\": 0.054517815000000004,\n        \"time\": 1.756821996195,\n        \"user\": 1.7565349449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n        \"max\": 1.868441498195,\n        \"mean\": 1.759433710795,\n        \"median\": 1.7407650641949999,\n        \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n        \"min\": 1.703264207195,\n        \"stddev\": 0.06400967260182078,\n        \"system\": 0.054517815000000004,\n        \"time\": 1.7407650641949999,\n        \"user\": 1.7565349449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n        \"max\": 1.868441498195,\n        \"mean\": 1.759433710795,\n        \"median\": 1.7407650641949999,\n        \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n        \"min\": 1.703264207195,\n        \"stddev\": 0.06400967260182078,\n        \"system\": 0.054517815000000004,\n        \"time\": 1.727875788195,\n        \"user\": 1.7565349449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583103591-1b38dff00bd6790f8d29e9c744fc2d01bd5d78b1\",\n        \"max\": 1.868441498195,\n        \"mean\": 1.759433710795,\n        \"median\": 1.7407650641949999,\n        \"message\": \"Merge pull request #111 from dandavison/110-truecolor-to-256-colors\\n\\nSupport 256-color terminal environments\",\n        \"min\": 1.703264207195,\n        \"stddev\": 0.06400967260182078,\n        \"system\": 0.054517815000000004,\n        \"time\": 1.703264207195,\n        \"user\": 1.7565349449999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n        \"max\": 1.86750964848,\n        \"mean\": 1.7669502826800003,\n        \"median\": 1.7450286244800002,\n        \"message\": \"Change a function name\\n\",\n        \"min\": 1.73234127048,\n        \"stddev\": 0.05662628748045251,\n        \"system\": 0.05755335500000001,\n        \"time\": 1.73917599348,\n        \"user\": 1.75880148\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n        \"max\": 1.86750964848,\n        \"mean\": 1.7669502826800003,\n        \"median\": 1.7450286244800002,\n        \"message\": \"Change a function name\\n\",\n        \"min\": 1.73234127048,\n        \"stddev\": 0.05662628748045251,\n        \"system\": 0.05755335500000001,\n        \"time\": 1.73234127048,\n        \"user\": 1.75880148\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n        \"max\": 1.86750964848,\n        \"mean\": 1.7669502826800003,\n        \"median\": 1.7450286244800002,\n        \"message\": \"Change a function name\\n\",\n        \"min\": 1.73234127048,\n        \"stddev\": 0.05662628748045251,\n        \"system\": 0.05755335500000001,\n        \"time\": 1.75069587648,\n        \"user\": 1.75880148\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n        \"max\": 1.86750964848,\n        \"mean\": 1.7669502826800003,\n        \"median\": 1.7450286244800002,\n        \"message\": \"Change a function name\\n\",\n        \"min\": 1.73234127048,\n        \"stddev\": 0.05662628748045251,\n        \"system\": 0.05755335500000001,\n        \"time\": 1.7450286244800002,\n        \"user\": 1.75880148\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/9418424182bf768aad19847716e17fdebb4471b8 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583120148-9418424182bf768aad19847716e17fdebb4471b8\",\n        \"max\": 1.86750964848,\n        \"mean\": 1.7669502826800003,\n        \"median\": 1.7450286244800002,\n        \"message\": \"Change a function name\\n\",\n        \"min\": 1.73234127048,\n        \"stddev\": 0.05662628748045251,\n        \"system\": 0.05755335500000001,\n        \"time\": 1.86750964848,\n        \"user\": 1.75880148\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n        \"max\": 1.8462933050850001,\n        \"mean\": 1.7880239548850003,\n        \"median\": 1.776169625085,\n        \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n        \"min\": 1.7594057170850002,\n        \"stddev\": 0.03510996646771722,\n        \"system\": 0.061768449999999996,\n        \"time\": 1.776169625085,\n        \"user\": 1.7790935399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n        \"max\": 1.8462933050850001,\n        \"mean\": 1.7880239548850003,\n        \"median\": 1.776169625085,\n        \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n        \"min\": 1.7594057170850002,\n        \"stddev\": 0.03510996646771722,\n        \"system\": 0.061768449999999996,\n        \"time\": 1.7594057170850002,\n        \"user\": 1.7790935399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n        \"max\": 1.8462933050850001,\n        \"mean\": 1.7880239548850003,\n        \"median\": 1.776169625085,\n        \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n        \"min\": 1.7594057170850002,\n        \"stddev\": 0.03510996646771722,\n        \"system\": 0.061768449999999996,\n        \"time\": 1.764675124085,\n        \"user\": 1.7790935399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n        \"max\": 1.8462933050850001,\n        \"mean\": 1.7880239548850003,\n        \"median\": 1.776169625085,\n        \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n        \"min\": 1.7594057170850002,\n        \"stddev\": 0.03510996646771722,\n        \"system\": 0.061768449999999996,\n        \"time\": 1.793576003085,\n        \"user\": 1.7790935399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/73bdb6b56c340788154332801cdc65c5a03f2afa < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583163244-73bdb6b56c340788154332801cdc65c5a03f2afa\",\n        \"max\": 1.8462933050850001,\n        \"mean\": 1.7880239548850003,\n        \"median\": 1.776169625085,\n        \"message\": \"Merge pull request #77 from Ma27/fix-diff-in-diff\\n\\nFix panic when showing a diff which contains a diff\",\n        \"min\": 1.7594057170850002,\n        \"stddev\": 0.03510996646771722,\n        \"system\": 0.061768449999999996,\n        \"time\": 1.8462933050850001,\n        \"user\": 1.7790935399999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n        \"max\": 1.81875688121,\n        \"mean\": 1.78326044381,\n        \"median\": 1.78003317921,\n        \"message\": \"Update chrononologer visualization\\n\",\n        \"min\": 1.7495763572099998,\n        \"stddev\": 0.032097192539472595,\n        \"system\": 0.059447695,\n        \"time\": 1.81875688121,\n        \"user\": 1.7778600199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n        \"max\": 1.81875688121,\n        \"mean\": 1.78326044381,\n        \"median\": 1.78003317921,\n        \"message\": \"Update chrononologer visualization\\n\",\n        \"min\": 1.7495763572099998,\n        \"stddev\": 0.032097192539472595,\n        \"system\": 0.059447695,\n        \"time\": 1.81325004621,\n        \"user\": 1.7778600199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n        \"max\": 1.81875688121,\n        \"mean\": 1.78326044381,\n        \"median\": 1.78003317921,\n        \"message\": \"Update chrononologer visualization\\n\",\n        \"min\": 1.7495763572099998,\n        \"stddev\": 0.032097192539472595,\n        \"system\": 0.059447695,\n        \"time\": 1.7495763572099998,\n        \"user\": 1.7778600199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n        \"max\": 1.81875688121,\n        \"mean\": 1.78326044381,\n        \"median\": 1.78003317921,\n        \"message\": \"Update chrononologer visualization\\n\",\n        \"min\": 1.7495763572099998,\n        \"stddev\": 0.032097192539472595,\n        \"system\": 0.059447695,\n        \"time\": 1.78003317921,\n        \"user\": 1.7778600199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/299ce3b54c83d8eb27769a189ef1084e5d8d3700 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583167619-299ce3b54c83d8eb27769a189ef1084e5d8d3700\",\n        \"max\": 1.81875688121,\n        \"mean\": 1.78326044381,\n        \"median\": 1.78003317921,\n        \"message\": \"Update chrononologer visualization\\n\",\n        \"min\": 1.7495763572099998,\n        \"stddev\": 0.032097192539472595,\n        \"system\": 0.059447695,\n        \"time\": 1.75468575521,\n        \"user\": 1.7778600199999999\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n        \"max\": 1.9134250202050003,\n        \"mean\": 1.8351040842050002,\n        \"median\": 1.811679107205,\n        \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n        \"min\": 1.798018370205,\n        \"stddev\": 0.04898688668953369,\n        \"system\": 0.061963975000000004,\n        \"time\": 1.799911996205,\n        \"user\": 1.8240279649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n        \"max\": 1.9134250202050003,\n        \"mean\": 1.8351040842050002,\n        \"median\": 1.811679107205,\n        \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n        \"min\": 1.798018370205,\n        \"stddev\": 0.04898688668953369,\n        \"system\": 0.061963975000000004,\n        \"time\": 1.811679107205,\n        \"user\": 1.8240279649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n        \"max\": 1.9134250202050003,\n        \"mean\": 1.8351040842050002,\n        \"median\": 1.811679107205,\n        \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n        \"min\": 1.798018370205,\n        \"stddev\": 0.04898688668953369,\n        \"system\": 0.061963975000000004,\n        \"time\": 1.798018370205,\n        \"user\": 1.8240279649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n        \"max\": 1.9134250202050003,\n        \"mean\": 1.8351040842050002,\n        \"median\": 1.811679107205,\n        \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n        \"min\": 1.798018370205,\n        \"stddev\": 0.04898688668953369,\n        \"system\": 0.061963975000000004,\n        \"time\": 1.9134250202050003,\n        \"user\": 1.8240279649999998\n      },\n      {\n        \"command\": \"/tmp/chronologer/delta/executables/3cf5530857711771e86d851055dac6a933abfe38 < /tmp/chronologer/delta/input.gitdiff > /dev/null\",\n        \"commit\": \"1583211682-3cf5530857711771e86d851055dac6a933abfe38\",\n        \"max\": 1.9134250202050003,\n        \"mean\": 1.8351040842050002,\n        \"median\": 1.811679107205,\n        \"message\": \"Use ansi_term crate and bat's helpers for painting text\\n\",\n        \"min\": 1.798018370205,\n        \"stddev\": 0.04898688668953369,\n        \"system\": 0.061963975000000004,\n        \"time\": 1.8524859272050003,\n        \"user\": 1.8240279649999998\n      }\n    ]\n  },\n  \"mark\": {\n    \"type\": \"boxplot\",\n    \"extent\": \"min-max\",\n    \"size\": 5\n  },\n  \"width\": 1400,\n  \"height\": 500,\n  \"encoding\": {\n    \"y\": {\n      \"field\": \"time\",\n      \"type\": \"quantitative\",\n      \"axis\": {\n        \"title\": \"Time\"\n      },\n      \"scale\": {\n        \"domain\": [\n          0.0030597566417499998,\n          2.2783436707290003\n        ]\n      }\n    },\n    \"x\": {\n      \"field\": \"commit\",\n      \"type\": \"ordinal\",\n      \"axis\": {\n        \"title\": \"Commit\",\n        \"labels\": false,\n        \"ticks\": false\n      }\n    },\n    \"tooltip\": {\n      \"field\": \"message\",\n      \"type\": \"ordinal\",\n      \"aggregate\": \"min\"\n    }\n  },\n  \"selection\": {\n    \"selector047\": {\n      \"type\": \"interval\",\n      \"bind\": \"scales\"\n    }\n  }\n};\n      vegaEmbed(\"#vis\", boxplotSpec);\n    </script>\n  </body>\n</html>"
  },
  {
    "path": "etc/release.Makefile",
    "content": "# TODO:\n# - Check for a bat upgrade as it might bring new language support/themes\n# - Update README prior to release\n# - Update help text in README, with BAT_THEME unset\n\nrelease: \\\n\tclean \\\n\tcheck-environment \\\n\tbump-version \\\n\tcreate-github-release \\\n\tbump-version-in-documentation-links\n\n\nclean:\n\trm -fr .make-sentinels\n\n\ncheck-environment:\n\t[ -n  \"$$DELTA_OLD_VERSION\" ]\n\t[ -n  \"$$DELTA_NEW_VERSION\" ]\n\tmkdir -p .make-sentinels\n\t@echo \"Release: $$DELTA_OLD_VERSION => $$DELTA_NEW_VERSION\"\n\n\nBUMP_VERSION_SENTINEL=.make-sentinels/bump-version\nbump-version: $(BUMP_VERSION_SENTINEL)\n$(BUMP_VERSION_SENTINEL):\n\t@echo Bumping version in Cargo.toml\n\tsed -i -E \"s,^version = \\\"$$DELTA_OLD_VERSION\\\",version = \\\"$$DELTA_NEW_VERSION\\\",g\" Cargo.toml\n\tcargo build --release\n\tgit add Cargo.toml Cargo.lock\n\tgit commit -m \"Bump version\" || true\n\ttouch $(BUMP_VERSION_SENTINEL)\n\n\nCREATE_GITHUB_RELEASE_SENTINEL=.make-sentinels/create-github-release\ncreate-github-release: $(CREATE_GITHUB_RELEASE_SENTINEL) check-environment\n$(CREATE_GITHUB_RELEASE_SENTINEL):\n\t@echo \\# Creating release tag\n\tgit tag \"$$DELTA_NEW_VERSION\"\n\tgit push\n\tgit push --tags\n\t@echo \\# See https://github.com/dandavison/delta/releases\n\ttouch $(CREATE_GITHUB_RELEASE_SENTINEL)\n\n\nBUMP_VERSION_IN_DOCUMENTATION_LINKS_SENTINEL=.make-sentinels/bump-version-in-documentation-links\nbump-version-in-documentation-links: $(BUMP_VERSION_IN_DOCUMENTATION_LINKS_SENTINEL)\n$(BUMP_VERSION_IN_DOCUMENTATION_LINKS_SENTINEL):\n\tsed -i -E \"s,$$DELTA_OLD_VERSION,$$DELTA_NEW_VERSION,g\" manual/src/full---help-output.md manual/src/installation.md\n\trg -qF \"$$DELTA_NEW_VERSION\" manual/src/installation.md\n\tgit add manual/src/full---help-output.md manual/src/installation.md\n\tgit commit -m \"Link to new binaries\"\n\ttouch $(BUMP_VERSION_IN_DOCUMENTATION_LINKS_SENTINEL)\n\n\n.PHONY: \\\n\tclean \\\n\trelease\t\\\n\tcheck_environment \\\n\tbump-version \\\n\tcreate-github-release \\\n\tbump-version-in-documentation-links\n"
  },
  {
    "path": "manual/.gitignore",
    "content": "book\n"
  },
  {
    "path": "manual/Makefile",
    "content": "build:\n\tmdbook build\n\ninit:\n\tmdbook init --ignore none --title delta\n\nserve:\n\tmdbook serve\n"
  },
  {
    "path": "manual/book.toml",
    "content": "[book]\nauthors = [\"Dan Davison\"]\nlanguage = \"en\"\nmultilingual = false\nsrc = \"src\"\ntitle = \"delta\"\n\n[output.html]\ngit-repository-url = \"https://github.com/dandavison/delta\"\ngit-repository-icon = \"fa-github\"\n"
  },
  {
    "path": "manual/src/SUMMARY.md",
    "content": "# Summary\n\n- [Introduction](./introduction.md)\n- [Get started](./get-started.md)\n- [Features](./features.md)\n- [Installation](./installation.md)\n- [Configuration](./configuration.md)\n- [Environment variables](./environment-variables.md)\n- [How delta works](./how-delta-works.md)\n- [Usage](./usage.md)\n  - [Choosing colors (styles)](./choosing-colors-styles.md)\n  - [Line numbers](./line-numbers.md)\n  - [Hyperlinks](./hyperlinks.md)\n  - [Side-by-side view](./side-by-side-view.md)\n  - [Grep](./grep.md)\n  - [\"Features\": named groups of settings](./features-named-groups-of-settings.md)\n  - [Custom themes](./custom-themes.md)\n  - [diff-highlight and diff-so-fancy emulation](./diff-highlight-and-diff-so-fancy-emulation.md)\n  - [--color-moved support](./color-moved-support.md)\n  - [Navigation keybindings for large diffs](./navigation-keybindings-for-large-diffs.md)\n  - [Merge conflicts](./merge-conflicts.md)\n  - [Git blame](./git-blame.md)\n  - [Supported languages and themes](./supported-languages-and-themes.md)\n- [Tips & tricks](./tips-and-tricks.md)\n  - [Toggling side-by-side and other delta features](./tips-and-tricks/toggling-delta-features.md)\n  - [24 bit color (truecolor)](./tips-and-tricks/24-bit-color-truecolor.md)\n  - [Mouse scrolling](./tips-and-tricks/mouse-scrolling.md)\n  - [Save output with colors to HTML/PDF etc](./tips-and-tricks/export-to-html.md)\n  - [Using Delta on Windows](./tips-and-tricks/using-delta-on-windows.md)\n  - [Using Delta with GNU Screen](./tips-and-tricks/using-delta-with-gnu-screen.md)\n  - [Using Delta with Magit](./tips-and-tricks/using-delta-with-magit.md)\n  - [Using Delta with tmux](./tips-and-tricks/using-delta-with-tmux.md)\n  - [Using Delta with VSCode](./tips-and-tricks/using-delta-with-vscode.md)\n  - [Generating shell completion files](./tips-and-tricks/shell-completion.md)\n- [Comparisons with other tools](./comparisons-with-other-tools.md)\n- [Build delta from source](./build-delta-from-source.md)\n- [Related projects](./related-projects.md)\n- [Full --help output](./full---help-output.md)\n- [Delta configs used in screenshots](./delta-configs-used-in-screenshots.md)\n"
  },
  {
    "path": "manual/src/build-delta-from-source.md",
    "content": "# Build delta from source\n\nYou'll need to [install the rust tools](https://www.rust-lang.org/learn/get-started). Then:\n\n```sh\ncargo build --release\n```\n\nand use the executable found at `./target/release/delta`.\n\nAlternatively, homebrew users can do\n\n```sh\nbrew install --HEAD git-delta\n```\n\nto install the development version of delta with merged but unreleased changes.\n"
  },
  {
    "path": "manual/src/choosing-colors-styles.md",
    "content": "# Choosing colors (styles)\n\nDelta detects your terminal background color automatically and chooses appropriate default colors.\nTo override automatic detection use `dark` or `light`, e.g.\n\n```gitconfig\n[delta]\n    dark = true\n```\nThis is necessary when running delta in some contexts such as `lazygit` or `zellij`.\n\nAll options that have a name like `--*-style` work in the same way. It is very similar to how\ncolors/styles are specified in a gitconfig file:\n<https://git-scm.com/docs/git-config#Documentation/git-config.txt-color>\n\nHere's an example:\n\n```gitconfig\n[delta]\n    minus-style = red bold ul \"#ffeeee\"\n```\n\nThat means: For removed lines, set the foreground (text) color to 'red', make it bold and underlined, and set the background color to `#ffeeee`.\n\nFor full details, see the `STYLES` section in [`delta --help`](./full---help-output.md).\n"
  },
  {
    "path": "manual/src/color-moved-support.md",
    "content": "# `--color-moved` support\n\nRecent versions of Git (≥ v2.17, April 2018) are able to detect moved blocks of code and style them differently from the usual removed/added lines. If you have activated this feature in Git, then Delta will automatically detect such differently-styled lines, and display them unchanged, i.e. with the raw colors it receives from Git.\n\nTo activate the Git feature, use\n\n```gitconfig\n[diff]\n    colorMoved = default\n```\n\nand see the [Git documentation](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---color-movedltmodegt) for the other possible values and associated color configuration.\n\nThe `map-styles` option allows us to transform the styles that git emits for color-moved sections into delta styles.\nHere's an example of using `map-styles` to assign delta styles to the raw color-moved styles output by git.\nThis feature allows all of git's color-moved options to be rendered using delta styles, including with syntax highlighting.\n\n```gitconfig\n[delta]\n    map-styles = bold purple => syntax magenta, bold cyan => syntax blue\n```\n\nThere is a pair of features provided in [themes.config](https://github.com/dandavison/delta/blob/main/themes.gitconfig) called `zebra-dark` and `zebra-light` which utilise the moved colors by displaying them as a faint background color on the affected lines while keeping syntax highlighting as the foreground color. You can enable one of these features by stacking it upon the theme you are using, like as follows\n\n```gitconfig\n[delta]\n    features = my-dark-theme zebra-dark\n```\n\n<table><tr>\n  <td><img width=600px src=\"https://user-images.githubusercontent.com/1030961/149756321-d9e885fe-206c-4e08-8c40-e0ed5969b04a.png\" alt=\"image\" /></td>\n  <td><img width=600px src=\"https://user-images.githubusercontent.com/1030961/149756332-ce8a4e2a-7487-4880-a151-761872657a28.png\" alt=\"image\" /></td>\n</tr></table>\n\nIt is also possible to reference other styles.\n\n```gitconfig\n[delta]\n    features = my-color-moved-theme\n\n[delta \"my-color-moved-theme\"]\n    git-moved-from-style = bold purple     # An ad-hoc named style (must end in \"-style\")\n\n    map-styles = \"my-color-moved-theme.git-moved-from-style => red #cccccc, \\\n                  bold cyan => syntax #cccccc\"\n\n    # we could also have defined git-moved-to-style = bold cyan\n```\n\nTo make use of that, you need to know that git is emitting \"bold cyan\" and \"bold purple\".\nBut that's not always obvious.\nTo help with that, delta now has a `--parse-ansi` mode. E.g. `git show --color=always | delta --parse-ansi` outputs something like this:\n\n<table><tr><td><img width=300px src=\"https://user-images.githubusercontent.com/52205/143238872-58a40754-ae50-4a9e-ba72-07e330e520e6.png\" alt=\"image\" /></td></tr></table>\n\nAs you see above, we can now define named styles in gitconfig and refer to them in places where a style string is expected.\nWe can also define custom named colors in git config, and styles can reference other styles; see the [hoopoe theme](https://github.com/dandavison/delta/blob/main/themes.gitconfig#L76-L91) for an example:\n\n```gitconfig\n[delta \"hoopoe\"]\n    green = \"#d0ffd0\"  # ad-hoc named color\n    plus-style = syntax hoopoe.green  # refer to named color\n    plus-non-emph-style = plus-style  # styles can reference other styles\n```\n\nAdditionally, we can now use the 140 color names that are standard in CSS. Use `delta --show-colors` to get a demo of the available colors, as background colors to see how they look with syntax highlighting:\n\n<table><tr><td><img width=300px src=\"https://user-images.githubusercontent.com/52205/143237384-246db199-ef65-4ad2-ad4e-03d07d1ea41d.png\" alt=\"image\" /></td></tr></table>\n"
  },
  {
    "path": "manual/src/comparisons-with-other-tools.md",
    "content": "# Comparisons with other tools\n\n(`delta --light`)\n\n<table>\n  <tr>\n    <td>\n      delta vs. git\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248525-32250480-daea-11e9-9965-1a05c6a4bdf4.png\"\n           alt=\"image\" />\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248441-14f03600-daea-11e9-88a1-d96bbb6947f8.png\"\n           alt=\"image\" />\n    </td>\n  </tr>\n  <tr>\n    <td>\n      delta vs. diff-so-fancy /<br>diff-highlight\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248525-32250480-daea-11e9-9965-1a05c6a4bdf4.png\"\n           alt=\"image\" />\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248407-07d34700-daea-11e9-9a8f-6d81f4021abf.png\"\n           alt=\"image\" />\n    </td>\n  </tr>\n  <tr>\n    <td>\n      delta vs. github\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248525-32250480-daea-11e9-9965-1a05c6a4bdf4.png\"\n           alt=\"image\" />\n    </td>\n    <td>\n      <img width=500px style=\"border: 1px solid black\"\n           src=\"https://user-images.githubusercontent.com/52205/65248749-9a73e600-daea-11e9-9c0d-29c8f1dea08e.png\"\n           alt=\"image\" />\n    </td>\n  </tr>\n</table>\n"
  },
  {
    "path": "manual/src/configuration.md",
    "content": "# Configuration\n\n## Git config file\n\nDelta uses [git config](https://git-scm.com/docs/git-config#_configuration_file) (`~/.gitconfig`) for its configuration. Here's an example:\n\n<sub>\n\n```gitconfig\n[core]\n    pager = delta\n\n[interactive]\n    diffFilter = delta --color-only\n\n[delta]\n    navigate = true  # use n and N to move between diff sections\n    dark = true      # or light = true, or omit for auto-detection\n\n[merge]\n    conflictStyle = zdiff3\n```\n\nYou do not even need to use git -- delta accepts `git diff` and unified diff formats and hence works with e.g. mercurial and jujutsu -- but you do need to use the git config format.\n\nIf you want to store your delta config at a different location, use [[git docs](https://git-scm.com/docs/git-config#Documentation/git-config.txt-GITCONFIGGLOBAL)]\n```bash\nexport GIT_CONFIG_GLOBAL=/path/to/my/delta/config\n```\n\nIf you want to keep your delta and git config separate, use [[git docs](https://git-scm.com/docs/git-config#_includes)]\n```gitconfig\n[include]\n    path = ~/src/devenv/dotfiles/delta/delta.gitconfig\n```\n\n\n</sub>\n\nUse `delta --help` to see all the available options.\n\nNote that delta style argument values in ~/.gitconfig should be in double quotes, like `--minus-style=\"syntax #340001\"`. For theme names and other values, do not use quotes as they will be passed on to delta, like `theme = Monokai Extended`.\n\nAll git commands that display diff output should now display syntax-highlighted output. For example:\n\n- `git diff`\n- `git show`\n- `git log -p`\n- `git stash show -p`\n- `git reflog -p`\n- `git add -p`\n\nTo change your delta options in a one-off git command, use `git -c`. For example\n\n```sh\ngit -c delta.line-numbers=false show\n```\n\nThere are several important environment variables that affect delta configuration and which can be used to configure delta dynamically.\nPlease see [Environment variables](./environment-variables.md).\n\n## Jujutsu\n\nFor [Jujutsu](https://github.com/jj-vcs/jj) users, add this to your `~/.config/jj/config.toml`:\n\n```toml\n[ui]\npager = \"delta\"\ndiff-formatter = \":git\"\n```\n"
  },
  {
    "path": "manual/src/custom-themes.md",
    "content": "# Custom themes\n\nA \"theme\" in delta is just a collection of settings grouped together in a named [feature](./features-named-groups-of-settings.md). One of the available settings is `syntax-theme`: this dictates the colors and styles that are applied to foreground text by the syntax highlighter. Thus the concept of \"theme\" in delta encompasses not just the foreground syntax-highlighting color theme, but also background colors, decorations such as boxes and under/overlines, etc.\n\nThe delta git repo contains a [collection of themes](https://github.com/dandavison/delta/blob/main/themes.gitconfig) created by users. These focus on the visual appearance: colors etc. If you want features like `side-by-side` or `navigate`, you would set that yourself, after selecting the color theme.\n\nTo browse themes, use `delta --show-themes`, or browse the list of theme PRs: <https://github.com/dandavison/delta/commits/main/themes.gitconfig>. (The PRs nearly always have screenshots in them.)\n\nTo use the delta themes, clone the delta repo (or [download](https://raw.githubusercontent.com/dandavison/delta/main/themes.gitconfig) the raw `themes.gitconfig` file) and add the following entry in your gitconfig:\n\n```gitconfig\n[include]\n    path = /PATH/TO/delta/themes.gitconfig\n```\n\nThen, add your chosen color theme to your features list, e.g.\n\n```gitconfig\n[delta]\n    features = collared-trogon\n    side-by-side = true\n    ...\n```\n\nNote that this terminology differs from [bat](https://github.com/sharkdp/bat): bat does not apply background colors, and uses the term \"theme\" to refer to what delta calls `syntax-theme`. Delta does not have a setting named \"theme\": a theme is a \"feature\", so one uses `features` to select a theme.\n"
  },
  {
    "path": "manual/src/delta-configs-used-in-screenshots.md",
    "content": "# Delta configs used in screenshots\n\n## Side-by-side view\n\n[https://github.com/vuejs/vue/commit/7ec4627902020cccd7b3f4fbc63e1b0d6b9798cd](https://github.com/vuejs/vue/commit/7ec4627902020cccd7b3f4fbc63e1b0d6b9798cd)\n\n```gitconfig\n[delta]\n    features = side-by-side line-numbers decorations\n    syntax-theme = Dracula\n    plus-style = syntax \"#003800\"\n    minus-style = syntax \"#3f0001\"\n\n[delta \"decorations\"]\n    commit-decoration-style = bold yellow box ul\n    file-style = bold yellow ul\n    file-decoration-style = none\n    hunk-header-decoration-style = cyan box ul\n\n[delta \"line-numbers\"]\n    line-numbers-left-style = cyan\n    line-numbers-right-style = cyan\n    line-numbers-minus-style = 124\n    line-numbers-plus-style = 28\n```\n"
  },
  {
    "path": "manual/src/diff-highlight-and-diff-so-fancy-emulation.md",
    "content": "# diff-highlight and diff-so-fancy emulation\n\nUse `--diff-highlight` or `--diff-so-fancy` to activate the respective emulation mode.\n\nYou may want to know which delta configuration values the emulation mode has selected, so that you can adjust them. To do that, use e.g. `delta --diff-so-fancy --show-config`:\n\n<table><tr><td><img width=300px src=\"https://user-images.githubusercontent.com/52205/86271121-5abe4c80-bb9a-11ea-950a-7c79502267d5.png\" alt=\"image\" /></td></tr></table>\n\n[diff-highlight](https://github.com/git/git/tree/master/contrib/diff-highlight) is a perl script distributed with git that allows within-line edits to be identified and highlighted according to colors specified in git config. [diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) builds on diff-highlight, making various additional improvements to the default git diff output. Both tools provide very helpful ways of viewing diffs, and so delta provides emulation modes for both of them.\n\nThe within-line highlighting rules employed by diff-highlight (and therefore by diff-so-fancy) are deliberately simpler than Delta's Levenshtein-type edit inference algorithm (see discussion in the [diff-highlight README](https://github.com/git/git/tree/master/contrib/diff-highlight)). diff-highlight's rules could be added to delta as an alternative highlighting algorithm, but that hasn't been done yet.\n"
  },
  {
    "path": "manual/src/environment-variables.md",
    "content": "# Environment variables\n\n## Git environment variables\n\nThe `GIT_PAGER` environment variable must either not be set at all, or set to the value `delta` (you can add argument here if you want; this env var plays the same role as the `core.pager` config entry).\n\n## Pager environment variables\n\nA pager is a program that accepts many lines of text as input, and displays them one screenful at a time.\nThe standard pager is [less](https://linux.die.net/man/1/less), and this is what delta uses by default (it's also what [`bat`](https://github.com/sharkdp/bat) uses).\nTherefore:\n\n1. It is very important that you are using a recent version of less. In particular, on Windows, the installed version of less is often broken and it is usually necessary to install it yourself or use the version of less that is installed with git on Windows.\n\n2. The command line flags passed to `less` are important, and there are some environment variables that affect these (see below). By default, delta will try to ensure that they are sensible.\n\n3. When delta is displaying lengthy output, anything you do with the keyboard or mouse is actually received by less, and it is worth looking at less documentation (`less --help` or `man less` or [online](https://linux.die.net/man/1/less)) to discover what you can do.\n\nThe exact command that `delta` uses to start its pager is taken from one of the following environment variables (in this order):\n\n- `DELTA_PAGER`\n- `BAT_PAGER`\n- `PAGER`\n\nDelta does not use `bat` when it is running, and delta users do not need to\ninstall bat. (Delta does use the `bat` Rust library for its syntax highlighting\nthemes and language definitions, and for launching the pager, which is why the\n`BAT_PAGER` environment variable is honored).\n\nIf none of these is set, delta uses `less -R`, and you should always include `-R` if you are setting these environment variables yourself.\n\nIn addition to those `*PAGER` environment variables, the behavior of `less` is also affected by the `LESS` environment variable (see `man less` or [online documentation](https://linux.die.net/man/1/less)). This env var can contain command line options and/or interactive less-commands (prefixed by a leading `+` sign; these are executed every time right after less is launched).\n\n## Delta-specific environment variables\n\nTo temporarily activate and inactivate delta features, you can use `DELTA_FEATURES`, e.g.\n\n```sh\nexport DELTA_FEATURES='+side-by-side my-feature'\n```\n\n(The `+` means \"add these features to those configured in git config\".)\n\nThe `DELTA_PAGER` env var is described above.\n"
  },
  {
    "path": "manual/src/features-named-groups-of-settings.md",
    "content": "# \"Features\": named groups of settings\n\nAll delta options can go under the `[delta]` section in your git config file. However, you can also use named \"features\" to keep things organized: these are sections in git config like `[delta \"my-feature\"]`. Here's an example using two custom features:\n\n```gitconfig\n[delta]\n    features = unobtrusive-line-numbers decorations\n    whitespace-error-style = 22 reverse\n\n[delta \"unobtrusive-line-numbers\"]\n    line-numbers = true\n    line-numbers-minus-style = \"#444444\"\n    line-numbers-zero-style = \"#444444\"\n    line-numbers-plus-style = \"#444444\"\n    line-numbers-left-format = \"{nm:>4}┊\"\n    line-numbers-right-format = \"{np:>4}│\"\n    line-numbers-left-style = blue\n    line-numbers-right-style = blue\n\n[delta \"decorations\"]\n    commit-decoration-style = bold yellow box ul\n    file-style = bold yellow ul\n    file-decoration-style = none\n    hunk-header-decoration-style = yellow box\n```\n\n<table><tr><td><img width=400px src=\"https://user-images.githubusercontent.com/52205/86275048-a96ee500-bba0-11ea-8a19-584f69758aee.png\" alt=\"image\" /></td></tr></table>\n\nThe environment variable `DELTA_FEATURES` can used to enable features from the command line: it should be set to a space-separated string of feature names.\nIf you precede this with a `+` symbol, then the features are _added_ to those configured elsewhere, instead of replacing them.\nThis is very useful, for example to temporarily switch delta to side-by-side mode you can do\n\n```sh\nexport DELTA_FEATURES=+side-by-side\n```\n\nand to undo that:\n\n```sh\nexport DELTA_FEATURES=+\n```\n"
  },
  {
    "path": "manual/src/features.md",
    "content": "# Features\n\n- Language syntax highlighting with color themes\n- Within-line highlights based on a Levenshtein edit inference algorithm\n- Side-by-side view with line-wrapping\n- Line numbering\n- `n` and `N` keybindings to move between files in large diffs, and between diffs in `log -p` views (`--navigate`)\n- Improved merge conflict display\n- Improved `git blame` display (syntax highlighting; `--hyperlinks` formats commits as links to GitHub/GitLab/Bitbucket etc)\n- Syntax-highlights grep output from `rg`, `git grep`, `grep`, etc\n- Support for Git's `--color-moved` feature.\n- Code can be copied directly from the diff (`-/+` markers are removed by default).\n- `diff-highlight` and `diff-so-fancy` emulation modes\n- Commit hashes can be formatted as terminal [hyperlinks](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda) to the GitHub/GitLab/Bitbucket page (`--hyperlinks`).\n  File paths can also be formatted as hyperlinks for opening in your OS.\n- Stylable box/line decorations to draw attention to commit, file and hunk header sections.\n- Git style strings (foreground color, background color, font attributes) are supported for >20 stylable elements\n\n|                                                | delta | git | [diff-so-fancy] /<br>[diff-highlight] | github/gitlab |\n| ---------------------------------------------- | ----- | --- | ------------------------------------- | ------------- |\n| language syntax highlighting                   | ✅    | ❌  | ❌                                    | ✅            |\n| within-line insertion/deletion detection       | ✅    | ❌  | ✅                                    | ✅            |\n| multiple insertion/deletions detected per line | ✅    | ❌  | ❌                                    | ✅            |\n| matching of unequal numbers of changed lines   | ✅    | ❌  | ❌                                    | ❌            |\n| independently stylable elements                | ✅    | ✅  | ✅                                    | ❌            |\n| line numbering                                 | ✅    | ❌  | ❌                                    | ✅            |\n| side-by-side view                              | ✅    | ❌  | ❌                                    | ✅            |\n\nIn addition, delta handles traditional unified diff output.\n\n[diff-so-fancy]: https://github.com/so-fancy/diff-so-fancy\n[diff-highlight]: https://github.com/git/git/tree/master/contrib/diff-highlight\n"
  },
  {
    "path": "manual/src/full---help-output.md",
    "content": "# Full --help output\n\n```txt\nA viewer for git and diff output\n\nUsage: delta [OPTIONS] [MINUS_FILE] [PLUS_FILE]\n\nArguments:\n  [MINUS_FILE]\n          First file to be compared when delta is being used to diff two\n          files.\n\n          `delta file1 file2` is equivalent to `diff -u file1 file2 | delta`.\n\n  [PLUS_FILE]\n          Second file to be compared when delta is being used to diff two\n          files\n\nOptions:\n      --blame-code-style <STYLE>\n          Style string for the code section of a git blame line.\n\n          By default the code will be syntax-highlighted with the same\n          background color as the blame format section of the line (the\n          background color is determined by blame-palette). E.g. setting this\n          option to 'syntax' will syntax-highlight the code with no\n          background color.\n\n      --blame-format <FMT>\n          Format string for git blame commit metadata.\n\n          Available placeholders are \"{timestamp}\", \"{author}\", and\n          \"{commit}\".\n\n          [default: \"{timestamp:<15} {author:<15.14} {commit:<8}\"]\n\n      --blame-palette <COLORS>\n          Background colors used for git blame lines (space-separated\n          string).\n\n          Lines added by the same commit are painted with the same color;\n          colors are recycled as needed.\n\n      --blame-separator-format <FMT>\n          Separator between the blame format and the code section of a git\n          blame line.\n\n          Contains the line number by default. Possible values are \"none\" to\n          disable line numbers or a format string. This may contain one\n          \"{n:}\" placeholder and will display the line number on every line.\n          A type may be added after all other format specifiers and can be\n          separated by '_': If type is set to 'block' (e.g. \"{n:^4_block}\")\n          the line number will only be shown when a new blame block starts;\n          or if it is set to 'every-N' the line will be show with every block\n          and every N-th (modulo) line.\n\n          [default: │{n:^4}│]\n\n      --blame-separator-style <STYLE>\n          Style string for the blame-separator-format\n\n      --blame-timestamp-format <FMT>\n          Format of `git blame` timestamp in raw git output received by delta\n\n          [default: \"%Y-%m-%d %H:%M:%S %z\"]\n\n      --blame-timestamp-output-format <FMT>\n          Format string for git blame timestamp output.\n\n          This string is used for formatting the timestamps in git blame\n          output. It must follow the `strftime` format syntax specification.\n          If it is not present, the timestamps will be formatted in a\n          human-friendly but possibly less accurate form.\n\n          See:\n          <https://docs.rs/chrono/latest/chrono/format/strftime/index.html>\n\n      --color-only\n          Do not alter the input structurally in any way.\n\n          But color and highlight hunk lines according to your delta\n          configuration. This is mainly intended for other tools that use\n          delta.\n\n      --config <PATH>\n          Load the config file at PATH instead of ~/.gitconfig\n\n          [default: \"\"]\n\n      --commit-decoration-style <STYLE>\n          Style string for the commit hash decoration.\n\n          See STYLES section. The style string should contain one of the\n          special attributes 'box', 'ul' (underline), 'ol' (overline), or the\n          combination 'ul ol'.\n\n          [default: \"\"]\n\n      --commit-regex <REGEX>\n          Regular expression used to identify the commit line when parsing\n          git output\n\n          [default: \"^commit \"]\n\n      --commit-style <STYLE>\n          Style string for the commit hash line.\n\n          See STYLES section. The style 'omit' can be used to remove the\n          commit hash line from the output.\n\n          [default: raw]\n\n      --dark\n          Use default colors appropriate for a dark terminal background.\n\n          For more control, see the style options and --syntax-theme.\n\n      --default-language <LANG>\n          Default language used for syntax highlighting.\n\n          Used as a fallback when the language cannot be inferred from a\n          filename. It will typically make sense to set this in the\n          per-repository config file '.git/config'.\n\n          [default: txt]\n\n      --detect-dark-light <DETECT_DARK_LIGHT>\n          Detect whether or not the terminal is dark or light by querying for\n          its colors.\n\n          Ignored if either `--dark` or `--light` is specified.\n\n          Querying the terminal for its colors requires \"exclusive\" access\n          since delta reads/writes from the terminal and enables/disables raw\n          mode. This causes race conditions with pagers such as less when\n          they are attached to the same terminal as delta.\n\n          This is usually only an issue when the output is manually piped to\n          a pager. For example: `git diff | delta | less`. Otherwise, if\n          delta starts the pager itself, then there's no race condition since\n          the pager is started *after* the color is detected.\n\n          `auto` tries to account for these situations by testing if the\n          output is redirected.\n\n          The `--color-only` option is treated as an indicator that delta is\n          used as `interactive.diffFilter`. In this case the color is queried\n          from the terminal even though the output is redirected.\n\n          Possible values:\n          - auto:   Only query the terminal for its colors if the output is\n            not redirected\n          - always: Always query the terminal for its colors\n          - never:  Never query the terminal for its colors\n\n          [default: auto]\n\n  -@, --diff-args <STRING>\n          Extra arguments to pass to `git diff` when using delta to diff two\n          files.\n\n          E.g. `delta --diff-args=-U999 file_1 file_2` is equivalent to `git\n          diff --no-index --color -U999 file_1 file_2 | delta`.\n\n          If you use process substitution (`delta <(command_1) <(command_2)`)\n          and your git version doesn't support it, then delta will fall back\n          to `diff` instead of `git diff`.\n\n          [default: \"\"]\n\n      --diff-highlight\n          Emulate diff-highlight.\n\n          <https://github.com/git/git/tree/master/contrib/diff-highlight>\n\n      --diff-so-fancy\n          Emulate diff-so-fancy.\n\n          <https://github.com/so-fancy/diff-so-fancy>\n\n      --diff-stat-align-width <N>\n          Width allocated for file paths in a diff stat section.\n\n          If a relativized file path exceeds this width then the diff stat\n          will be misaligned.\n\n          [default: 48]\n\n      --features <FEATURES>\n          Names of delta features to activate (space-separated).\n\n          A feature is a named collection of delta options in ~/.gitconfig.\n          See FEATURES section. The environment variable DELTA_FEATURES can\n          be set to a space-separated list of feature names. If this is\n          preceded with a + character, the features from the environment\n          variable will be added to those specified in git config. E.g.\n          DELTA_FEATURES=+side-by-side can be used to activate side-by-side\n          temporarily (use DELTA_FEATURES=+ to go back to just the features\n          from git config).\n\n      --file-added-label <STRING>\n          Text to display before an added file path.\n\n          Used in the default value of navigate-regex.\n\n          [default: added:]\n\n      --file-copied-label <STRING>\n          Text to display before a copied file path\n\n          [default: copied:]\n\n      --file-decoration-style <STYLE>\n          Style string for the file decoration.\n\n          See STYLES section. The style string should contain one of the\n          special attributes 'box', 'ul' (underline), 'ol' (overline), or the\n          combination 'ul ol'.\n\n          [default: \"blue ul\"]\n\n      --file-modified-label <STRING>\n          Text to display before a modified file path.\n\n          Used in the default value of navigate-regex.\n\n          [default: \"\"]\n\n      --file-removed-label <STRING>\n          Text to display before a removed file path.\n\n          Used in the default value of navigate-regex.\n\n          [default: removed:]\n\n      --file-renamed-label <STRING>\n          Text to display before a renamed file path.\n\n          Used in the default value of navigate-regex.\n\n          [default: renamed:]\n\n      --file-style <STYLE>\n          Style string for the file section.\n\n          See STYLES section. The style 'omit' can be used to remove the file\n          section from the output.\n\n          [default: blue]\n\n      --file-transformation <SED_CMD>\n          Sed-style command transforming file paths for display\n\n      --generate-completion <GENERATE_COMPLETION>\n          Print completion file for the given shell\n\n          [possible values: bash, elvish, fish, powershell, zsh]\n\n      --grep-context-line-style <STYLE>\n          Style string for non-matching lines of grep output.\n\n          See STYLES section. Defaults to zero-style.\n\n      --grep-file-style <STYLE>\n          Style string for file paths in grep output.\n\n          See STYLES section.\n\n          [default: magenta]\n\n      --grep-header-decoration-style <STYLE>\n          Style string for the header decoration in grep output.\n\n          Default is \"none\" when grep-output-type-is \"ripgrep\", otherwise\n          defaults to value of header-decoration-style. See\n          hunk-header-decoration-style.\n\n      --grep-header-file-style <STYLE>\n          Style string for the file path part of the header in grep output.\n\n          See hunk_header_file_style.\n\n      --grep-line-number-style <STYLE>\n          Style string for line numbers in grep output.\n\n          See STYLES section.\n\n          [default: green]\n\n      --grep-output-type <OUTPUT_TYPE>\n          Grep output format. Possible values: \"ripgrep\" - file name printed\n          once, followed by matching lines within that file, each preceded by\n          a line number. \"classic\" - file name:line number, followed by\n          matching line. Default is \"ripgrep\" if `rg --json` format is\n          detected, otherwise \"classic\"\n\n          [possible values: ripgrep, classic]\n\n      --grep-match-line-style <STYLE>\n          Style string for matching lines of grep output.\n\n          See STYLES section. Defaults to plus-style.\n\n      --grep-match-word-style <STYLE>\n          Style string for the matching substrings within a matching line of\n          grep output.\n\n          See STYLES section. Defaults to plus-style.\n\n      --grep-separator-symbol <STRING>\n          Separator symbol printed after the file path and line number in\n          grep output.\n\n          Defaults to \":\" for both match and context lines, since many\n          terminal emulators recognize constructs like \"/path/to/file:7:\".\n          However, standard grep output uses \"-\" for context lines: set this\n          option to \"keep\" to keep the original separator symbols.\n\n          [default: :]\n\n      --hunk-header-decoration-style <STYLE>\n          Style string for the hunk-header decoration.\n\n          See STYLES section. The style string should contain one of the\n          special attributes 'box', 'ul' (underline), 'ol' (overline), or the\n          combination 'ul ol'.\n\n          [default: \"blue box\"]\n\n      --hunk-header-file-style <STYLE>\n          Style string for the file path part of the hunk-header.\n\n          See STYLES section. The file path will only be displayed if\n          hunk-header-style contains the 'file' special attribute.\n\n          [default: blue]\n\n      --hunk-header-line-number-style <STYLE>\n          Style string for the line number part of the hunk-header.\n\n          See STYLES section. The line number will only be displayed if\n          hunk-header-style contains the 'line-number' special attribute.\n\n          [default: blue]\n\n      --hunk-header-style <STYLE>\n          Style string for the hunk-header.\n\n          See STYLES section. Special attributes 'file' and 'line-number' can\n          be used to include the file path, and number of first hunk line, in\n          the hunk header. The style 'omit' can be used to remove the hunk\n          header section from the output.\n\n          [default: \"line-number syntax\"]\n\n      --hunk-label <STRING>\n          Text to display before a hunk header.\n\n          Used in the default value of navigate-regex.\n\n          [default: \"\"]\n\n      --hyperlinks\n          Render commit hashes, file names, and line numbers as hyperlinks.\n\n          Following the hyperlink spec for terminal emulators:\n          <https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda>.\n          By default, file names and line numbers link to the local file\n          using a file URL, whereas commit hashes link to the commit in\n          GitHub, if the remote repository is hosted by GitHub. See\n          --hyperlinks-file-link-format for full control over the file URLs\n          emitted. Hyperlinks are supported by several common terminal\n          emulators. To make them work, you must use less version >= 581 with\n          the -R flag (or use -r with older less versions, but this will\n          break e.g. --navigate). If you use tmux, then you will also need a\n          patched fork of tmux (see <https://github.com/dandavison/tmux>).\n\n      --hyperlinks-commit-link-format <FMT>\n          Format string for commit hyperlinks (requires --hyperlinks).\n\n          The placeholder \"{commit}\" will be replaced by the commit hash. For\n          example:\n          --hyperlinks-commit-link-format='https://mygitrepo/{commit}/'\n\n      --hyperlinks-file-link-format <FMT>\n          Format string for file hyperlinks (requires --hyperlinks).\n\n          Placeholders \"{path}\" and \"{line}\" will be replaced by the absolute\n          file path and the line number; \"{host}\" with the hostname delta is\n          currently running on. The default is to create a hyperlink\n          containing a standard file URI with only the filename, which your\n          terminal or OS should handle. You can specify any scheme, such as\n          \"file-line://{path}:{line}\" and register an application to handle\n          it. See <https://dandavison.github.io/delta/hyperlinks.html> for\n          details.\n\n          [default: file://{path}]\n\n      --inline-hint-style <STYLE>\n          Style string for short inline hint text.\n\n          This styles certain content added by delta to the original diff\n          such as special characters to highlight tabs, and the symbols used\n          to indicate wrapped lines. See STYLES section.\n\n          [default: blue]\n\n      --inspect-raw-lines <true|false>\n          Kill-switch for --color-moved support.\n\n          Whether to examine ANSI color escape sequences in raw lines\n          received from Git and handle lines colored in certain ways\n          specially. This is on by default: it is how Delta supports Git's\n          --color-moved feature. Set this to \"false\" to disable this\n          behavior.\n\n          [default: true]\n          [possible values: true, false]\n\n      --keep-plus-minus-markers\n          Prefix added/removed lines with a +/- character, as git does.\n\n          By default, delta does not emit any prefix, so code can be copied\n          directly from delta's output.\n\n      --light\n          Use default colors appropriate for a light terminal background.\n\n          For more control, see the style options and --syntax-theme.\n\n      --line-buffer-size <N>\n          Size of internal line buffer.\n\n          Delta compares the added and removed versions of nearby lines in\n          order to detect and highlight changes at the level of individual\n          words/tokens. Therefore, nearby lines must be buffered internally\n          before they are painted and emitted. Increasing this value might\n          improve highlighting of some large diff hunks. However, setting\n          this to a high value will adversely affect delta's performance when\n          entire files are added/removed.\n\n          [default: 32]\n\n      --line-fill-method <STRING>\n          Line-fill method in side-by-side mode.\n\n          How to extend the background color to the end of the line in\n          side-by-side mode. Can be ansi (default) or spaces (default if\n          output is not to a terminal). Has no effect if --width=variable is\n          given.\n\n          [possible values: ansi, spaces]\n\n  -n, --line-numbers\n          Display line numbers next to the diff.\n\n          See LINE NUMBERS section.\n\n      --line-numbers-left-format <FMT>\n          Format string for the left column of line numbers.\n\n          A typical value would be \"{nm:^4}⋮\" which means to display the line\n          numbers of the minus file (old version), center-aligned, padded to\n          a width of 4 characters, followed by a dividing character. See the\n          LINE NUMBERS section.\n\n          [default: {nm:^4}⋮]\n\n      --line-numbers-left-style <STYLE>\n          Style string for the left column of line numbers.\n\n          See STYLES and LINE NUMBERS sections.\n\n          [default: auto]\n\n      --line-numbers-minus-style <STYLE>\n          Style string for line numbers in the old (minus) version of the\n          file.\n\n          See STYLES and LINE NUMBERS sections.\n\n          [default: auto]\n\n      --line-numbers-plus-style <STYLE>\n          Style string for line numbers in the new (plus) version of the\n          file.\n\n          See STYLES and LINE NUMBERS sections.\n\n          [default: auto]\n\n      --line-numbers-right-format <FMT>\n          Format string for the right column of line numbers.\n\n          A typical value would be \"{np:^4}│ \" which means to display the\n          line numbers of the plus file (new version), center-aligned, padded\n          to a width of 4 characters, followed by a dividing character, and a\n          space. See the LINE NUMBERS section.\n\n          [default: {np:^4}│]\n\n      --line-numbers-right-style <STYLE>\n          Style string for the right column of line numbers.\n\n          See STYLES and LINE NUMBERS sections.\n\n          [default: auto]\n\n      --line-numbers-zero-style <STYLE>\n          Style string for line numbers in unchanged (zero) lines.\n\n          See STYLES and LINE NUMBERS sections.\n\n          [default: auto]\n\n      --list-languages\n          List supported languages and associated file extensions\n\n      --list-syntax-themes\n          List available syntax-highlighting color themes\n\n      --map-styles <STYLES_MAP>\n          Map styles encountered in raw input to desired output styles.\n\n          An example is --map-styles='bold purple => red \"#eeeeee\", bold cyan\n          => syntax \"#eeeeee\"'\n\n      --max-line-distance <DIST>\n          Maximum line pair distance parameter in within-line diff algorithm.\n\n          This parameter is the maximum distance (0.0 - 1.0) between two\n          lines for them to be inferred to be homologous. Homologous line\n          pairs are highlighted according to the deletion and insertion\n          operations transforming one into the other.\n\n          [default: 0.6]\n\n      --max-syntax-highlighting-length <N>\n          Stop syntax highlighting lines after this many characters.\n\n          To always highlight entire lines, set to zero - but note that delta\n          will be slow on very long lines (e.g. minified .js).\n\n          [default: 400]\n\n      --max-line-length <N>\n          Truncate lines longer than this.\n\n          To prevent any truncation, set to zero. When wrapping lines this\n          does nothing as it is overwritten to fit at least all visible\n          characters, see `--wrap-max-lines`.\n\n          [default: 3000]\n\n      --merge-conflict-begin-symbol <STRING>\n          String marking the beginning of a merge conflict region.\n\n          The string will be repeated until it reaches the required length.\n\n          [default: ▼]\n\n      --merge-conflict-end-symbol <STRING>\n          String marking the end of a merge conflict region.\n\n          The string will be repeated until it reaches the required length.\n\n          [default: ▲]\n\n      --merge-conflict-ours-diff-header-decoration-style <STYLE>\n          Style string for the decoration of the header above the 'ours'\n          merge conflict diff.\n\n          This styles the decoration of the header above the diff between the\n          ancestral commit and the 'ours' branch. See STYLES section. The\n          style string should contain one of the special attributes 'box',\n          'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n\n          [default: box]\n\n      --merge-conflict-ours-diff-header-style <STYLE>\n          Style string for the header above the 'ours' branch merge conflict\n          diff.\n\n          See STYLES section.\n\n          [default: normal]\n\n      --merge-conflict-theirs-diff-header-decoration-style <STYLE>\n          Style string for the decoration of the header above the 'theirs'\n          merge conflict diff.\n\n          This styles the decoration of the header above the diff between the\n          ancestral commit and 'their' branch.  See STYLES section. The style\n          string should contain one of the special attributes 'box', 'ul'\n          (underline), 'ol' (overline), or the combination 'ul ol'.\n\n          [default: box]\n\n      --merge-conflict-theirs-diff-header-style <STYLE>\n          Style string for the header above the 'theirs' branch merge\n          conflict diff.\n\n          This styles the header above the diff between the ancestral commit\n          and 'their' branch. See STYLES section.\n\n          [default: normal]\n\n      --minus-empty-line-marker-style <STYLE>\n          Style string for removed empty line marker.\n\n          Used only if --minus-style has no background color.\n\n          [default: \"normal auto\"]\n\n      --minus-emph-style <STYLE>\n          Style string for emphasized sections of removed lines.\n\n          See STYLES section.\n\n          [default: \"normal auto\"]\n\n      --minus-non-emph-style <STYLE>\n          Style string for non-emphasized sections of removed lines that have\n          an emphasized section.\n\n          See STYLES section.\n\n          [default: minus-style]\n\n      --minus-style <STYLE>\n          Style string for removed lines.\n\n          See STYLES section.\n\n          [default: \"normal auto\"]\n\n      --navigate\n          Activate diff navigation.\n\n          Use n to jump forwards and N to jump backwards. To change the file\n          labels used see --file-added-label, --file-copied-label,\n          --file-modified-label, --file-removed-label, --file-renamed-label.\n\n      --navigate-regex <REGEX>\n          Regular expression defining navigation stop points\n\n      --no-gitconfig\n          Do not read any settings from git config.\n\n          See GIT CONFIG section.\n\n      --pager <CMD>\n          Which pager to use.\n\n          The default pager is `less`. You can also change pager by setting\n          the environment variable DELTA_PAGER, or PAGER. This option\n          overrides these environment variables.\n\n      --paging <auto|always|never>\n          Whether to use a pager when displaying output.\n\n          Options are: auto, always, and never.\n\n          [default: auto]\n          [possible values: auto, always, never]\n\n      --parse-ansi\n          Display ANSI color escape sequences in human-readable form.\n\n          Example usage: git show --color=always | delta --parse-ansi This\n          can be used to help identify input style strings to use with\n          map-styles.\n\n      --plus-emph-style <STYLE>\n          Style string for emphasized sections of added lines.\n\n          See STYLES section.\n\n          [default: \"syntax auto\"]\n\n      --plus-empty-line-marker-style <STYLE>\n          Style string for added empty line marker.\n\n          Used only if --plus-style has no background color.\n\n          [default: \"normal auto\"]\n\n      --plus-non-emph-style <STYLE>\n          Style string for non-emphasized sections of added lines that have\n          an emphasized section.\n\n          See STYLES section.\n\n          [default: plus-style]\n\n      --plus-style <STYLE>\n          Style string for added lines.\n\n          See STYLES section.\n\n          [default: \"syntax auto\"]\n\n      --raw\n          Do not alter the input in any way.\n\n          This is mainly intended for testing delta.\n\n      --relative-paths\n          Output all file paths relative to the current directory.\n\n          This means that they will resolve correctly when clicked on or used\n          in shell commands.\n\n      --right-arrow <STRING>\n          Text to display with a changed file path.\n\n          For example, a unified diff heading, a rename, or a chmod.\n\n          [default: \"⟶  \"]\n\n      --show-colors\n          Show available named colors.\n\n          In addition to named colors, arbitrary colors can be specified\n          using RGB hex codes. See COLORS section.\n\n      --show-config\n          Display the active values for all Delta options.\n\n          Style string options are displayed with foreground and background\n          colors. This can be used to experiment with colors by combining\n          this option with other options such as --minus-style, --zero-style,\n          --plus-style, --light, --dark, etc.\n\n      --show-syntax-themes\n          Show example diff for available syntax-highlighting themes.\n\n          If diff output is supplied on standard input then this will be used\n          for the demo. For example: `git show | delta --show-syntax-themes`.\n\n      --show-themes\n          Show example diff for available delta themes.\n\n          A delta theme is a delta named feature (see --features) that sets\n          either `light` or `dark`. See\n          <https://github.com/dandavison/delta#custom-color-themes>. If diff\n          output is supplied on standard input then this will be used for the\n          demo. For example: `git show | delta --show-themes`. By default\n          shows dark or light themes only, according to whether delta is in\n          dark or light mode (as set by the user or inferred from BAT_THEME).\n          To control the themes shown, use --dark or --light, or both, on the\n          command line together with this option.\n\n  -s, --side-by-side\n          Display diffs in side-by-side layout\n\n      --syntax-theme <SYNTAX_THEME>\n          The syntax-highlighting theme to use.\n\n          Use --show-syntax-themes to demo available themes. Defaults to the\n          value of the BAT_THEME environment variable, if that contains a\n          valid theme name. --syntax-theme=none disables all syntax\n          highlighting.\n\n      --tabs <N>\n          The number of spaces to replace tab characters with.\n\n          Use --tabs=0 to pass tab characters through directly, but note that\n          in that case delta will calculate line widths assuming tabs occupy\n          one character's width on the screen: if your terminal renders tabs\n          as more than one character wide then delta's output will look\n          incorrect.\n\n          [default: 8]\n\n      --true-color <auto|always|never>\n          Whether to emit 24-bit (\"true color\") RGB color codes.\n\n          Options are auto, always, and never. \"auto\" means that delta will\n          emit 24-bit color codes if the environment variable COLORTERM has\n          the value \"truecolor\" or \"24bit\". If your terminal application (the\n          application you use to enter commands at a shell prompt) supports\n          24 bit colors, then it probably already sets this environment\n          variable, in which case you don't need to do anything.\n\n          [default: auto]\n          [possible values: auto, always, never]\n\n      --whitespace-error-style <STYLE>\n          Style string for whitespace errors.\n\n          Defaults to color.diff.whitespace if that is set in git config, or\n          else 'magenta reverse'.\n\n          [default: \"auto auto\"]\n\n  -w, --width <N>\n          The width of underline/overline decorations.\n\n          Examples: \"72\" (exactly 72 characters), \"-2\" (auto-detected\n          terminal width minus 2). An expression such as \"74-2\" is also valid\n          (equivalent to 72 but may be useful if the caller has a variable\n          holding the value \"74\"). Use --width=variable to extend decorations\n          and background colors to the end of the text only. Otherwise\n          background colors extend to the full terminal width.\n\n      --word-diff-regex <REGEX>\n          Regular expression defining a 'word' in within-line diff algorithm.\n\n          The regular expression used to decide what a word is for the\n          within-line highlight algorithm. For less fine-grained matching\n          than the default try --word-diff-regex=\"\\S+\"\n          --max-line-distance=1.0 (this is more similar to `git\n          --word-diff`).\n\n          [default: \\w+]\n\n      --wrap-left-symbol <STRING>\n          End-of-line wrapped content symbol (left-aligned).\n\n          Symbol added to the end of a line indicating that the content has\n          been wrapped onto the next line and continues left-aligned.\n\n          [default: ↵]\n\n      --wrap-max-lines <N>\n          How often a line should be wrapped if it does not fit.\n\n          Zero means to never wrap. Any content which does not fit after\n          wrapping will be truncated. A value of \"unlimited\" means a line\n          will be wrapped as many times as required.\n\n          [default: 2]\n\n      --wrap-right-percent <PERCENT>\n          Threshold for right-aligning wrapped content.\n\n          If the length of the remaining wrapped content, as a percentage of\n          width, is less than this quantity it will be right-aligned.\n          Otherwise it will be left-aligned.\n\n          [default: 37.0]\n\n      --wrap-right-prefix-symbol <STRING>\n          Pre-wrapped content symbol (right-aligned).\n\n          Symbol displayed before right-aligned wrapped content.\n\n          [default: …]\n\n      --wrap-right-symbol <STRING>\n          End-of-line wrapped content symbol (right-aligned).\n\n          Symbol added to the end of a line indicating that the content has\n          been wrapped onto the next line and continues right-aligned.\n\n          [default: ↴]\n\n      --zero-style <STYLE>\n          Style string for unchanged lines.\n\n          See STYLES section.\n\n          [default: \"syntax normal\"]\n\n      --24-bit-color <auto|always|never>\n          Deprecated: use --true-color\n\n          [possible values: auto, always, never]\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version\n\n\nGit config\n\n  By default, delta takes settings from a section named \"delta\" in git config\n  files, if one is present. The git config file to use for delta options will\n  usually be ~/.gitconfig, but delta follows the rules given in\n  <https://git-scm.com/docs/git-config#FILES>. Most delta options can be\n  given in a git config file, using the usual option names but without the\n  initial '--'. An example is\n\n  [delta]\n      line-numbers = true\n      zero-style = dim syntax\n\n\nFeatures\n\n  A feature is a named collection of delta options in git config. An example\n  is:\n\n  [delta \"my-delta-feature\"]\n      syntax-theme = Dracula\n      plus-style = bold syntax \"#002800\"\n\n  To activate those options, you would use:\n\n  delta --features my-delta-feature\n\n  A feature name may not contain whitespace. You can activate multiple\n  features:\n\n  [delta]\n      features = my-highlight-styles-colors-feature my-line-number-styles-feature\n\n  If more than one feature sets the same option, the last one wins.\n\n  If an option is present in the [delta] section, then features are not\n  considered at all.\n\n  If you want an option to be fully overridable by a feature and also have a\n  non default value when no features are used, then you need to define a\n  \"default\" feature and include it in the main delta configuration.\n\n  For instance:\n\n  [delta]\n      feature = default-feature\n\n  [delta \"default-feature\"]\n      width = 123\n\n  At this point, you can override features set in the command line or in the\n  environment variables and the \"last one wins\" rules will apply as expected.\n\n\nStyles\n\n  All options that have a name like --*-style work the same way. It is very\n  similar to how colors/styles are specified in a gitconfig file:\n  <https://git-scm.com/docs/git-config#Documentation/git-config.txt-color>\n\n  Here is an example:\n\n  --minus-style 'red bold ul \"#ffeeee\"'\n\n  That means: For removed lines, set the foreground (text) color to 'red',\n  make it bold and underlined, and set the background color to '#ffeeee'.\n\n  See the Colors section below for how to specify a color. In addition to\n  real colors, there are 4 special color names: 'auto', 'normal', 'raw', and\n  'syntax'.\n\n  Here is an example of using special color names together with a single\n  attribute:\n\n  --minus-style 'syntax bold auto'\n\n  That means: For removed lines, syntax-highlight the text, and make it bold,\n  and do whatever delta normally does for the background.\n\n  The available attributes are: 'blink', 'bold', 'dim', 'hidden', 'italic',\n  'reverse', 'strike', and 'ul' (or 'underline').\n\n  The attribute 'omit' is supported by commit-style, file-style, and\n  hunk-header-style, meaning to remove the element entirely from the output.\n\n  A complete description of the style string syntax follows:\n\n  - If the input that delta is receiving already has colors, and you want\n    delta to output those colors unchanged, then use the special style string\n    'raw'. Otherwise, delta will strip any colors from its input.\n\n  - A style string consists of 0, 1, or 2 colors, together with an arbitrary\n    number of style attributes, all separated by spaces.\n\n  - The first color is the foreground (text) color. The second color is the\n    background color. Attributes can go in any position.\n\n  - This means that in order to specify a background color you must also\n    specify a foreground (text) color.\n\n  - If you want delta to choose one of the colors automatically, then use the\n    special color 'auto'. This can be used for both foreground and\n    background.\n\n  - If you want the foreground/background color to be your terminal's\n    foreground/background color, then use the special color 'normal'.\n\n  - If you want the foreground text to be syntax-highlighted according to its\n    language, then use the special foreground color 'syntax'. This can only\n    be used for the foreground (text).\n\n  - The minimal style specification is the empty string ''. This means: do\n    not apply any colors or styling to the element in question.\n\n\nColors\n\n  There are four ways to specify a color (this section applies to foreground\n  and background colors within a style string):\n\n  1. CSS color name\n\n     Any of the 140 color names used in CSS:\n     <https://www.w3schools.com/colors/colors_groups.asp>\n\n  2. RGB hex code\n\n     An example of using an RGB hex code is:\n     --file-style=\"#0e7c0e\"\n\n  3. ANSI color name\n\n     There are 8 ANSI color names:\n     black, red, green, yellow, blue, magenta, cyan, white.\n\n     In addition, all of them have a bright form:\n     brightblack, brightred, brightgreen, brightyellow, brightblue,\n     brightmagenta, brightcyan, brightwhite.\n\n     An example of using an ANSI color name is:\n     --file-style=\"green\"\n\n     Unlike RGB hex codes, ANSI color names are just names: you can choose\n     the exact color that each name corresponds to in the settings of your\n     terminal application (the application you use to enter commands at a\n     shell prompt). This means that if you use ANSI color names, and you\n     change the color theme used by your terminal, then delta's colors will\n     respond automatically, without needing to change the delta command line.\n\n     \"purple\" is accepted as a synonym for \"magenta\". Color names and codes\n     are case-insensitive.\n\n  4. ANSI color number\n\n     An example of using an ANSI color number is:\n     --file-style=28\n\n     There are 256 ANSI color numbers: 0-255. The first 16 are the same as\n     the colors described in the \"ANSI color name\" section above. See\n     <https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit>. Specifying\n     colors like this is useful if your terminal only supports 256 colors\n     (i.e. doesn't support 24-bit color).\n\n\nLine Numbers\n\n  To display line numbers, use --line-numbers.\n\n  Line numbers are displayed in two columns. Here's what it looks like by\n  default:\n\n    1 ⋮  1 │ unchanged line\n    2 ⋮    │ removed line\n      ⋮  2 │ added line\n\n  In that output, the line numbers for the old (minus) version of the file\n  appear in the left column, and the line numbers for the new (plus) version\n  of the file appear in the right column. In an unchanged (zero) line, both\n  columns contain a line number.\n\n  The following options allow the line number display to be customized:\n\n  --line-numbers-left-format:  Change the contents of the left column\n  --line-numbers-right-format: Change the contents of the right column\n  --line-numbers-left-style:   Change the style applied to the left column\n  --line-numbers-right-style:  Change the style applied to the right column\n  --line-numbers-minus-style:  Change the style applied to line numbers in\n  minus lines\n  --line-numbers-zero-style:   Change the style applied to line numbers in\n  unchanged lines\n  --line-numbers-plus-style:   Change the style applied to line numbers in\n  plus lines\n\n  Options --line-numbers-left-format and --line-numbers-right-format allow\n  you to change the contents of the line number columns. Their values are\n  arbitrary format strings, which are allowed to contain the placeholders\n  {nm} for the line number associated with the old version of the file and\n  {np} for the line number associated with the new version of the file. The\n  placeholders support a subset of the string formatting syntax documented\n  here: <https://doc.rust-lang.org/std/fmt/#formatting-parameters>.\n  Specifically, you can use the alignment and width syntax.\n\n  For example, the default value of --line-numbers-left-format is '{nm:^4}⋮'.\n  This means that the left column should display the minus line number (nm),\n  center-aligned, padded with spaces to a width of 4 characters, followed by\n  a unicode dividing-line character (⋮).\n\n  Similarly, the default value of --line-numbers-right-format is '{np:^4}│'.\n  This means that the right column should display the plus line number (np),\n  center-aligned, padded with spaces to a width of 4 characters, followed by\n  a unicode dividing-line character (│).\n\n  Use '<' for left-align, '^' for center-align, and '>' for right-align.\n\n\nSupport\n\n  If something isn't working correctly, or you have a feature request, please\n  open an issue at <https://github.com/dandavison/delta/issues>.\n\n  For a short help summary, please use delta -h.\n```\n"
  },
  {
    "path": "manual/src/get-started.md",
    "content": "# Get started\n\n[Install](./installation.md) delta and add this to your `~/.gitconfig`:\n\n```gitconfig\n[core]\n    pager = delta\n\n[interactive]\n    diffFilter = delta --color-only\n\n[delta]\n    navigate = true  # use n and N to move between diff sections\n    dark = true      # or `light = true`, or omit for auto-detection\n\n[merge]\n    conflictStyle = zdiff3\n```\n"
  },
  {
    "path": "manual/src/git-blame.md",
    "content": "# Git blame\n\nSet delta as the pager for `blame` in the `[pager]` section of your gitconfig: see the [example gitconfig](./get-started.md).\nIf `hyperlinks` is enabled in the `[delta]` section then each blame commit will link to the commit on GitHub/GitLab/Bitbucket/etc.\n See [hyperlinks](./hyperlinks.md).\n\n<table><tr><td><img width=600px src=\"https://user-images.githubusercontent.com/52205/141891376-1fdb87dc-1d9c-4ad6-9d72-eeb19a8aeb0b.png\" alt=\"image\" /></td></tr></table>\n"
  },
  {
    "path": "manual/src/grep.md",
    "content": "# Grep\n\nDelta applies syntax-highlighting and other enhancements to standard grep output such as from [ripgrep](https://github.com/BurntSushi/ripgrep/) (aka `rg`), `git grep`, grep, etc.\nIf you don't need special features of `git grep`, then for best results pipe `rg --json` output to delta: this avoids parsing ambiguities that are inevitable with the output of `git grep` and `grep`.\nTo customize the colors and syntax highlighting, see the `grep-*` options in `delta --help`.\n\nNote that `git grep` can display the \"function context\" for matches and that delta handles this output specially: see the `-p` and `-W` options of `git grep`.\n\n```sh\nrg --json -C 2 handle | delta\n```\n\n<table><tr><td>\n<img width=\"600px\" alt=\"image\" src=\"https://github.com/dandavison/open-in-editor/assets/52205/d203d380-5acb-4296-aeb9-e38c73d6c27f\">\n</td></tr></table>\n\nWith `hyperlinks` enabled, the line numbers in the grep output will be clickable links. See [hyperlinks](./hyperlinks.md).\n"
  },
  {
    "path": "manual/src/how-delta-works.md",
    "content": "# How delta works\n\nIf you configure delta in gitconfig as above, then git will automatically send its output to delta.\nDelta in turn passes its own output on to a \"real\" pager.\nNote that git will only send its output to delta if git believes that its output is going to a terminal (a \"tty\") for a human to read.\nIn other words, if you do something like `git diff | grep ...` then you don't have to worry about delta changing the output from git, because delta will never be invoked at all.\nIf you need to force delta to be invoked when git itself would not invoke it, then you can always pipe to delta explicitly.\nFor example, `git diff | delta | something-that-expects-delta-output-with-colors` (in this example, git's output is being sent to a pipe, so git itself will not invoke delta).\nIn general however, delta's output is intended for humans, not machines.\n\nIf you are interested in the implementation of delta, please see [ARCHITECTURE.md](https://github.com/dandavison/delta/blob/main/ARCHITECTURE.md).\n"
  },
  {
    "path": "manual/src/hyperlinks.md",
    "content": "# Hyperlinks\n\nDelta uses [terminal hyperlinks](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda) to turn line numbers, file paths, commit hashes, etc into clickable links, as long as your terminal emulator supports it. Enable the feature with\n\n```gitconfig\n[delta]\n    hyperlinks = true\n```\n\nCommit hashes link to GitHub/GitLab/Bitbucket (use `hyperlinks-commit-link-format` for full control).\n\nThe links on line numbers (in grep output, as well as diffs) are particularly interesting: with a little bit of effort, they can be made to open your editor or IDE at the correct line.\nUse `hyperlinks-file-link-format` to construct the correct URL for your system.\nFor VSCode and JetBrains IDEs this is easy, since they support their own special URL protocols. Here are examples:\n\n```gitconfig\n[delta]\n    hyperlinks = true\n    hyperlinks-file-link-format = \"vscode://file/{path}:{line}\"\n    # hyperlinks-file-link-format = \"idea://open?file={path}&line={line}\"\n    # hyperlinks-file-link-format = \"pycharm://open?file={path}&line={line}\"\n```\n\nZed also supports its own URL protocol, and probably others.\n\nIf your editor does not have its own URL protocol, then there are still many possibilities, although they may be more work.\n\n- The easiest is probably to write a toy HTTP server (e.g. in [Python](https://docs.python.org/3/library/http.server.html)) that opens the links in the way that you need. Then your delta config would look something like\n    ```gitconfig\n    [delta]\n    hyperlinks = true\n    hyperlinks-file-link-format = \"http://localhost:8000/open-in-editor?path={path}&line={line}\"\n    # Now write an HTTP server that handles those requests by opening your editor at the file and line\n    ```\n\n    Here's some Python code that could be used as a starting point:\n    ```python\n    from http.server import BaseHTTPRequestHandler, HTTPServer\n    from pathlib import Path\n    from subprocess import call\n    from urllib.parse import parse_qs, urlparse\n\n\n    class OpenInEditor(BaseHTTPRequestHandler):\n        def do_GET(self):\n            if self.path.startswith(\"/open-in-editor\"):\n                query = parse_qs(urlparse(self.path).query)\n                [path], [line] = query[\"path\"], query[\"line\"]\n                # TODO: You might need to change this to construct the correct root directory for the\n                # project that the file is in, so that your IDE opens in the project workspace.\n                cwd = Path(path).parent\n                # TODO: Replace with the appropriate command for your editor\n                call([\"code\", \"-g\", f\"{path}:{line}\"], cwd=cwd)\n                self.send_response(200)\n            else:\n                self.send_response(404)\n            self.end_headers()\n\n\n    print(\"Starting open-in-editor server on port 8000...\")\n    HTTPServer((\"\", 8000), OpenInEditor).serve_forever()\n    ```\n\n- Another possibility is to register a custom protocol with your OS (like VSCode does) that invokes a script to open the file. [dandavison/open-in-editor](https://github.com/dandavison/open-in-editor) is a project that aimed to do that and may be helpful. However, registering the protocol with your OS can be frustrating, depending on your appetite for such things. If you go this route, your delta configuration would look like\n    ```gitconfig\n    [delta]\n    hyperlinks = true\n    hyperlinks-file-link-format = \"my-file-line-protocol://{path}:{line}\"\n    # Now configure your OS to handle \"my-file-line-protocol\" URLs!\n    ```\n- Finally, you can just use traditional `file://` links (making sure your OS is configured to use the correct editor). But then your editor won't open the file at the correct line, which would be missing out on something very useful."
  },
  {
    "path": "manual/src/installation.md",
    "content": "# Installation\n\nYou can download an executable for your system:\n[Linux (glibc)](https://github.com/dandavison/delta/releases/download/0.18.2/delta-0.18.2-x86_64-unknown-linux-gnu.tar.gz)\n|\n[Linux (musl)](https://github.com/dandavison/delta/releases/download/0.18.2/delta-0.18.2-x86_64-unknown-linux-musl.tar.gz)\n|\n[MacOS](https://github.com/dandavison/delta/releases/download/0.18.2/delta-0.18.2-x86_64-apple-darwin.tar.gz)\n|\n[Windows](https://github.com/dandavison/delta/releases/download/0.18.2/delta-0.18.2-x86_64-pc-windows-msvc.zip)\n|\n[All](https://github.com/dandavison/delta/releases)\n\nAlternatively you can install delta using a package manager: see [repology.org/git-delta](https://repology.org/project/git-delta/versions).\n\nNote that the package is often called `git-delta`, but the executable installed is called `delta`. Here is a quick summary for selected package managers:\n\n<table>\n  <tr>\n    <td><a href=\"https://archlinux.org/packages/extra/x86_64/git-delta/\">Arch Linux</a></td>\n    <td><code>pacman -S git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://crates.io/crates/git-delta\">Cargo</a></td>\n    <td><code>cargo install git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://src.fedoraproject.org/rpms/rust-git-delta\">Fedora</a></td>\n    <td><code>dnf install git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://pkgs.org/download/git-delta\">FreeBSD</a></td>\n    <td><code>pkg install git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://packages.gentoo.org/packages/dev-util/git-delta\">Gentoo</a></td>\n    <td><code>emerge dev-util/git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://formulae.brew.sh/formula/git-delta\">Homebrew</a></td>\n    <td><code>brew install git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://ports.macports.org/port/git-delta/summary\">MacPorts</a></td>\n    <td><code>port install git-delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://search.nixos.org/packages?show=delta&query=delta\">Nix</a></td>\n    <td><code>nix-env -iA nixpkgs.delta</code>\n  </tr>\n  <tr>\n    <td><a href=\"https://cvsweb.openbsd.org/ports/textproc/delta/\">OpenBSD</a></td>\n    <td><code>pkg_add delta</code></td>\n  </tr>\n  <tr>\n    <td><a href=\"https://software.opensuse.org/package/git-delta\">openSUSE</a></td>\n    <td><code>zypper install git-delta</code>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/void-linux/void-packages/tree/master/srcpkgs/delta\">Void Linux</a></td>\n    <td><code>xbps-install -S delta</code>\n  </tr>\n  <tr>\n    <td>Windows (<a href=\"https://chocolatey.org/packages/delta\">Chocolatey</a>)</td>\n    <td><code>choco install delta</code></td>\n  </tr>\n  <tr>\n    <td>Windows (<a href=\"https://scoop.sh/\">Scoop</a>)</td>\n    <td><code>scoop install delta</code></td>\n  </tr>\n  <tr>\n    <td>Windows (<a href=\"https://learn.microsoft.com/en-us/windows/package-manager/\">Winget</a>)</td>\n    <td><code>winget install dandavison.delta</code></td>\n  </tr>\n  <tr>\n    <td>Debian / Ubuntu</td>\n    <td>\n      <code>dpkg -i file.deb</code>\n      <br>\n      .deb files are on the <a href=\"https://github.com/dandavison/delta/releases\">releases</a> page.\n      <br>\n      <sup>If you are using Ubuntu <= 19.10 or are mixing apt sources, please read <a href=\"https://github.com/dandavison/delta/issues/504\">#504</a>.</sup>\n    </td>\n  </tr>\n  <tr>\n    <td><a href=\"https://anaconda.org/conda-forge/git-delta\">conda</a></td>\n    <td>\n      <code>conda install git-delta -c conda-forge</code>\n      <br>\n      <code>mamba install git-delta -c conda-forge</code>\n    </td>\n  </tr>\n</table>\n\nUsers of older MacOS versions (e.g. 10.11 El Capitan) should install using Homebrew, Cargo, or MacPorts: the binaries on the release page will not work.\n\nBehind the scenes, delta uses [`less`](https://www.greenwoodsoftware.com/less/) for paging.\nIt's important to have a reasonably recent version of less installed.\nOn MacOS, install `less` from Homebrew. For Windows, see [Using Delta on Windows](./tips-and-tricks/using-delta-on-windows.md).\n\nIf you use [`bat`](https://github.com/sharkdp/bat) and are running `bat cache --build` to install custom themes or language syntaxes then you should install the same version of bat as specified in the [`Cargo.toml`](https://github.com/dandavison/delta/blob/main/Cargo.toml) for the delta release you're using, otherwise delta will crash with a [memory error](https://github.com/dandavison/delta/issues/1712). The current version of delta does not work with bat v0.18.3 or prior versions.\n"
  },
  {
    "path": "manual/src/introduction.md",
    "content": "# A syntax-highlighting pager for git, diff, and grep output\n\nCode evolves, and we all spend time studying diffs. Delta aims to make this both efficient and enjoyable: it allows you to make extensive changes to the layout and styling of diffs, as well as allowing you to stay arbitrarily close to the default git/diff output.\n\n<table>\n  <tr>\n    <td>\n      <img width=400px src=\"https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png\" alt=\"image\" />\n      <br>\n      <sub>delta with <code>line-numbers</code> activated</sub>\n    </td>\n  </tr>\n</table>\n\n<table>\n  <tr>\n    <td>\n      <img width=800px src=\"https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png\" alt=\"image\" />\n      <br>\n      <sub>delta with <code>side-by-side</code> and <code>line-numbers</code> activated</sub>\n    </td>\n  </tr>\n</table>\n"
  },
  {
    "path": "manual/src/line-numbers.md",
    "content": "# Line numbers\n\n```gitconfig\n[delta]\n    line-numbers = true\n```\n\n<table><tr><td><img width=400px src=\"https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png\" alt=\"image\" /></td></tr></table>\n\nThe numbers are displayed in two columns and there are several configuration options: see the `LINE NUMBERS` section in [`delta --help`](./full---help-output.md) for details, and see the next section for an example of configuring line numbers.\n"
  },
  {
    "path": "manual/src/merge-conflicts.md",
    "content": "# Merge conflicts\n\nConsider setting [`merge.conflictStyle`](https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle) to `zdiff3`:\n\n```gitconfig\n[merge]\n    conflictStyle = zdiff3\n```\n\nWith that setting, when a merge conflict is encountered, Git will display merge conflicts with the contents of the merge base as well.\ndelta will then display this as two diffs, from the ancestor to each side of the conflict:\n\n<table><tr><td><img width=500px src=\"https://user-images.githubusercontent.com/52205/144783121-bb549100-69d8-41b8-ac62-1704f1f7b43e.png\" alt=\"image\" /></td></tr></table>\n\nThis display can be customized using `merge-conflict-begin-symbol`, `merge-conflict-end-symbol`, `merge-conflict-ours-diff-header-style`, `merge-conflict-ours-diff-header-decoration-style`, `merge-conflict-theirs-diff-header-style`, `merge-conflict-theirs-diff-header-decoration-style`.\n"
  },
  {
    "path": "manual/src/navigation-keybindings-for-large-diffs.md",
    "content": "# Navigation keybindings for large diffs\n\nUse the `navigate` feature to activate navigation keybindings. In this mode, pressing `n` will jump forward to the next file in the diff, and `N` will jump backwards. If you are viewing multiple commits (e.g. via `git log -p`) then navigation will also visit commit boundaries.\n"
  },
  {
    "path": "manual/src/related-projects.md",
    "content": "# Related projects\n\n## Used by delta\n\n- [alacritty/vte](https://github.com/alacritty/vte)\n- [mitsuhiko/console](https://github.com/mitsuhiko/console)\n- [ogham/rust-ansi-term](https://github.com/ogham/rust-ansi-term)\n- [sharkdp/bat](https://github.com/sharkdp/bat)\n- [trishume/syntect](https://github.com/trishume/syntect)\n\n## Using delta\n\n- [bigH/git-fuzzy](https://github.com/bigH/git-fuzzy)\n- [dandavison/magit-delta](https://github.com/dandavison/magit-delta)\n- [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit/)\n- [junegunn/fzf.vim](https://github.com/junegunn/fzf.vim)\n- [ms-jpq/sad](https://github.com/ms-jpq/sad)\n- [wfxr/forgit](https://github.com/wfxr/forgit)\n\n## Similar projects\n\n- [banga/git-split-diffs](https://github.com/banga/git-split-diffs)\n- [da-x/fancydiff](https://github.com/da-x/fancydiff)\n- [git/diff-highlight](https://github.com/git/git/tree/master/contrib/diff-highlight)\n- [jeffkaufman/icdiff](https://github.com/jeffkaufman/icdiff)\n- [kovidgoyal/kitty-diff](https://sw.kovidgoyal.net/kitty/kittens/diff.html)\n- [mookid/diffr](https://github.com/mookid/diffr)\n- [nkouevda/pdiff](https://github.com/nkouevda/pdiff)\n- [so-fancy/diff-so-fancy](https://github.com/so-fancy/diff-so-fancy)\n- [walles/riff](https://github.com/walles/riff)\n- [Wilfred/difftastic](https://github.com/Wilfred/difftastic)\n"
  },
  {
    "path": "manual/src/side-by-side-view.md",
    "content": "# Side-by-side view\n\n```gitconfig\n[delta]\n    side-by-side = true\n```\n\nBy default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [[config](./side-by-side-view-1.md)]\n\n<table><tr><td><img width=800px src=\"https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png\" alt=\"image\" /></td></tr></table>\n\nTo activate and deactivate side-by-side view from the command line, consider using the [`DELTA_FEATURES`](./features-named-groups-of-settings.md) environment variable. For example:\n\n```sh\nexport DELTA_FEATURES=+side-by-side # activate\nexport DELTA_FEATURES=+             # deactivate\n```\n\nTo disable the line numbers in side-by-side view, but keep a vertical delimiter line between the left and right panels, use the line-numbers format options. For example:\n\n```gitconfig\n[delta]\n    side-by-side = true\n    line-numbers-left-format = \"\"\n    line-numbers-right-format = \"│ \"\n```\n\nLong lines are wrapped if they do not fit in side-by-side mode.\nIn the image below, the long deleted line in the left panel overflows by a small amount, and the wrapped content is right-aligned in the next line.\nIn contrast, the long replacement line in the right panel overflows by almost an entire line, and so the wrapped content is left aligned in the next line. The arrow markers and ellipsis explain when and how text has been wrapped.\n\n<table><tr><td><img width=600px src=\"https://user-images.githubusercontent.com/52205/139064537-f8479504-16d3-429a-b4f6-d0122438adaa.png\" alt=\"image\" /></td></tr></table>\n\nFor control over the details of line wrapping, see `--wrap-max-lines`, `--wrap-left-symbol`, `--wrap-right-symbol`, `--wrap-right-percent`, `--wrap-right-prefix-symbol`, `--inline-hint-style`.\nLine wrapping was implemented by @th1000s.\n"
  },
  {
    "path": "manual/src/supported-languages-and-themes.md",
    "content": "# Supported languages and themes\n\nTo list the supported languages and color themes, use `delta --list-languages` and `delta --list-syntax-themes`. To see a demo of the color themes, use `delta --show-syntax-themes`:\n\nTo add your own custom color theme, or language, please follow the instructions in the Customization section of the [bat documentation](https://github.com/sharkdp/bat/#customization):\n\n- [Adding a custom language](https://github.com/sharkdp/bat/#adding-new-syntaxes--language-definitions)\n- [Adding a custom theme](https://github.com/sharkdp/bat/#adding-new-themes)\n\nDelta automatically recognizes custom themes and languages added to bat. You will need to install bat in order to run the `bat cache --build` command. Ideally, the version of bat you install should match the version specified in delta's [`Cargo.toml`](https://github.com/dandavison/delta/blob/main/Cargo.toml) for the delta release you're using. There are [known problems](https://github.com/dandavison/delta/issues/1712) with bat v0.18.3 and below.\n\nThe languages and color themes that ship with delta are those that ship with bat. So, to propose a new language or color theme for inclusion in delta, it would need to be a helpful addition to bat, in which case please open a PR against bat.\n\n"
  },
  {
    "path": "manual/src/tips-and-tricks/24-bit-color-truecolor.md",
    "content": "# 24 bit color (truecolor)\n\nDelta looks best if your terminal application supports 24 bit colors. See <https://github.com/termstandard/colors#readme>. For example, on MacOS, iTerm2 supports 24-bit colors but Terminal.app does not.\n\nIf your terminal application does not support 24-bit color, delta will still work, by automatically choosing the closest color from those available. See the `Colors` section of the help output below.\n\nIf 24-bit color is supported by your terminal emulator, then it should have set the `COLORTERM` env var to the value `truecolor` (or `24bit`). If necessary, you can explicitly enable true color, either by using `--true-color=always` or by adding the following to your configuration file:\n\n```gitconfig\n[delta]\n    true-color = always\n```\n"
  },
  {
    "path": "manual/src/tips-and-tricks/export-to-html.md",
    "content": "# Save output with colors to HTML/PDF etc\n\nInstall [ansifilter](https://formulae.brew.sh/formula/ansifilter).\n\n```sh\ngit show \\\n    | delta --no-gitconfig --file-decoration-style blue --hunk-header-decoration-style blue \\\n    | ansifilter --html \\\n    > /tmp/diff.html\n```\n\nNow open `/tmp/diff.html` in a web browser, print to PDF, etc.\n\nRemove the `--no-gitconfig` above to use your own delta style, but note that `ansifilter` does not handle hyperlinks or decoration boxes etc.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/mouse-scrolling.md",
    "content": "# Mouse scrolling\n\nIf mouse scrolling isn't working correctly, ensure that you have the most recent version of `less`.\n\n- For Windows you can download from <https://github.com/jftuga/less-Windows/releases/latest>\n- For Mac you can install `brew install less; brew link less`\n\nAlternatively try setting your `DELTA_PAGER` environment variable to (at least) `less -R`. See [issue #58](https://github.com/dandavison/delta/issues/58). See also [bat README / \"Using a different pager\"](https://github.com/sharkdp/bat#using-a-different-pager), since the `DELTA_PAGER` environment variable functions very similarly for delta.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/shell-completion.md",
    "content": "# Generating completion files for various shells\n\nDelta can generate completion files for various shells.\nUse the `--generate-completion` subcommand to print the completion script to stdout:\n\n```sh\ndelta --generate-completion <SHELL>\n```\n<SHELL> should be replaced with the lowercase name of the shell for which the script is to be generated.\nCurrently bash, elvish, fish, powershell and zsh are supported.\n\nThe completion files in `etc/completion` were also generated with this function and may not be up-to-date.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/tips-and-tricks.md",
    "content": "# Tips & tricks\n"
  },
  {
    "path": "manual/src/tips-and-tricks/toggling-delta-features.md",
    "content": "To toggle features such as `side-by-side` on and off, you need to *not* turn on `line-numbers` or `side-by-side` etc in your main delta config (`~/.gitconfig`). Then, one approach is to use the [`DELTA_FEATURES](../features-named-groups-of-settings.md)` environment variable:\n\n```sh\nexport DELTA_FEATURES=+side-by-side\n```\n\nand to undo that:\n\n```sh\nexport DELTA_FEATURES=+\n```\n\nTo make that convenient, you could use this shell function:\n\n```sh\ndelta-toggle() {\n    eval \"export DELTA_FEATURES='$(-delta-features-toggle $1 | tee /dev/stderr)'\"\n}\n```\nwhere `-delta-features-toggle` is this Python script:\n[https://github.com/dandavison/tools/blob/main/python/-delta-features-toggle](https://github.com/dandavison/tools/blob/main/python/-delta-features-toggle).\n\n\nThen\n\n```\ndelta-toggle    # shows current features\ndelta-toggle s  # toggles side-by-side\ndelta-toggle l  # toggles line-numbers\n```\n\n(It might make sense to add something like this Python script to `delta` itself.)\n\nAnother approach is to use git aliases, e.g.\n\n```gitconfig\n[alias]\n    diff-side-by-side = -c delta.features=side-by-side diff\n```\n"
  },
  {
    "path": "manual/src/tips-and-tricks/using-delta-on-windows.md",
    "content": "# Using Delta on Windows\n\nDelta works on Windows. However, it is essential to use a recent version of `less.exe`: you can download one from <https://github.com/jftuga/less-Windows/releases/latest>. If you see incorrect colors and/or strange characters in Delta output, then it is probably because Delta is picking up an old version of `less.exe` on your system.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/using-delta-with-gnu-screen.md",
    "content": "# Using Delta with GNU Screen\n\nTrue color output in GNU Screen is currently only possible when using a development build, as support for it is not yet implemented in the (v4) release versions. A snapshot of the latest Git trunk can be obtained via https://git.savannah.gnu.org/cgit/screen.git/snapshot/screen-master.tar.gz - the required build steps are described in the `src/INSTALL` file. After installing the program, 24-bit color support can be activated by including `truecolor on` in either the system's or the user's `screenrc` file.\n\nWhen working in Screen without true color output, it might be that colors supposed to be different look the same in XTerm compatible terminals. If that is the case, make sure the following settings are included in your `screenrc` file:\n\n```Shell\nterm screen-256color\ntermcapinfo xterm 'Co#256:AB=\\E[48;5;%dm:AF=\\E[38;5;%dm'  # ANSI (256-color) patterns - AB: background, AF: foreground\nattrcolor b \".I\"                                          # use bright colors for bold text\n```\n\nIf despite having those settings you still only get a limited set of colors, your build of Screen might have been configured without the `--enable-colors256` flag. If this is the case, you have two options :\n\n- If available for your OS, get a different package of Screen. Otherwise\n- Build your own binary :\n  - Download and extract a release tarball from https://ftp.gnu.org/gnu/screen/\n  - `cd` into the newly extracted folder\n  - Follow the instructions in the `INSTALL` file, and when running the `./configure` command apply the `--enable-colors256` flag.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/using-delta-with-magit.md",
    "content": "# Using Delta with Magit\n\nDelta can be used when displaying diffs in the Magit git client: see [magit-delta](https://github.com/dandavison/magit-delta). Here's a screenshot:\n\n<table><tr><td><img width=500px src=\"https://user-images.githubusercontent.com/52205/79934267-2acb2e00-8420-11ea-8bc4-546508fd3581.png\" alt=\"image\" /></td></tr></table>\n"
  },
  {
    "path": "manual/src/tips-and-tricks/using-delta-with-tmux.md",
    "content": "# Using Delta with tmux\n\nIf you're using tmux, it's worth checking that 24 bit color is working correctly. For example, run a color test script like [this one](https://gist.githubusercontent.com/lifepillar/09a44b8cf0f9397465614e622979107f/raw/24-bit-color.sh), or one of the others listed [here](https://gist.github.com/XVilka/8346728). If you do not see smooth color gradients, see the discussion at [tmux#696](https://github.com/tmux/tmux/issues/696). The short version is you need something like this in your `~/.tmux.conf`:\n\n```Shell\nset -ga terminal-overrides \",*-256color:Tc\"\n```\n\nand you may then need to quit tmux completely for it to take effect.\n\nIf colors look wrong, then see the page on [truecolor/24-bit color](./24-bit-color-truecolor.md) to ensure that this is working correctly.\n"
  },
  {
    "path": "manual/src/tips-and-tricks/using-delta-with-vscode.md",
    "content": "# Using Delta with VSCode\n\nAll Delta features work correctly in VSCode's terminal emulator (please open an issue if that's not true).\n\nTo format file links for opening in VSCode from other terminal emulators, use the [VSCode URL handler](https://code.visualstudio.com/docs/editor/command-line#_opening-vs-code-with-urls):\n\n```gitconfig\n[delta]\n   hyperlinks = true\n   hyperlinks-file-link-format = \"vscode://file/{path}:{line}\"\n```\n\n(To use VSCode Insiders, change that to `vscode-insiders://file/{path}:{line}`).\n\n See [hyperlinks](../hyperlinks.md).\n"
  },
  {
    "path": "manual/src/tips-and-tricks.md",
    "content": "# Tips & tricks\n\nDelta has a number of options to configure the appearance and behavior of the user interface, and integrate with other programs, including the programmable completion features of various shells.\n\nThe following sections discuss these features and integrations.\n"
  },
  {
    "path": "manual/src/usage.md",
    "content": "# Usage\n\nThe main way to use delta is to configure it as the pager for git: see [Configuration](./configuration.md).\n\nDelta can also be used as a shorthand for diffing two files, even if they are not in a git repo: the following two commands do the same thing:\n\n```sh\ndelta /somewhere/a.txt /somewhere/else/b.txt\n\ngit diff /somewhere/a.txt /somewhere/else/b.txt\n```\n\nYou can also use [process substitution](https://en.wikipedia.org/wiki/Process_substitution) shell syntax with delta, e.g.\n\n```sh\ndelta <(sort file1) <(sort file2)\n```\n\nIn addition to git output, delta handles standard unified diff format, e.g. `diff -u a.txt b.txt | delta`.\n\nFor Mercurial, you can add delta, with its command line options, to the `[pager]` section of `.hgrc`.\n"
  },
  {
    "path": "src/align.rs",
    "content": "use std::cmp::max;\nuse std::collections::VecDeque;\n\nconst DELETION_COST: usize = 2;\nconst INSERTION_COST: usize = 2;\n// extra cost for starting a new group of changed tokens\nconst INITIAL_MISMATCH_PENALTY: usize = 1;\n\n#[derive(Clone, Copy, Debug, PartialEq, Eq)]\npub enum Operation {\n    NoOp,\n    Deletion,\n    Insertion,\n}\n\nuse Operation::*;\n\n/// Needleman-Wunsch / Wagner-Fischer table for computation of edit distance and associated\n/// alignment.\n#[derive(Clone, Debug)]\nstruct Cell {\n    parent: usize,\n    operation: Operation,\n    cost: usize,\n}\n\n#[derive(Debug)]\npub struct Alignment<'a> {\n    pub x: Vec<&'a str>,\n    pub y: Vec<&'a str>,\n    table: Vec<Cell>,\n    dim: [usize; 2],\n}\n\nimpl<'a> Alignment<'a> {\n    /// Fill table for Levenshtein distance / alignment computation\n    pub fn new(x: Vec<&'a str>, y: Vec<&'a str>) -> Self {\n        // TODO: Something downstream of the alignment algorithm requires that the first token in\n        // both x and y is \"\", so this is explicitly inserted in `tokenize()`.\n        let dim = [y.len() + 1, x.len() + 1];\n        let table = vec![\n            Cell {\n                parent: 0,\n                operation: NoOp,\n                cost: 0\n            };\n            dim[0] * dim[1]\n        ];\n        let mut alignment = Self { x, y, table, dim };\n        alignment.fill();\n        alignment\n    }\n\n    /// Fill table for Levenshtein distance / alignment computation\n    pub fn fill(&mut self) {\n        // x is written along the top of the table; y is written down the left side of the\n        // table. Also, we insert a 0 in cell (0, 0) of the table, so x and y are shifted by one\n        // position. Therefore, the element corresponding to (x[i], y[j]) is in column (i + 1) and\n        // row (j + 1); the index of this element is given by index(i, j).\n        for i in 1..self.dim[1] {\n            self.table[i] = Cell {\n                parent: 0,\n                operation: Deletion,\n                cost: i * DELETION_COST + INITIAL_MISMATCH_PENALTY,\n            };\n        }\n        for j in 1..self.dim[0] {\n            self.table[j * self.dim[1]] = Cell {\n                parent: 0,\n                operation: Insertion,\n                cost: j * INSERTION_COST + INITIAL_MISMATCH_PENALTY,\n            };\n        }\n\n        for (i, x_i) in self.x.iter().enumerate() {\n            for (j, y_j) in self.y.iter().enumerate() {\n                let (left, diag, up) =\n                    (self.index(i, j + 1), self.index(i, j), self.index(i + 1, j));\n                // The order of the candidates matters if two of them have the\n                // same cost as in that case we choose the first one. Consider\n                // insertions and deletions before matches in order to group\n                // changes together. Insertions are preferred to deletions in\n                // order to highlight moved tokens as a deletion followed by an\n                // insertion (as the edit sequence is read backwards we need to\n                // choose the insertion first)\n                let candidates = [\n                    Cell {\n                        parent: up,\n                        operation: Insertion,\n                        cost: self.mismatch_cost(up, INSERTION_COST),\n                    },\n                    Cell {\n                        parent: left,\n                        operation: Deletion,\n                        cost: self.mismatch_cost(left, DELETION_COST),\n                    },\n                    Cell {\n                        parent: diag,\n                        operation: NoOp,\n                        cost: if x_i == y_j {\n                            self.table[diag].cost\n                        } else {\n                            usize::MAX\n                        },\n                    },\n                ];\n                let index = self.index(i + 1, j + 1);\n                self.table[index] = candidates\n                    .iter()\n                    .min_by_key(|cell| cell.cost)\n                    .unwrap()\n                    .clone();\n            }\n        }\n    }\n\n    fn mismatch_cost(&self, parent: usize, basic_cost: usize) -> usize {\n        self.table[parent].cost\n            + basic_cost\n            + if self.table[parent].operation == NoOp {\n                INITIAL_MISMATCH_PENALTY\n            } else {\n                0\n            }\n    }\n\n    /// Read edit operations from the table.\n    pub fn operations(&self) -> Vec<Operation> {\n        let mut ops = VecDeque::with_capacity(max(self.x.len(), self.y.len()));\n        let mut cell = &self.table[self.index(self.x.len(), self.y.len())];\n        loop {\n            ops.push_front(cell.operation);\n            if cell.parent == 0 {\n                break;\n            }\n            cell = &self.table[cell.parent];\n        }\n        Vec::from(ops)\n    }\n\n    pub fn coalesced_operations(&self) -> Vec<(Operation, usize)> {\n        run_length_encode(self.operations())\n    }\n\n    // Row-major storage of 2D array.\n    fn index(&self, i: usize, j: usize) -> usize {\n        j * self.dim[1] + i\n    }\n}\n\nfn run_length_encode<T>(sequence: Vec<T>) -> Vec<(T, usize)>\nwhere\n    T: Copy,\n    T: PartialEq,\n{\n    let mut encoded = Vec::with_capacity(sequence.len());\n\n    if sequence.is_empty() {\n        return encoded;\n    }\n\n    let end = sequence.len();\n    let (mut i, mut j) = (0, 1);\n    let mut curr = &sequence[i];\n    loop {\n        if j == end || sequence[j] != *curr {\n            encoded.push((*curr, j - i));\n            if j == end {\n                return encoded;\n            } else {\n                curr = &sequence[j];\n                i = j;\n            }\n        }\n        j += 1;\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    use unicode_segmentation::UnicodeSegmentation;\n\n    #[test]\n    fn test_run_length_encode() {\n        assert_eq!(run_length_encode::<usize>(vec![]), vec![]);\n        assert_eq!(run_length_encode(vec![0]), vec![(0, 1)]);\n        assert_eq!(run_length_encode(vec![\"0\", \"0\"]), vec![(\"0\", 2)]);\n        assert_eq!(\n            run_length_encode(vec![0, 0, 1, 2, 2, 2, 3, 4, 4, 4]),\n            vec![(0, 2), (1, 1), (2, 3), (3, 1), (4, 3)]\n        );\n    }\n\n    #[test]\n    fn test_0() {\n        TestCase {\n            before: \"aaa\",\n            after: \"aba\",\n            distance: 5,\n            parts: (2, 4),\n            operations: vec![NoOp, Deletion, Insertion, NoOp],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_0_nonascii() {\n        TestCase {\n            before: \"ááb\",\n            after: \"áaa\",\n            distance: 9,\n            parts: (4, 5),\n            operations: vec![NoOp, Deletion, Deletion, Insertion, Insertion],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_1() {\n        TestCase {\n            before: \"kitten\",\n            after: \"sitting\",\n            distance: 13,\n            parts: (5, 9),\n            operations: vec![\n                Deletion,  // K -\n                Insertion, // - S\n                NoOp,      // I I\n                NoOp,      // T T\n                NoOp,      // T T\n                Deletion,  // E -\n                Insertion, // - I\n                NoOp,      // N N\n                Insertion, // - G\n            ],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_2() {\n        TestCase {\n            before: \"saturday\",\n            after: \"sunday\",\n            distance: 10,\n            parts: (4, 9),\n            operations: vec![\n                NoOp,      // S S\n                Deletion,  // A -\n                Deletion,  // T -\n                NoOp,      // U U\n                Deletion,  // R -\n                Insertion, // - N\n                NoOp,      // D D\n                NoOp,      // A A\n                NoOp,      // Y Y\n            ],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_3() {\n        TestCase {\n            // Prefer [Deletion NoOp Insertion] over [Insertion NoOp Deletion]\n            before: \"ab\",\n            after: \"ba\",\n            distance: 6,\n            parts: (2, 3),\n            operations: vec![\n                Deletion,  // a -\n                NoOp,      // b b\n                Insertion, // - a\n            ],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_4() {\n        // Deletions are grouped together.\n        TestCase {\n            before: \"AABB\",\n            after: \"AB\",\n            distance: 5,\n            parts: (2, 4),\n            operations: vec![\n                NoOp,     // A A\n                Deletion, // A -\n                Deletion, // B -\n                NoOp,     // B B\n            ],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_5() {\n        // Insertions are grouped together.\n        TestCase {\n            before: \"AB\",\n            after: \"AABB\",\n            distance: 5,\n            parts: (2, 4),\n            operations: vec![\n                NoOp,      // A A\n                Insertion, // - A\n                Insertion, // - B\n                NoOp,      // B B\n            ],\n        }\n        .run();\n    }\n\n    #[test]\n    fn test_6() {\n        // Insertion and Deletion are grouped together.\n        TestCase {\n            before: \"AAABBB\",\n            after: \"ACB\",\n            distance: 11,\n            parts: (5, 7),\n            operations: vec![\n                NoOp,      // A A\n                Deletion,  // A -\n                Deletion,  // A -\n                Deletion,  // B -\n                Deletion,  // B -\n                Insertion, // - C\n                NoOp,      // B B\n            ],\n        }\n        .run();\n    }\n\n    struct TestCase<'a> {\n        before: &'a str,\n        after: &'a str,\n        distance: usize,\n        parts: (usize, usize),\n        operations: Vec<Operation>,\n    }\n\n    impl<'a> TestCase<'a> {\n        pub fn run(&self) {\n            self.assert_string_distance_parts();\n            assert_eq!(operations(self.before, self.after), self.operations);\n        }\n\n        fn assert_string_distance_parts(&self) {\n            self.assert_string_levenshtein_distance();\n            assert_eq!(string_distance_parts(self.before, self.after), self.parts);\n            assert_eq!(string_distance_parts(self.after, self.before), self.parts);\n        }\n\n        fn assert_string_levenshtein_distance(&self) {\n            assert_eq!(\n                string_levenshtein_distance(self.before, self.after),\n                self.distance\n            );\n            assert_eq!(\n                string_levenshtein_distance(self.after, self.before),\n                self.distance\n            );\n        }\n    }\n\n    fn string_distance_parts(x: &str, y: &str) -> (usize, usize) {\n        let (x, y) = (\n            x.graphemes(true).collect::<Vec<&str>>(),\n            y.graphemes(true).collect::<Vec<&str>>(),\n        );\n        Alignment::new(x, y).distance_parts()\n    }\n\n    fn string_levenshtein_distance(x: &str, y: &str) -> usize {\n        let (x, y) = (\n            x.graphemes(true).collect::<Vec<&str>>(),\n            y.graphemes(true).collect::<Vec<&str>>(),\n        );\n        Alignment::new(x, y).levenshtein_distance()\n    }\n\n    fn operations<'a>(x: &'a str, y: &'a str) -> Vec<Operation> {\n        let (x, y) = (\n            x.graphemes(true).collect::<Vec<&str>>(),\n            y.graphemes(true).collect::<Vec<&str>>(),\n        );\n        Alignment::new(x, y).operations()\n    }\n\n    impl<'a> Alignment<'a> {\n        pub fn distance_parts(&self) -> (usize, usize) {\n            let (mut numer, mut denom) = (0, 0);\n            for op in self.operations() {\n                if op != NoOp {\n                    numer += 1;\n                }\n                denom += 1;\n            }\n            (numer, denom)\n        }\n\n        /// Compute levenshtein distance from the filled table.\n        pub fn levenshtein_distance(&self) -> usize {\n            self.table[self.index(self.x.len(), self.y.len())].cost\n        }\n\n        #[allow(dead_code)]\n        fn format_cell(&self, cell: &Cell) -> String {\n            let parent = &self.table[cell.parent];\n            let op = match cell.operation {\n                Deletion => \"-\",\n                Insertion => \"+\",\n                NoOp => \".\",\n            };\n            format!(\"{}{}{}\", parent.cost, op, cell.cost)\n        }\n\n        #[allow(dead_code)]\n        fn print(&self) {\n            println!(\"x: {:?}\", self.x);\n            println!(\"y: {:?}\", self.y);\n            println!();\n            print!(\"      \");\n            for j in 0..self.dim[1] {\n                print!(\"{}     \", if j > 0 { self.x[j - 1] } else { \" \" })\n            }\n            println!();\n\n            for i in 0..self.dim[0] {\n                for j in 0..self.dim[1] {\n                    if j == 0 {\n                        print!(\"{}     \", if i > 0 { self.y[i - 1] } else { \" \" })\n                    }\n                    let cell = &self.table[self.index(j, i)];\n                    print!(\"{}   \", self.format_cell(cell));\n                }\n                println!();\n            }\n            println!();\n        }\n    }\n}\n"
  },
  {
    "path": "src/ansi/console_tests.rs",
    "content": "// This file contains some unit tests copied from the `console` project:\n// https://github.com/mitsuhiko/console\n//\n// The MIT License (MIT)\n\n// Copyright (c) 2017 Armin Ronacher <armin.ronacher@active-4.com>\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n#[cfg(test)]\nmod tests {\n    use console::{self, style};\n\n    use crate::ansi::{measure_text_width, truncate_str};\n\n    #[test]\n    fn test_text_width() {\n        let s = style(\"foo\")\n            .red()\n            .on_black()\n            .bold()\n            .force_styling(true)\n            .to_string();\n        assert_eq!(measure_text_width(&s), 3);\n    }\n\n    #[test]\n    fn test_truncate_str() {\n        let s = format!(\"foo {}\", style(\"bar\").red().force_styling(true));\n        assert_eq!(\n            &truncate_str(&s, 5, \"\"),\n            &format!(\"foo {}\", style(\"b\").red().force_styling(true))\n        );\n        let s = format!(\"foo {}\", style(\"bar\").red().force_styling(true));\n        // DED: I'm changing this test assertion: delta does not move `!` inside the styled region.\n        // assert_eq!(\n        //     &truncate_str(&s, 5, \"!\"),\n        //     &format!(\"foo {}\", style(\"!\").red().force_styling(true))\n        // );\n        assert_eq!(\n            &truncate_str(&s, 5, \"!\"),\n            &format!(\"foo {}!\", style(\"\").red().force_styling(true))\n        );\n        let s = format!(\"foo {} baz\", style(\"bar\").red().force_styling(true));\n        assert_eq!(\n            &truncate_str(&s, 10, \"...\"),\n            &format!(\"foo {}...\", style(\"bar\").red().force_styling(true))\n        );\n        // `バ`(width = 2) will be truncate to 1, we use space to fill\n        let s = format!(\"foo {}\", style(\"バー\").red().force_styling(true));\n        assert_eq!(\n            &truncate_str(&s, 5, \"\"),\n            &format!(\"foo {}\", style(\" \").red().force_styling(true))\n        );\n        let s = format!(\"foo {}\", style(\"バー\").red().force_styling(true));\n        assert_eq!(\n            &truncate_str(&s, 6, \"\"),\n            &format!(\"foo {}\", style(\"バ\").red().force_styling(true))\n        );\n    }\n\n    #[test]\n    fn test_truncate_str_no_ansi() {\n        assert_eq!(&truncate_str(\"foo bar\", 5, \"\"), \"foo b\");\n        assert_eq!(&truncate_str(\"foo bar\", 5, \"!\"), \"foo !\");\n        assert_eq!(&truncate_str(\"foo bar baz\", 10, \"...\"), \"foo bar...\");\n    }\n}\n"
  },
  {
    "path": "src/ansi/iterator.rs",
    "content": "use anstyle_parse::{Params, ParamsIter};\nuse core::str::Bytes;\nuse std::convert::TryFrom;\nuse std::iter;\n\npub struct AnsiElementIterator<'a> {\n    // The input bytes\n    bytes: Bytes<'a>,\n\n    // The state machine\n    machine: anstyle_parse::Parser,\n\n    // Becomes non-None when the parser finishes parsing an ANSI sequence.\n    // This is never Element::Text.\n    element: Option<Element>,\n\n    // Number of text bytes seen since the last element was emitted.\n    text_length: usize,\n\n    // Byte offset of start of current element.\n    start: usize,\n\n    // Byte offset of most rightward byte processed so far\n    pos: usize,\n}\n\n#[derive(Default)]\nstruct Performer {\n    // Becomes non-None when the parser finishes parsing an ANSI sequence.\n    // This is never Element::Text.\n    element: Option<Element>,\n\n    // Number of text bytes seen since the last element was emitted.\n    text_length: usize,\n}\n\n#[derive(Clone, Debug, PartialEq)]\npub enum Element {\n    Sgr(ansi_term::Style, usize, usize),\n    Csi(usize, usize),\n    Esc(usize, usize),\n    Osc(usize, usize),\n    Text(usize, usize),\n}\n\nimpl Element {\n    fn set_range(&mut self, start: usize, end: usize) {\n        let (from, to) = match self {\n            Element::Sgr(_, from, to) => (from, to),\n            Element::Csi(from, to) => (from, to),\n            Element::Esc(from, to) => (from, to),\n            Element::Osc(from, to) => (from, to),\n            Element::Text(from, to) => (from, to),\n        };\n\n        *from = start;\n        *to = end;\n    }\n}\n\nimpl<'a> AnsiElementIterator<'a> {\n    pub fn new(s: &'a str) -> Self {\n        Self {\n            machine: anstyle_parse::Parser::<anstyle_parse::DefaultCharAccumulator>::new(),\n            bytes: s.bytes(),\n            element: None,\n            text_length: 0,\n            start: 0,\n            pos: 0,\n        }\n    }\n\n    fn advance_vte(&mut self, byte: u8) {\n        let mut performer = Performer::default();\n        self.machine.advance(&mut performer, byte);\n        self.element = performer.element;\n        self.text_length += performer.text_length;\n        self.pos += 1;\n    }\n}\n\nimpl Iterator for AnsiElementIterator<'_> {\n    type Item = Element;\n\n    fn next(&mut self) -> Option<Element> {\n        // If the last element emitted was text, then there may be a non-text element waiting\n        // to be emitted. In that case we do not consume a new byte.\n        while self.element.is_none() {\n            match self.bytes.next() {\n                Some(b) => self.advance_vte(b),\n                None => break,\n            }\n        }\n\n        if let Some(mut element) = self.element.take() {\n            // There is a non-text element waiting to be emitted, but it may have preceding\n            // text, which must be emitted first.\n            if self.text_length > 0 {\n                let start = self.start;\n                self.start += self.text_length;\n                self.text_length = 0;\n                self.element = Some(element);\n                return Some(Element::Text(start, self.start));\n            }\n\n            let start = self.start;\n            self.start = self.pos;\n            element.set_range(start, self.pos);\n\n            return Some(element);\n        }\n\n        if self.text_length > 0 {\n            self.text_length = 0;\n            return Some(Element::Text(self.start, self.pos));\n        }\n\n        None\n    }\n}\n\n// Based on https://github.com/alacritty/vte/blob/v0.9.0/examples/parselog.rs\nimpl anstyle_parse::Perform for Performer {\n    fn csi_dispatch(&mut self, params: &Params, intermediates: &[u8], ignore: bool, byte: u8) {\n        if ignore || intermediates.len() > 1 {\n            return;\n        }\n\n        let is_sgr = byte == b'm' && intermediates.is_empty();\n        let element = if is_sgr {\n            if params.is_empty() {\n                // Attr::Reset\n                // Probably doesn't need to be handled: https://github.com/dandavison/delta/pull/431#discussion_r536883568\n                None\n            } else {\n                let style = ansi_term_style_from_sgr_parameters(&mut params.iter());\n                Some(Element::Sgr(style, 0, 0))\n            }\n        } else {\n            Some(Element::Csi(0, 0))\n        };\n\n        self.element = element;\n    }\n\n    fn print(&mut self, c: char) {\n        self.text_length += c.len_utf8();\n    }\n\n    fn execute(&mut self, byte: u8) {\n        // E.g. '\\n'\n        if byte < 128 {\n            self.text_length += 1;\n        }\n    }\n\n    fn hook(&mut self, _params: &Params, _intermediates: &[u8], _ignore: bool, _byte: u8) {}\n\n    fn put(&mut self, _byte: u8) {}\n\n    fn unhook(&mut self) {}\n\n    fn osc_dispatch(&mut self, _params: &[&[u8]], _bell_terminated: bool) {\n        self.element = Some(Element::Osc(0, 0));\n    }\n\n    fn esc_dispatch(&mut self, _intermediates: &[u8], _ignore: bool, _byte: u8) {\n        self.element = Some(Element::Esc(0, 0));\n    }\n}\n\n// Based on https://github.com/alacritty/alacritty/blob/9e71002e40d5487c6fa2571a3a3c4f5c8f679334/alacritty_terminal/src/ansi.rs#L1175\nfn ansi_term_style_from_sgr_parameters(params: &mut ParamsIter<'_>) -> ansi_term::Style {\n    let mut style = ansi_term::Style::new();\n    while let Some(param) = params.next() {\n        match param {\n            // [0] => Some(Attr::Reset),\n            [1] => style.is_bold = true,\n            [2] => style.is_dimmed = true,\n            [3] => style.is_italic = true,\n            [4, ..] => style.is_underline = true,\n            [5] => style.is_blink = true, // blink slow\n            [6] => style.is_blink = true, // blink fast\n            [7] => style.is_reverse = true,\n            [8] => style.is_hidden = true,\n            [9] => style.is_strikethrough = true,\n            // [21] => Some(Attr::CancelBold),\n            // [22] => Some(Attr::CancelBoldDim),\n            // [23] => Some(Attr::CancelItalic),\n            // [24] => Some(Attr::CancelUnderline),\n            // [25] => Some(Attr::CancelBlink),\n            // [27] => Some(Attr::CancelReverse),\n            // [28] => Some(Attr::CancelHidden),\n            // [29] => Some(Attr::CancelStrike),\n            [30] => style.foreground = Some(ansi_term::Color::Black),\n            [31] => style.foreground = Some(ansi_term::Color::Red),\n            [32] => style.foreground = Some(ansi_term::Color::Green),\n            [33] => style.foreground = Some(ansi_term::Color::Yellow),\n            [34] => style.foreground = Some(ansi_term::Color::Blue),\n            [35] => style.foreground = Some(ansi_term::Color::Purple),\n            [36] => style.foreground = Some(ansi_term::Color::Cyan),\n            [37] => style.foreground = Some(ansi_term::Color::White),\n            [38] => {\n                let mut iter = params.map(|param| param[0]);\n                if let Some(color) = parse_sgr_color(&mut iter) {\n                    style.foreground = Some(color);\n                }\n            }\n            [38, params @ ..] => {\n                let rgb_start = if params.len() > 4 { 2 } else { 1 };\n                let rgb_iter = params[rgb_start..].iter().copied();\n                let mut iter = iter::once(params[0]).chain(rgb_iter);\n\n                if let Some(color) = parse_sgr_color(&mut iter) {\n                    style.foreground = Some(color);\n                }\n            }\n            // [39] => Some(Attr::Foreground(Color::Named(NamedColor::Foreground))),\n            [40] => style.background = Some(ansi_term::Color::Black),\n            [41] => style.background = Some(ansi_term::Color::Red),\n            [42] => style.background = Some(ansi_term::Color::Green),\n            [43] => style.background = Some(ansi_term::Color::Yellow),\n            [44] => style.background = Some(ansi_term::Color::Blue),\n            [45] => style.background = Some(ansi_term::Color::Purple),\n            [46] => style.background = Some(ansi_term::Color::Cyan),\n            [47] => style.background = Some(ansi_term::Color::White),\n            [48] => {\n                let mut iter = params.map(|param| param[0]);\n                if let Some(color) = parse_sgr_color(&mut iter) {\n                    style.background = Some(color);\n                }\n            }\n            [48, params @ ..] => {\n                let rgb_start = if params.len() > 4 { 2 } else { 1 };\n                let rgb_iter = params[rgb_start..].iter().copied();\n                let mut iter = iter::once(params[0]).chain(rgb_iter);\n                if let Some(color) = parse_sgr_color(&mut iter) {\n                    style.background = Some(color);\n                }\n            }\n            // [49] => Some(Attr::Background(Color::Named(NamedColor::Background))),\n            // \"bright\" colors. ansi_term doesn't offer a way to emit them as, e.g., 90m; instead\n            // that would be 38;5;8.\n            [90] => style.foreground = Some(ansi_term::Color::Fixed(8)),\n            [91] => style.foreground = Some(ansi_term::Color::Fixed(9)),\n            [92] => style.foreground = Some(ansi_term::Color::Fixed(10)),\n            [93] => style.foreground = Some(ansi_term::Color::Fixed(11)),\n            [94] => style.foreground = Some(ansi_term::Color::Fixed(12)),\n            [95] => style.foreground = Some(ansi_term::Color::Fixed(13)),\n            [96] => style.foreground = Some(ansi_term::Color::Fixed(14)),\n            [97] => style.foreground = Some(ansi_term::Color::Fixed(15)),\n            [100] => style.background = Some(ansi_term::Color::Fixed(8)),\n            [101] => style.background = Some(ansi_term::Color::Fixed(9)),\n            [102] => style.background = Some(ansi_term::Color::Fixed(10)),\n            [103] => style.background = Some(ansi_term::Color::Fixed(11)),\n            [104] => style.background = Some(ansi_term::Color::Fixed(12)),\n            [105] => style.background = Some(ansi_term::Color::Fixed(13)),\n            [106] => style.background = Some(ansi_term::Color::Fixed(14)),\n            [107] => style.background = Some(ansi_term::Color::Fixed(15)),\n            _ => {}\n        };\n    }\n    style\n}\n\n// Based on https://github.com/alacritty/alacritty/blob/57c4ac9145a20fb1ae9a21102503458d3da06c7b/alacritty_terminal/src/ansi.rs#L1258\nfn parse_sgr_color(params: &mut dyn Iterator<Item = u16>) -> Option<ansi_term::Color> {\n    match params.next() {\n        Some(2) => {\n            let r = u8::try_from(params.next()?).ok()?;\n            let g = u8::try_from(params.next()?).ok()?;\n            let b = u8::try_from(params.next()?).ok()?;\n            Some(ansi_term::Color::RGB(r, g, b))\n        }\n        Some(5) => Some(ansi_term::Color::Fixed(u8::try_from(params.next()?).ok()?)),\n        _ => None,\n    }\n}\n\n#[cfg(test)]\nmod tests {\n\n    use super::{AnsiElementIterator, Element};\n    use crate::style;\n\n    #[test]\n    fn test_iterator_parse_git_style_strings() {\n        for (git_style_string, git_output) in &*style::tests::GIT_STYLE_STRING_EXAMPLES {\n            let mut it = AnsiElementIterator::new(git_output);\n\n            if *git_style_string == \"normal\" {\n                // This one has a different pattern\n                assert!(\n                    matches!(it.next().unwrap(), Element::Sgr(s, _, _) if s == ansi_term::Style::default())\n                );\n                assert!(\n                    matches!(it.next().unwrap(), Element::Text(i, j) if &git_output[i..j] == \"text\")\n                );\n                assert!(\n                    matches!(it.next().unwrap(), Element::Sgr(s, _, _) if s == ansi_term::Style::default())\n                );\n                continue;\n            }\n\n            // First element should be a style\n            let element = it.next().unwrap();\n            match element {\n                Element::Sgr(style, _, _) => assert!(style::ansi_term_style_equality(\n                    style,\n                    style::Style::from_git_str(git_style_string).ansi_term_style\n                )),\n                _ => unreachable!(),\n            }\n\n            // Second element should be text: \"+\"\n            assert!(matches!(\n                it.next().unwrap(),\n                Element::Text(i, j) if &git_output[i..j] == \"+\"));\n\n            // Third element is the reset style\n            assert!(matches!(\n                it.next().unwrap(),\n                Element::Sgr(s, _, _) if s == ansi_term::Style::default()));\n\n            // Fourth element should be a style\n            let element = it.next().unwrap();\n            match element {\n                Element::Sgr(style, _, _) => assert!(style::ansi_term_style_equality(\n                    style,\n                    style::Style::from_git_str(git_style_string).ansi_term_style\n                )),\n                _ => unreachable!(),\n            }\n\n            // Fifth element should be text: \"text\"\n            assert!(matches!(\n                it.next().unwrap(),\n                Element::Text(i, j) if &git_output[i..j] == \"text\"));\n\n            // Sixth element is the reset style\n            assert!(matches!(\n                it.next().unwrap(),\n                Element::Sgr(s, _, _) if s == ansi_term::Style::default()));\n\n            assert!(matches!(\n                it.next().unwrap(),\n                Element::Text(i, j) if &git_output[i..j] == \"\\n\"));\n\n            assert!(it.next().is_none());\n        }\n    }\n\n    #[test]\n    fn test_iterator_1() {\n        let minus_line = \"\\x1b[31m0123\\x1b[m\\n\";\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(minus_line).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Sgr(\n                    ansi_term::Style {\n                        foreground: Some(ansi_term::Color::Red),\n                        ..ansi_term::Style::default()\n                    },\n                    0,\n                    5\n                ),\n                Element::Text(5, 9),\n                Element::Sgr(ansi_term::Style::default(), 9, 12),\n                Element::Text(12, 13),\n            ]\n        );\n        assert_eq!(\"0123\", &minus_line[5..9]);\n        assert_eq!(\"\\n\", &minus_line[12..13]);\n    }\n\n    #[test]\n    fn test_iterator_2() {\n        let minus_line = \"\\x1b[31m0123\\x1b[m456\\n\";\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(minus_line).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Sgr(\n                    ansi_term::Style {\n                        foreground: Some(ansi_term::Color::Red),\n                        ..ansi_term::Style::default()\n                    },\n                    0,\n                    5\n                ),\n                Element::Text(5, 9),\n                Element::Sgr(ansi_term::Style::default(), 9, 12),\n                Element::Text(12, 16),\n            ]\n        );\n        assert_eq!(\"0123\", &minus_line[5..9]);\n        assert_eq!(\"456\\n\", &minus_line[12..16]);\n    }\n\n    #[test]\n    fn test_iterator_styled_non_ascii() {\n        let s = \"\\x1b[31mバー\\x1b[0m\";\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(s).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Sgr(\n                    ansi_term::Style {\n                        foreground: Some(ansi_term::Color::Red),\n                        ..ansi_term::Style::default()\n                    },\n                    0,\n                    5\n                ),\n                Element::Text(5, 11),\n                Element::Sgr(ansi_term::Style::default(), 11, 15),\n            ]\n        );\n        assert_eq!(\"バー\", &s[5..11]);\n    }\n\n    #[test]\n    fn test_iterator_erase_in_line() {\n        let s = \"\\x1b[0Kあ.\\x1b[m\";\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(s).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Csi(0, 4),\n                Element::Text(4, 8),\n                Element::Sgr(ansi_term::Style::default(), 8, 11),\n            ]\n        );\n        assert_eq!(\"あ.\", &s[4..8]);\n    }\n\n    #[test]\n    fn test_iterator_erase_in_line_without_n() {\n        let s = \"\\x1b[Kあ.\\x1b[m\";\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(s).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Csi(0, 3),\n                Element::Text(3, 7),\n                Element::Sgr(ansi_term::Style::default(), 7, 10),\n            ]\n        );\n        assert_eq!(\"あ.\", &s[3..7]);\n    }\n\n    #[test]\n    fn test_iterator_osc_hyperlinks_styled_non_ascii() {\n        let s = \"\\x1b[38;5;4m\\x1b]8;;file:///Users/dan/src/delta/src/ansi/mod.rs\\x1b\\\\src/ansi/modバー.rs\\x1b]8;;\\x1b\\\\\\x1b[0m\\n\";\n        assert_eq!(&s[0..9], \"\\x1b[38;5;4m\");\n        assert_eq!(\n            &s[9..58],\n            \"\\x1b]8;;file:///Users/dan/src/delta/src/ansi/mod.rs\\x1b\"\n        );\n        assert_eq!(&s[58..59], \"\\\\\");\n        assert_eq!(&s[59..80], \"src/ansi/modバー.rs\");\n        assert_eq!(&s[80..86], \"\\x1b]8;;\\x1b\");\n        assert_eq!(&s[86..87], \"\\\\\");\n        assert_eq!(&s[87..91], \"\\x1b[0m\");\n        assert_eq!(&s[91..92], \"\\n\");\n        let actual_elements: Vec<Element> = AnsiElementIterator::new(s).collect();\n        assert_eq!(\n            actual_elements,\n            vec![\n                Element::Sgr(\n                    ansi_term::Style {\n                        foreground: Some(ansi_term::Color::Fixed(4)),\n                        ..ansi_term::Style::default()\n                    },\n                    0,\n                    9\n                ),\n                Element::Osc(9, 58),\n                Element::Esc(58, 59),\n                Element::Text(59, 80),\n                Element::Osc(80, 86),\n                Element::Esc(86, 87),\n                Element::Sgr(ansi_term::Style::default(), 87, 91),\n                Element::Text(91, 92),\n            ]\n        );\n    }\n}\n"
  },
  {
    "path": "src/ansi/mod.rs",
    "content": "mod console_tests;\nmod iterator;\n\nuse std::borrow::Cow;\n\nuse ansi_term::Style;\nuse itertools::Itertools;\nuse unicode_segmentation::UnicodeSegmentation;\nuse unicode_width::UnicodeWidthStr;\n\nuse iterator::{AnsiElementIterator, Element};\n\npub const ANSI_CSI_CLEAR_TO_EOL: &str = \"\\x1b[0K\";\npub const ANSI_CSI_CLEAR_TO_BOL: &str = \"\\x1b[1K\";\npub const ANSI_SGR_BOLD: &str = \"\\x1b[1m\";\npub const ANSI_SGR_RESET: &str = \"\\x1b[0m\";\npub const ANSI_SGR_REVERSE: &str = \"\\x1b[7m\";\npub const ANSI_SGR_UNDERLINE: &str = \"\\x1b[4m\";\n\npub fn strip_ansi_codes(s: &str) -> String {\n    strip_ansi_codes_from_strings_iterator(ansi_strings_iterator(s))\n}\n\npub fn measure_text_width(s: &str) -> usize {\n    ansi_strings_iterator(s).fold(0, |acc, (element, is_ansi)| {\n        acc + if is_ansi { 0 } else { element.width() }\n    })\n}\n\nfn truncate_str_impl<'a>(\n    s: &'a str,\n    display_width: usize,\n    tail: &str,\n    fill2w: Option<char>,\n) -> Cow<'a, str> {\n    let items = ansi_strings_iterator(s).collect::<Vec<(&str, bool)>>();\n    let width = strip_ansi_codes_from_strings_iterator(items.iter().copied()).width();\n    if width <= display_width {\n        return Cow::from(s);\n    }\n    let result_tail = if !tail.is_empty() {\n        truncate_str_impl(tail, display_width, \"\", fill2w).to_string()\n    } else {\n        String::new()\n    };\n    let mut used = measure_text_width(&result_tail);\n    let mut result = String::new();\n    for (t, is_ansi) in items {\n        if !is_ansi {\n            for g in t.graphemes(true) {\n                let width_of_grapheme = g.width();\n                if used + width_of_grapheme > display_width {\n                    // Handle case \"2.\" mentioned in `truncate_str` docs and fill the\n                    // hole left by double-width (2w) truncation.\n                    if let Some(fillchar) = fill2w {\n                        if width_of_grapheme == 2 && used < display_width {\n                            result.push(fillchar);\n                        } else if width_of_grapheme > 2 {\n                            // Should not happen, this means either unicode_segmentation\n                            // graphemes are too wide, or the unicode_width is calculated wrong.\n                            // Fallback:\n                            debug_assert!(width_of_grapheme <= 2, \"strange grapheme width\");\n                            for _ in 0..display_width.saturating_sub(used) {\n                                result.push(fillchar);\n                            }\n                        }\n                    }\n                    break;\n                }\n                result.push_str(g);\n                used += width_of_grapheme;\n            }\n        } else {\n            result.push_str(t);\n        }\n    }\n\n    result.push_str(&result_tail);\n    Cow::from(result)\n}\n\n/// Truncate string such that `tail` is present as a suffix, preceded by as much of `s` as can be\n/// displayed in the requested width. Even with `tail` empty the result may not be a prefix of `s`.\n// Return string constructed as follows:\n// 1. `display_width` characters are available. If the string fits, return it.\n//\n// 2. If a double-width (fullwidth) grapheme has to be cut in the following steps, replace the first\n//    half with a space (' '). If this happens the result is no longer a prefix of the input.\n//\n// 3. Contribute graphemes and ANSI escape sequences from `tail` until either (1) `tail` is\n//    exhausted, or (2) the display width of the result would exceed `display_width`.\n//\n// 4. If tail was exhausted, then contribute graphemes and ANSI escape sequences from `s` until the\n//    display_width of the result would exceed `display_width`.\npub fn truncate_str<'a>(s: &'a str, display_width: usize, tail: &str) -> Cow<'a, str> {\n    truncate_str_impl(s, display_width, tail, Some(' '))\n}\n\n/// Truncate string `s` so it fits into `display_width`, ignoring any ANSI escape sequences when\n/// calculating the width. If a double-width (\"fullwidth\") grapheme has to be cut, it is omitted and\n/// the resulting string is *shorter* than `display_width`. But this way the result is always a\n/// prefix of the input `s`.\npub fn truncate_str_short(s: &str, display_width: usize) -> Cow<'_, str> {\n    truncate_str_impl(s, display_width, \"\", None)\n}\n\npub fn parse_style_sections(s: &str) -> Vec<(ansi_term::Style, &str)> {\n    let mut sections = Vec::new();\n    let mut curr_style = Style::default();\n    for element in AnsiElementIterator::new(s) {\n        match element {\n            Element::Text(start, end) => sections.push((curr_style, &s[start..end])),\n            Element::Sgr(style, _, _) => curr_style = style,\n            _ => {}\n        }\n    }\n    sections\n}\n\n// Return the first CSI element, if any, as an `ansi_term::Style`.\npub fn parse_first_style(s: &str) -> Option<ansi_term::Style> {\n    AnsiElementIterator::new(s).find_map(|el| match el {\n        Element::Sgr(style, _, _) => Some(style),\n        _ => None,\n    })\n}\n\npub fn string_starts_with_ansi_style_sequence(s: &str) -> bool {\n    AnsiElementIterator::new(s)\n        .next()\n        .map(|el| matches!(el, Element::Sgr(_, _, _)))\n        .unwrap_or(false)\n}\n\n/// Return string formed from a byte slice starting at byte position `start`, where the index\n/// counts bytes in non-ANSI-escape-sequence content only. All ANSI escape sequences in the\n/// original string are preserved.\npub fn ansi_preserving_slice(s: &str, start: usize) -> String {\n    AnsiElementIterator::new(s)\n        .scan(0, |index, element| {\n            // `index` is the index in non-ANSI-escape-sequence content.\n            Some(match element {\n                Element::Sgr(_, a, b) => &s[a..b],\n                Element::Csi(a, b) => &s[a..b],\n                Element::Esc(a, b) => &s[a..b],\n                Element::Osc(a, b) => &s[a..b],\n                Element::Text(a, b) => {\n                    let i = *index;\n                    *index += b - a;\n                    if *index <= start {\n                        // This text segment ends before start, so contributes no bytes.\n                        \"\"\n                    } else if i > start {\n                        // This section starts after `start`, so contributes all its bytes.\n                        &s[a..b]\n                    } else {\n                        // This section contributes those bytes that are >= start\n                        &s[(a + start - i)..b]\n                    }\n                }\n            })\n        })\n        .join(\"\")\n}\n\n/// Return the byte index in `s` of the i-th text byte in `s`. I.e. `i` counts\n/// bytes in non-ANSI-escape-sequence content only.\npub fn ansi_preserving_index(s: &str, i: usize) -> Option<usize> {\n    let mut index = 0;\n    for element in AnsiElementIterator::new(s) {\n        if let Element::Text(a, b) = element {\n            index += b - a;\n            if index > i {\n                return Some(b - (index - i));\n            }\n        }\n    }\n    None\n}\n\nfn ansi_strings_iterator(s: &str) -> impl Iterator<Item = (&str, bool)> {\n    AnsiElementIterator::new(s).map(move |el| match el {\n        Element::Sgr(_, i, j) => (&s[i..j], true),\n        Element::Csi(i, j) => (&s[i..j], true),\n        Element::Esc(i, j) => (&s[i..j], true),\n        Element::Osc(i, j) => (&s[i..j], true),\n        Element::Text(i, j) => (&s[i..j], false),\n    })\n}\n\nfn strip_ansi_codes_from_strings_iterator<'a>(\n    strings: impl Iterator<Item = (&'a str, bool)>,\n) -> String {\n    strings\n        .filter_map(|(el, is_ansi)| if !is_ansi { Some(el) } else { None })\n        .join(\"\")\n}\n\npub fn explain_ansi(line: &str, colorful: bool) -> String {\n    use crate::style::Style;\n\n    parse_style_sections(line)\n        .into_iter()\n        .map(|(ansi_term_style, s)| {\n            let style = Style {\n                ansi_term_style,\n                ..Style::default()\n            };\n            if colorful {\n                format!(\"({}){}\", style.to_painted_string(), style.paint(s))\n            } else {\n                format!(\"({style}){s}\")\n            }\n        })\n        .collect()\n}\n\n#[cfg(test)]\nmod tests {\n    use unicode_width::UnicodeWidthStr;\n\n    // Note that src/ansi/console_tests.rs contains additional test coverage for this module.\n    use super::{\n        ansi_preserving_index, ansi_preserving_slice, measure_text_width, parse_first_style,\n        string_starts_with_ansi_style_sequence, strip_ansi_codes, truncate_str, truncate_str_short,\n    };\n\n    #[test]\n    fn test_strip_ansi_codes() {\n        for s in &[\"src/ansi/mod.rs\", \"バー\", \"src/ansi/modバー.rs\"] {\n            assert_eq!(strip_ansi_codes(s), *s);\n        }\n        assert_eq!(strip_ansi_codes(\"\\x1b[31mバー\\x1b[0m\"), \"バー\");\n    }\n\n    #[test]\n    fn test_measure_text_width() {\n        assert_eq!(measure_text_width(\"src/ansi/mod.rs\"), 15);\n        assert_eq!(measure_text_width(\"バー\"), 4);\n        assert_eq!(measure_text_width(\"src/ansi/modバー.rs\"), 19);\n        assert_eq!(measure_text_width(\"\\x1b[31mバー\\x1b[0m\"), 4);\n        assert_eq!(measure_text_width(\"a\\nb\\n\"), 2);\n    }\n\n    #[test]\n    fn test_strip_ansi_codes_osc_hyperlink() {\n        assert_eq!(strip_ansi_codes(\"\\x1b[38;5;4m\\x1b]8;;file:///Users/dan/src/delta/src/ansi/mod.rs\\x1b\\\\src/ansi/mod.rs\\x1b]8;;\\x1b\\\\\\x1b[0m\\n\"),\n                   \"src/ansi/mod.rs\\n\");\n    }\n\n    #[test]\n    fn test_measure_text_width_osc_hyperlink() {\n        assert_eq!(measure_text_width(\"\\x1b[38;5;4m\\x1b]8;;file:///Users/dan/src/delta/src/ansi/mod.rs\\x1b\\\\src/ansi/mod.rs\\x1b]8;;\\x1b\\\\\\x1b[0m\"),\n                   measure_text_width(\"src/ansi/mod.rs\"));\n    }\n\n    #[test]\n    fn test_measure_text_width_osc_hyperlink_non_ascii() {\n        assert_eq!(measure_text_width(\"\\x1b[38;5;4m\\x1b]8;;file:///Users/dan/src/delta/src/ansi/mod.rs\\x1b\\\\src/ansi/modバー.rs\\x1b]8;;\\x1b\\\\\\x1b[0m\"),\n                   measure_text_width(\"src/ansi/modバー.rs\"));\n    }\n\n    #[test]\n    fn test_parse_first_style() {\n        let minus_line_from_unconfigured_git = \"\\x1b[31m-____\\x1b[m\\n\";\n        let style = parse_first_style(minus_line_from_unconfigured_git);\n        let expected_style = ansi_term::Style {\n            foreground: Some(ansi_term::Color::Red),\n            ..ansi_term::Style::default()\n        };\n        assert_eq!(Some(expected_style), style);\n    }\n\n    #[test]\n    fn test_string_starts_with_ansi_escape_sequence() {\n        assert!(!string_starts_with_ansi_style_sequence(\"\"));\n        assert!(!string_starts_with_ansi_style_sequence(\"-\"));\n        assert!(string_starts_with_ansi_style_sequence(\n            \"\\x1b[31m-XXX\\x1b[m\\n\"\n        ));\n        assert!(string_starts_with_ansi_style_sequence(\"\\x1b[32m+XXX\"));\n    }\n\n    #[test]\n    fn test_ansi_preserving_slice_and_index() {\n        assert_eq!(ansi_preserving_slice(\"\", 0), \"\");\n        assert_eq!(ansi_preserving_index(\"\", 0), None);\n\n        assert_eq!(ansi_preserving_slice(\"0\", 0), \"0\");\n        assert_eq!(ansi_preserving_index(\"0\", 0), Some(0));\n\n        assert_eq!(ansi_preserving_slice(\"0\", 1), \"\");\n        assert_eq!(ansi_preserving_index(\"0\", 1), None);\n\n        let raw_string = \"\\x1b[1;35m0123456789\\x1b[0m\";\n        assert_eq!(\n            ansi_preserving_slice(raw_string, 1),\n            \"\\x1b[1;35m123456789\\x1b[0m\"\n        );\n        assert_eq!(ansi_preserving_slice(raw_string, 7), \"\\x1b[1;35m789\\x1b[0m\");\n        assert_eq!(ansi_preserving_index(raw_string, 0), Some(7));\n        assert_eq!(ansi_preserving_index(raw_string, 1), Some(8));\n        assert_eq!(ansi_preserving_index(raw_string, 7), Some(14));\n\n        let raw_string = \"\\x1b[1;36m0\\x1b[m\\x1b[1;36m123456789\\x1b[m\\n\";\n        assert_eq!(\n            ansi_preserving_slice(raw_string, 1),\n            \"\\x1b[1;36m\\x1b[m\\x1b[1;36m123456789\\x1b[m\\n\"\n        );\n        assert_eq!(ansi_preserving_index(raw_string, 0), Some(7));\n        assert_eq!(ansi_preserving_index(raw_string, 1), Some(18));\n        assert_eq!(ansi_preserving_index(raw_string, 7), Some(24));\n\n        let raw_string = \"\\x1b[1;36m012345\\x1b[m\\x1b[1;36m6789\\x1b[m\\n\";\n        assert_eq!(\n            ansi_preserving_slice(raw_string, 3),\n            \"\\x1b[1;36m345\\x1b[m\\x1b[1;36m6789\\x1b[m\\n\"\n        );\n        assert_eq!(ansi_preserving_index(raw_string, 0), Some(7));\n        assert_eq!(ansi_preserving_index(raw_string, 1), Some(8));\n        assert_eq!(ansi_preserving_index(raw_string, 7), Some(24));\n    }\n\n    #[test]\n    fn test_truncate_str() {\n        assert_eq!(truncate_str(\"1\", 1, \"\"), \"1\");\n        assert_eq!(truncate_str(\"12\", 1, \"\"), \"1\");\n        assert_eq!(truncate_str(\"123\", 2, \"s\"), \"1s\");\n        assert_eq!(truncate_str(\"123\", 2, \"→\"), \"1→\");\n        assert_eq!(truncate_str(\"12ݶ\", 1, \"ݶ\"), \"ݶ\");\n    }\n\n    #[test]\n    fn test_truncate_str_at_double_width_grapheme() {\n        let one_double_four = \"1＃4\";\n        let double = \"／\";\n        assert_eq!(one_double_four.width(), 4);\n        assert_eq!(double.width(), 2);\n\n        assert_eq!(truncate_str(one_double_four, 1, \"\"), \"1\");\n        assert_eq!(truncate_str(one_double_four, 2, \"\"), \"1 \");\n        assert_eq!(truncate_str(one_double_four, 3, \"\"), \"1＃\");\n        assert_eq!(truncate_str(one_double_four, 4, \"\"), \"1＃4\");\n\n        assert_eq!(truncate_str_short(one_double_four, 1), \"1\");\n        assert_eq!(truncate_str_short(one_double_four, 2), \"1\"); // !!\n        assert_eq!(truncate_str_short(one_double_four, 3), \"1＃\");\n        assert_eq!(truncate_str_short(one_double_four, 4), \"1＃4\");\n\n        assert_eq!(truncate_str(one_double_four, 1, double), \" \");\n        assert_eq!(truncate_str(one_double_four, 2, double), \"／\");\n        assert_eq!(truncate_str(one_double_four, 3, double), \"1／\");\n        assert_eq!(truncate_str(one_double_four, 4, double), \"1＃4\");\n\n        assert_eq!(truncate_str(one_double_four, 0, \"\"), \"\");\n        assert_eq!(truncate_str(one_double_four, 0, double), \"\");\n        assert_eq!(truncate_str_short(one_double_four, 0), \"\");\n\n        assert_eq!(truncate_str(double, 0, double), \"\");\n        assert_eq!(truncate_str(double, 1, double), \" \");\n        assert_eq!(truncate_str(double, 2, double), double);\n\n        assert_eq!(truncate_str_short(double, 0), \"\");\n        assert_eq!(truncate_str_short(double, 1), \"\");\n        assert_eq!(truncate_str_short(double, 2), double);\n    }\n}\n"
  },
  {
    "path": "src/cli.rs",
    "content": "use std::collections::{HashMap, HashSet};\nuse std::ffi::OsString;\nuse std::path::{Path, PathBuf};\n\nuse bat::assets::HighlightingAssets;\nuse clap::error::Error;\nuse clap::{ArgMatches, ColorChoice, CommandFactory, FromArgMatches, Parser, ValueEnum, ValueHint};\nuse clap_complete::Shell;\nuse console::Term;\nuse lazy_static::lazy_static;\nuse syntect::highlighting::Theme as SyntaxTheme;\nuse syntect::parsing::SyntaxSet;\n\nuse crate::ansi::{ANSI_SGR_BOLD, ANSI_SGR_RESET, ANSI_SGR_UNDERLINE};\nuse crate::color::ColorMode;\nuse crate::config::delta_unreachable;\nuse crate::env::DeltaEnv;\nuse crate::git_config::GitConfig;\nuse crate::options;\nuse crate::subcommands;\nuse crate::utils;\nuse crate::utils::bat::output::PagingMode;\n\nconst TERM_FALLBACK_WIDTH: usize = 79;\n\n#[derive(Parser)]\n#[command(\n    name = \"delta\",\n    about = \"A viewer for git and diff output\",\n    version,\n    color = ColorChoice::Always,\n    // output is wrapped by delta later:\n    term_width = usize::MAX,\n    max_term_width = usize::MAX,\n)]\npub struct Opt {\n    #[arg(long = \"blame-code-style\", value_name = \"STYLE\")]\n    /// Style string for the code section of a git blame line.\n    ///\n    /// By default the code will be syntax-highlighted with the same background color as the blame\n    /// format section of the line (the background color is determined by blame-palette). E.g.\n    /// setting this option to 'syntax' will syntax-highlight the code with no background color.\n    pub blame_code_style: Option<String>,\n\n    #[arg(\n        long = \"blame-format\",\n        default_value = \"{timestamp:<15} {author:<15.14} {commit:<8}\",\n        value_name = \"FMT\"\n    )]\n    /// Format string for git blame commit metadata.\n    ///\n    /// Available placeholders are \"{timestamp}\", \"{author}\", and \"{commit}\".\n    pub blame_format: String,\n\n    #[arg(long = \"blame-palette\", value_name = \"COLORS\")]\n    /// Background colors used for git blame lines (space-separated string).\n    ///\n    /// Lines added by the same commit are painted with the same color; colors are recycled as\n    /// needed.\n    pub blame_palette: Option<String>,\n\n    #[arg(\n        long = \"blame-separator-format\",\n        default_value = \"│{n:^4}│\",\n        value_name = \"FMT\"\n    )]\n    /// Separator between the blame format and the code section of a git blame line.\n    ///\n    /// Contains the line number by default. Possible values are \"none\" to disable line numbers or a format\n    /// string. This may contain one \"{n:}\" placeholder and will display the line number on every line.\n    /// A type may be added after all other format specifiers and can be separated by '_':\n    /// If type is set to 'block' (e.g. \"{n:^4_block}\") the line number will only be shown when a new blame\n    /// block starts; or if it is set to 'every-N' the line will be show with every block and every\n    /// N-th (modulo) line.\n    pub blame_separator_format: String,\n\n    #[arg(long = \"blame-separator-style\", value_name = \"STYLE\")]\n    /// Style string for the blame-separator-format.\n    pub blame_separator_style: Option<String>,\n\n    #[arg(\n        long = \"blame-timestamp-format\",\n        default_value = \"%Y-%m-%d %H:%M:%S %z\",\n        value_name = \"FMT\"\n    )]\n    /// Format of `git blame` timestamp in raw git output received by delta.\n    pub blame_timestamp_format: String,\n\n    #[arg(long = \"blame-timestamp-output-format\", value_name = \"FMT\")]\n    /// Format string for git blame timestamp output.\n    ///\n    /// This string is used for formatting the timestamps in git blame output. It must follow\n    /// the `strftime` format syntax specification. If it is not present, the timestamps will\n    /// be formatted in a human-friendly but possibly less accurate form.\n    ///\n    /// See: <https://docs.rs/chrono/latest/chrono/format/strftime/index.html>\n    pub blame_timestamp_output_format: Option<String>,\n\n    #[arg(long = \"color-only\")]\n    /// Do not alter the input structurally in any way.\n    ///\n    /// But color and highlight hunk lines according to your delta configuration. This is mainly\n    /// intended for other tools that use delta.\n    pub color_only: bool,\n\n    #[arg(long = \"config\", default_value = \"\", value_name = \"PATH\", value_hint = ValueHint::FilePath)]\n    /// Load the config file at PATH instead of ~/.gitconfig.\n    pub config: String,\n\n    #[arg(\n        long = \"commit-decoration-style\",\n        default_value = \"\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the commit hash decoration.\n    ///\n    /// See STYLES section. The style string should contain one of the special attributes 'box',\n    /// 'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n    pub commit_decoration_style: String,\n\n    #[arg(\n        long = \"commit-regex\",\n        default_value = r\"^commit \",\n        value_name = \"REGEX\"\n    )]\n    /// Regular expression used to identify the commit line when parsing git output.\n    pub commit_regex: String,\n\n    #[arg(long = \"commit-style\", default_value = \"raw\", value_name = \"STYLE\")]\n    /// Style string for the commit hash line.\n    ///\n    /// See STYLES section. The style 'omit' can be used to remove the commit hash line from the\n    /// output.\n    pub commit_style: String,\n\n    #[arg(long = \"dark\")]\n    /// Use default colors appropriate for a dark terminal background.\n    ///\n    /// For more control, see the style options and --syntax-theme.\n    pub dark: bool,\n\n    #[arg(long = \"default-language\", value_name = \"LANG\", default_value = \"txt\")]\n    /// Default language used for syntax highlighting.\n    ///\n    /// Used as a fallback when the language cannot be inferred from a filename. It will\n    /// typically make sense to set this in the per-repository config file '.git/config'.\n    pub default_language: String,\n\n    /// Detect whether or not the terminal is dark or light by querying for its colors.\n    ///\n    /// Ignored if either `--dark` or `--light` is specified.\n    ///\n    /// Querying the terminal for its colors requires \"exclusive\" access\n    /// since delta reads/writes from the terminal and enables/disables raw mode.\n    /// This causes race conditions with pagers such as less when they are attached to the\n    /// same terminal as delta.\n    ///\n    /// This is usually only an issue when the output is manually piped to a pager.\n    /// For example: `git diff | delta | less`.\n    /// Otherwise, if delta starts the pager itself, then there's no race condition\n    /// since the pager is started *after* the color is detected.\n    ///\n    /// `auto` tries to account for these situations by testing if the output is redirected.\n    ///\n    /// The `--color-only` option is treated as an indicator that delta is used\n    /// as `interactive.diffFilter`. In this case the color is queried from the terminal even\n    /// though the output is redirected.\n    ///\n    #[arg(long = \"detect-dark-light\", value_enum, default_value_t = DetectDarkLight::default())]\n    pub detect_dark_light: DetectDarkLight,\n\n    #[arg(\n        long = \"diff-args\",\n        short = '@',\n        default_value = \"\",\n        value_name = \"STRING\"\n    )]\n    /// Extra arguments to pass to `git diff` when using delta to diff two files.\n    ///\n    /// E.g. `delta --diff-args=-U999 file_1 file_2` is equivalent to\n    /// `git diff --no-index --color -U999 file_1 file_2 | delta`.\n    ///\n    /// If you use process substitution (`delta <(command_1) <(command_2)`) and your git version\n    /// doesn't support it, then delta will fall back to `diff` instead of `git diff`.\n    pub diff_args: String,\n\n    #[arg(long = \"diff-highlight\")]\n    /// Emulate diff-highlight.\n    ///\n    /// <https://github.com/git/git/tree/master/contrib/diff-highlight>\n    pub diff_highlight: bool,\n\n    #[arg(long = \"diff-so-fancy\")]\n    /// Emulate diff-so-fancy.\n    ///\n    /// <https://github.com/so-fancy/diff-so-fancy>\n    pub diff_so_fancy: bool,\n\n    #[arg(long = \"diff-stat-align-width\", default_value = \"48\", value_name = \"N\")]\n    /// Width allocated for file paths in a diff stat section.\n    ///\n    /// If a relativized file path exceeds this width then the diff stat will be misaligned.\n    pub diff_stat_align_width: usize,\n\n    #[arg(long = \"features\", value_name = \"FEATURES\")]\n    /// Names of delta features to activate (space-separated).\n    ///\n    /// A feature is a named collection of delta options in ~/.gitconfig. See FEATURES section. The\n    /// environment variable DELTA_FEATURES can be set to a space-separated list of feature names.\n    /// If this is preceded with a + character, the features from the environment variable will be added\n    /// to those specified in git config. E.g. DELTA_FEATURES=+side-by-side can be used to activate\n    /// side-by-side temporarily (use DELTA_FEATURES=+ to go back to just the features from git config).\n    pub features: Option<String>,\n\n    #[arg(\n        long = \"file-added-label\",\n        default_value = \"added:\",\n        value_name = \"STRING\"\n    )]\n    /// Text to display before an added file path.\n    ///\n    /// Used in the default value of navigate-regex.\n    pub file_added_label: String,\n\n    #[arg(\n        long = \"file-copied-label\",\n        default_value = \"copied:\",\n        value_name = \"STRING\"\n    )]\n    /// Text to display before a copied file path.\n    pub file_copied_label: String,\n\n    #[arg(\n        long = \"file-decoration-style\",\n        default_value = \"blue ul\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the file decoration.\n    ///\n    /// See STYLES section. The style string should contain one of the special attributes 'box',\n    /// 'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n    pub file_decoration_style: String,\n\n    #[arg(\n        long = \"file-modified-label\",\n        default_value = \"\",\n        value_name = \"STRING\"\n    )]\n    /// Text to display before a modified file path.\n    ///\n    /// Used in the default value of navigate-regex.\n    pub file_modified_label: String,\n\n    #[arg(\n        long = \"file-removed-label\",\n        default_value = \"removed:\",\n        value_name = \"STRING\"\n    )]\n    /// Text to display before a removed file path.\n    ///\n    /// Used in the default value of navigate-regex.\n    pub file_removed_label: String,\n\n    #[arg(\n        long = \"file-renamed-label\",\n        default_value = \"renamed:\",\n        value_name = \"STRING\"\n    )]\n    /// Text to display before a renamed file path.\n    ///\n    /// Used in the default value of navigate-regex.\n    pub file_renamed_label: String,\n\n    #[arg(long = \"file-style\", default_value = \"blue\", value_name = \"STYLE\")]\n    /// Style string for the file section.\n    ///\n    /// See STYLES section. The style 'omit' can be used to remove the file section from the output.\n    pub file_style: String,\n\n    #[arg(long = \"file-transformation\", value_name = \"SED_CMD\")]\n    /// Sed-style command transforming file paths for display.\n    pub file_regex_replacement: Option<String>,\n\n    #[arg(long = \"generate-completion\")]\n    /// Print completion file for the given shell.\n    pub generate_completion: Option<Shell>,\n\n    #[arg(long = \"grep-context-line-style\", value_name = \"STYLE\")]\n    /// Style string for non-matching lines of grep output.\n    ///\n    /// See STYLES section. Defaults to zero-style.\n    pub grep_context_line_style: Option<String>,\n\n    #[arg(\n        long = \"grep-file-style\",\n        default_value = \"magenta\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for file paths in grep output.\n    ///\n    /// See STYLES section.\n    pub grep_file_style: String,\n\n    #[arg(long = \"grep-header-decoration-style\", value_name = \"STYLE\")]\n    /// Style string for the header decoration in grep output.\n    ///\n    /// Default is \"none\" when grep-output-type-is \"ripgrep\", otherwise defaults\n    /// to value of header-decoration-style. See hunk-header-decoration-style.\n    pub grep_header_decoration_style: Option<String>,\n\n    #[arg(long = \"grep-header-file-style\", value_name = \"STYLE\")]\n    /// Style string for the file path part of the header in grep output.\n    ///\n    /// See hunk_header_file_style.\n    pub grep_header_file_style: Option<String>,\n\n    #[arg(\n        long = \"grep-line-number-style\",\n        default_value = \"green\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for line numbers in grep output.\n    ///\n    /// See STYLES section.\n    pub grep_line_number_style: String,\n\n    #[arg(long = \"grep-output-type\", value_name = \"OUTPUT_TYPE\", value_parser = [\"ripgrep\", \"classic\"])]\n    /// Grep output format. Possible values:\n    /// \"ripgrep\" - file name printed once, followed by matching lines within that file, each preceded by a line number.\n    /// \"classic\" - file name:line number, followed by matching line.\n    /// Default is \"ripgrep\" if `rg --json` format is detected, otherwise \"classic\".\n    pub grep_output_type: Option<String>,\n\n    #[arg(long = \"grep-match-line-style\", value_name = \"STYLE\")]\n    /// Style string for matching lines of grep output.\n    ///\n    /// See STYLES section. Defaults to plus-style.\n    pub grep_match_line_style: Option<String>,\n\n    #[arg(long = \"grep-match-word-style\", value_name = \"STYLE\")]\n    /// Style string for the matching substrings within a matching line of grep output.\n    ///\n    /// See STYLES section. Defaults to plus-style.\n    pub grep_match_word_style: Option<String>,\n\n    #[arg(\n        long = \"grep-separator-symbol\",\n        default_value = \":\",\n        value_name = \"STRING\"\n    )]\n    /// Separator symbol printed after the file path and line number in grep output.\n    ///\n    /// Defaults to \":\" for both match and context lines, since many terminal emulators recognize\n    /// constructs like \"/path/to/file:7:\". However, standard grep output uses \"-\" for context\n    /// lines: set this option to \"keep\" to keep the original separator symbols.\n    pub grep_separator_symbol: String,\n\n    #[arg(\n        long = \"hunk-header-decoration-style\",\n        default_value = \"blue box\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the hunk-header decoration.\n    ///\n    /// See STYLES section. The style string should contain one of the special attributes 'box',\n    /// 'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n    pub hunk_header_decoration_style: String,\n\n    #[arg(\n        long = \"hunk-header-file-style\",\n        default_value = \"blue\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the file path part of the hunk-header.\n    ///\n    /// See STYLES section. The file path will only be displayed if hunk-header-style contains the\n    /// 'file' special attribute.\n    pub hunk_header_file_style: String,\n\n    #[arg(\n        long = \"hunk-header-line-number-style\",\n        default_value = \"blue\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the line number part of the hunk-header.\n    ///\n    /// See STYLES section. The line number will only be displayed if hunk-header-style contains the\n    /// 'line-number' special attribute.\n    pub hunk_header_line_number_style: String,\n\n    #[arg(\n        long = \"hunk-header-style\",\n        default_value = \"line-number syntax\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the hunk-header.\n    ///\n    /// See STYLES section. Special attributes 'file' and 'line-number' can be used to include the\n    /// file path, and number of first hunk line, in the hunk header. The style 'omit' can be used\n    /// to remove the hunk header section from the output.\n    pub hunk_header_style: String,\n\n    #[arg(long = \"hunk-label\", default_value = \"\", value_name = \"STRING\")]\n    /// Text to display before a hunk header.\n    ///\n    /// Used in the default value of navigate-regex.\n    pub hunk_label: String,\n\n    #[arg(long = \"hyperlinks\")]\n    /// Render commit hashes, file names, and line numbers as hyperlinks.\n    ///\n    /// Following the hyperlink spec for terminal emulators:\n    /// <https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda>. By default, file names\n    /// and line numbers link to the local file using a file URL, whereas commit hashes link to the\n    /// commit in GitHub, if the remote repository is hosted by GitHub. See\n    /// --hyperlinks-file-link-format for full control over the file URLs emitted. Hyperlinks are\n    /// supported by several common terminal emulators. To make them work, you must use less\n    /// version >= 581 with the -R flag (or use -r with older less versions, but this will break\n    /// e.g. --navigate). If you use tmux, then you will also need a patched fork of tmux (see\n    /// <https://github.com/dandavison/tmux>).\n    pub hyperlinks: bool,\n\n    #[arg(long = \"hyperlinks-commit-link-format\", value_name = \"FMT\")]\n    /// Format string for commit hyperlinks (requires --hyperlinks).\n    ///\n    /// The placeholder \"{commit}\" will be replaced by the commit hash. For example:\n    /// --hyperlinks-commit-link-format='https://mygitrepo/{commit}/'\n    pub hyperlinks_commit_link_format: Option<String>,\n\n    #[arg(\n        long = \"hyperlinks-file-link-format\",\n        default_value = \"file://{path}\",\n        value_name = \"FMT\"\n    )]\n    /// Format string for file hyperlinks (requires --hyperlinks).\n    ///\n    /// Placeholders \"{path}\" and \"{line}\" will be replaced by the absolute file path and the line\n    /// number; \"{host}\" with the hostname delta is currently running on. The default is to create\n    /// a hyperlink containing a standard file URI with only the filename, which your terminal or\n    /// OS should handle. You can specify any scheme, such as \"file-line://{path}:{line}\" and\n    /// register an application to handle it. See\n    /// <https://dandavison.github.io/delta/hyperlinks.html> for details.\n    pub hyperlinks_file_link_format: String,\n\n    #[arg(\n        long = \"inline-hint-style\",\n        default_value = \"blue\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for short inline hint text.\n    ///\n    /// This styles certain content added by delta to the original diff such as special characters\n    /// to highlight tabs, and the symbols used to indicate wrapped lines. See STYLES section.\n    pub inline_hint_style: String,\n\n    #[arg(\n        long = \"inspect-raw-lines\",\n        default_value = \"true\",\n        value_name = \"true|false\",\n        value_parser = [\"true\", \"false\"],\n    )]\n    /// Kill-switch for --color-moved support.\n    ///\n    /// Whether to examine ANSI color escape sequences in raw lines received from Git and handle\n    /// lines colored in certain ways specially. This is on by default: it is how Delta supports\n    /// Git's --color-moved feature. Set this to \"false\" to disable this behavior.\n    pub inspect_raw_lines: String,\n\n    #[arg(long = \"keep-plus-minus-markers\")]\n    /// Prefix added/removed lines with a +/- character, as git does.\n    ///\n    /// By default, delta does not emit any prefix, so code can be copied directly from delta's\n    /// output.\n    pub keep_plus_minus_markers: bool,\n\n    #[arg(long = \"light\")]\n    /// Use default colors appropriate for a light terminal background.\n    ///\n    /// For more control, see the style options and --syntax-theme.\n    pub light: bool,\n\n    #[arg(long = \"line-buffer-size\", default_value = \"32\", value_name = \"N\")]\n    /// Size of internal line buffer.\n    ///\n    /// Delta compares the added and removed versions of nearby lines in order to detect and\n    /// highlight changes at the level of individual words/tokens. Therefore, nearby lines must be\n    /// buffered internally before they are painted and emitted. Increasing this value might improve\n    /// highlighting of some large diff hunks. However, setting this to a high value will adversely\n    /// affect delta's performance when entire files are added/removed.\n    pub line_buffer_size: usize,\n\n    #[arg(long = \"line-fill-method\", value_name = \"STRING\", value_parser = [\"ansi\", \"spaces\"])]\n    /// Line-fill method in side-by-side mode.\n    ///\n    /// How to extend the background color to the end of the line in side-by-side mode. Can be ansi\n    /// (default) or spaces (default if output is not to a terminal). Has no effect if\n    /// --width=variable is given.\n    pub line_fill_method: Option<String>,\n\n    #[arg(short = 'n', long = \"line-numbers\")]\n    /// Display line numbers next to the diff.\n    ///\n    /// See LINE NUMBERS section.\n    pub line_numbers: bool,\n\n    #[arg(\n        long = \"line-numbers-left-format\",\n        default_value = \"{nm:^4}⋮\",\n        value_name = \"FMT\"\n    )]\n    /// Format string for the left column of line numbers.\n    ///\n    /// A typical value would be \"{nm:^4}⋮\" which means to display the line numbers of the minus\n    /// file (old version), center-aligned, padded to a width of 4 characters, followed by a\n    /// dividing character. See the LINE NUMBERS section.\n    pub line_numbers_left_format: String,\n\n    #[arg(\n        long = \"line-numbers-left-style\",\n        default_value = \"auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the left column of line numbers.\n    ///\n    /// See STYLES and LINE NUMBERS sections.\n    pub line_numbers_left_style: String,\n\n    #[arg(\n        long = \"line-numbers-minus-style\",\n        default_value = \"auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for line numbers in the old (minus) version of the file.\n    ///\n    /// See STYLES and LINE NUMBERS sections.\n    pub line_numbers_minus_style: String,\n\n    #[arg(\n        long = \"line-numbers-plus-style\",\n        default_value = \"auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for line numbers in the new (plus) version of the file.\n    ///\n    /// See STYLES and LINE NUMBERS sections.\n    pub line_numbers_plus_style: String,\n\n    #[arg(\n        long = \"line-numbers-right-format\",\n        default_value = \"{np:^4}│\",\n        value_name = \"FMT\"\n    )]\n    /// Format string for the right column of line numbers.\n    ///\n    /// A typical value would be \"{np:^4}│ \" which means to display the line numbers of the plus\n    /// file (new version), center-aligned, padded to a width of 4 characters, followed by a\n    /// dividing character, and a space. See the LINE NUMBERS section.\n    pub line_numbers_right_format: String,\n\n    #[arg(\n        long = \"line-numbers-right-style\",\n        default_value = \"auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the right column of line numbers.\n    ///\n    /// See STYLES and LINE NUMBERS sections.\n    pub line_numbers_right_style: String,\n\n    #[arg(\n        long = \"line-numbers-zero-style\",\n        default_value = \"auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for line numbers in unchanged (zero) lines.\n    ///\n    /// See STYLES and LINE NUMBERS sections.\n    pub line_numbers_zero_style: String,\n\n    #[arg(long = \"list-languages\")]\n    /// List supported languages and associated file extensions.\n    pub list_languages: bool,\n\n    #[arg(long = \"list-syntax-themes\")]\n    /// List available syntax-highlighting color themes.\n    pub list_syntax_themes: bool,\n\n    #[arg(long = \"map-styles\", value_name = \"STYLES_MAP\")]\n    /// Map styles encountered in raw input to desired output styles.\n    ///\n    /// An example is --map-styles='bold purple => red \"#eeeeee\", bold cyan => syntax \"#eeeeee\"'\n    pub map_styles: Option<String>,\n\n    #[arg(long = \"max-line-distance\", default_value = \"0.6\", value_name = \"DIST\")]\n    /// Maximum line pair distance parameter in within-line diff algorithm.\n    ///\n    /// This parameter is the maximum distance (0.0 - 1.0) between two lines for them to be inferred\n    /// to be homologous. Homologous line pairs are highlighted according to the deletion and\n    /// insertion operations transforming one into the other.\n    pub max_line_distance: f64,\n\n    #[arg(\n        long = \"max-syntax-highlighting-length\",\n        default_value = \"400\",\n        value_name = \"N\"\n    )]\n    /// Stop syntax highlighting lines after this many characters.\n    ///\n    /// To always highlight entire lines, set to zero - but note that delta will be slow on very\n    /// long lines (e.g. minified .js).\n    pub max_syntax_length: usize,\n\n    #[arg(long = \"max-line-length\", default_value = \"3000\", value_name = \"N\")]\n    /// Truncate lines longer than this.\n    ///\n    /// To prevent any truncation, set to zero. When wrapping lines this does nothing as it is\n    /// overwritten to fit at least all visible characters, see `--wrap-max-lines`.\n    pub max_line_length: usize,\n\n    #[arg(\n        long = \"merge-conflict-begin-symbol\",\n        default_value = \"▼\",\n        value_name = \"STRING\"\n    )]\n    /// String marking the beginning of a merge conflict region.\n    ///\n    /// The string will be repeated until it reaches the required length.\n    pub merge_conflict_begin_symbol: String,\n\n    #[arg(\n        long = \"merge-conflict-end-symbol\",\n        default_value = \"▲\",\n        value_name = \"STRING\"\n    )]\n    /// String marking the end of a merge conflict region.\n    ///\n    /// The string will be repeated until it reaches the required length.\n    pub merge_conflict_end_symbol: String,\n\n    #[arg(\n        long = \"merge-conflict-ours-diff-header-decoration-style\",\n        default_value = \"box\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the decoration of the header above the 'ours' merge conflict diff.\n    ///\n    /// This styles the decoration of the header above the diff between the ancestral commit and the\n    /// 'ours' branch. See STYLES section. The style string should contain one of the special\n    /// attributes 'box', 'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n    pub merge_conflict_ours_diff_header_decoration_style: String,\n\n    #[arg(\n        long = \"merge-conflict-ours-diff-header-style\",\n        default_value = \"normal\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the header above the 'ours' branch merge conflict diff.\n    ///\n    /// See STYLES section.\n    pub merge_conflict_ours_diff_header_style: String,\n\n    #[arg(\n        long = \"merge-conflict-theirs-diff-header-decoration-style\",\n        default_value = \"box\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the decoration of the header above the 'theirs' merge conflict diff.\n    ///\n    /// This styles the decoration of the header above the diff between the ancestral commit and\n    /// 'their' branch.  See STYLES section. The style string should contain one of the special\n    /// attributes 'box', 'ul' (underline), 'ol' (overline), or the combination 'ul ol'.\n    pub merge_conflict_theirs_diff_header_decoration_style: String,\n\n    #[arg(\n        long = \"merge-conflict-theirs-diff-header-style\",\n        default_value = \"normal\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for the header above the 'theirs' branch merge conflict diff.\n    ///\n    /// This styles the header above the diff between the ancestral commit and 'their' branch. See\n    /// STYLES section.\n    pub merge_conflict_theirs_diff_header_style: String,\n\n    #[arg(\n        long = \"minus-empty-line-marker-style\",\n        default_value = \"normal auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for removed empty line marker.\n    ///\n    /// Used only if --minus-style has no background color.\n    pub minus_empty_line_marker_style: String,\n\n    #[arg(\n        long = \"minus-emph-style\",\n        default_value = \"normal auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for emphasized sections of removed lines.\n    ///\n    /// See STYLES section.\n    pub minus_emph_style: String,\n\n    #[arg(\n        long = \"minus-non-emph-style\",\n        default_value = \"minus-style\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for non-emphasized sections of removed lines that have an emphasized section.\n    ///\n    /// See STYLES section.\n    pub minus_non_emph_style: String,\n\n    #[arg(\n        long = \"minus-style\",\n        default_value = \"normal auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for removed lines.\n    ///\n    /// See STYLES section.\n    pub minus_style: String,\n\n    #[arg(long = \"navigate\")]\n    /// Activate diff navigation.\n    ///\n    /// Use n to jump forwards and N to jump backwards. To change the file labels used see\n    /// --file-added-label, --file-copied-label, --file-modified-label, --file-removed-label, --file-renamed-label.\n    pub navigate: bool,\n\n    #[arg(long = \"navigate-regex\", value_name = \"REGEX\")]\n    /// Regular expression defining navigation stop points.\n    pub navigate_regex: Option<String>,\n\n    #[arg(long = \"no-gitconfig\")]\n    /// Do not read any settings from git config.\n    ///\n    /// See GIT CONFIG section.\n    pub no_gitconfig: bool,\n\n    #[arg(long = \"pager\", value_name = \"CMD\")]\n    /// Which pager to use.\n    ///\n    /// The default pager is `less`. You can also change pager by setting the\n    /// environment variable DELTA_PAGER, or PAGER. This option overrides these\n    /// environment variables.\n    pub pager: Option<String>,\n\n    #[arg(\n        long = \"paging\",\n        default_value = \"auto\",\n        value_name = \"auto|always|never\",\n        value_parser = [\"auto\", \"always\", \"never\"],\n    )]\n    /// Whether to use a pager when displaying output.\n    ///\n    /// Options are: auto, always, and never.\n    pub paging_mode: String,\n\n    #[arg(long = \"parse-ansi\")]\n    /// Display ANSI color escape sequences in human-readable form.\n    ///\n    /// Example usage: git show --color=always | delta --parse-ansi\n    /// This can be used to help identify input style strings to use with map-styles.\n    pub parse_ansi: bool,\n\n    #[arg(\n        long = \"plus-emph-style\",\n        default_value = \"syntax auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for emphasized sections of added lines.\n    ///\n    /// See STYLES section.\n    pub plus_emph_style: String,\n\n    #[arg(\n        long = \"plus-empty-line-marker-style\",\n        default_value = \"normal auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for added empty line marker.\n    ///\n    /// Used only if --plus-style has no background color.\n    pub plus_empty_line_marker_style: String,\n\n    #[arg(\n        long = \"plus-non-emph-style\",\n        default_value = \"plus-style\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for non-emphasized sections of added lines that have an emphasized section.\n    ///\n    /// See STYLES section.\n    pub plus_non_emph_style: String,\n\n    #[arg(\n        long = \"plus-style\",\n        default_value = \"syntax auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for added lines.\n    ///\n    /// See STYLES section.\n    pub plus_style: String,\n\n    #[arg(long = \"raw\")]\n    /// Do not alter the input in any way.\n    ///\n    /// This is mainly intended for testing delta.\n    pub raw: bool,\n\n    #[arg(long = \"relative-paths\")]\n    /// Output all file paths relative to the current directory.\n    ///\n    /// This means that they will resolve correctly when clicked on or used in shell commands.\n    pub relative_paths: bool,\n\n    #[arg(long = \"right-arrow\", default_value = \"⟶  \", value_name = \"STRING\")]\n    /// Text to display with a changed file path.\n    ///\n    /// For example, a unified diff heading, a rename, or a chmod.\n    pub right_arrow: String,\n\n    #[arg(long = \"show-colors\")]\n    /// Show available named colors.\n    ///\n    /// In addition to named colors, arbitrary colors can be specified using RGB hex codes. See\n    /// COLORS section.\n    pub show_colors: bool,\n\n    #[arg(long = \"show-config\")]\n    /// Display the active values for all Delta options.\n    ///\n    /// Style string options are displayed with foreground and background colors. This can be used to\n    /// experiment with colors by combining this option with other options such as --minus-style,\n    /// --zero-style, --plus-style, --light, --dark, etc.\n    pub show_config: bool,\n\n    #[arg(long = \"show-syntax-themes\")]\n    /// Show example diff for available syntax-highlighting themes.\n    ///\n    /// If diff output is supplied on standard input then this will be used for the demo. For\n    /// example: `git show | delta --show-syntax-themes`.\n    pub show_syntax_themes: bool,\n\n    #[arg(long = \"show-themes\")]\n    /// Show example diff for available delta themes.\n    ///\n    /// A delta theme is a delta named feature (see --features) that sets either `light` or `dark`.\n    /// See <https://github.com/dandavison/delta#custom-color-themes>. If diff output is supplied on\n    /// standard input then this will be used for the demo. For example: `git show | delta\n    /// --show-themes`. By default shows dark or light themes only, according to whether delta is in\n    /// dark or light mode (as set by the user or inferred from BAT_THEME). To control the themes\n    /// shown, use --dark or --light, or both, on the command line together with this option.\n    pub show_themes: bool,\n\n    #[arg(short = 's', long = \"side-by-side\")]\n    /// Display diffs in side-by-side layout.\n    pub side_by_side: bool,\n\n    #[arg(long = \"syntax-theme\", value_name = \"SYNTAX_THEME\")]\n    /// The syntax-highlighting theme to use.\n    ///\n    /// Use --show-syntax-themes to demo available themes. Defaults to the value of the BAT_THEME\n    /// environment variable, if that contains a valid theme name. --syntax-theme=none disables all\n    /// syntax highlighting.\n    pub syntax_theme: Option<String>,\n\n    #[arg(long = \"tabs\", default_value = \"8\", value_name = \"N\")]\n    /// The number of spaces to replace tab characters with.\n    ///\n    /// Use --tabs=0 to pass tab characters through directly, but note that in that case delta will\n    /// calculate line widths assuming tabs occupy one character's width on the screen: if your\n    /// terminal renders tabs as more than one character wide then delta's output will look\n    /// incorrect.\n    pub tab_width: usize,\n\n    #[arg(\n        long = \"true-color\",\n        default_value = \"auto\",\n        value_name = \"auto|always|never\",\n        value_parser = [\"auto\", \"always\", \"never\"],\n    )]\n    /// Whether to emit 24-bit (\"true color\") RGB color codes.\n    ///\n    /// Options are auto, always, and never. \"auto\" means that delta will emit 24-bit color codes if\n    /// the environment variable COLORTERM has the value \"truecolor\" or \"24bit\". If your terminal\n    /// application (the application you use to enter commands at a shell prompt) supports 24 bit\n    /// colors, then it probably already sets this environment variable, in which case you don't\n    /// need to do anything.\n    pub true_color: String,\n\n    #[arg(\n        long = \"whitespace-error-style\",\n        default_value = \"auto auto\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for whitespace errors.\n    ///\n    /// Defaults to color.diff.whitespace if that is set in git config, or else 'magenta reverse'.\n    pub whitespace_error_style: String,\n\n    #[arg(short = 'w', long = \"width\", value_name = \"N\")]\n    /// The width of underline/overline decorations.\n    ///\n    /// Examples: \"72\" (exactly 72 characters), \"-2\" (auto-detected terminal width minus 2). An\n    /// expression such as \"74-2\" is also valid (equivalent to 72 but may be useful if the caller\n    /// has a variable holding the value \"74\"). Use --width=variable to extend decorations and\n    /// background colors to the end of the text only. Otherwise background colors extend to the\n    /// full terminal width.\n    pub width: Option<String>,\n\n    #[arg(long = \"word-diff-regex\", default_value = r\"\\w+\", value_name = \"REGEX\")]\n    /// Regular expression defining a 'word' in within-line diff algorithm.\n    ///\n    /// The regular expression used to decide what a word is for the within-line highlight\n    /// algorithm. For less fine-grained matching than the default try --word-diff-regex=\"\\S+\"\n    /// --max-line-distance=1.0 (this is more similar to `git --word-diff`).\n    pub tokenization_regex: String,\n\n    #[arg(long = \"wrap-left-symbol\", default_value = \"↵\", value_name = \"STRING\")]\n    /// End-of-line wrapped content symbol (left-aligned).\n    ///\n    /// Symbol added to the end of a line indicating that the content has been wrapped onto the next\n    /// line and continues left-aligned.\n    pub wrap_left_symbol: String,\n\n    #[arg(long = \"wrap-max-lines\", default_value = \"2\", value_name = \"N\")]\n    /// How often a line should be wrapped if it does not fit.\n    ///\n    /// Zero means to never wrap. Any content which does not fit after wrapping will be truncated. A\n    /// value of \"unlimited\" means a line will be wrapped as many times as required.\n    pub wrap_max_lines: String,\n\n    #[arg(\n        long = \"wrap-right-percent\",\n        default_value = \"37.0\",\n        value_name = \"PERCENT\"\n    )]\n    /// Threshold for right-aligning wrapped content.\n    ///\n    /// If the length of the remaining wrapped content, as a percentage of width, is less than this\n    /// quantity it will be right-aligned. Otherwise it will be left-aligned.\n    pub wrap_right_percent: String,\n\n    #[arg(\n        long = \"wrap-right-prefix-symbol\",\n        default_value = \"…\",\n        value_name = \"STRING\"\n    )]\n    /// Pre-wrapped content symbol (right-aligned).\n    ///\n    /// Symbol displayed before right-aligned wrapped content.\n    pub wrap_right_prefix_symbol: String,\n\n    #[arg(long = \"wrap-right-symbol\", default_value = \"↴\", value_name = \"STRING\")]\n    /// End-of-line wrapped content symbol (right-aligned).\n    ///\n    /// Symbol added to the end of a line indicating that the content has been wrapped onto the next\n    /// line and continues right-aligned.\n    pub wrap_right_symbol: String,\n\n    #[arg(\n        long = \"zero-style\",\n        default_value = \"syntax normal\",\n        value_name = \"STYLE\"\n    )]\n    /// Style string for unchanged lines.\n    ///\n    /// See STYLES section.\n    pub zero_style: String,\n\n    #[arg(long = \"24-bit-color\", value_name = \"auto|always|never\", value_parser = [\"auto\", \"always\", \"never\"])]\n    /// Deprecated: use --true-color.\n    pub _24_bit_color: Option<String>,\n\n    /// First file to be compared when delta is being used to diff two files.\n    ///\n    /// `delta file1 file2` is equivalent to `diff -u file1 file2 | delta`.\n    pub minus_file: Option<PathBuf>,\n\n    /// Second file to be compared when delta is being used to diff two files.\n    pub plus_file: Option<PathBuf>,\n\n    #[arg(skip)]\n    pub computed: ComputedValues,\n\n    #[arg(skip)]\n    pub git_config: Option<GitConfig>,\n\n    #[arg(skip)]\n    pub env: DeltaEnv,\n}\n\nfn get_after_long_help(is_term: bool, no_indent: &str, no_wrap: &str) -> String {\n    let i0 = no_indent;\n    let l = no_wrap;\n\n    #[allow(non_snake_case)]\n    // <H>header</H> and  <u>underline</u>\n    let (H_, _H, u_, _u) = if is_term {\n        (\n            format!(\"{ANSI_SGR_BOLD}{ANSI_SGR_UNDERLINE}\"),\n            ANSI_SGR_RESET,\n            ANSI_SGR_UNDERLINE,\n            ANSI_SGR_RESET,\n        )\n    } else {\n        (\"\".to_string(), \"\", \"\", \"\")\n    };\n\n    format!(\n        r##\"\n\n{i0}{H_}Git config{_H}\n\nBy default, delta takes settings from a section named \"delta\" in git config files, if one is present. The git config file to use for delta options will usually be ~/.gitconfig, but delta follows the rules given in <https://git-scm.com/docs/git-config#FILES>. Most delta options can be given in a git config file, using the usual option names but without the initial '--'. An example is\n\n[delta]\n    line-numbers = true\n    zero-style = dim syntax\n\n\n{i0}{H_}Features{_H}\n\nA feature is a named collection of delta options in git config. An example is:\n\n[delta \"my-delta-feature\"]\n    syntax-theme = Dracula\n    plus-style = bold syntax \"#002800\"\n\nTo activate those options, you would use:\n\ndelta --features my-delta-feature\n\nA feature name may not contain whitespace. You can activate multiple features:\n\n{l}[delta]\n{l}    features = my-highlight-styles-colors-feature my-line-number-styles-feature\n\nIf more than one feature sets the same option, the last one wins.\n\nIf an option is present in the [delta] section, then features are not considered at all.\n\nIf you want an option to be fully overridable by a feature and also have a non default value when no features are used, then you need to define a \"default\" feature and include it in the main delta configuration.\n\nFor instance:\n\n[delta]\n    feature = default-feature\n\n[delta \"default-feature\"]\n    width = 123\n\nAt this point, you can override features set in the command line or in the environment variables and the \"last one wins\" rules will apply as expected.\n\n\n{i0}{H_}Styles{_H}\n\nAll options that have a name like --*-style work the same way. It is very similar to how colors/styles are specified in a gitconfig file: <https://git-scm.com/docs/git-config#Documentation/git-config.txt-color>\n\nHere is an example:\n\n--minus-style 'red bold ul \"#ffeeee\"'\n\nThat means: For removed lines, set the foreground (text) color to 'red', make it bold and underlined, and set the background color to '#ffeeee'.\n\nSee the {u_}Colors{_u} section below for how to specify a color. In addition to real colors, there are 4 special color names: 'auto', 'normal', 'raw', and 'syntax'.\n\nHere is an example of using special color names together with a single attribute:\n\n--minus-style 'syntax bold auto'\n\nThat means: For removed lines, syntax-highlight the text, and make it bold, and do whatever delta normally does for the background.\n\nThe available attributes are: 'blink', 'bold', 'dim', 'hidden', 'italic', 'reverse', 'strike', and 'ul' (or 'underline').\n\nThe attribute 'omit' is supported by commit-style, file-style, and hunk-header-style, meaning to remove the element entirely from the output.\n\nA complete description of the style string syntax follows:\n\n- If the input that delta is receiving already has colors, and you want delta to output those colors unchanged, then use the special style string 'raw'. Otherwise, delta will strip any colors from its input.\n\n- A style string consists of 0, 1, or 2 colors, together with an arbitrary number of style attributes, all separated by spaces.\n\n- The first color is the foreground (text) color. The second color is the background color. Attributes can go in any position.\n\n- This means that in order to specify a background color you must also specify a foreground (text) color.\n\n- If you want delta to choose one of the colors automatically, then use the special color 'auto'. This can be used for both foreground and background.\n\n- If you want the foreground/background color to be your terminal's foreground/background color, then use the special color 'normal'.\n\n- If you want the foreground text to be syntax-highlighted according to its language, then use the special foreground color 'syntax'. This can only be used for the foreground (text).\n\n- The minimal style specification is the empty string ''. This means: do not apply any colors or styling to the element in question.\n\n\n{i0}{H_}Colors{_H}\n\nThere are four ways to specify a color (this section applies to foreground and background colors within a style string):\n\n1. CSS color name\n\n   Any of the 140 color names used in CSS: <https://www.w3schools.com/colors/colors_groups.asp>\n\n2. RGB hex code\n\n   An example of using an RGB hex code is:\n   --file-style=\"#0e7c0e\"\n\n3. ANSI color name\n\n   There are 8 ANSI color names:\n   black, red, green, yellow, blue, magenta, cyan, white.\n\n   In addition, all of them have a bright form:\n   brightblack, brightred, brightgreen, brightyellow, brightblue, brightmagenta, brightcyan, brightwhite.\n\n   An example of using an ANSI color name is:\n   --file-style=\"green\"\n\n   Unlike RGB hex codes, ANSI color names are just names: you can choose the exact color that each name corresponds to in the settings of your terminal application (the application you use to enter commands at a shell prompt). This means that if you use ANSI color names, and you change the color theme used by your terminal, then delta's colors will respond automatically, without needing to change the delta command line.\n\n   \"purple\" is accepted as a synonym for \"magenta\". Color names and codes are case-insensitive.\n\n4. ANSI color number\n\n   An example of using an ANSI color number is:\n   --file-style=28\n\n   There are 256 ANSI color numbers: 0-255. The first 16 are the same as the colors described in the \"ANSI color name\" section above. See <https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit>. Specifying colors like this is useful if your terminal only supports 256 colors (i.e. doesn't support 24-bit color).\n\n\n{i0}{H_}Line Numbers{_H}\n\nTo display line numbers, use --line-numbers.\n\nLine numbers are displayed in two columns. Here's what it looks like by default:\n\n  1 ⋮  1 │ unchanged line\n  2 ⋮    │ removed line\n    ⋮  2 │ added line\n\nIn that output, the line numbers for the old (minus) version of the file appear in the left column, and the line numbers for the new (plus) version of the file appear in the right column. In an unchanged (zero) line, both columns contain a line number.\n\nThe following options allow the line number display to be customized:\n\n--line-numbers-left-format:  Change the contents of the left column\n--line-numbers-right-format: Change the contents of the right column\n--line-numbers-left-style:   Change the style applied to the left column\n--line-numbers-right-style:  Change the style applied to the right column\n--line-numbers-minus-style:  Change the style applied to line numbers in minus lines\n--line-numbers-zero-style:   Change the style applied to line numbers in unchanged lines\n--line-numbers-plus-style:   Change the style applied to line numbers in plus lines\n\nOptions --line-numbers-left-format and --line-numbers-right-format allow you to change the contents of the line number columns. Their values are arbitrary format strings, which are allowed to contain the placeholders {{nm}} for the line number associated with the old version of the file and {{np}} for the line number associated with the new version of the file. The placeholders support a subset of the string formatting syntax documented here: <https://doc.rust-lang.org/std/fmt/#formatting-parameters>. Specifically, you can use the alignment and width syntax.\n\nFor example, the default value of --line-numbers-left-format is '{{nm:^4}}⋮'. This means that the left column should display the minus line number (nm), center-aligned, padded with spaces to a width of 4 characters, followed by a unicode dividing-line character (⋮).\n\nSimilarly, the default value of --line-numbers-right-format is '{{np:^4}}│'. This means that the right column should display the plus line number (np), center-aligned, padded with spaces to a width of 4 characters, followed by a unicode dividing-line character (│).\n\nUse '<' for left-align, '^' for center-align, and '>' for right-align.\n\n\n{i0}{H_}Support{_H}\n\nIf something isn't working correctly, or you have a feature request, please open an issue at <https://github.com/dandavison/delta/issues>.\n\nFor a short help summary, please use delta -h.\n\"##\n    )\n}\n\n#[derive(Default, Clone, Debug)]\npub struct ComputedValues {\n    pub available_terminal_width: usize,\n    pub stdout_is_term: bool,\n    pub background_color_extends_to_terminal_width: bool,\n    pub decorations_width: Width,\n    pub inspect_raw_lines: InspectRawLines,\n    pub color_mode: ColorMode,\n    pub paging_mode: PagingMode,\n    pub syntax_set: SyntaxSet,\n    pub syntax_theme: Option<SyntaxTheme>,\n    pub true_color: bool,\n}\n\n#[derive(Clone, Debug, Default, PartialEq, Eq)]\npub enum Width {\n    Fixed(usize),\n    #[default]\n    Variable,\n}\n\n#[derive(Clone, Debug, Default, PartialEq, Eq)]\npub enum InspectRawLines {\n    True,\n    #[default]\n    False,\n}\n\n#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, ValueEnum)]\npub enum DetectDarkLight {\n    /// Only query the terminal for its colors if the output is not redirected.\n    #[default]\n    Auto,\n    /// Always query the terminal for its colors.\n    Always,\n    /// Never query the terminal for its colors.\n    Never,\n}\n\n// Which call path to take\n#[derive(Debug)]\npub enum Call<T> {\n    Delta(T),\n    DeltaDiff(T, PathBuf, PathBuf),\n    SubCommand(T, subcommands::SubCommand),\n    Help(String),\n    Version(String),\n}\n\nimpl Opt {\n    fn handle_help_and_version(args: &[OsString]) -> Call<ArgMatches> {\n        match Self::command().try_get_matches_from(args) {\n            Err(e) if e.kind() == clap::error::ErrorKind::DisplayVersion => {\n                let version = Self::command().render_version();\n                Call::Version(version)\n            }\n            Err(e) if e.kind() == clap::error::ErrorKind::DisplayHelp => {\n                let term = Term::stdout();\n                // No wrapping if short -h instead of --help was used:\n                if args.iter().any(|arg| arg == \"-h\") {\n                    let help_clap = Self::command().render_help();\n                    return Call::Help(if term.is_term() {\n                        help_clap.ansi().to_string()\n                    } else {\n                        help_clap.to_string()\n                    });\n                }\n\n                let help_clap = Self::command().render_long_help();\n                let (help_clap, wrap_width) = if term.is_term() {\n                    (\n                        help_clap.ansi().to_string(),\n                        utils::workarounds::windows_msys2_width_fix(term.size(), &term),\n                    )\n                } else {\n                    (help_clap.to_string(), TERM_FALLBACK_WIDTH)\n                };\n\n                // Stop wrapping for very narrow terminals, and leave a 2 wide margin on the right.\n                let wrap_width =\n                    wrap_width.clamp(TERM_FALLBACK_WIDTH - 22, TERM_FALLBACK_WIDTH + 22) - 2;\n\n                let mut help = utils::helpwrap::wrap(&help_clap, wrap_width, \"\", \"\", \"\");\n                let indent_with = \"  \";\n                let no_indent = \":no_Indent:\";\n                let no_wrap = \":no_Wrap:\";\n                let after_help = utils::helpwrap::wrap(\n                    &get_after_long_help(term.is_term(), no_indent, no_wrap),\n                    wrap_width,\n                    indent_with,\n                    no_indent,\n                    no_wrap,\n                );\n                help.push_str(&after_help);\n\n                Call::Help(help)\n            }\n            Err(e) => {\n                // Calls `e.exit()` if error persists.\n                let (matches, subcmd) = subcommands::extract(args, e);\n                Call::SubCommand(matches, subcmd)\n            }\n            Ok(matches) => {\n                // subcommands take precedence over diffs\n                let minus_file = matches.get_one::<PathBuf>(\"minus_file\").map(PathBuf::from);\n                if let Some(subcmd) = &minus_file {\n                    if let Some(arg) = subcmd.to_str() {\n                        if subcommands::SUBCOMMANDS.contains(&arg) {\n                            let unreachable_error =\n                                Error::new(clap::error::ErrorKind::InvalidSubcommand);\n                            let (matches, subcmd) = subcommands::extract(args, unreachable_error);\n                            return Call::SubCommand(matches, subcmd);\n                        }\n                    }\n                }\n\n                match (\n                    minus_file,\n                    matches.get_one::<PathBuf>(\"plus_file\").map(PathBuf::from),\n                ) {\n                    (Some(minus_file), Some(plus_file)) => {\n                        Call::DeltaDiff(matches, minus_file, plus_file)\n                    }\n                    _ => Call::Delta(matches),\n                }\n            }\n        }\n    }\n\n    pub fn from_args_and_git_config(\n        args: Vec<OsString>,\n        env: &DeltaEnv,\n        assets: HighlightingAssets,\n    ) -> (Call<()>, Option<Opt>) {\n        #[cfg(test)]\n        // Set argv[0] when called in tests:\n        let args = {\n            let mut args = args;\n            args.insert(0, OsString::from(\"delta\"));\n            args\n        };\n        let (matches, call) = match Self::handle_help_and_version(&args) {\n            Call::Delta(t) => (t, Call::Delta(())),\n            Call::DeltaDiff(t, a, b) => (t, Call::DeltaDiff((), a, b)),\n            Call::SubCommand(t, cmd) => (t, Call::SubCommand((), cmd)),\n            Call::Help(help) => return (Call::Help(help), None),\n            Call::Version(ver) => return (Call::Version(ver), None),\n        };\n\n        let mut final_config = if *matches.get_one::<bool>(\"no_gitconfig\").unwrap_or(&false) {\n            None\n        } else {\n            GitConfig::try_create(env)\n        };\n\n        if let Some(path) = matches.get_one::<String>(\"config\") {\n            if !path.is_empty() {\n                let path = Path::new(path);\n                final_config = Some(GitConfig::from_path(env, path, true));\n            }\n        }\n\n        let opt = Self::from_clap_and_git_config(env, matches, final_config, assets);\n        (call, Some(opt))\n    }\n\n    pub fn from_iter_and_git_config<I>(\n        env: &DeltaEnv,\n        iter: I,\n        git_config: Option<GitConfig>,\n    ) -> Self\n    where\n        I: IntoIterator,\n        I::Item: Into<OsString> + Clone,\n    {\n        let assets = utils::bat::assets::load_highlighting_assets();\n        Self::from_clap_and_git_config(\n            env,\n            Self::command().get_matches_from(iter),\n            git_config,\n            assets,\n        )\n    }\n\n    fn from_clap_and_git_config(\n        env: &DeltaEnv,\n        arg_matches: clap::ArgMatches,\n        mut git_config: Option<GitConfig>,\n        assets: HighlightingAssets,\n    ) -> Self {\n        let mut opt = Opt::from_arg_matches(&arg_matches)\n            .unwrap_or_else(|_| delta_unreachable(\"Opt::from_arg_matches failed\"));\n        opt.env = env.clone();\n        options::set::set_options(&mut opt, &mut git_config, &arg_matches, assets);\n        opt.git_config = git_config;\n        opt\n    }\n\n    pub fn get_argument_and_option_names() -> HashMap<String, String> {\n        let command = Self::command();\n        command\n            .get_opts()\n            .chain(command.get_arguments())\n            .filter_map(|arg| match (arg.get_id(), arg.get_long()) {\n                (id, Some(long)) => {\n                    if IGNORED_OPTION_NAMES.contains(long) {\n                        None\n                    } else {\n                        Some((id.to_string(), long.to_owned()))\n                    }\n                }\n                _ => None,\n            })\n            .collect()\n    }\n\n    pub fn git_config(&self) -> Option<&GitConfig> {\n        self.git_config.as_ref()\n    }\n}\n\n// Option names to exclude when listing options to process for various purposes. These are all\n// pseudo-flag commands such as --list-languages\nlazy_static! {\n    static ref IGNORED_OPTION_NAMES: HashSet<&'static str> = vec![\n        \"generate-completion\",\n        \"list-languages\",\n        \"list-syntax-themes\",\n        \"show-config\",\n        \"show-syntax-themes\",\n    ]\n    .into_iter()\n    .collect();\n}\n"
  },
  {
    "path": "src/color.rs",
    "content": "use std::collections::HashMap;\nuse std::str::FromStr;\n\nuse ansi_term::Color;\nuse lazy_static::lazy_static;\nuse syntect::highlighting::Color as SyntectColor;\n\nuse crate::fatal;\nuse crate::git_config::GitConfig;\nuse crate::utils;\nuse ColorMode::*;\n\npub fn parse_color(s: &str, true_color: bool, git_config: Option<&GitConfig>) -> Option<Color> {\n    if s == \"normal\" {\n        return None;\n    }\n    let die = || {\n        fatal(format!(\"Invalid color or style attribute: {s}\"));\n    };\n    let syntect_color = if s.starts_with('#') {\n        SyntectColor::from_str(s).unwrap_or_else(|_| die())\n    } else {\n        let syntect_color = s\n            .parse::<u8>()\n            .ok()\n            .and_then(utils::syntect::syntect_color_from_ansi_number)\n            .or_else(|| utils::syntect::syntect_color_from_ansi_name(s))\n            .or_else(|| utils::syntect::syntect_color_from_name(s));\n        if syntect_color.is_none() {\n            if let Some(git_config) = git_config {\n                if let Some(val) = git_config.get::<String>(&format!(\"delta.{s}\")) {\n                    return parse_color(&val, true_color, None);\n                }\n            }\n            die();\n        }\n        syntect_color.unwrap()\n    };\n    utils::bat::terminal::to_ansi_color(syntect_color, true_color)\n}\n\npub fn color_to_string(color: Color) -> String {\n    match color {\n        Color::Fixed(n) if n < 16 => ansi_16_color_number_to_name(n).unwrap().to_string(),\n        Color::Fixed(n) => format!(\"{n}\"),\n        Color::RGB(r, g, b) => format!(\"\\\"#{r:02x?}{g:02x?}{b:02x?}\\\"\"),\n        Color::Black => \"black\".to_string(),\n        Color::Red => \"red\".to_string(),\n        Color::Green => \"green\".to_string(),\n        Color::Yellow => \"yellow\".to_string(),\n        Color::Blue => \"blue\".to_string(),\n        Color::Purple => \"purple\".to_string(),\n        Color::Cyan => \"cyan\".to_string(),\n        Color::White => \"white\".to_string(),\n    }\n}\n\n// See\n// https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit\nlazy_static! {\n    static ref ANSI_16_COLORS: HashMap<&'static str, u8> = {\n        vec![\n            (\"black\", 0),\n            (\"red\", 1),\n            (\"green\", 2),\n            (\"yellow\", 3),\n            (\"blue\", 4),\n            (\"magenta\", 5),\n            (\"purple\", 5),\n            (\"cyan\", 6),\n            (\"white\", 7),\n            (\"bright-black\", 8),\n            (\"brightblack\", 8),\n            (\"bright-red\", 9),\n            (\"brightred\", 9),\n            (\"bright-green\", 10),\n            (\"brightgreen\", 10),\n            (\"bright-yellow\", 11),\n            (\"brightyellow\", 11),\n            (\"bright-blue\", 12),\n            (\"brightblue\", 12),\n            (\"bright-magenta\", 13),\n            (\"brightmagenta\", 13),\n            (\"bright-purple\", 13),\n            (\"brightpurple\", 13),\n            (\"bright-cyan\", 14),\n            (\"brightcyan\", 14),\n            (\"bright-white\", 15),\n            (\"brightwhite\", 15),\n        ]\n        .into_iter()\n        .collect()\n    };\n}\n\npub fn ansi_16_color_name_to_number(name: &str) -> Option<u8> {\n    ANSI_16_COLORS.get(name).copied()\n}\n\nfn ansi_16_color_number_to_name(n: u8) -> Option<&'static str> {\n    for (k, _n) in &*ANSI_16_COLORS {\n        if *_n == n {\n            return Some(*k);\n        }\n    }\n    None\n}\n\n/// The color mode determines some default color choices\n/// such as the diff background color or the palette used for blame.\n#[derive(Default, Clone, Copy, Debug, PartialEq, Eq)]\npub enum ColorMode {\n    #[default]\n    /// Dark background with light text.\n    Dark,\n    /// Light background with dark text.\n    Light,\n}\n\npub fn get_minus_background_color_default(mode: ColorMode, is_true_color: bool) -> Color {\n    match (mode, is_true_color) {\n        (Light, true) => LIGHT_THEME_MINUS_COLOR,\n        (Light, false) => LIGHT_THEME_MINUS_COLOR_256,\n        (Dark, true) => DARK_THEME_MINUS_COLOR,\n        (Dark, false) => DARK_THEME_MINUS_COLOR_256,\n    }\n}\n\npub fn get_minus_emph_background_color_default(mode: ColorMode, is_true_color: bool) -> Color {\n    match (mode, is_true_color) {\n        (Light, true) => LIGHT_THEME_MINUS_EMPH_COLOR,\n        (Light, false) => LIGHT_THEME_MINUS_EMPH_COLOR_256,\n        (Dark, true) => DARK_THEME_MINUS_EMPH_COLOR,\n        (Dark, false) => DARK_THEME_MINUS_EMPH_COLOR_256,\n    }\n}\n\npub fn get_plus_background_color_default(mode: ColorMode, is_true_color: bool) -> Color {\n    match (mode, is_true_color) {\n        (Light, true) => LIGHT_THEME_PLUS_COLOR,\n        (Light, false) => LIGHT_THEME_PLUS_COLOR_256,\n        (Dark, true) => DARK_THEME_PLUS_COLOR,\n        (Dark, false) => DARK_THEME_PLUS_COLOR_256,\n    }\n}\n\npub fn get_plus_emph_background_color_default(mode: ColorMode, is_true_color: bool) -> Color {\n    match (mode, is_true_color) {\n        (Light, true) => LIGHT_THEME_PLUS_EMPH_COLOR,\n        (Light, false) => LIGHT_THEME_PLUS_EMPH_COLOR_256,\n        (Dark, true) => DARK_THEME_PLUS_EMPH_COLOR,\n        (Dark, false) => DARK_THEME_PLUS_EMPH_COLOR_256,\n    }\n}\n\nconst LIGHT_THEME_MINUS_COLOR: Color = Color::RGB(0xff, 0xe0, 0xe0);\n\nconst LIGHT_THEME_MINUS_COLOR_256: Color = Color::Fixed(224);\n\nconst LIGHT_THEME_MINUS_EMPH_COLOR: Color = Color::RGB(0xff, 0xc0, 0xc0);\n\nconst LIGHT_THEME_MINUS_EMPH_COLOR_256: Color = Color::Fixed(217);\n\nconst LIGHT_THEME_PLUS_COLOR: Color = Color::RGB(0xd0, 0xff, 0xd0);\n\nconst LIGHT_THEME_PLUS_COLOR_256: Color = Color::Fixed(194);\n\nconst LIGHT_THEME_PLUS_EMPH_COLOR: Color = Color::RGB(0xa0, 0xef, 0xa0);\n\nconst LIGHT_THEME_PLUS_EMPH_COLOR_256: Color = Color::Fixed(157);\n\nconst DARK_THEME_MINUS_COLOR: Color = Color::RGB(0x3f, 0x00, 0x01);\n\nconst DARK_THEME_MINUS_COLOR_256: Color = Color::Fixed(52);\n\nconst DARK_THEME_MINUS_EMPH_COLOR: Color = Color::RGB(0x90, 0x10, 0x11);\n\nconst DARK_THEME_MINUS_EMPH_COLOR_256: Color = Color::Fixed(124);\n\nconst DARK_THEME_PLUS_COLOR: Color = Color::RGB(0x00, 0x28, 0x00);\n\nconst DARK_THEME_PLUS_COLOR_256: Color = Color::Fixed(22);\n\nconst DARK_THEME_PLUS_EMPH_COLOR: Color = Color::RGB(0x00, 0x60, 0x00);\n\nconst DARK_THEME_PLUS_EMPH_COLOR_256: Color = Color::Fixed(28);\n\n// blame\n\npub const LIGHT_THEME_BLAME_PALETTE: &[&str] = &[\"#FFFFFF\", \"#DDDDDD\", \"#BBBBBB\"];\n\npub const DARK_THEME_BLAME_PALETTE: &[&str] = &[\"#000000\", \"#222222\", \"#444444\"];\n"
  },
  {
    "path": "src/colors.rs",
    "content": "pub fn color_groups() -> Vec<(&'static str, Vec<(&'static str, &'static str)>)> {\n    vec![\n        (\n            \"Blue\",\n            vec![\n                (\"cadetblue\", \"#5f9ea0\"),\n                (\"steelblue\", \"#4682b4\"),\n                (\"lightsteelblue\", \"#b0c4de\"),\n                (\"lightblue\", \"#add8e6\"),\n                (\"powderblue\", \"#b0e0e6\"),\n                (\"lightskyblue\", \"#87cefa\"),\n                (\"skyblue\", \"#87ceeb\"),\n                (\"cornflowerblue\", \"#6495ed\"),\n                (\"deepskyblue\", \"#00bfff\"),\n                (\"dodgerblue\", \"#1e90ff\"),\n                (\"royalblue\", \"#4169e1\"),\n                (\"blue\", \"#0000ff\"),\n                (\"mediumblue\", \"#0000cd\"),\n                (\"darkblue\", \"#00008b\"),\n                (\"navy\", \"#000080\"),\n                (\"midnightblue\", \"#191970\"),\n            ],\n        ),\n        (\n            \"Brown\",\n            vec![\n                (\"cornsilk\", \"#fff8dc\"),\n                (\"blanchedalmond\", \"#ffebcd\"),\n                (\"bisque\", \"#ffe4c4\"),\n                (\"navajowhite\", \"#ffdead\"),\n                (\"wheat\", \"#f5deb3\"),\n                (\"burlywood\", \"#deb887\"),\n                (\"tan\", \"#d2b48c\"),\n                (\"rosybrown\", \"#bc8f8f\"),\n                (\"sandybrown\", \"#f4a460\"),\n                (\"goldenrod\", \"#daa520\"),\n                (\"darkgoldenrod\", \"#b8860b\"),\n                (\"peru\", \"#cd853f\"),\n                (\"chocolate\", \"#d2691e\"),\n                (\"olive\", \"#808000\"),\n                (\"saddlebrown\", \"#8b4513\"),\n                (\"sienna\", \"#a0522d\"),\n                (\"brown\", \"#a52a2a\"),\n                (\"maroon\", \"#800000\"),\n            ],\n        ),\n        (\n            \"Cyan\",\n            vec![\n                (\"aqua\", \"#00ffff\"),\n                (\"cyan\", \"#00ffff\"),\n                (\"lightcyan\", \"#e0ffff\"),\n                (\"paleturquoise\", \"#afeeee\"),\n                (\"aquamarine\", \"#7fffd4\"),\n                (\"turquoise\", \"#40e0d0\"),\n                (\"mediumturquoise\", \"#48d1cc\"),\n                (\"darkturquoise\", \"#00ced1\"),\n            ],\n        ),\n        (\n            \"Green\",\n            vec![\n                (\"greenyellow\", \"#adff2f\"),\n                (\"chartreuse\", \"#7fff00\"),\n                (\"lawngreen\", \"#7cfc00\"),\n                (\"lime\", \"#00ff00\"),\n                (\"limegreen\", \"#32cd32\"),\n                (\"palegreen\", \"#98fb98\"),\n                (\"lightgreen\", \"#90ee90\"),\n                (\"mediumspringgreen\", \"#00fa9a\"),\n                (\"springgreen\", \"#00ff7f\"),\n                (\"mediumseagreen\", \"#3cb371\"),\n                (\"seagreen\", \"#2e8b57\"),\n                (\"forestgreen\", \"#228b22\"),\n                (\"green\", \"#008000\"),\n                (\"darkgreen\", \"#006400\"),\n                (\"yellowgreen\", \"#9acd32\"),\n                (\"olivedrab\", \"#6b8e23\"),\n                (\"darkolivegreen\", \"#556b2f\"),\n                (\"mediumaquamarine\", \"#66cdaa\"),\n                (\"darkseagreen\", \"#8fbc8f\"),\n                (\"lightseagreen\", \"#20b2aa\"),\n                (\"darkcyan\", \"#008b8b\"),\n                (\"teal\", \"#008080\"),\n            ],\n        ),\n        (\n            \"Grey\",\n            vec![\n                (\"gainsboro\", \"#dcdcdc\"),\n                (\"lightgray\", \"#d3d3d3\"),\n                (\"silver\", \"#c0c0c0\"),\n                (\"darkgray\", \"#a9a9a9\"),\n                (\"dimgray\", \"#696969\"),\n                (\"gray\", \"#808080\"),\n                (\"lightslategray\", \"#778899\"),\n                (\"slategray\", \"#708090\"),\n                (\"darkslategray\", \"#2f4f4f\"),\n                (\"black\", \"#000000\"),\n            ],\n        ),\n        (\n            \"Orange\",\n            vec![\n                (\"orange\", \"#ffa500\"),\n                (\"darkorange\", \"#ff8c00\"),\n                (\"coral\", \"#ff7f50\"),\n                (\"tomato\", \"#ff6347\"),\n                (\"orangered\", \"#ff4500\"),\n            ],\n        ),\n        (\n            \"Pink\",\n            vec![\n                (\"pink\", \"#ffc0cb\"),\n                (\"lightpink\", \"#ffb6c1\"),\n                (\"hotpink\", \"#ff69b4\"),\n                (\"deeppink\", \"#ff1493\"),\n                (\"palevioletred\", \"#db7093\"),\n                (\"mediumvioletred\", \"#c71585\"),\n            ],\n        ),\n        (\n            \"Purple\",\n            vec![\n                (\"lavender\", \"#e6e6fa\"),\n                (\"thistle\", \"#d8bfd8\"),\n                (\"plum\", \"#dda0dd\"),\n                (\"orchid\", \"#da70d6\"),\n                (\"violet\", \"#ee82ee\"),\n                (\"fuchsia\", \"#ff00ff\"),\n                (\"magenta\", \"#ff00ff\"),\n                (\"mediumorchid\", \"#ba55d3\"),\n                (\"darkorchid\", \"#9932cc\"),\n                (\"darkviolet\", \"#9400d3\"),\n                (\"blueviolet\", \"#8a2be2\"),\n                (\"darkmagenta\", \"#8b008b\"),\n                (\"purple\", \"#800080\"),\n                (\"mediumpurple\", \"#9370db\"),\n                (\"mediumslateblue\", \"#7b68ee\"),\n                (\"slateblue\", \"#6a5acd\"),\n                (\"darkslateblue\", \"#483d8b\"),\n                (\"rebeccapurple\", \"#663399\"),\n                (\"indigo\", \"#4b0082\"),\n            ],\n        ),\n        (\n            \"Red\",\n            vec![\n                (\"lightsalmon\", \"#ffa07a\"),\n                (\"salmon\", \"#fa8072\"),\n                (\"darksalmon\", \"#e9967a\"),\n                (\"lightcoral\", \"#f08080\"),\n                (\"indianred\", \"#cd5c5c\"),\n                (\"crimson\", \"#dc143c\"),\n                (\"red\", \"#ff0000\"),\n                (\"firebrick\", \"#b22222\"),\n                (\"darkred\", \"#8b0000\"),\n            ],\n        ),\n        (\n            \"White\",\n            vec![\n                (\"white\", \"#ffffff\"),\n                (\"snow\", \"#fffafa\"),\n                (\"honeydew\", \"#f0fff0\"),\n                (\"mintcream\", \"#f5fffa\"),\n                (\"azure\", \"#f0ffff\"),\n                (\"aliceblue\", \"#f0f8ff\"),\n                (\"ghostwhite\", \"#f8f8ff\"),\n                (\"whitesmoke\", \"#f5f5f5\"),\n                (\"seashell\", \"#fff5ee\"),\n                (\"beige\", \"#f5f5dc\"),\n                (\"oldlace\", \"#fdf5e6\"),\n                (\"floralwhite\", \"#fffaf0\"),\n                (\"ivory\", \"#fffff0\"),\n                (\"antiquewhite\", \"#faebd7\"),\n                (\"linen\", \"#faf0e6\"),\n                (\"lavenderblush\", \"#fff0f5\"),\n                (\"mistyrose\", \"#ffe4e1\"),\n            ],\n        ),\n        (\n            \"Yellow\",\n            vec![\n                (\"gold\", \"#ffd700\"),\n                (\"yellow\", \"#ffff00\"),\n                (\"lightyellow\", \"#ffffe0\"),\n                (\"lemonchiffon\", \"#fffacd\"),\n                (\"lightgoldenrodyellow\", \"#fafad2\"),\n                (\"papayawhip\", \"#ffefd5\"),\n                (\"moccasin\", \"#ffe4b5\"),\n                (\"peachpuff\", \"#ffdab9\"),\n                (\"palegoldenrod\", \"#eee8aa\"),\n                (\"khaki\", \"#f0e68c\"),\n                (\"darkkhaki\", \"#bdb76b\"),\n            ],\n        ),\n    ]\n}\n"
  },
  {
    "path": "src/config.rs",
    "content": "use std::collections::HashMap;\nuse std::path::PathBuf;\n\nuse clap::parser::ValueSource;\nuse regex::Regex;\nuse syntect::highlighting::Style as SyntectStyle;\nuse syntect::highlighting::Theme as SyntaxTheme;\nuse syntect::parsing::SyntaxSet;\n\nuse crate::ansi;\nuse crate::cli;\nuse crate::color::{self, ColorMode};\nuse crate::delta::State;\nuse crate::fatal;\nuse crate::features::navigate;\nuse crate::features::side_by_side::{self, ansifill, LeftRight};\nuse crate::git_config::GitConfig;\nuse crate::handlers;\nuse crate::handlers::blame::parse_blame_line_numbers;\nuse crate::handlers::blame::BlameLineNumbers;\nuse crate::minusplus::MinusPlus;\nuse crate::paint::BgFillMethod;\nuse crate::parse_styles;\nuse crate::style;\nuse crate::style::Style;\nuse crate::tests::TESTING;\nuse crate::utils;\nuse crate::utils::bat::output::PagingMode;\nuse crate::utils::regex_replacement::RegexReplacement;\nuse crate::wrapping::WrapConfig;\n\npub const INLINE_SYMBOL_WIDTH_1: usize = 1;\n\n// Used if an invalid default-language was specified.\npub const SYNTAX_FALLBACK_LANG: &str = \"txt\";\n\n#[cfg_attr(test, derive(Clone))]\npub struct Config {\n    pub available_terminal_width: usize,\n    pub background_color_extends_to_terminal_width: bool,\n    pub blame_code_style: Option<Style>,\n    pub blame_format: String,\n    pub blame_separator_format: BlameLineNumbers,\n    pub blame_palette: Vec<String>,\n    pub blame_separator_style: Option<Style>,\n    pub blame_timestamp_format: String,\n    pub blame_timestamp_output_format: Option<String>,\n    pub color_only: bool,\n    pub commit_regex: Regex,\n    pub commit_style: Style,\n    pub cwd_of_delta_process: Option<PathBuf>,\n    pub cwd_of_user_shell_process: Option<PathBuf>,\n    pub cwd_relative_to_repo_root: Option<String>,\n    pub decorations_width: cli::Width,\n    pub default_language: String,\n    pub diff_args: String,\n    pub diff_stat_align_width: usize,\n    pub error_exit_code: i32,\n    pub file_added_label: String,\n    pub file_copied_label: String,\n    pub file_modified_label: String,\n    pub file_removed_label: String,\n    pub file_renamed_label: String,\n    pub file_regex_replacement: Option<RegexReplacement>,\n    pub right_arrow: String,\n    pub file_style: Style,\n    pub git_config: Option<GitConfig>,\n    pub git_minus_style: Style,\n    pub git_plus_style: Style,\n    pub grep_context_line_style: Style,\n    pub grep_file_style: Style,\n    pub classic_grep_header_file_style: Style,\n    pub classic_grep_header_style: Style,\n    pub ripgrep_header_style: Style,\n    pub grep_line_number_style: Style,\n    pub grep_match_line_style: Style,\n    pub grep_match_word_style: Style,\n    pub grep_output_type: Option<GrepType>,\n    pub grep_separator_symbol: String,\n    pub handle_merge_conflicts: bool,\n    pub hostname: Option<String>,\n    pub hunk_header_file_style: Style,\n    pub hunk_header_line_number_style: Style,\n    pub hunk_header_style_include_file_path: HunkHeaderIncludeFilePath,\n    pub hunk_header_style_include_line_number: HunkHeaderIncludeLineNumber,\n    pub hunk_header_style_include_code_fragment: HunkHeaderIncludeCodeFragment,\n    pub hunk_header_style: Style,\n    pub hunk_label: String,\n    pub hyperlinks_commit_link_format: Option<String>,\n    pub hyperlinks_file_link_format: String,\n    pub hyperlinks: bool,\n    pub inline_hint_style: Style,\n    pub inspect_raw_lines: cli::InspectRawLines,\n    pub keep_plus_minus_markers: bool,\n    pub line_buffer_size: usize,\n    pub line_fill_method: BgFillMethod,\n    pub line_numbers_format: LeftRight<String>,\n    pub line_numbers_style_leftright: LeftRight<Style>,\n    pub line_numbers_style_minusplus: MinusPlus<Style>,\n    pub line_numbers_zero_style: Style,\n    pub line_numbers: bool,\n    pub styles_map: Option<HashMap<style::AnsiTermStyleEqualityKey, Style>>,\n    pub max_line_distance_for_naively_paired_lines: f64,\n    pub max_line_distance: f64,\n    pub max_line_length: usize,\n    pub max_syntax_length: usize,\n    pub merge_conflict_begin_symbol: String,\n    pub merge_conflict_ours_diff_header_style: Style,\n    pub merge_conflict_theirs_diff_header_style: Style,\n    pub merge_conflict_end_symbol: String,\n    pub minus_emph_style: Style,\n    pub minus_empty_line_marker_style: Style,\n    pub minus_file: Option<PathBuf>,\n    pub minus_non_emph_style: Style,\n    pub minus_style: Style,\n    pub navigate_regex: Option<String>,\n    pub navigate: bool,\n    pub null_style: Style,\n    pub null_syntect_style: SyntectStyle,\n    pub pager: Option<String>,\n    pub paging_mode: PagingMode,\n    pub plus_emph_style: Style,\n    pub plus_empty_line_marker_style: Style,\n    pub plus_file: Option<PathBuf>,\n    pub plus_non_emph_style: Style,\n    pub plus_style: Style,\n    pub relative_paths: bool,\n    pub show_themes: bool,\n    pub side_by_side_data: side_by_side::SideBySideData,\n    pub side_by_side: bool,\n    pub syntax_set: SyntaxSet,\n    pub syntax_theme: Option<SyntaxTheme>,\n    pub tab_cfg: utils::tabs::TabCfg,\n    pub tokenization_regex: Regex,\n    pub true_color: bool,\n    pub truncation_symbol: String,\n    pub whitespace_error_style: Style,\n    pub wrap_config: WrapConfig,\n    pub zero_style: Style,\n}\n\n#[derive(Debug, Eq, PartialEq, Clone)]\npub enum GrepType {\n    Ripgrep,\n    Classic,\n}\n\n#[cfg_attr(test, derive(Clone))]\npub enum HunkHeaderIncludeFilePath {\n    Yes,\n    No,\n}\n\n#[cfg_attr(test, derive(Clone))]\npub enum HunkHeaderIncludeLineNumber {\n    Yes,\n    No,\n}\n\n#[cfg_attr(test, derive(Clone))]\npub enum HunkHeaderIncludeCodeFragment {\n    Yes,\n    YesNoSpace,\n    No,\n}\n\nimpl Config {\n    pub fn get_style(&self, state: &State) -> &Style {\n        match state {\n            State::HunkMinus(_, _) => &self.minus_style,\n            State::HunkZero(_, _) => &self.zero_style,\n            State::HunkPlus(_, _) => &self.plus_style,\n            State::CommitMeta => &self.commit_style,\n            State::DiffHeader(_) => &self.file_style,\n            State::Grep(GrepType::Ripgrep, _, _, _) => &self.classic_grep_header_style,\n            State::HunkHeader(_, _, _, _) => &self.hunk_header_style,\n            State::SubmoduleLog => &self.file_style,\n            _ => delta_unreachable(\"Unreachable code reached in get_style.\"),\n        }\n    }\n\n    pub fn git_config(&self) -> Option<&GitConfig> {\n        self.git_config.as_ref()\n    }\n}\n\nimpl From<cli::Opt> for Config {\n    fn from(opt: cli::Opt) -> Self {\n        let mut styles = parse_styles::parse_styles(&opt);\n        let styles_map = parse_styles::parse_styles_map(&opt);\n\n        let wrap_config = WrapConfig::from_opt(&opt, styles[\"inline-hint-style\"]);\n\n        let max_line_distance_for_naively_paired_lines = opt\n            .env\n            .experimental_max_line_distance_for_naively_paired_lines\n            .as_ref()\n            .map(|s| s.parse::<f64>().unwrap_or(0.0))\n            .unwrap_or(0.0);\n\n        let commit_regex = Regex::new(&opt.commit_regex).unwrap_or_else(|_| {\n            fatal(format!(\n                \"Invalid commit-regex: {}. \\\n                 The value must be a valid Rust regular expression. \\\n                 See https://docs.rs/regex.\",\n                opt.commit_regex\n            ));\n        });\n\n        let tokenization_regex = Regex::new(&opt.tokenization_regex).unwrap_or_else(|_| {\n            fatal(format!(\n                \"Invalid word-diff-regex: {}. \\\n                 The value must be a valid Rust regular expression. \\\n                 See https://docs.rs/regex.\",\n                opt.tokenization_regex\n            ));\n        });\n\n        let blame_palette = make_blame_palette(opt.blame_palette, opt.computed.color_mode);\n\n        if blame_palette.is_empty() {\n            fatal(\"Option 'blame-palette' must not be empty.\")\n        }\n\n        let file_added_label = opt.file_added_label;\n        let file_copied_label = opt.file_copied_label;\n        let file_modified_label = opt.file_modified_label;\n        let file_removed_label = opt.file_removed_label;\n        let file_renamed_label = opt.file_renamed_label;\n        let right_arrow = opt.right_arrow;\n        let hunk_label = opt.hunk_label;\n\n        let line_fill_method = match opt.line_fill_method.as_deref() {\n            // Note that \"default\" is not documented\n            Some(\"ansi\") | Some(\"default\") | None => BgFillMethod::TryAnsiSequence,\n            Some(\"spaces\") => BgFillMethod::Spaces,\n            _ => fatal(\"Invalid option for line-fill-method: Expected \\\"ansi\\\" or \\\"spaces\\\".\"),\n        };\n\n        let side_by_side_data = side_by_side::SideBySideData::new_sbs(\n            &opt.computed.decorations_width,\n            &opt.computed.available_terminal_width,\n        );\n        let side_by_side_data = ansifill::UseFullPanelWidth::sbs_odd_fix(\n            &opt.computed.decorations_width,\n            &line_fill_method,\n            side_by_side_data,\n        );\n\n        let navigate_regex = if (opt.navigate || opt.show_themes)\n            && (opt.navigate_regex.is_none() || opt.navigate_regex == Some(\"\".to_string()))\n        {\n            Some(navigate::make_navigate_regex(\n                opt.show_themes,\n                &file_modified_label,\n                &file_added_label,\n                &file_removed_label,\n                &file_renamed_label,\n                &hunk_label,\n            ))\n        } else {\n            opt.navigate_regex\n        };\n\n        let grep_output_type = match opt.grep_output_type.as_deref() {\n            Some(\"ripgrep\") => Some(GrepType::Ripgrep),\n            Some(\"classic\") => Some(GrepType::Classic),\n            None => None,\n            _ => fatal(\"Invalid option for grep-output-type: Expected \\\"ripgrep\\\" or \\\"classic\\\".\"),\n        };\n\n        #[cfg(not(test))]\n        let cwd_of_delta_process = opt.env.current_dir;\n        #[cfg(test)]\n        let cwd_of_delta_process = Some(utils::path::fake_delta_cwd_for_tests());\n\n        let cwd_relative_to_repo_root = opt.env.git_prefix;\n\n        let cwd_of_user_shell_process = utils::path::cwd_of_user_shell_process(\n            cwd_of_delta_process.as_ref(),\n            cwd_relative_to_repo_root.as_deref(),\n        );\n\n        Self {\n            available_terminal_width: opt.computed.available_terminal_width,\n            background_color_extends_to_terminal_width: opt\n                .computed\n                .background_color_extends_to_terminal_width,\n            blame_format: opt.blame_format,\n            blame_code_style: styles.remove(\"blame-code-style\"),\n            blame_palette,\n            blame_separator_format: parse_blame_line_numbers(&opt.blame_separator_format),\n            blame_separator_style: styles.remove(\"blame-separator-style\"),\n            blame_timestamp_format: opt.blame_timestamp_format,\n            blame_timestamp_output_format: opt.blame_timestamp_output_format,\n            commit_style: styles[\"commit-style\"],\n            color_only: opt.color_only,\n            commit_regex,\n            cwd_of_delta_process,\n            cwd_of_user_shell_process,\n            cwd_relative_to_repo_root,\n            decorations_width: opt.computed.decorations_width,\n            default_language: opt.default_language,\n            diff_args: opt.diff_args,\n            diff_stat_align_width: opt.diff_stat_align_width,\n            error_exit_code: 2, // Use 2 for error because diff uses 0 and 1 for non-error.\n            file_added_label,\n            file_copied_label,\n            file_modified_label,\n            file_removed_label,\n            file_renamed_label,\n            file_regex_replacement: opt\n                .file_regex_replacement\n                .as_deref()\n                .and_then(RegexReplacement::from_sed_command),\n            right_arrow,\n            hunk_label,\n            file_style: styles[\"file-style\"],\n            git_config: opt.git_config,\n            grep_context_line_style: styles[\"grep-context-line-style\"],\n            grep_file_style: styles[\"grep-file-style\"],\n            classic_grep_header_file_style: styles[\"classic-grep-header-file-style\"],\n            classic_grep_header_style: styles[\"classic-grep-header-style\"],\n            ripgrep_header_style: styles[\"ripgrep-header-style\"],\n            grep_line_number_style: styles[\"grep-line-number-style\"],\n            grep_match_line_style: styles[\"grep-match-line-style\"],\n            grep_match_word_style: styles[\"grep-match-word-style\"],\n            grep_output_type,\n            grep_separator_symbol: opt.grep_separator_symbol,\n            handle_merge_conflicts: !opt.raw,\n            hostname: opt.env.hostname,\n            hunk_header_file_style: styles[\"hunk-header-file-style\"],\n            hunk_header_line_number_style: styles[\"hunk-header-line-number-style\"],\n            hunk_header_style: styles[\"hunk-header-style\"],\n            hunk_header_style_include_file_path: if opt\n                .hunk_header_style\n                .split(' ')\n                .any(|s| s == \"file\")\n            {\n                HunkHeaderIncludeFilePath::Yes\n            } else {\n                HunkHeaderIncludeFilePath::No\n            },\n            hunk_header_style_include_line_number: if opt\n                .hunk_header_style\n                .split(' ')\n                .any(|s| s == \"line-number\")\n            {\n                HunkHeaderIncludeLineNumber::Yes\n            } else {\n                HunkHeaderIncludeLineNumber::No\n            },\n            hunk_header_style_include_code_fragment: if opt\n                .hunk_header_style\n                .split(' ')\n                .any(|s| s == \"omit-code-fragment\")\n            {\n                HunkHeaderIncludeCodeFragment::No\n            } else {\n                HunkHeaderIncludeCodeFragment::Yes\n            },\n            hyperlinks: opt.hyperlinks,\n            hyperlinks_commit_link_format: opt.hyperlinks_commit_link_format,\n            hyperlinks_file_link_format: opt.hyperlinks_file_link_format,\n            inspect_raw_lines: opt.computed.inspect_raw_lines,\n            inline_hint_style: styles[\"inline-hint-style\"],\n            keep_plus_minus_markers: opt.keep_plus_minus_markers,\n            line_fill_method: if !opt.computed.stdout_is_term && !TESTING {\n                // Don't write ANSI sequences (which rely on the width of the\n                // current terminal) into a file. Also see UseFullPanelWidth.\n                // But when testing always use given value.\n                BgFillMethod::Spaces\n            } else {\n                line_fill_method\n            },\n            line_numbers: opt.line_numbers && !handlers::hunk::is_word_diff(),\n            line_numbers_format: LeftRight::new(\n                opt.line_numbers_left_format,\n                opt.line_numbers_right_format,\n            ),\n            line_numbers_style_leftright: LeftRight::new(\n                styles[\"line-numbers-left-style\"],\n                styles[\"line-numbers-right-style\"],\n            ),\n            line_numbers_style_minusplus: MinusPlus::new(\n                styles[\"line-numbers-minus-style\"],\n                styles[\"line-numbers-plus-style\"],\n            ),\n            line_numbers_zero_style: styles[\"line-numbers-zero-style\"],\n            line_buffer_size: opt.line_buffer_size,\n            max_line_distance: opt.max_line_distance,\n            max_line_distance_for_naively_paired_lines,\n            max_line_length: if opt.side_by_side {\n                wrap_config.config_max_line_length(\n                    opt.max_line_length,\n                    opt.computed.available_terminal_width,\n                )\n            } else {\n                opt.max_line_length\n            },\n            max_syntax_length: opt.max_syntax_length,\n            merge_conflict_begin_symbol: opt.merge_conflict_begin_symbol,\n            merge_conflict_ours_diff_header_style: styles[\"merge-conflict-ours-diff-header-style\"],\n            merge_conflict_theirs_diff_header_style: styles\n                [\"merge-conflict-theirs-diff-header-style\"],\n            merge_conflict_end_symbol: opt.merge_conflict_end_symbol,\n            minus_emph_style: styles[\"minus-emph-style\"],\n            minus_empty_line_marker_style: styles[\"minus-empty-line-marker-style\"],\n            minus_file: opt.minus_file,\n            minus_non_emph_style: styles[\"minus-non-emph-style\"],\n            minus_style: styles[\"minus-style\"],\n            navigate: opt.navigate,\n            navigate_regex,\n            null_style: Style::new(),\n            null_syntect_style: SyntectStyle::default(),\n            pager: opt.pager,\n            paging_mode: opt.computed.paging_mode,\n            plus_emph_style: styles[\"plus-emph-style\"],\n            plus_empty_line_marker_style: styles[\"plus-empty-line-marker-style\"],\n            plus_file: opt.plus_file,\n            plus_non_emph_style: styles[\"plus-non-emph-style\"],\n            plus_style: styles[\"plus-style\"],\n            git_minus_style: styles[\"git-minus-style\"],\n            git_plus_style: styles[\"git-plus-style\"],\n            relative_paths: opt.relative_paths,\n            show_themes: opt.show_themes,\n            side_by_side: opt.side_by_side && !handlers::hunk::is_word_diff(),\n            side_by_side_data,\n            styles_map,\n            syntax_set: opt.computed.syntax_set,\n            syntax_theme: opt.computed.syntax_theme,\n            tab_cfg: utils::tabs::TabCfg::new(opt.tab_width),\n            tokenization_regex,\n            true_color: opt.computed.true_color,\n            truncation_symbol: format!(\"{}→{}\", ansi::ANSI_SGR_REVERSE, ansi::ANSI_SGR_RESET),\n            wrap_config,\n            whitespace_error_style: styles[\"whitespace-error-style\"],\n            zero_style: styles[\"zero-style\"],\n        }\n    }\n}\n\nfn make_blame_palette(blame_palette: Option<String>, mode: ColorMode) -> Vec<String> {\n    match (blame_palette, mode) {\n        (Some(string), _) => string\n            .split_whitespace()\n            .map(|s| s.to_owned())\n            .collect::<Vec<String>>(),\n        (None, ColorMode::Light) => color::LIGHT_THEME_BLAME_PALETTE\n            .iter()\n            .map(|s| s.to_string())\n            .collect::<Vec<String>>(),\n        (None, ColorMode::Dark) => color::DARK_THEME_BLAME_PALETTE\n            .iter()\n            .map(|s| s.to_string())\n            .collect::<Vec<String>>(),\n    }\n}\n\n/// Did the user supply `option` on the command line?\npub fn user_supplied_option(option: &str, arg_matches: &clap::ArgMatches) -> bool {\n    arg_matches.value_source(option) == Some(ValueSource::CommandLine)\n}\n\npub fn delta_unreachable(message: &str) -> ! {\n    fatal(format!(\n        \"{message} This should not be possible. \\\n         Please report the bug at https://github.com/dandavison/delta/issues.\",\n    ));\n}\n\n#[cfg(test)]\n// Usual length of the header returned by `run_delta()`, often `skip()`-ed.\npub const HEADER_LEN: usize = 7;\n\n#[cfg(test)]\npub mod tests {\n    use crate::cli;\n    use crate::tests::integration_test_utils;\n    use crate::utils::bat::output::PagingMode;\n    use std::fs::remove_file;\n\n    #[test]\n    fn test_get_computed_values_from_config() {\n        let git_config_contents = b\"\n[delta]\n    true-color = never\n    width = 100\n    inspect-raw-lines = true\n    paging = never\n    syntax-theme = None\n\";\n        let git_config_path = \"delta__test_get_true_color_from_config.gitconfig\";\n        let config = integration_test_utils::make_config_from_args_and_git_config(\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        assert!(!config.true_color);\n        assert_eq!(config.decorations_width, cli::Width::Fixed(100));\n        assert!(config.background_color_extends_to_terminal_width);\n        assert_eq!(config.inspect_raw_lines, cli::InspectRawLines::True);\n        assert_eq!(config.paging_mode, PagingMode::Never);\n        assert!(config.syntax_theme.is_none());\n        // syntax_set doesn't depend on gitconfig.\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/delta.rs",
    "content": "use std::borrow::Cow;\nuse std::collections::HashMap;\nuse std::io::{self, BufRead, IsTerminal, Write};\n\nuse bytelines::ByteLines;\n\nuse crate::ansi;\nuse crate::config::delta_unreachable;\nuse crate::config::Config;\nuse crate::config::GrepType;\nuse crate::features;\nuse crate::handlers::grep;\nuse crate::handlers::hunk_header::{AmbiguousDiffMinusCounter, ParsedHunkHeader};\nuse crate::handlers::{self, merge_conflict};\nuse crate::paint::Painter;\nuse crate::style::DecorationStyle;\nuse crate::utils;\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum State {\n    CommitMeta,                                             // In commit metadata section\n    DiffHeader(DiffType), // In diff metadata section, between (possible) commit metadata and first hunk\n    HunkHeader(DiffType, ParsedHunkHeader, String, String), // In hunk metadata line (diff_type, parsed, line, raw_line)\n    HunkZero(DiffType, Option<String>), // In hunk; unchanged line (prefix, raw_line)\n    HunkMinus(DiffType, Option<String>), // In hunk; removed line (diff_type, raw_line)\n    HunkPlus(DiffType, Option<String>), // In hunk; added line (diff_type, raw_line)\n    MergeConflict(MergeParents, merge_conflict::MergeConflictCommit),\n    SubmoduleLog, // In a submodule section, with gitconfig diff.submodule = log\n    SubmoduleShort(String), // In a submodule section, with gitconfig diff.submodule = short\n    Blame(String), // In a line of `git blame` output (key).\n    GitShowFile,  // In a line of `git show $revision:./path/to/file.ext` output\n    Grep(GrepType, grep::LineType, String, Option<usize>), // In a line of `git grep` output (grep_type, line_type, path, line_number)\n    Unknown,\n    // The following elements are created when a line is wrapped to display it:\n    HunkZeroWrapped,  // Wrapped unchanged line\n    HunkMinusWrapped, // Wrapped removed line\n    HunkPlusWrapped,  // Wrapped added line\n}\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum DiffType {\n    Unified,\n    // https://git-scm.com/docs/git-diff#_combined_diff_format\n    Combined(MergeParents, InMergeConflict),\n}\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum MergeParents {\n    Number(usize),  // Number of parent commits == (number of @s in hunk header) - 1\n    Prefix(String), // Hunk line prefix, length == number of parent commits\n    Unknown,\n}\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum InMergeConflict {\n    Yes,\n    No,\n}\n\nimpl DiffType {\n    pub fn n_parents(&self) -> usize {\n        use DiffType::*;\n        use MergeParents::*;\n        match self {\n            Combined(Prefix(prefix), _) => prefix.len(),\n            Combined(Number(n_parents), _) => *n_parents,\n            Unified => 1,\n            Combined(Unknown, _) => delta_unreachable(\"Number of merge parents must be known.\"),\n        }\n    }\n}\n\n#[derive(Debug, PartialEq, Eq)]\npub enum Source {\n    GitDiff,     // Coming from a `git diff` command\n    DiffUnified, // Coming from a `diff -u` command\n    Unknown,\n}\n\n// Possible transitions, with actions on entry:\n//\n//\n// | from \\ to   | CommitMeta  | DiffHeader  | HunkHeader  | HunkZero    | HunkMinus   | HunkPlus |\n// |-------------+-------------+-------------+-------------+-------------+-------------+----------|\n// | CommitMeta  | emit        | emit        |             |             |             |          |\n// | DiffHeader  |             | emit        | emit        |             |             |          |\n// | HunkHeader  |             |             |             | emit        | push        | push     |\n// | HunkZero    | emit        | emit        | emit        | emit        | push        | push     |\n// | HunkMinus   | flush, emit | flush, emit | flush, emit | flush, emit | push        | push     |\n// | HunkPlus    | flush, emit | flush, emit | flush, emit | flush, emit | flush, push | push     |\n\npub struct StateMachine<'a> {\n    pub line: String,\n    pub raw_line: String,\n    pub state: State,\n    pub source: Source,\n    pub minus_file: String,\n    pub plus_file: String,\n    pub minus_file_event: handlers::diff_header::FileEvent,\n    pub plus_file_event: handlers::diff_header::FileEvent,\n    pub diff_line: String,\n    pub mode_info: String,\n    pub painter: Painter<'a>,\n    pub config: &'a Config,\n\n    // When a file is modified, we use lines starting with '---' or '+++' to obtain the file name.\n    // When a file is renamed without changes, we use lines starting with 'rename' to obtain the\n    // file name (there is no diff hunk and hence no lines starting with '---' or '+++'). But when\n    // a file is renamed with changes, both are present, and we rely on the following variables to\n    // avoid emitting the file meta header line twice (#245).\n    pub current_file_pair: Option<(String, String)>,\n    pub handled_diff_header_header_line_file_pair: Option<(String, String)>,\n    pub blame_key_colors: HashMap<String, String>,\n    pub minus_line_counter: AmbiguousDiffMinusCounter,\n}\n\npub fn delta<I>(lines: ByteLines<I>, writer: &mut dyn Write, config: &Config) -> std::io::Result<()>\nwhere\n    I: BufRead,\n{\n    StateMachine::new(writer, config).consume(lines)\n}\n\nimpl<'a> StateMachine<'a> {\n    pub fn new(writer: &'a mut dyn Write, config: &'a Config) -> Self {\n        Self {\n            line: \"\".to_string(),\n            raw_line: \"\".to_string(),\n            state: State::Unknown,\n            source: Source::Unknown,\n            minus_file: \"\".to_string(),\n            plus_file: \"\".to_string(),\n            minus_file_event: handlers::diff_header::FileEvent::NoEvent,\n            plus_file_event: handlers::diff_header::FileEvent::NoEvent,\n            diff_line: \"\".to_string(),\n            mode_info: \"\".to_string(),\n            current_file_pair: None,\n            handled_diff_header_header_line_file_pair: None,\n            painter: Painter::new(writer, config),\n            config,\n            blame_key_colors: HashMap::new(),\n            minus_line_counter: AmbiguousDiffMinusCounter::not_needed(),\n        }\n    }\n\n    fn consume<I>(&mut self, mut lines: ByteLines<I>) -> std::io::Result<()>\n    where\n        I: BufRead,\n    {\n        while let Some(Ok(raw_line_bytes)) = lines.next() {\n            self.ingest_line(raw_line_bytes);\n\n            if self.source == Source::Unknown {\n                self.source = detect_source(&self.line);\n                // Handle (rare) plain `diff -u file1 file2` header. Done here to avoid having\n                // to introduce and handle a Source::DiffUnifiedAmbiguous variant everywhere.\n                if self.line.starts_with(\"--- \") {\n                    self.minus_line_counter = AmbiguousDiffMinusCounter::prepare_to_count();\n                }\n            }\n\n            // Every method named handle_* must return std::io::Result<bool>.\n            // The bool indicates whether the line has been handled by that\n            // method (in which case no subsequent handlers are permitted to\n            // handle it).\n            let _ = self.handle_commit_meta_header_line()?\n                || self.handle_diff_stat_line()?\n                || self.handle_diff_header_diff_line()?\n                || self.handle_diff_header_file_operation_line()?\n                || self.handle_diff_header_minus_line()?\n                || self.handle_diff_header_plus_line()?\n                || self.handle_hunk_header_line()?\n                || self.handle_diff_header_mode_line()?\n                || self.handle_diff_header_misc_line()?\n                || self.handle_submodule_log_line()?\n                || self.handle_submodule_short_line()?\n                || self.handle_merge_conflict_line()?\n                || self.handle_hunk_line()?\n                || self.handle_git_show_file_line()?\n                || self.handle_blame_line()?\n                || self.handle_grep_line()?\n                || self.should_skip_line()\n                || self.emit_line_unchanged()?;\n        }\n\n        self.handle_pending_line_with_diff_name()?;\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.painter.emit()?;\n        Ok(())\n    }\n\n    fn ingest_line(&mut self, raw_line_bytes: &[u8]) {\n        match String::from_utf8(raw_line_bytes.to_vec()) {\n            Ok(utf8) => self.ingest_line_utf8(utf8),\n            Err(_) => {\n                let raw_line = String::from_utf8_lossy(raw_line_bytes);\n                let truncated_len = utils::round_char_boundary::floor_char_boundary(\n                    &raw_line,\n                    self.config.max_line_length,\n                );\n                self.raw_line = raw_line[..truncated_len].to_string();\n                self.line.clone_from(&self.raw_line);\n            }\n        }\n    }\n\n    fn ingest_line_utf8(&mut self, raw_line: String) {\n        self.raw_line = raw_line;\n        // When a file has \\r\\n line endings, git sometimes adds ANSI escape sequences between the\n        // \\r and \\n, in which case byte_lines does not remove the \\r. Remove it now. [EndCRLF]\n        // TODO: Limit the number of characters we examine when looking for the \\r?\n        if let Some(cr_index) = self.raw_line.rfind('\\r') {\n            if ansi::measure_text_width(&self.raw_line[cr_index + 1..]) == 0 {\n                self.raw_line = format!(\n                    \"{}{}\",\n                    &self.raw_line[..cr_index],\n                    &self.raw_line[cr_index + 1..]\n                );\n            }\n        }\n        if self.config.max_line_length > 0\n            && self.raw_line.len() > self.config.max_line_length\n            // Do not truncate long hunk headers\n            && !self.raw_line.starts_with(\"@@\")\n            // Do not truncate ripgrep --json output\n            && !self.raw_line.starts_with('{')\n        {\n            self.raw_line = ansi::truncate_str(\n                &self.raw_line,\n                self.config.max_line_length,\n                &self.config.truncation_symbol,\n            )\n            .to_string()\n        };\n        self.line = ansi::strip_ansi_codes(&self.raw_line);\n    }\n\n    /// Skip file metadata lines unless a raw diff style has been requested.\n    pub fn should_skip_line(&self) -> bool {\n        matches!(self.state, State::DiffHeader(_))\n            && self.should_handle()\n            && !self.config.color_only\n    }\n\n    /// Emit unchanged any line that delta does not handle.\n    pub fn emit_line_unchanged(&mut self) -> std::io::Result<bool> {\n        self.painter.emit()?;\n        writeln!(\n            self.painter.writer,\n            \"{}\",\n            format_raw_line(&self.raw_line, self.config)\n        )?;\n        let handled_line = true;\n        Ok(handled_line)\n    }\n\n    /// Should a handle_* function be called on this element?\n    // TODO: I'm not sure the above description is accurate; I think this\n    // function needs a more accurate name.\n    pub fn should_handle(&self) -> bool {\n        let style = self.config.get_style(&self.state);\n        !(style.is_raw && style.decoration_style == DecorationStyle::NoDecoration)\n    }\n}\n\n/// If output is going to a tty, emit hyperlinks if requested.\n// Although raw output should basically be emitted unaltered, we do this.\npub fn format_raw_line<'a>(line: &'a str, config: &Config) -> Cow<'a, str> {\n    if config.hyperlinks && io::stdout().is_terminal() {\n        features::hyperlinks::format_commit_line_with_osc8_commit_hyperlink(line, config)\n    } else {\n        Cow::from(line)\n    }\n}\n\n/// Try to detect what is producing the input for delta.\n///\n/// Currently can detect:\n/// * git diff\n/// * diff -u\nfn detect_source(line: &str) -> Source {\n    if line.starts_with(\"commit \")\n        || line.starts_with(\"diff --git \")\n        || line.starts_with(\"diff --cc \")\n        || line.starts_with(\"diff --combined \")\n    {\n        Source::GitDiff\n    } else if line.starts_with(\"diff -u\")\n        || line.starts_with(\"diff -ru\")\n        || line.starts_with(\"diff -r -u\")\n        || line.starts_with(\"diff -U\")\n        || line.starts_with(\"--- \")\n        || line.starts_with(\"Only in \")\n    {\n        Source::DiffUnified\n    } else {\n        Source::Unknown\n    }\n}\n"
  },
  {
    "path": "src/edits.rs",
    "content": "use regex::Regex;\n\nuse unicode_segmentation::UnicodeSegmentation;\nuse unicode_width::UnicodeWidthStr;\n\nuse crate::align;\nuse crate::minusplus::MinusPlus;\n\n/// Infer the edit operations responsible for the differences between a collection of old and new\n/// lines. A \"line\" is a string. An annotated line is a Vec of (op, &str) pairs, where the &str\n/// slices are slices of the line, and their concatenation equals the line. Return the input minus\n/// and plus lines, in annotated form.\n///\n/// Also return a specification of the inferred alignment of minus and plus lines: a paired minus\n/// and plus line is represented in this alignment specification as\n/// (Some(minus_line_index),Some(plus_line_index)), whereas an unpaired minus line is\n/// (Some(minus_line_index), None).\n///\n/// `noop_deletions[i]` is the appropriate deletion operation tag to be used for `minus_lines[i]`;\n/// `noop_deletions` is guaranteed to be the same length as `minus_lines`. The equivalent statements\n/// hold for `plus_insertions` and `plus_lines`.\n#[allow(clippy::too_many_arguments)]\n#[allow(clippy::type_complexity)]\npub fn infer_edits<'a, EditOperation>(\n    minus_lines: Vec<&'a str>,\n    plus_lines: Vec<&'a str>,\n    noop_deletions: Vec<EditOperation>,\n    deletion: EditOperation,\n    noop_insertions: Vec<EditOperation>,\n    insertion: EditOperation,\n    tokenization_regex: &Regex,\n    max_line_distance: f64,\n    max_line_distance_for_naively_paired_lines: f64,\n) -> (\n    Vec<Vec<(EditOperation, &'a str)>>,  // annotated minus lines\n    Vec<Vec<(EditOperation, &'a str)>>,  // annotated plus lines\n    Vec<(Option<usize>, Option<usize>)>, // line alignment\n)\nwhere\n    EditOperation: Copy + PartialEq + std::fmt::Debug,\n{\n    let mut annotated_minus_lines = Vec::<Vec<(EditOperation, &str)>>::new();\n    let mut annotated_plus_lines = Vec::<Vec<(EditOperation, &str)>>::new();\n    let mut line_alignment = Vec::<(Option<usize>, Option<usize>)>::new();\n\n    let mut plus_index = 0; // plus lines emitted so far\n\n    'minus_lines_loop: for (minus_index, minus_line) in minus_lines.iter().enumerate() {\n        let mut considered = 0; // plus lines considered so far as match for minus_line\n        for plus_line in &plus_lines[plus_index..] {\n            let alignment = align::Alignment::new(\n                tokenize(minus_line, tokenization_regex),\n                tokenize(plus_line, tokenization_regex),\n            );\n            let (annotated_minus_line, annotated_plus_line, distance) = annotate(\n                alignment,\n                noop_deletions[minus_index],\n                deletion,\n                noop_insertions[plus_index],\n                insertion,\n                minus_line,\n                plus_line,\n            );\n            if minus_lines.len() == plus_lines.len()\n                && distance <= max_line_distance_for_naively_paired_lines\n                || distance <= max_line_distance\n            {\n                // minus_line and plus_line are inferred to be a homologous pair.\n\n                // Emit as unpaired the plus lines already considered and rejected\n                for plus_line in &plus_lines[plus_index..(plus_index + considered)] {\n                    annotated_plus_lines.push(vec![(noop_insertions[plus_index], plus_line)]);\n                    line_alignment.push((None, Some(plus_index)));\n                    plus_index += 1;\n                }\n                annotated_minus_lines.push(annotated_minus_line);\n                annotated_plus_lines.push(annotated_plus_line);\n                line_alignment.push((Some(minus_index), Some(plus_index)));\n                plus_index += 1;\n\n                // Greedy: move on to the next minus line.\n                continue 'minus_lines_loop;\n            } else {\n                considered += 1;\n            }\n        }\n        // No homolog was found for minus i; emit as unpaired.\n        annotated_minus_lines.push(vec![(noop_deletions[minus_index], minus_line)]);\n        line_alignment.push((Some(minus_index), None));\n    }\n    // Emit any remaining plus lines\n    for plus_line in &plus_lines[plus_index..] {\n        if let Some(content) = get_contents_before_trailing_whitespace(plus_line) {\n            annotated_plus_lines.push(vec![\n                (noop_insertions[plus_index], content),\n                (noop_insertions[plus_index], &plus_line[content.len()..]),\n            ]);\n        } else {\n            annotated_plus_lines.push(vec![(noop_insertions[plus_index], plus_line)]);\n        }\n        line_alignment.push((None, Some(plus_index)));\n        plus_index += 1;\n    }\n\n    (annotated_minus_lines, annotated_plus_lines, line_alignment)\n}\n\n// Return `None` if there is no trailing whitespace.\n// Return `Some(content)` where content is trimmed if there was some trailing whitespace\nfn get_contents_before_trailing_whitespace(line: &str) -> Option<&str> {\n    let content = line.trim_end();\n    // if line has a trailing newline, do not consider it as a 'trailing whitespace'\n    if !content.is_empty() && content != line.trim_end_matches('\\n') {\n        Some(content)\n    } else {\n        None\n    }\n}\n\n// Return boolean arrays indicating whether each line has a homolog (is \"paired\").\npub fn make_lines_have_homolog(\n    line_alignment: &[(Option<usize>, Option<usize>)],\n) -> MinusPlus<Vec<bool>> {\n    MinusPlus::new(\n        line_alignment\n            .iter()\n            .filter(|(m, _)| m.is_some())\n            .map(|(_, p)| p.is_some())\n            .collect(),\n        line_alignment\n            .iter()\n            .filter(|(_, p)| p.is_some())\n            .map(|(m, _)| m.is_some())\n            .collect(),\n    )\n}\n\n/// Split line into tokens for alignment. The alignment algorithm aligns sequences of substrings;\n/// not individual characters.\nfn tokenize<'a>(line: &'a str, regex: &Regex) -> Vec<&'a str> {\n    // Starting with \"\", see comment in Alignment::new(). Historical note: Replacing the '+/-'\n    // prefix with a space implicitly generated this.\n    let mut tokens = vec![\"\"];\n    let mut offset = 0;\n    for m in regex.find_iter(line) {\n        if offset == 0 && m.start() > 0 {\n            tokens.push(\"\");\n        }\n        // Align separating text as multiple single-character tokens.\n        for t in line[offset..m.start()].graphemes(true) {\n            tokens.push(t);\n        }\n        tokens.push(&line[m.start()..m.end()]);\n        offset = m.end();\n    }\n    if offset < line.len() {\n        if offset == 0 {\n            tokens.push(\"\");\n        }\n        for t in line[offset..line.len()].graphemes(true) {\n            tokens.push(t);\n        }\n    }\n    tokens\n}\n\n/// Use alignment to \"annotate\" minus and plus lines. An \"annotated\" line is a sequence of\n/// (a: Annotation, s: &str) pairs, where the &strs reference the memory\n/// of the original line and their concatenation equals the line.\n// This function doesn't return \"coalesced\" annotations: i.e. they're often are runs of consecutive\n// occurrences of the same operation. Since it is returning &strs pointing into the memory of the\n// original line, it's not possible to coalesce them in this function.\n#[allow(clippy::type_complexity)]\nfn annotate<'a, Annotation>(\n    alignment: align::Alignment<'a>,\n    noop_deletion: Annotation,\n    deletion: Annotation,\n    noop_insertion: Annotation,\n    insertion: Annotation,\n    minus_line: &'a str,\n    plus_line: &'a str,\n) -> (Vec<(Annotation, &'a str)>, Vec<(Annotation, &'a str)>, f64)\nwhere\n    Annotation: Copy + PartialEq + std::fmt::Debug,\n{\n    let mut annotated_minus_line = Vec::new();\n    let mut annotated_plus_line = Vec::new();\n\n    let (mut x_offset, mut y_offset) = (0, 0);\n    let (mut minus_line_offset, mut plus_line_offset) = (0, 0);\n    let (mut d_numer, mut d_denom) = (0, 0);\n\n    // Note that the inputs to align::Alignment are not the original strings themselves, but\n    // sequences of substrings derived from the tokenization process. We have just applied\n    // run_length_encoding to \"coalesce\" runs of the same edit operation into a single\n    // operation. We now need to form a &str, pointing into the memory of the original line,\n    // identifying a \"section\" which is the concatenation of the substrings involved in this\n    // coalesced operation. That's what the following closures do. Note that they must be called\n    // once only since they advance offset pointers.\n    let get_section = |n: usize,\n                       line_offset: &mut usize,\n                       substrings_offset: &mut usize,\n                       substrings: &[&str],\n                       line: &'a str| {\n        let section_length = substrings[*substrings_offset..*substrings_offset + n]\n            .iter()\n            .fold(0, |n, s| n + s.len());\n        let old_offset = *line_offset;\n        *line_offset += section_length;\n        *substrings_offset += n;\n        &line[old_offset..*line_offset]\n    };\n    let mut minus_section = |n: usize, offset: &mut usize| {\n        get_section(n, &mut minus_line_offset, offset, &alignment.x, minus_line)\n    };\n    let mut plus_section = |n: usize, offset: &mut usize| {\n        get_section(n, &mut plus_line_offset, offset, &alignment.y, plus_line)\n    };\n    let distance_contribution = |section: &str| UnicodeWidthStr::width(section.trim());\n\n    let (mut minus_op_prev, mut plus_op_prev) = (noop_deletion, noop_insertion);\n    for (op, n) in alignment.coalesced_operations() {\n        match op {\n            align::Operation::Deletion => {\n                let minus_section = minus_section(n, &mut x_offset);\n                let n_d = distance_contribution(minus_section);\n                d_denom += n_d;\n                d_numer += n_d;\n                annotated_minus_line.push((deletion, minus_section));\n                minus_op_prev = deletion;\n            }\n            align::Operation::NoOp => {\n                let minus_section = minus_section(n, &mut x_offset);\n                let n_d = distance_contribution(minus_section);\n                d_denom += 2 * n_d;\n                let is_space = minus_section.trim().is_empty();\n                let coalesce_space_with_previous = is_space\n                    && ((minus_op_prev == deletion\n                        && plus_op_prev == insertion\n                        && (x_offset < alignment.x.len() - 1 || y_offset < alignment.y.len() - 1))\n                        || (minus_op_prev == noop_deletion && plus_op_prev == noop_insertion));\n                annotated_minus_line.push((\n                    if coalesce_space_with_previous {\n                        minus_op_prev\n                    } else {\n                        noop_deletion\n                    },\n                    minus_section,\n                ));\n                let op = if coalesce_space_with_previous {\n                    plus_op_prev\n                } else {\n                    noop_insertion\n                };\n                let plus_section = plus_section(n, &mut y_offset);\n                if let Some(non_whitespace) = get_contents_before_trailing_whitespace(plus_section)\n                {\n                    annotated_plus_line.push((op, non_whitespace));\n                    annotated_plus_line.push((op, &plus_section[non_whitespace.len()..]));\n                } else {\n                    annotated_plus_line.push((op, plus_section));\n                }\n                minus_op_prev = noop_deletion;\n                plus_op_prev = noop_insertion;\n            }\n            align::Operation::Insertion => {\n                let plus_section = plus_section(n, &mut y_offset);\n                let n_d = distance_contribution(plus_section);\n                d_denom += n_d;\n                d_numer += n_d;\n                annotated_plus_line.push((insertion, plus_section));\n                plus_op_prev = insertion;\n            }\n        }\n    }\n    (\n        annotated_minus_line,\n        annotated_plus_line,\n        compute_distance(d_numer as f64, d_denom as f64),\n    )\n}\n\nfn compute_distance(d_numer: f64, d_denom: f64) -> f64 {\n    if d_denom > 0.0 {\n        d_numer / d_denom\n    } else {\n        0.0\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use itertools::Itertools;\n    use lazy_static::lazy_static;\n    use unicode_segmentation::UnicodeSegmentation;\n\n    lazy_static! {\n        static ref DEFAULT_TOKENIZATION_REGEXP: Regex = Regex::new(r#\"\\w+\"#).unwrap();\n    }\n\n    #[derive(Clone, Copy, Debug, PartialEq)]\n    enum EditOperation {\n        MinusNoop,\n        PlusNoop,\n        Deletion,\n        Insertion,\n    }\n\n    type Annotation<'a> = (EditOperation, &'a str);\n    type AnnotatedLine<'a> = Vec<Annotation<'a>>;\n    type AnnotatedLines<'a> = Vec<AnnotatedLine<'a>>;\n    type Edits<'a> = (AnnotatedLines<'a>, AnnotatedLines<'a>);\n\n    use EditOperation::*;\n\n    #[test]\n    fn test_tokenize_0() {\n        assert_tokenize(\"\", &[]);\n        assert_tokenize(\";\", &[\"\", \";\"]);\n        assert_tokenize(\";;\", &[\"\", \";\", \";\"]);\n        assert_tokenize(\";;a\", &[\"\", \";\", \";\", \"a\"]);\n        assert_tokenize(\";;ab\", &[\"\", \";\", \";\", \"ab\"]);\n        assert_tokenize(\";;ab;\", &[\"\", \";\", \";\", \"ab\", \";\"]);\n        assert_tokenize(\";;ab;;\", &[\"\", \";\", \";\", \"ab\", \";\", \";\"]);\n    }\n\n    #[test]\n    fn test_tokenize_1() {\n        assert_tokenize(\"aaa bbb\", &[\"aaa\", \" \", \"bbb\"])\n    }\n\n    #[test]\n    fn test_tokenize_2() {\n        assert_tokenize(\n            \"fn coalesce_edits<'a, EditOperation>(\",\n            &[\n                \"fn\",\n                \" \",\n                \"coalesce_edits\",\n                \"<\",\n                \"'\",\n                \"a\",\n                \",\",\n                \" \",\n                \"EditOperation\",\n                \">\",\n                \"(\",\n            ],\n        );\n    }\n\n    #[test]\n    fn test_tokenize_3() {\n        assert_tokenize(\n            \"fn coalesce_edits<'a, 'b, EditOperation>(\",\n            &[\n                \"fn\",\n                \" \",\n                \"coalesce_edits\",\n                \"<\",\n                \"'\",\n                \"a\",\n                \",\",\n                \" \",\n                \"'\",\n                \"b\",\n                \",\",\n                \" \",\n                \"EditOperation\",\n                \">\",\n                \"(\",\n            ],\n        );\n    }\n\n    #[test]\n    fn test_tokenize_4() {\n        assert_tokenize(\n            \"annotated_plus_lines.push(vec![(noop_insertion, plus_line)]);\",\n            &[\n                \"annotated_plus_lines\",\n                \".\",\n                \"push\",\n                \"(\",\n                \"vec\",\n                \"!\",\n                \"[\",\n                \"(\",\n                \"noop_insertion\",\n                \",\",\n                \" \",\n                \"plus_line\",\n                \")\",\n                \"]\",\n                \")\",\n                \";\",\n            ],\n        );\n    }\n\n    #[test]\n    fn test_tokenize_5() {\n        assert_tokenize(\n            \"         let col = Color::from_str(s).unwrap_or_else(|_| die());\",\n            &[\n                \"\",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \" \",\n                \"let\",\n                \" \",\n                \"col\",\n                \" \",\n                \"=\",\n                \" \",\n                \"Color\",\n                \":\",\n                \":\",\n                \"from_str\",\n                \"(\",\n                \"s\",\n                \")\",\n                \".\",\n                \"unwrap_or_else\",\n                \"(\",\n                \"|\",\n                \"_\",\n                \"|\",\n                \" \",\n                \"die\",\n                \"(\",\n                \")\",\n                \")\",\n                \";\",\n            ],\n        )\n    }\n\n    #[test]\n    fn test_tokenize_6() {\n        assert_tokenize(\n            \"         (minus_file, plus_file) => format!(\\\"renamed: {} ⟶  {}\\\", minus_file, plus_file),\",\n            &[\"\",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \" \",\n              \"(\",\n              \"minus_file\",\n              \",\",\n              \" \",\n              \"plus_file\",\n              \")\",\n              \" \",\n              \"=\",\n              \">\",\n              \" \",\n              \"format\",\n              \"!\",\n              \"(\",\n              \"\\\"\",\n              \"renamed\",\n              \":\",\n              \" \",\n              \"{\",\n              \"}\",\n              \" \",\n              \"⟶\",\n              \" \",\n              \" \",\n              \"{\",\n              \"}\",\n              \"\\\"\",\n              \",\",\n              \" \",\n              \"minus_file\",\n              \",\",\n              \" \",\n              \"plus_file\",\n              \")\",\n              \",\"])\n    }\n\n    fn assert_tokenize(text: &str, expected_tokens: &[&str]) {\n        let actual_tokens = tokenize(text, &DEFAULT_TOKENIZATION_REGEXP);\n        assert_eq!(text, expected_tokens.iter().join(\"\"));\n        // tokenize() guarantees that the first element of the token stream is \"\".\n        // See comment in Alignment::new()\n        assert_eq!(actual_tokens[0], \"\");\n        assert_eq!(&actual_tokens[1..], expected_tokens);\n    }\n\n    #[test]\n    fn test_infer_edits_1() {\n        assert_paired_edits(\n            vec![\"aaa\"],\n            vec![\"aba\"],\n            (\n                vec![vec![(MinusNoop, \"\"), (Deletion, \"aaa\")]],\n                vec![vec![(PlusNoop, \"\"), (Insertion, \"aba\")]],\n            ),\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_1_2() {\n        assert_paired_edits(\n            vec![\"aaa ccc\"],\n            vec![\"aba ccc\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"\"),\n                    (Deletion, \"aaa\"),\n                    (MinusNoop, \" ccc\"),\n                ]],\n                vec![vec![(PlusNoop, \"\"), (Insertion, \"aba\"), (PlusNoop, \" ccc\")]],\n            ),\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_2() {\n        assert_paired_edits(\n            vec![\"áaa\"],\n            vec![\"ááb\"],\n            (\n                vec![vec![(MinusNoop, \"\"), (Deletion, \"áaa\")]],\n                vec![vec![(PlusNoop, \"\"), (Insertion, \"ááb\")]],\n            ),\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_3() {\n        assert_paired_edits(\n            vec![\"d.iteritems()\"],\n            vec![\"d.items()\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"d.\"),\n                    (Deletion, \"iteritems\"),\n                    (MinusNoop, \"()\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"d.\"),\n                    (Insertion, \"items\"),\n                    (PlusNoop, \"()\"),\n                ]],\n            ),\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_4() {\n        assert_edits(\n            vec![\"á a a á a a á a a\", \"á á b á á b á á b\"],\n            vec![\"á á b á á c á á b\"],\n            (\n                vec![\n                    vec![(MinusNoop, \"á a a á a a á a a\")],\n                    vec![\n                        (MinusNoop, \"á á b á á \"),\n                        (Deletion, \"b\"),\n                        (MinusNoop, \" á á b\"),\n                    ],\n                ],\n                vec![vec![\n                    (PlusNoop, \"á á b á á\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"c\"),\n                    (PlusNoop, \" á á b\"),\n                ]],\n            ),\n            0.66,\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_5() {\n        assert_edits(\n            vec![\"aaaa a aaa\", \"bbbb b bbb\", \"cccc c ccc\"],\n            vec![\"bbbb ! bbb\", \"dddd d ddd\", \"cccc ! ccc\"],\n            (\n                vec![\n                    vec![(MinusNoop, \"aaaa a aaa\")],\n                    vec![(MinusNoop, \"bbbb \"), (Deletion, \"b\"), (MinusNoop, \" bbb\")],\n                    vec![(MinusNoop, \"cccc \"), (Deletion, \"c\"), (MinusNoop, \" ccc\")],\n                ],\n                vec![\n                    vec![\n                        (PlusNoop, \"bbbb\"),\n                        (PlusNoop, \" \"),\n                        (Insertion, \"!\"),\n                        (PlusNoop, \" bbb\"),\n                    ],\n                    vec![(PlusNoop, \"dddd d ddd\")],\n                    vec![\n                        (PlusNoop, \"cccc\"),\n                        (PlusNoop, \" \"),\n                        (Insertion, \"!\"),\n                        (PlusNoop, \" ccc\"),\n                    ],\n                ],\n            ),\n            0.66,\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_6() {\n        assert_no_edits(\n            vec![\n                \"             let mut i = 0;\",\n                \"             for ((_, c0), (_, c1)) in s0.zip(s1) {\",\n                \"                 if c0 != c1 {\",\n                \"                     break;\",\n                \"                 } else {\",\n                \"                     i += c0.len();\",\n                \"                 }\",\n                \"             }\",\n                \"             i\",\n            ],\n            vec![\n                \"             s0.zip(s1)\",\n                \"                 .take_while(|((_, c0), (_, c1))| c0 == c1) // TODO: Don't consume one-past-the-end!\",\n                \"                 .fold(0, |offset, ((_, c0), (_, _))| offset + c0.len())\"\n            ], 0.5)\n    }\n\n    #[test]\n    fn test_infer_edits_7() {\n        assert_edits(\n            vec![\"fn coalesce_edits<'a, EditOperation>(\"],\n            vec![\"fn coalesce_edits<'a, 'b, EditOperation>(\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"fn coalesce_edits<'a, \"),\n                    (MinusNoop, \"EditOperation>(\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"fn coalesce_edits<'a,\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"'b, \"),\n                    (PlusNoop, \"EditOperation>(\"),\n                ]],\n            ),\n            0.66,\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_8() {\n        assert_edits(\n            vec![\"for _ in range(0, options[\\\"count\\\"]):\"],\n            vec![\"for _ in range(0, int(options[\\\"count\\\"])):\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"for _ in range(0, \"),\n                    (MinusNoop, \"options[\\\"count\\\"])\"),\n                    (MinusNoop, \":\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"for _ in range(0,\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"int(\"),\n                    (PlusNoop, \"options[\\\"count\\\"])\"),\n                    (Insertion, \")\"),\n                    (PlusNoop, \":\"),\n                ]],\n            ),\n            0.3,\n        )\n    }\n\n    #[test]\n    fn test_infer_edits_9() {\n        assert_edits(\n            vec![\"a a\"],\n            vec![\"a b a\"],\n            (\n                vec![vec![(MinusNoop, \"a \"), (MinusNoop, \"a\")]],\n                vec![vec![\n                    (PlusNoop, \"a\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"b \"),\n                    (PlusNoop, \"a\"),\n                ]],\n            ),\n            1.0,\n        );\n        assert_edits(\n            vec![\"a a\"],\n            vec![\"a b b a\"],\n            (\n                vec![vec![(MinusNoop, \"a \"), (MinusNoop, \"a\")]],\n                vec![vec![\n                    (PlusNoop, \"a\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"b b \"),\n                    (PlusNoop, \"a\"),\n                ]],\n            ),\n            1.0,\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_10() {\n        assert_edits(\n            vec![\"so it is safe to read the commit number from any one of them.\"],\n            vec![\"so it is safe to read build info from any one of them.\"],\n            (\n                // TODO: Coalesce runs of the same operation.\n                vec![vec![\n                    (MinusNoop, \"so it is safe to read \"),\n                    (Deletion, \"the commit\"),\n                    (Deletion, \" \"),\n                    (Deletion, \"number\"),\n                    (MinusNoop, \" from any one of them.\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"so it is safe to read\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"build\"),\n                    (Insertion, \" \"),\n                    (Insertion, \"info\"),\n                    (PlusNoop, \" from any one of them.\"),\n                ]],\n            ),\n            1.0,\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_11() {\n        assert_edits(\n            vec![\"                 self.table[index] =\"],\n            vec![\"                 self.table[index] = candidates\"],\n            (\n                vec![vec![(MinusNoop, \"                 self.table[index] =\")]],\n                vec![vec![\n                    (PlusNoop, \"                 self.table[index] =\"),\n                    (Insertion, \" candidates\"),\n                ]],\n            ),\n            1.0,\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_12() {\n        assert_edits(\n            vec![\"                     (xxxxxxxxx, \\\"build info\\\"),\"],\n            vec![\"                     (xxxxxxxxx, \\\"build\\\"),\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"                     (xxxxxxxxx, \\\"build\"),\n                    (Deletion, \" info\"),\n                    (MinusNoop, \"\\\"),\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"                     (xxxxxxxxx, \\\"build\"),\n                    (PlusNoop, \"\\\"),\"),\n                ]],\n            ),\n            1.0,\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_13() {\n        assert_paired_edits(\n            vec![\"'b '\", \"[element,]\"],\n            vec![\"' b'\", \"[element],\"],\n            (\n                vec![\n                    vec![\n                        (MinusNoop, \"'\"),\n                        (Deletion, \"b\"),\n                        (MinusNoop, \" \"),\n                        (MinusNoop, \"'\"),\n                    ],\n                    vec![(MinusNoop, \"[element\"), (Deletion, \",\"), (MinusNoop, \"]\")],\n                ],\n                vec![\n                    vec![\n                        (PlusNoop, \"'\"),\n                        (PlusNoop, \" \"),\n                        (Insertion, \"b\"),\n                        (PlusNoop, \"'\"),\n                    ],\n                    vec![(PlusNoop, \"[element\"), (PlusNoop, \"]\"), (Insertion, \",\")],\n                ],\n            ),\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_14() {\n        assert_edits(\n            vec![\"a b c d \", \"p \"],\n            vec![\"x y c z \", \"q r\"],\n            (\n                vec![\n                    vec![\n                        (MinusNoop, \"\"),\n                        (Deletion, \"a\"),\n                        (Deletion, \" \"),\n                        (Deletion, \"b\"),\n                        (MinusNoop, \" c \"),\n                        (Deletion, \"d\"),\n                        (MinusNoop, \" \"),\n                    ],\n                    vec![(MinusNoop, \"\"), (Deletion, \"p\"), (Deletion, \" \")],\n                ],\n                vec![\n                    vec![\n                        (PlusNoop, \"\"),\n                        (Insertion, \"x\"),\n                        (Insertion, \" \"),\n                        (Insertion, \"y\"),\n                        (PlusNoop, \" c\"),\n                        (PlusNoop, \" \"),\n                        (Insertion, \"z\"),\n                        (PlusNoop, \" \"),\n                    ],\n                    vec![\n                        (PlusNoop, \"\"),\n                        (Insertion, \"q\"),\n                        (Insertion, \" \"),\n                        (Insertion, \"r\"),\n                    ],\n                ],\n            ),\n            1.0,\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_15() {\n        assert_paired_edits(\n            vec![r#\"printf \"%s\\n\" s y y | git add -p &&\"#],\n            vec![\"test_write_lines s y y | git add -p &&\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"\"),\n                    (Deletion, r#\"printf \"%s\\n\"\"#),\n                    (MinusNoop, \" s y y | git add -p &&\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"\"),\n                    (Insertion, \"test_write_lines\"),\n                    (PlusNoop, \" s y y | git add -p &&\"),\n                ]],\n            ),\n        );\n    }\n\n    #[test]\n    fn test_infer_edits_16() {\n        assert_edits(\n            vec![\"a a a a a a b b b\"],\n            vec![\"c a a a a a a c c\"],\n            (\n                vec![vec![\n                    (MinusNoop, \"\"),\n                    (MinusNoop, \"a a a a a a \"),\n                    (Deletion, \"b b\"),\n                    (Deletion, \" \"),\n                    (Deletion, \"b\"),\n                ]],\n                vec![vec![\n                    (PlusNoop, \"\"),\n                    (Insertion, \"c \"),\n                    (PlusNoop, \"a a a a a a\"),\n                    (PlusNoop, \" \"),\n                    (Insertion, \"c\"),\n                    (Insertion, \" \"),\n                    (Insertion, \"c\"),\n                ]],\n            ),\n            1.0,\n        );\n    }\n\n    fn assert_edits(\n        minus_lines: Vec<&str>,\n        plus_lines: Vec<&str>,\n        expected_edits: Edits,\n        max_line_distance: f64,\n    ) {\n        let (minus_lines, noop_deletions): (Vec<&str>, Vec<EditOperation>) =\n            minus_lines.into_iter().map(|s| (s, MinusNoop)).unzip();\n        let (plus_lines, noop_insertions): (Vec<&str>, Vec<EditOperation>) =\n            plus_lines.into_iter().map(|s| (s, PlusNoop)).unzip();\n        let actual_edits = infer_edits(\n            minus_lines,\n            plus_lines,\n            noop_deletions,\n            Deletion,\n            noop_insertions,\n            Insertion,\n            &DEFAULT_TOKENIZATION_REGEXP,\n            max_line_distance,\n            0.0,\n        );\n        // compare_annotated_lines(actual_edits, expected_edits);\n        // TODO: test line alignment\n        assert_eq!((actual_edits.0, actual_edits.1), expected_edits);\n    }\n\n    // Assert that no edits are inferred for the supplied minus and plus lines.\n    fn assert_no_edits(minus_lines: Vec<&str>, plus_lines: Vec<&str>, max_line_distance: f64) {\n        let expected_edits = (\n            minus_lines.iter().map(|s| vec![(MinusNoop, *s)]).collect(),\n            plus_lines.iter().map(|s| vec![(PlusNoop, *s)]).collect(),\n        );\n        assert_edits(minus_lines, plus_lines, expected_edits, max_line_distance)\n    }\n\n    // Assertions for a single pair of lines, considered as a homologous pair. We set\n    // max_line_distance = 1.0 in order that the pair will be inferred to be homologous.\n    fn assert_paired_edits(minus_lines: Vec<&str>, plus_lines: Vec<&str>, expected_edits: Edits) {\n        assert_consistent_pairs(&expected_edits);\n        assert_edits(minus_lines, plus_lines, expected_edits, 1.0);\n    }\n\n    fn assert_consistent_pairs(edits: &Edits) {\n        let (minus_annotated_lines, plus_annotated_lines) = edits;\n\n        for (minus_annotated_line, plus_annotated_line) in\n            minus_annotated_lines.iter().zip(plus_annotated_lines)\n        {\n            let (minus_total, minus_delta) = summarize_annotated_line(minus_annotated_line);\n            let (plus_total, plus_delta) = summarize_annotated_line(plus_annotated_line);\n            assert_eq!(\n                minus_total - minus_delta,\n                plus_total - plus_delta,\n                \"\\nInconsistent edits:\\n \\\n                 {:?}\\n \\\n                 \\tminus_total - minus_delta = {} - {} = {}\\n \\\n                 {:?}\\n \\\n                 \\tplus_total  - plus_delta  = {} - {} = {}\\n\",\n                minus_annotated_line,\n                minus_total,\n                minus_delta,\n                minus_total - minus_delta,\n                plus_annotated_line,\n                plus_total,\n                plus_delta,\n                plus_total - plus_delta\n            );\n        }\n    }\n\n    fn summarize_annotated_line(sections: &AnnotatedLine) -> (usize, usize) {\n        let mut total = 0;\n        let mut delta = 0;\n        for (edit, s) in sections {\n            let length = s.graphemes(true).count();\n            total += length;\n            if is_edit(edit) {\n                delta += length;\n            }\n        }\n        (total, delta)\n    }\n\n    // For debugging test failures:\n\n    #[allow(dead_code)]\n    fn compare_annotated_lines(actual: Edits, expected: Edits) {\n        let (minus, plus) = actual;\n        println!(\"\\n\\nactual minus:\");\n        print_annotated_lines(minus);\n        println!(\"\\nactual plus:\");\n        print_annotated_lines(plus);\n\n        let (minus, plus) = expected;\n        println!(\"\\n\\nexpected minus:\");\n        print_annotated_lines(minus);\n        println!(\"\\nexpected plus:\");\n        print_annotated_lines(plus);\n    }\n\n    #[allow(dead_code)]\n    fn print_annotated_lines(annotated_lines: AnnotatedLines) {\n        for annotated_line in annotated_lines {\n            print_annotated_line(annotated_line);\n        }\n    }\n\n    #[allow(dead_code)]\n    fn print_annotated_line(annotated_line: AnnotatedLine) {\n        for (edit, s) in annotated_line {\n            print!(\"({} {}), \", fmt_edit(edit), s.trim_end());\n        }\n        println!();\n    }\n\n    #[allow(dead_code)]\n    fn fmt_edit(edit: EditOperation) -> &'static str {\n        match edit {\n            MinusNoop => \"MinusNoop\",\n            Deletion => \"Deletion\",\n            PlusNoop => \"PlusNoop\",\n            Insertion => \"Insertion\",\n        }\n    }\n\n    fn is_edit(edit: &EditOperation) -> bool {\n        *edit == Deletion || *edit == Insertion\n    }\n}\n"
  },
  {
    "path": "src/env.rs",
    "content": "use std::env;\n\nconst COLORTERM: &str = \"COLORTERM\";\nconst BAT_THEME: &str = \"BAT_THEME\";\nconst GIT_CONFIG_PARAMETERS: &str = \"GIT_CONFIG_PARAMETERS\";\nconst GIT_PREFIX: &str = \"GIT_PREFIX\";\nconst DELTA_FEATURES: &str = \"DELTA_FEATURES\";\nconst DELTA_NAVIGATE: &str = \"DELTA_NAVIGATE\";\nconst DELTA_EXPERIMENTAL_MAX_LINE_DISTANCE_FOR_NAIVELY_PAIRED_LINES: &str =\n    \"DELTA_EXPERIMENTAL_MAX_LINE_DISTANCE_FOR_NAIVELY_PAIRED_LINES\";\nconst DELTA_PAGER: &str = \"DELTA_PAGER\";\n\n#[derive(Default, Clone)]\npub struct DeltaEnv {\n    pub bat_theme: Option<String>,\n    pub colorterm: Option<String>,\n    pub current_dir: Option<std::path::PathBuf>,\n    pub experimental_max_line_distance_for_naively_paired_lines: Option<String>,\n    pub features: Option<String>,\n    pub git_config_parameters: Option<String>,\n    pub git_prefix: Option<String>,\n    pub hostname: Option<String>,\n    pub navigate: Option<String>,\n    pub pagers: (Option<String>, Option<String>),\n}\n\nimpl DeltaEnv {\n    /// Create a structure with current environment variable\n    pub fn init() -> Self {\n        let bat_theme = env::var(BAT_THEME).ok();\n        let colorterm = env::var(COLORTERM).ok();\n        let experimental_max_line_distance_for_naively_paired_lines =\n            env::var(DELTA_EXPERIMENTAL_MAX_LINE_DISTANCE_FOR_NAIVELY_PAIRED_LINES).ok();\n        let features = env::var(DELTA_FEATURES).ok();\n        let git_config_parameters = env::var(GIT_CONFIG_PARAMETERS).ok();\n        let git_prefix = env::var(GIT_PREFIX).ok();\n        let hostname = hostname();\n        let navigate = env::var(DELTA_NAVIGATE).ok();\n\n        let current_dir = env::current_dir().ok();\n        let pagers = (\n            env::var(DELTA_PAGER).ok(),\n            // We're using `bat::config::get_pager_executable` here instead of just returning\n            // the pager from the environment variables, because we want to make sure\n            // that the pager is a valid pager from env and handle the case of\n            // the PAGER being set to something invalid like \"most\" and \"more\".\n            bat::config::get_pager_executable(None),\n        );\n\n        Self {\n            bat_theme,\n            colorterm,\n            current_dir,\n            experimental_max_line_distance_for_naively_paired_lines,\n            features,\n            git_config_parameters,\n            git_prefix,\n            hostname,\n            navigate,\n            pagers,\n        }\n    }\n}\n\nfn hostname() -> Option<String> {\n    grep_cli::hostname().ok()?.to_str().map(|s| s.to_string())\n}\n\n#[cfg(test)]\npub mod tests {\n    use super::DeltaEnv;\n    use lazy_static::lazy_static;\n    use std::env;\n    use std::sync::{Arc, Mutex};\n\n    lazy_static! {\n        static ref ENV_ACCESS: Arc<Mutex<()>> = Arc::new(Mutex::new(()));\n    }\n\n    #[test]\n    fn test_env_parsing() {\n        let _guard = ENV_ACCESS.lock().unwrap();\n        let feature = \"Awesome Feature\";\n        env::set_var(\"DELTA_FEATURES\", feature);\n        let env = DeltaEnv::init();\n        assert_eq!(env.features, Some(feature.into()));\n        // otherwise `current_dir` is not used in the test cfg:\n        assert_eq!(env.current_dir, env::current_dir().ok());\n    }\n\n    #[test]\n    fn test_env_parsing_with_pager_set_to_bat() {\n        let _guard = ENV_ACCESS.lock().unwrap();\n        env::set_var(\"PAGER\", \"bat\");\n        let env = DeltaEnv::init();\n        assert_eq!(\n            env.pagers.1,\n            Some(\"bat\".into()),\n            \"Expected env.pagers.1 == Some(bat) but was {:?}\",\n            env.pagers.1\n        );\n    }\n\n    #[test]\n    fn test_env_parsing_with_pager_set_to_more() {\n        let _guard = ENV_ACCESS.lock().unwrap();\n        env::set_var(\"PAGER\", \"more\");\n        let env = DeltaEnv::init();\n        assert_eq!(env.pagers.1, Some(\"less\".into()));\n    }\n\n    #[test]\n    fn test_env_parsing_with_pager_set_to_most() {\n        let _guard = ENV_ACCESS.lock().unwrap();\n        env::set_var(\"PAGER\", \"most\");\n        let env = DeltaEnv::init();\n        assert_eq!(env.pagers.1, Some(\"less\".into()));\n    }\n}\n"
  },
  {
    "path": "src/features/color_only.rs",
    "content": "use std::collections::HashSet;\n\nuse crate::features::raw;\nuse crate::features::OptionValueFunction;\n\n/// color-only is like raw but does not override these styles.\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    let styles: HashSet<_> = [\n        \"minus-style\",\n        \"minus-emph-style\",\n        \"zero-style\",\n        \"plus-style\",\n        \"plus-emph-style\",\n    ]\n    .iter()\n    .collect();\n    raw::make_feature()\n        .into_iter()\n        .filter(|(k, _)| !styles.contains(&k.as_str()))\n        .collect()\n}\n"
  },
  {
    "path": "src/features/diff_highlight.rs",
    "content": "use crate::features::raw;\nuse crate::features::OptionValueFunction;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    _make_feature(false)\n}\n\npub fn _make_feature(bold: bool) -> Vec<(String, OptionValueFunction)> {\n    let mut feature = raw::make_feature();\n    feature.retain(|(s, _)| s != \"keep-plus-minus-markers\" && s != \"tabs\");\n    feature.extend(builtin_feature!([\n        (\n            \"commit-style\",\n            String,\n            Some(\"color.diff.commit\"),\n            _opt => \"raw\"\n        ),\n        (\n            \"minus-style\",\n            String,\n            Some(\"color.diff.old\"),\n            _opt => if bold { \"bold red\" } else { \"red\" }\n        ),\n        (\n            \"minus-non-emph-style\",\n            String,\n            Some(\"color.diff-highlight.oldNormal\"),\n            opt => opt.minus_style.clone()\n        ),\n        (\n            \"minus-emph-style\",\n            String,\n            Some(\"color.diff-highlight.oldHighlight\"),\n            opt => format!(\"{} reverse\", opt.minus_style)\n        ),\n        (\n            \"plus-style\",\n            String,\n            Some(\"color.diff.new\"),\n            _opt => if bold { \"bold green\" } else { \"green\" }\n        ),\n        (\n            \"plus-non-emph-style\",\n            String,\n            Some(\"color.diff-highlight.newNormal\"),\n            opt => opt.plus_style.clone()\n        ),\n        (\n            \"plus-emph-style\",\n            String,\n            Some(\"color.diff-highlight.newHighlight\"),\n            opt => format!(\"{} reverse\", opt.plus_style)\n        )\n    ]));\n    feature\n}\n\n#[cfg(test)]\nmod test_utils {\n    use std::fs::remove_file;\n\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    fn test_diff_highlight_defaults() {\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"diff-highlight\"],\n            None,\n            None,\n        );\n        assert_eq!(opt.minus_style, \"red\");\n        assert_eq!(opt.minus_non_emph_style, \"red\");\n        assert_eq!(opt.minus_emph_style, \"red reverse\");\n        assert_eq!(opt.zero_style, \"normal\");\n        assert_eq!(opt.plus_style, \"green\");\n        assert_eq!(opt.plus_non_emph_style, \"green\");\n        assert_eq!(opt.plus_emph_style, \"green reverse\");\n    }\n\n    #[test]\n    fn test_diff_highlight_respects_gitconfig() {\n        let git_config_contents = b\"\n[color \\\"diff\\\"]\n    old = red bold\n    new = green bold\n\n[color \\\"diff-highlight\\\"]\n    oldNormal = ul red bold\n    oldHighlight = red bold 52\n    newNormal = ul green bold\n    newHighlight = green bold 22\n\";\n        let git_config_path = \"delta__test_diff_highlight.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"diff-highlight\"],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.minus_style, \"red bold\");\n        assert_eq!(opt.minus_non_emph_style, \"ul red bold\");\n        assert_eq!(opt.minus_emph_style, \"red bold 52\");\n        assert_eq!(opt.zero_style, \"normal\");\n        assert_eq!(opt.plus_style, \"green bold\");\n        assert_eq!(opt.plus_non_emph_style, \"ul green bold\");\n        assert_eq!(opt.plus_emph_style, \"green bold 22\");\n\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/features/diff_so_fancy.rs",
    "content": "use crate::features::diff_highlight;\nuse crate::features::OptionValueFunction;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    let mut feature = diff_highlight::_make_feature(true);\n    feature.extend(builtin_feature!([\n        (\n            \"minus-emph-style\",\n            String,\n            Some(\"color.diff-highlight.oldHighlight\"),\n            _opt => \"bold red 52\"\n        ),\n        (\n            \"plus-emph-style\",\n            String,\n            Some(\"color.diff-highlight.newHighlight\"),\n            _opt => \"bold green 22\"\n        ),\n        (\n            \"file-style\",\n            String,\n            Some(\"color.diff.meta\"),\n            _opt => \"11\"\n        ),\n        (\n            \"file-decoration-style\",\n            String,\n            None,\n            _opt => \"bold yellow ul ol\"\n        ),\n        (\n            \"hunk-header-style\",\n            String,\n            Some(\"color.diff.frag\"),\n            _opt => \"file line-number bold syntax\"\n        ),\n        (\n            \"hunk-header-decoration-style\",\n            String,\n            None,\n            _opt => \"magenta box\"\n        )\n    ]));\n    feature\n}\n\n#[cfg(test)]\npub mod tests {\n    use std::fs::remove_file;\n\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    fn test_diff_so_fancy_defaults() {\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"diff-so-fancy\"],\n            None,\n            None,\n        );\n\n        assert_eq!(opt.commit_style, \"raw\");\n        assert_eq!(opt.commit_decoration_style, \"none\");\n\n        assert_eq!(opt.file_style, \"11\");\n        assert_eq!(opt.file_decoration_style, \"bold yellow ul ol\");\n\n        assert_eq!(opt.hunk_header_style, \"file line-number bold syntax\");\n        assert_eq!(opt.hunk_header_decoration_style, \"magenta box\");\n    }\n\n    #[test]\n    fn test_diff_so_fancy_respects_git_config() {\n        let git_config_contents = b\"\n[color \\\"diff\\\"]\n    meta = 11\n    frag = magenta bold\n    commit = purple bold\n    old = red bold\n    new = green bold\n    whitespace = red reverse\n\";\n        let git_config_path = \"delta__test_diff_so_fancy.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"diff-so-fancy some-other-feature\"],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.commit_style, \"purple bold\");\n        assert_eq!(opt.file_style, \"11\");\n        assert_eq!(opt.hunk_header_style, \"magenta bold\");\n        assert_eq!(opt.commit_decoration_style, \"none\");\n        assert_eq!(opt.file_decoration_style, \"bold yellow ul ol\");\n        assert_eq!(opt.hunk_header_decoration_style, \"magenta box\");\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_diff_so_fancy_obeys_feature_precedence_rules() {\n        let git_config_contents = b\"\n[color \\\"diff\\\"]\n    meta = 11\n    frag = magenta bold\n    commit = yellow bold\n    old = red bold\n    new = green bold\n    whitespace = red reverse\n\n[delta \\\"decorations\\\"]\n    commit-decoration-style = bold box ul\n    file-style = bold 19 ul\n    file-decoration-style = none\n\";\n        let git_config_path = \"delta__test_diff_so_fancy_obeys_feature_precedence_rules.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"decorations diff-so-fancy\"],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.file_style, \"11\");\n\n        assert_eq!(opt.file_decoration_style, \"bold yellow ul ol\");\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[\"--features\", \"diff-so-fancy decorations\"],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.file_style, \"bold 19 ul\");\n\n        assert_eq!(opt.file_decoration_style, \"none\");\n\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/features/hyperlinks.rs",
    "content": "use std::borrow::Cow;\nuse std::path::Path;\n\nuse lazy_static::lazy_static;\nuse regex::{Match, Matches, Regex};\n\nuse crate::config::Config;\nuse crate::features::OptionValueFunction;\n\n#[cfg(test)]\nuse crate::git_config::GitConfig;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    builtin_feature!([\n        (\n            \"hyperlinks\",\n            bool,\n            None,\n            _opt => true\n        )\n    ])\n}\n\nlazy_static! {\n    // Commit hashes can be abbreviated to 7 characters, these necessarily become longer\n    // when more objects are in a repository.\n    // Note: pure numbers are filtered out later again.\n    static ref COMMIT_HASH_REGEX: Regex = Regex::new(r\"\\b[0-9a-f]{7,40}\\b\").unwrap();\n}\n\npub fn format_commit_line_with_osc8_commit_hyperlink<'a>(\n    line: &'a str,\n    config: &Config,\n) -> Cow<'a, str> {\n    // Given matches in a line, m = matches[0] and pos = 0: store line[pos..m.start()] first, then\n    // store the T(line[m.start()..m.end()]) match transformation, then set pos = m.end().\n    // Repeat for matches[1..]. Finally, store line[pos..].\n    struct HyperlinkCommits<T>(T)\n    where\n        T: Fn(&str) -> String;\n    impl<T: for<'b> Fn(&'b str) -> String> HyperlinkCommits<T> {\n        fn _m(&self, result: &mut String, line: &str, m: &Match, prev_pos: usize) -> usize {\n            result.push_str(&line[prev_pos..m.start()]);\n            let commit = &line[m.start()..m.end()];\n            // Do not link numbers, require at least one non-decimal:\n            if commit.contains(|c| matches!(c, 'a'..='f')) {\n                result.push_str(&format_osc8_hyperlink(&self.0(commit), commit));\n            } else {\n                result.push_str(commit);\n            }\n            m.end()\n        }\n        fn with_input(&self, line: &str, m0: &Match, matches123: &mut Matches) -> String {\n            let mut result = String::new();\n            let mut pos = self._m(&mut result, line, m0, 0);\n            // limit number of matches per line, an exhaustive `find_iter` is O(len(line) * len(regex)^2)\n            for m in matches123.take(12) {\n                pos = self._m(&mut result, line, &m, pos);\n            }\n            result.push_str(&line[pos..]);\n            result\n        }\n    }\n\n    if let Some(commit_link_format) = &config.hyperlinks_commit_link_format {\n        let mut matches = COMMIT_HASH_REGEX.find_iter(line);\n        if let Some(first_match) = matches.next() {\n            let result =\n                HyperlinkCommits(|commit_hash| commit_link_format.replace(\"{commit}\", commit_hash))\n                    .with_input(line, &first_match, &mut matches);\n            return Cow::from(result);\n        }\n    } else if let Some(config) = config.git_config() {\n        if let Some(repo) = config.get_remote_url() {\n            let mut matches = COMMIT_HASH_REGEX.find_iter(line);\n            if let Some(first_match) = matches.next() {\n                let result = HyperlinkCommits(|commit_hash| repo.format_commit_url(commit_hash))\n                    .with_input(line, &first_match, &mut matches);\n                return Cow::from(result);\n            }\n        }\n    }\n    Cow::from(line)\n}\n\n/// Create a file hyperlink, displaying `text`.\npub fn format_osc8_file_hyperlink<'a, P>(\n    absolute_path: P,\n    line_number: Option<usize>,\n    text: &str,\n    config: &Config,\n) -> Cow<'a, str>\nwhere\n    P: AsRef<Path>,\n    P: std::fmt::Debug,\n{\n    debug_assert!(absolute_path.as_ref().is_absolute());\n    let mut url = config\n        .hyperlinks_file_link_format\n        .replace(\"{path}\", &absolute_path.as_ref().to_string_lossy());\n    if let Some(host) = &config.hostname {\n        url = url.replace(\"{host}\", host)\n    }\n    let n = line_number.unwrap_or(1);\n    url = url.replace(\"{line}\", &format!(\"{n}\"));\n    Cow::from(format_osc8_hyperlink(&url, text))\n}\n\nfn format_osc8_hyperlink(url: &str, text: &str) -> String {\n    format!(\n        \"{osc}8;;{url}{st}{text}{osc}8;;{st}\",\n        url = url,\n        text = text,\n        osc = \"\\x1b]\",\n        st = \"\\x1b\\\\\"\n    )\n}\n\n#[cfg(not(target_os = \"windows\"))]\n#[cfg(test)]\npub mod tests {\n    use std::iter::FromIterator;\n    use std::path::PathBuf;\n\n    use pretty_assertions::assert_eq;\n\n    use super::*;\n\n    use crate::{\n        tests::integration_test_utils::{self, make_config_from_args, DeltaTest},\n        utils,\n    };\n\n    #[test]\n    fn test_file_hyperlink_line_number_defaults_to_one() {\n        let config =\n            make_config_from_args(&[\"--hyperlinks-file-link-format\", \"file://{path}:{line}\"]);\n\n        let result =\n            format_osc8_file_hyperlink(\"/absolute/path/to/file.rs\", Some(42), \"file.rs\", &config);\n        assert_eq!(\n            result,\n            \"\\u{1b}]8;;file:///absolute/path/to/file.rs:42\\u{1b}\\\\file.rs\\u{1b}]8;;\\u{1b}\\\\\",\n        );\n\n        let result =\n            format_osc8_file_hyperlink(\"/absolute/path/to/file.rs\", None, \"file.rs\", &config);\n        assert_eq!(\n            result,\n            \"\\u{1b}]8;;file:///absolute/path/to/file.rs:1\\u{1b}\\\\file.rs\\u{1b}]8;;\\u{1b}\\\\\",\n        );\n    }\n\n    #[test]\n    fn test_formatted_hyperlinks() {\n        let config = make_config_from_args(&[\"--hyperlinks-commit-link-format\", \"HERE:{commit}\"]);\n\n        let line = \"001234abcdf\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"\\u{1b}]8;;HERE:001234abcdf\\u{1b}\\\\001234abcdf\\u{1b}]8;;\\u{1b}\\\\\",\n        );\n\n        let line = \"a2272718f0b398e48652ace17fca85c1962b3fc22\"; // length: 41 > 40\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(result, \"a2272718f0b398e48652ace17fca85c1962b3fc22\",);\n\n        let line = \"a2272718f0+b398e48652ace17f,ca85c1962b3fc2\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(result, \"\\u{1b}]8;;HERE:a2272718f0\\u{1b}\\\\a2272718f0\\u{1b}]8;;\\u{1b}\\\\+\\u{1b}]8;;\\\n        HERE:b398e48652ace17f\\u{1b}\\\\b398e48652ace17f\\u{1b}]8;;\\u{1b}\\\\,\\u{1b}]8;;HERE:ca85c1962b3fc2\\\n        \\u{1b}\\\\ca85c1962b3fc2\\u{1b}]8;;\\u{1b}\\\\\");\n\n        let line = \"This 01234abcdf Hash\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"This \\u{1b}]8;;HERE:01234abcdf\\u{1b}\\\\01234abcdf\\u{1b}]8;;\\u{1b}\\\\ Hash\",\n        );\n\n        let line =\n            \"Another 01234abcdf hash but also this one: dc623b084ad2dd14fe5d90189cacad5d49bfbfd3!\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"Another \\u{1b}]8;;HERE:01234abcdf\\u{1b}\\\\01234abcdf\\u{1b}]8;;\\u{1b}\\\\ hash but \\\n         also this one: \\u{1b}]8;;HERE:dc623b084ad2dd14fe5d90189cacad5d49bfbfd3\\u{1b}\\\n         \\\\dc623b084ad2dd14fe5d90189cacad5d49bfbfd3\\u{1b}]8;;\\u{1b}\\\\!\"\n        );\n\n        let line = \"01234abcdf 03043baf30 12abcdef0 12345678\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"\\u{1b}]8;;HERE:01234abcdf\\u{1b}\\\\01234abcdf\\u{1b}]8;;\\u{1b}\\\\ \\u{1b}]8;;\\\n        HERE:03043baf30\\u{1b}\\\\03043baf30\\u{1b}]8;;\\u{1b}\\\\ \\u{1b}]8;;HERE:12abcdef0\\u{1b}\\\\\\\n        12abcdef0\\u{1b}]8;;\\u{1b}\\\\ 12345678\"\n        );\n    }\n\n    #[test]\n    fn test_hyperlinks_to_repo() {\n        let mut config = make_config_from_args(&[\"--hyperlinks\"]);\n        config.git_config = GitConfig::for_testing();\n\n        let line = \"This a589ff9debaefdd delta commit\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"This \\u{1b}]8;;https://github.com/dandavison/delta/commit/a589ff9debaefdd\\u{1b}\\\n            \\\\a589ff9debaefdd\\u{1b}]8;;\\u{1b}\\\\ delta commit\",\n        );\n\n        let line =\n            \"Another a589ff9debaefdd hash but also this one: c5696757c0827349a87daa95415656!\";\n        let result = format_commit_line_with_osc8_commit_hyperlink(line, &config);\n        assert_eq!(\n            result,\n            \"Another \\u{1b}]8;;https://github.com/dandavison/delta/commit/a589ff9debaefdd\\\n        \\u{1b}\\\\a589ff9debaefdd\\u{1b}]8;;\\u{1b}\\\\ hash but also this one: \\u{1b}]8;;\\\n        https://github.com/dandavison/delta/commit/c5696757c0827349a87daa95415656\\u{1b}\\\n        \\\\c5696757c0827349a87daa95415656\\u{1b}]8;;\\\n         \\u{1b}\\\\!\"\n        );\n    }\n\n    #[test]\n    fn test_paths_and_hyperlinks_user_in_repo_root_dir() {\n        // Expectations are uninfluenced by git's --relative and delta's relative_paths options.\n        let input_type = InputType::GitDiff;\n        let true_location_of_file_relative_to_repo_root = PathBuf::from(\"a\");\n        let git_prefix_env_var = Some(\"\");\n\n        for (delta_relative_paths_option, calling_cmd) in [\n            (false, Some(\"git diff\")),\n            (false, Some(\"git diff --relative\")),\n            (true, Some(\"git diff\")),\n            (true, Some(\"git diff --relative\")),\n        ] {\n            run_test(FilePathsTestCase {\n                name: &format!(\n                    \"delta relative_paths={delta_relative_paths_option} calling_cmd={calling_cmd:?}\",\n                ),\n                true_location_of_file_relative_to_repo_root:\n                    true_location_of_file_relative_to_repo_root.as_path(),\n                git_prefix_env_var,\n                delta_relative_paths_option,\n                input_type,\n                calling_cmd,\n                path_in_delta_input: \"a\",\n                expected_displayed_path: \"a\",\n            })\n        }\n    }\n\n    #[test]\n    fn test_paths_and_hyperlinks_user_in_subdir_file_in_same_subdir() {\n        let input_type = InputType::GitDiff;\n        let true_location_of_file_relative_to_repo_root = PathBuf::from_iter(&[\"b\", \"a\"]);\n        let git_prefix_env_var = Some(\"b\");\n\n        run_test(FilePathsTestCase {\n            name: \"b/a from b\",\n            input_type,\n            calling_cmd: Some(\"git diff\"),\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            delta_relative_paths_option: false,\n            path_in_delta_input: \"b/a\",\n            expected_displayed_path: \"b/a\",\n        });\n        run_test(FilePathsTestCase {\n            name: \"b/a from b\",\n            input_type,\n            calling_cmd: Some(\"git diff --relative\"),\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            delta_relative_paths_option: false,\n            path_in_delta_input: \"a\",\n            // delta saw a and wasn't configured to make any changes\n            expected_displayed_path: \"a\",\n        });\n        run_test(FilePathsTestCase {\n            name: \"b/a from b\",\n            input_type,\n            calling_cmd: Some(\"git diff\"),\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            delta_relative_paths_option: true,\n            path_in_delta_input: \"b/a\",\n            // delta saw b/a and changed it to a\n            expected_displayed_path: \"a\",\n        });\n        run_test(FilePathsTestCase {\n            name: \"b/a from b\",\n            input_type,\n            calling_cmd: Some(\"git diff --relative\"),\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            delta_relative_paths_option: true,\n            path_in_delta_input: \"a\",\n            // delta saw a and didn't change it\n            expected_displayed_path: \"a\",\n        });\n    }\n\n    #[test]\n    fn test_paths_and_hyperlinks_user_in_subdir_file_in_different_subdir() {\n        let input_type = InputType::GitDiff;\n        let true_location_of_file_relative_to_repo_root = PathBuf::from_iter(&[\"b\", \"a\"]);\n        let git_prefix_env_var = Some(\"c\");\n\n        run_test(FilePathsTestCase {\n            name: \"b/a from c\",\n            input_type,\n            calling_cmd: Some(\"git diff\"),\n            delta_relative_paths_option: false,\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            path_in_delta_input: \"b/a\",\n            expected_displayed_path: \"b/a\",\n        });\n        run_test(FilePathsTestCase {\n            name: \"b/a from c\",\n            input_type,\n            calling_cmd: Some(\"git diff --relative\"),\n            delta_relative_paths_option: false,\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            path_in_delta_input: \"../b/a\",\n            expected_displayed_path: \"../b/a\",\n        });\n        run_test(FilePathsTestCase {\n            name: \"b/a from c\",\n            input_type,\n            calling_cmd: Some(\"git diff\"),\n            delta_relative_paths_option: true,\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var,\n            path_in_delta_input: \"b/a\",\n            expected_displayed_path: \"../b/a\",\n        });\n    }\n\n    #[test]\n    fn test_paths_and_hyperlinks_git_grep_user_in_root() {\n        let input_type = InputType::Grep;\n        let true_location_of_file_relative_to_repo_root = PathBuf::from_iter(&[\"b\", \"a.txt\"]);\n\n        run_test(FilePathsTestCase {\n            name: \"git grep: b/a.txt from root dir\",\n            input_type,\n            calling_cmd: Some(\"git grep foo\"),\n            delta_relative_paths_option: false,\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var: Some(\"\"),\n            path_in_delta_input: \"b/a.txt\",\n            expected_displayed_path: \"b/a.txt:\",\n        });\n    }\n\n    #[test]\n    fn test_paths_and_hyperlinks_grep_user_in_subdir_file_in_same_subdir() {\n        _run_test_grep_user_in_subdir_file_in_same_subdir(Some(\"git grep foo\"));\n        _run_test_grep_user_in_subdir_file_in_same_subdir(Some(\"rg foo\"));\n    }\n\n    fn _run_test_grep_user_in_subdir_file_in_same_subdir(calling_cmd: Option<&str>) {\n        let input_type = InputType::Grep;\n        let true_location_of_file_relative_to_repo_root = PathBuf::from_iter(&[\"b\", \"a.txt\"]);\n        run_test(FilePathsTestCase {\n            name: \"git grep: b/a.txt from b/ dir\",\n            input_type,\n            calling_cmd,\n            delta_relative_paths_option: false,\n            true_location_of_file_relative_to_repo_root:\n                true_location_of_file_relative_to_repo_root.as_path(),\n            git_prefix_env_var: Some(\"b/\"),\n            path_in_delta_input: \"a.txt\",\n            expected_displayed_path: \"a.txt:\",\n        });\n    }\n\n    const GIT_DIFF_OUTPUT: &str = r#\"\ndiff --git a/__path__ b/__path__\nindex 587be6b..975fbec 100644\n--- a/__path__\n+++ b/__path__\n@@ -1 +1 @@\n-x\n+y\n    \"#;\n\n    const GIT_GREP_OUTPUT: &str = \"\\\n__path__:  some matching line\n\";\n\n    struct FilePathsTestCase<'a> {\n        // True location of file in repo\n        true_location_of_file_relative_to_repo_root: &'a Path,\n\n        // Git spawns delta from repo root, and stores in this env var the cwd in which the user invoked delta.\n        git_prefix_env_var: Option<&'a str>,\n\n        delta_relative_paths_option: bool,\n        input_type: InputType,\n        calling_cmd: Option<&'a str>,\n        path_in_delta_input: &'a str,\n        expected_displayed_path: &'a str,\n        #[allow(dead_code)]\n        name: &'a str,\n    }\n\n    #[derive(Debug)]\n    enum GitDiffRelative {\n        Yes,\n        No,\n    }\n\n    #[derive(Debug)]\n    enum CallingProcess {\n        GitDiff(GitDiffRelative),\n        GitGrep,\n        OtherGrep,\n    }\n\n    #[derive(Clone, Copy, Debug)]\n    enum InputType {\n        GitDiff,\n        Grep,\n    }\n\n    impl<'a> FilePathsTestCase<'a> {\n        pub fn get_args(&self) -> Vec<String> {\n            let mut args = vec![\n                \"--navigate\", // helps locate the file path in the output\n                \"--line-numbers\",\n                \"--hyperlinks\",\n                \"--hyperlinks-file-link-format\",\n                \"{path}\",\n                \"--grep-file-style\",\n                \"raw\",\n                \"--grep-line-number-style\",\n                \"raw\",\n                \"--grep-output-type\",\n                \"classic\",\n                \"--hunk-header-file-style\",\n                \"raw\",\n                \"--hunk-header-line-number-style\",\n                \"raw\",\n                \"--line-numbers-plus-style\",\n                \"raw\",\n                \"--line-numbers-left-style\",\n                \"raw\",\n                \"--line-numbers-right-style\",\n                \"raw\",\n                \"--line-numbers-left-format\",\n                \"{nm}અ\",\n                \"--line-numbers-right-format\",\n                \"{np}જ\",\n            ];\n            if self.delta_relative_paths_option {\n                args.push(\"--relative-paths\");\n            }\n            args.iter().map(|s| s.to_string()).collect()\n        }\n\n        pub fn calling_process(&self) -> CallingProcess {\n            match (&self.input_type, self.calling_cmd) {\n                (InputType::GitDiff, Some(s)) if s.starts_with(\"git diff --relative\") => {\n                    CallingProcess::GitDiff(GitDiffRelative::Yes)\n                }\n                (InputType::GitDiff, Some(s)) if s.starts_with(\"git diff\") => {\n                    CallingProcess::GitDiff(GitDiffRelative::No)\n                }\n                (InputType::Grep, Some(s)) if s.starts_with(\"git grep\") => CallingProcess::GitGrep,\n                (InputType::Grep, Some(s)) if s.starts_with(\"rg\") => CallingProcess::OtherGrep,\n                (InputType::Grep, None) => CallingProcess::GitGrep,\n                _ => panic!(\n                    \"Unexpected calling spec: {:?} {:?}\",\n                    self.input_type, self.calling_cmd\n                ),\n            }\n        }\n\n        pub fn path_in_git_output(&self) -> String {\n            match self.calling_process() {\n                CallingProcess::GitDiff(GitDiffRelative::No) => self\n                    .true_location_of_file_relative_to_repo_root\n                    .to_string_lossy()\n                    .to_string(),\n                CallingProcess::GitDiff(GitDiffRelative::Yes) => pathdiff::diff_paths(\n                    self.true_location_of_file_relative_to_repo_root,\n                    self.git_prefix_env_var.unwrap(),\n                )\n                .unwrap()\n                .to_string_lossy()\n                .into(),\n                _ => panic!(\"Unexpected calling process: {:?}\", self.calling_process()),\n            }\n        }\n\n        /// Return the relative path as it would appear in grep output, i.e. accounting for facts\n        /// such as that the user may have invoked the grep command from a non-root directory\n        /// in the repo.\n        pub fn path_in_grep_output(&self) -> String {\n            use CallingProcess::*;\n            match (self.calling_process(), self.git_prefix_env_var) {\n                (GitGrep, None) => self\n                    .true_location_of_file_relative_to_repo_root\n                    .to_string_lossy()\n                    .into(),\n                (GitGrep, Some(dir)) => {\n                    // Delta must have been invoked as core.pager since GIT_PREFIX env var is set.\n                    // Note that it is possible that `true_location_of_file_relative_to_repo_root`\n                    // is not under `git_prefix_env_var` since one can do things like `git grep foo\n                    // ..`\n                    pathdiff::diff_paths(self.true_location_of_file_relative_to_repo_root, dir)\n                        .unwrap()\n                        .to_string_lossy()\n                        .into()\n                }\n                (OtherGrep, None) => {\n                    // Output from e.g. rg has been piped to delta.\n                    // Therefore\n                    // (a) the cwd that the delta process reports is the user's shell process cwd\n                    // (b) the file in question must be under this cwd\n                    // (c) grep output will contain the path relative to this cwd\n\n                    // So to compute the path as it would appear in grep output, we could form the\n                    // absolute path to the file and strip off the config.cwd_of_delta_process\n                    // prefix. The absolute path to the file could be constructed as (absolute path\n                    // to repo root) + true_location_of_file_relative_to_repo_root). But I don't\n                    // think we know the absolute path to repo root.\n                    panic!(\"Not implemented\")\n                }\n                _ => panic!(\"Not implemented\"),\n            }\n        }\n\n        pub fn expected_hyperlink_path(&self) -> PathBuf {\n            utils::path::fake_delta_cwd_for_tests()\n                .join(self.true_location_of_file_relative_to_repo_root)\n        }\n    }\n\n    fn run_test(test_case: FilePathsTestCase) {\n        let mut config = integration_test_utils::make_config_from_args(\n            test_case\n                .get_args()\n                .iter()\n                .map(|s| s.as_str())\n                .collect::<Vec<&str>>()\n                .as_slice(),\n        );\n        // The test is simulating delta invoked by git hence these are the same\n        config.cwd_relative_to_repo_root = test_case.git_prefix_env_var.map(|s| s.to_string());\n        config.cwd_of_user_shell_process = utils::path::cwd_of_user_shell_process(\n            config.cwd_of_delta_process.as_ref(),\n            config.cwd_relative_to_repo_root.as_deref(),\n        );\n        let mut delta_test = DeltaTest::with_config(&config);\n        if let Some(cmd) = test_case.calling_cmd {\n            delta_test = delta_test.with_calling_process(cmd)\n        }\n        let delta_test = match test_case.calling_process() {\n            CallingProcess::GitDiff(_) => {\n                assert_eq!(\n                    test_case.path_in_delta_input,\n                    test_case.path_in_git_output()\n                );\n                delta_test\n                    .with_input(&GIT_DIFF_OUTPUT.replace(\"__path__\", test_case.path_in_delta_input))\n            }\n            CallingProcess::GitGrep => {\n                assert_eq!(\n                    test_case.path_in_delta_input,\n                    test_case.path_in_grep_output()\n                );\n                delta_test\n                    .with_input(&GIT_GREP_OUTPUT.replace(\"__path__\", test_case.path_in_delta_input))\n            }\n            CallingProcess::OtherGrep => delta_test\n                .with_input(&GIT_GREP_OUTPUT.replace(\"__path__\", test_case.path_in_delta_input)),\n        };\n        let make_expected_hyperlink = |text| {\n            format_osc8_hyperlink(&test_case.expected_hyperlink_path().to_string_lossy(), text)\n        };\n        match test_case.calling_process() {\n            CallingProcess::GitDiff(_) => {\n                let line_number = \"1\";\n                delta_test\n                    .inspect_raw()\n                    // file hyperlink\n                    .expect_raw_contains(&format!(\n                        \"Δ {}\",\n                        make_expected_hyperlink(test_case.expected_displayed_path)\n                    ))\n                    // hunk header hyperlink\n                    .expect_raw_contains(&format!(\"• {}\", make_expected_hyperlink(line_number)))\n                    // line number hyperlink\n                    .expect_raw_contains(&format!(\"અ{}જ\", make_expected_hyperlink(line_number)));\n            }\n            CallingProcess::GitGrep | CallingProcess::OtherGrep => {\n                delta_test\n                    .inspect_raw()\n                    .expect_raw_contains(&make_expected_hyperlink(\n                        test_case.expected_displayed_path,\n                    ));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/features/line_numbers.rs",
    "content": "use std::cmp::max;\n\nuse lazy_static::lazy_static;\nuse regex::Regex;\n\nuse crate::color::ColorMode::*;\nuse crate::config;\nuse crate::delta::State;\nuse crate::features::hyperlinks;\nuse crate::features::side_by_side::ansifill::{self, ODD_PAD_CHAR};\nuse crate::features::side_by_side::{Left, PanelSide, Right};\nuse crate::features::OptionValueFunction;\nuse crate::format::{self, Align, Placeholder};\nuse crate::minusplus::*;\nuse crate::style::Style;\nuse crate::utils;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    builtin_feature!([\n        (\n            \"line-numbers\",\n            bool,\n            None,\n            _opt => true\n        ),\n        (\n            \"line-numbers-left-style\",\n            String,\n            None,\n            _opt => \"blue\"\n        ),\n        (\n            \"line-numbers-right-style\",\n            String,\n            None,\n            _opt => \"blue\"\n        ),\n        (\n            \"line-numbers-minus-style\",\n            String,\n            None,\n            opt => match opt.computed.color_mode {\n                Light => \"red\",\n                Dark => \"88\",\n            }\n        ),\n        (\n            \"line-numbers-zero-style\",\n            String,\n            None,\n            opt => match opt.computed.color_mode {\n                Light => \"#dddddd\",\n                Dark => \"#444444\",\n            }\n        ),\n        (\n            \"line-numbers-plus-style\",\n            String,\n            None,\n            opt => match opt.computed.color_mode {\n                Light => \"green\",\n                Dark => \"28\",\n            }\n        )\n    ])\n}\n\npub fn linenumbers_and_styles<'a>(\n    line_numbers_data: &'a mut LineNumbersData,\n    state: &State,\n    config: &'a config::Config,\n    increment: bool,\n) -> Option<(MinusPlus<Option<usize>>, MinusPlus<Style>)> {\n    let nr_left = line_numbers_data.line_number[Left];\n    let nr_right = line_numbers_data.line_number[Right];\n    let (minus_style, zero_style, plus_style) = (\n        config.line_numbers_style_minusplus[Minus],\n        config.line_numbers_zero_style,\n        config.line_numbers_style_minusplus[Plus],\n    );\n    let ((minus_number, plus_number), (minus_style, plus_style)) = match state {\n        State::HunkMinus(_, _) => {\n            line_numbers_data.line_number[Left] += increment as usize;\n            ((Some(nr_left), None), (minus_style, plus_style))\n        }\n        State::HunkMinusWrapped => ((None, None), (minus_style, plus_style)),\n        State::HunkZero(_, _) => {\n            line_numbers_data.line_number[Left] += increment as usize;\n            line_numbers_data.line_number[Right] += increment as usize;\n            ((Some(nr_left), Some(nr_right)), (zero_style, zero_style))\n        }\n        State::HunkZeroWrapped => ((None, None), (zero_style, zero_style)),\n        State::HunkPlus(_, _) => {\n            line_numbers_data.line_number[Right] += increment as usize;\n            ((None, Some(nr_right)), (minus_style, plus_style))\n        }\n        State::HunkPlusWrapped => ((None, None), (minus_style, plus_style)),\n        _ => return None,\n    };\n    Some((\n        MinusPlus::new(minus_number, plus_number),\n        MinusPlus::new(minus_style, plus_style),\n    ))\n}\n\n/// Return a vec of `ansi_term::ANSIGenericString`s representing the left and right fields of the\n/// two-column line number display.\npub fn format_and_paint_line_numbers<'a>(\n    line_numbers_data: &'a LineNumbersData,\n    side_by_side_panel: Option<PanelSide>,\n    styles: MinusPlus<Style>,\n    line_numbers: MinusPlus<Option<usize>>,\n    config: &'a config::Config,\n) -> Vec<ansi_term::ANSIGenericString<'a, str>> {\n    let mut formatted_numbers = Vec::new();\n\n    let (emit_left, emit_right) = match (config.side_by_side, side_by_side_panel) {\n        (false, _) => (true, true),\n        (true, Some(Left)) => (true, false),\n        (true, Some(Right)) => (false, true),\n        (true, None) => unreachable!(),\n    };\n\n    if emit_left {\n        formatted_numbers.extend(format_and_paint_line_number_field(\n            line_numbers_data,\n            Minus,\n            &styles,\n            &line_numbers,\n            config,\n        ));\n    }\n\n    if emit_right {\n        formatted_numbers.extend(format_and_paint_line_number_field(\n            line_numbers_data,\n            Plus,\n            &styles,\n            &line_numbers,\n            config,\n        ));\n    }\n    formatted_numbers\n}\n\nlazy_static! {\n    static ref LINE_NUMBERS_PLACEHOLDER_REGEX: Regex =\n        format::make_placeholder_regex(&[\"nm\", \"np\"]);\n}\n\n#[derive(Default, Debug)]\npub struct LineNumbersData<'a> {\n    pub format_data: MinusPlus<format::FormatStringData<'a>>,\n    pub line_number: MinusPlus<usize>,\n    pub hunk_max_line_number_width: usize,\n    pub plus_file: String,\n}\n\npub type SideBySideLineWidth = MinusPlus<usize>;\n\n// Although it's probably unusual, a single format string can contain multiple placeholders. E.g.\n// line-numbers-right-format = \"{nm} {np}|\"\nimpl<'a> LineNumbersData<'a> {\n    pub fn from_format_strings(\n        format: &'a MinusPlus<String>,\n        use_full_width: ansifill::UseFullPanelWidth,\n    ) -> LineNumbersData<'a> {\n        let insert_center_space_on_odd_width = use_full_width.pad_width();\n        Self {\n            format_data: MinusPlus::new(\n                format::parse_line_number_format(\n                    &format[Left],\n                    &LINE_NUMBERS_PLACEHOLDER_REGEX,\n                    false,\n                ),\n                format::parse_line_number_format(\n                    &format[Right],\n                    &LINE_NUMBERS_PLACEHOLDER_REGEX,\n                    insert_center_space_on_odd_width,\n                ),\n            ),\n            ..Self::default()\n        }\n    }\n\n    /// Initialize line number data for a hunk.\n    pub fn initialize_hunk(&mut self, line_numbers: &[(usize, usize)], plus_file: String) {\n        // Typically, line_numbers has length 2: an entry for the minus file, and one for the plus\n        // file. In the case of merge commits, it may be longer.\n        self.line_number =\n            MinusPlus::new(line_numbers[0].0, line_numbers[line_numbers.len() - 1].0);\n        let hunk_max_line_number = line_numbers.iter().map(|(n, d)| n + d).max().unwrap();\n        self.hunk_max_line_number_width =\n            1 + (hunk_max_line_number as f64).log10().floor() as usize;\n        self.plus_file = plus_file;\n    }\n\n    pub fn empty_for_sbs(use_full_width: ansifill::UseFullPanelWidth) -> LineNumbersData<'a> {\n        let insert_center_space_on_odd_width = use_full_width.pad_width();\n        Self {\n            format_data: if insert_center_space_on_odd_width {\n                let format_left = vec![format::FormatStringPlaceholderData::default()];\n                let format_right = vec![format::FormatStringPlaceholderData {\n                    prefix: format!(\"{ODD_PAD_CHAR}\").into(),\n                    prefix_len: 1,\n                    ..Default::default()\n                }];\n                MinusPlus::new(format_left, format_right)\n            } else {\n                MinusPlus::default()\n            },\n            ..Self::default()\n        }\n    }\n\n    pub fn formatted_width(&self) -> SideBySideLineWidth {\n        let format_data_width = |format_data: &format::FormatStringData<'a>| {\n            // Provide each Placeholder with the max_line_number_width to calculate the\n            // actual width. Only use prefix and suffix of the last element, otherwise\n            // only the prefix (as the suffix also contains the following prefix).\n            format_data\n                .last()\n                .map(|last| {\n                    let (prefix_width, suffix_width) = last.width(self.hunk_max_line_number_width);\n                    format_data\n                        .iter()\n                        .rev()\n                        .skip(1)\n                        .map(|p| p.width(self.hunk_max_line_number_width).0)\n                        .sum::<usize>()\n                        + prefix_width\n                        + suffix_width\n                })\n                .unwrap_or(0)\n        };\n        MinusPlus::new(\n            format_data_width(&self.format_data[Left]),\n            format_data_width(&self.format_data[Right]),\n        )\n    }\n}\n\n#[allow(clippy::too_many_arguments)]\nfn format_and_paint_line_number_field<'a>(\n    line_numbers_data: &'a LineNumbersData,\n    side: MinusPlusIndex,\n    styles: &MinusPlus<Style>,\n    line_numbers: &MinusPlus<Option<usize>>,\n    config: &config::Config,\n) -> Vec<ansi_term::ANSIGenericString<'a, str>> {\n    let min_field_width = line_numbers_data.hunk_max_line_number_width;\n\n    let format_data = &line_numbers_data.format_data[side];\n    let plus_file = &line_numbers_data.plus_file;\n    let style = &config.line_numbers_style_leftright[side];\n\n    let mut ansi_strings = Vec::new();\n    let mut suffix = \"\";\n    for placeholder in format_data {\n        ansi_strings.push(style.paint(placeholder.prefix.as_str()));\n\n        let width = if let Some(placeholder_width) = placeholder.width {\n            max(placeholder_width, min_field_width)\n        } else {\n            min_field_width\n        };\n\n        let alignment_spec = placeholder.alignment_spec.unwrap_or(Align::Center);\n        match placeholder.placeholder {\n            Some(Placeholder::NumberMinus) => {\n                ansi_strings.push(styles[Minus].paint(format_line_number(\n                    line_numbers[Minus],\n                    alignment_spec,\n                    width,\n                    placeholder.precision,\n                    None,\n                    config,\n                )))\n            }\n            Some(Placeholder::NumberPlus) => {\n                ansi_strings.push(styles[Plus].paint(format_line_number(\n                    line_numbers[Plus],\n                    alignment_spec,\n                    width,\n                    placeholder.precision,\n                    Some(plus_file),\n                    config,\n                )))\n            }\n            None => {}\n            _ => unreachable!(\"Invalid placeholder\"),\n        }\n        suffix = placeholder.suffix.as_str();\n    }\n    ansi_strings.push(style.paint(suffix));\n    ansi_strings\n}\n\n/// Return line number formatted according to `alignment` and `width`.\nfn format_line_number(\n    line_number: Option<usize>,\n    alignment: Align,\n    width: usize,\n    precision: Option<usize>,\n    plus_file: Option<&str>,\n    config: &config::Config,\n) -> String {\n    let pad = |n| format::pad(n, width, alignment, precision);\n    match (line_number, config.hyperlinks, plus_file) {\n        (None, _, _) => \" \".repeat(width),\n        (Some(n), true, Some(file)) => match utils::path::absolute_path(file, config) {\n            Some(absolute_path) => {\n                hyperlinks::format_osc8_file_hyperlink(absolute_path, line_number, &pad(n), config)\n                    .to_string()\n            }\n            None => pad(n),\n        },\n        (Some(n), _, _) => pad(n),\n    }\n}\n\n#[cfg(test)]\npub mod tests {\n    use regex::Captures;\n\n    use crate::ansi::strip_ansi_codes;\n    use crate::features::side_by_side::ansifill::ODD_PAD_CHAR;\n    use crate::format::FormatStringData;\n    use crate::tests::integration_test_utils::{make_config_from_args, run_delta, DeltaTest};\n\n    use super::*;\n\n    pub fn parse_line_number_format_with_default_regex(\n        format_string: &str,\n    ) -> FormatStringData<'_> {\n        format::parse_line_number_format(format_string, &LINE_NUMBERS_PLACEHOLDER_REGEX, false)\n    }\n\n    #[test]\n    fn test_line_number_format_regex_1() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"{nm}\"),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"\".into(),\n                placeholder: Some(Placeholder::NumberMinus),\n                ..Default::default()\n            }]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_2() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"{np:4}\"),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"\".into(),\n                placeholder: Some(Placeholder::NumberPlus),\n                alignment_spec: None,\n                width: Some(4),\n                ..Default::default()\n            }]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_3() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"{np:>4}\"),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"\".into(),\n                placeholder: Some(Placeholder::NumberPlus),\n                alignment_spec: Some(Align::Right),\n                width: Some(4),\n                precision: None,\n                ..Default::default()\n            }]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_4() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"{np:_>4}\"),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"\".into(),\n                placeholder: Some(Placeholder::NumberPlus),\n                alignment_spec: Some(Align::Right),\n                width: Some(4),\n                ..Default::default()\n            }]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_5() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"__{np:_>4}@@\"),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"__\".into(),\n                placeholder: Some(Placeholder::NumberPlus),\n                alignment_spec: Some(Align::Right),\n                width: Some(4),\n                precision: None,\n                suffix: \"@@\".into(),\n                prefix_len: 2,\n                suffix_len: 2,\n                ..Default::default()\n            }]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_6() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"__{nm:<3}@@---{np:_>4}**\"),\n            vec![\n                format::FormatStringPlaceholderData {\n                    prefix: \"__\".into(),\n                    placeholder: Some(Placeholder::NumberMinus),\n                    alignment_spec: Some(Align::Left),\n                    width: Some(3),\n                    precision: None,\n                    suffix: \"@@---{np:_>4}**\".into(),\n                    prefix_len: 2,\n                    suffix_len: 15,\n                    ..Default::default()\n                },\n                format::FormatStringPlaceholderData {\n                    prefix: \"@@---\".into(),\n                    placeholder: Some(Placeholder::NumberPlus),\n                    alignment_spec: Some(Align::Right),\n                    width: Some(4),\n                    precision: None,\n                    suffix: \"**\".into(),\n                    prefix_len: 5,\n                    suffix_len: 2,\n                    ..Default::default()\n                }\n            ]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_regex_7() {\n        assert_eq!(\n            parse_line_number_format_with_default_regex(\"__@@---**\",),\n            vec![format::FormatStringPlaceholderData {\n                prefix: \"\".into(),\n                placeholder: None,\n                alignment_spec: None,\n                width: None,\n                precision: None,\n                suffix: \"__@@---**\".into(),\n                prefix_len: 0,\n                suffix_len: 9,\n                ..Default::default()\n            },]\n        )\n    }\n\n    #[test]\n    fn test_line_number_format_odd_width_one() {\n        assert_eq!(\n            format::parse_line_number_format(\"|{nm:<4}|\", &LINE_NUMBERS_PLACEHOLDER_REGEX, true),\n            vec![format::FormatStringPlaceholderData {\n                prefix: format!(\"{ODD_PAD_CHAR}|\").into(),\n                placeholder: Some(Placeholder::NumberMinus),\n                alignment_spec: Some(Align::Left),\n                width: Some(4),\n                precision: None,\n                suffix: \"|\".into(),\n                prefix_len: 2,\n                suffix_len: 1,\n                ..Default::default()\n            }]\n        );\n    }\n\n    #[test]\n    fn test_line_number_format_odd_width_two() {\n        assert_eq!(\n            format::parse_line_number_format(\n                \"|{nm:<4}+{np:<4}|\",\n                &LINE_NUMBERS_PLACEHOLDER_REGEX,\n                true\n            ),\n            vec![\n                format::FormatStringPlaceholderData {\n                    prefix: format!(\"{ODD_PAD_CHAR}|\").into(),\n                    placeholder: Some(Placeholder::NumberMinus),\n                    alignment_spec: Some(Align::Left),\n                    width: Some(4),\n                    precision: None,\n                    suffix: \"+{np:<4}|\".into(),\n                    prefix_len: 2,\n                    suffix_len: 9,\n                    ..Default::default()\n                },\n                format::FormatStringPlaceholderData {\n                    prefix: \"+\".into(),\n                    placeholder: Some(Placeholder::NumberPlus),\n                    alignment_spec: Some(Align::Left),\n                    width: Some(4),\n                    precision: None,\n                    suffix: \"|\".into(),\n                    prefix_len: 1,\n                    suffix_len: 1,\n                    ..Default::default()\n                }\n            ]\n        );\n    }\n    #[test]\n    fn test_line_number_format_odd_width_none() {\n        assert_eq!(\n            format::parse_line_number_format(\"|++|\", &LINE_NUMBERS_PLACEHOLDER_REGEX, true),\n            vec![format::FormatStringPlaceholderData {\n                prefix: format!(\"{ODD_PAD_CHAR}\").into(),\n                placeholder: None,\n                alignment_spec: None,\n                width: None,\n                precision: None,\n                suffix: \"|++|\".into(),\n                prefix_len: 1,\n                suffix_len: 4,\n                ..Default::default()\n            }]\n        );\n    }\n\n    #[test]\n    fn test_line_number_format_long() {\n        let long = \"line number format which is too large for SSO\";\n        assert!(long.len() > std::mem::size_of::<smol_str::SmolStr>());\n        assert_eq!(\n            parse_line_number_format_with_default_regex(&format!(\"{long}{{nm}}{long}\")),\n            vec![format::FormatStringPlaceholderData {\n                prefix: long.into(),\n                prefix_len: long.len(),\n                placeholder: Some(Placeholder::NumberMinus),\n                alignment_spec: None,\n                width: None,\n                precision: None,\n                suffix: long.into(),\n                suffix_len: long.len(),\n                ..Default::default()\n            },]\n        )\n    }\n\n    #[test]\n    fn test_line_number_placeholder_width_one() {\n        let data = parse_line_number_format_with_default_regex(\"\");\n        assert_eq!(data[0].width(0), (0, 0));\n\n        let data = parse_line_number_format_with_default_regex(\"\");\n        assert_eq!(data[0].width(4), (0, 0));\n\n        let data = parse_line_number_format_with_default_regex(\"│+│\");\n        assert_eq!(data[0].width(4), (0, 3));\n\n        let data = parse_line_number_format_with_default_regex(\"{np}\");\n        assert_eq!(data[0].width(4), (4, 0));\n\n        let data = parse_line_number_format_with_default_regex(\"│{np}│\");\n        assert_eq!(data[0].width(4), (5, 1));\n\n        let data = parse_line_number_format_with_default_regex(\"│{np:2}│\");\n        assert_eq!(data[0].width(4), (5, 1));\n\n        let data = parse_line_number_format_with_default_regex(\"│{np:6}│\");\n        assert_eq!(data[0].width(4), (7, 1));\n    }\n\n    #[test]\n    fn test_line_number_placeholder_width_two() {\n        let data = parse_line_number_format_with_default_regex(\"│{nm}│{np}│\");\n        assert_eq!(data[0].width(1), (2, 6));\n        assert_eq!(data[1].width(1), (2, 1));\n\n        let data = parse_line_number_format_with_default_regex(\"│{nm:_>5}│{np:1}│\");\n        assert_eq!(data[0].width(1), (6, 8));\n        assert_eq!(data[1].width(1), (2, 1));\n\n        let data = parse_line_number_format_with_default_regex(\"│{nm}│{np:5}│\");\n        assert_eq!(data[0].width(7), (8, 8));\n        assert_eq!(data[1].width(7), (8, 1));\n    }\n\n    #[test]\n    fn test_line_numbers_data() {\n        use crate::features::side_by_side::ansifill;\n        let w = ansifill::UseFullPanelWidth(false);\n        let format = MinusPlus::new(\"\".into(), \"\".into());\n        let mut data = LineNumbersData::from_format_strings(&format, w.clone());\n        data.initialize_hunk(&[(10, 11), (10000, 100001)], \"a\".into());\n        assert_eq!(data.formatted_width(), MinusPlus::new(0, 0));\n\n        let format = MinusPlus::new(\"│\".into(), \"│+│\".into());\n        let mut data = LineNumbersData::from_format_strings(&format, w.clone());\n\n        data.initialize_hunk(&[(10, 11), (10000, 100001)], \"a\".into());\n        assert_eq!(data.formatted_width(), MinusPlus::new(1, 3));\n\n        let format = MinusPlus::new(\"│{nm:^3}│\".into(), \"│{np:^3}│\".into());\n        let mut data = LineNumbersData::from_format_strings(&format, w.clone());\n\n        data.initialize_hunk(&[(10, 11), (10000, 100001)], \"a\".into());\n        assert_eq!(data.formatted_width(), MinusPlus::new(8, 8));\n\n        let format = MinusPlus::new(\"│{nm:^3}│ │{np:<12}│ │{nm}│\".into(), \"\".into());\n        let mut data = LineNumbersData::from_format_strings(&format, w.clone());\n\n        data.initialize_hunk(&[(10, 11), (10000, 100001)], \"a\".into());\n        assert_eq!(data.formatted_width(), MinusPlus::new(32, 0));\n\n        let format = MinusPlus::new(\"│{np:^3}│ │{nm:<12}│ │{np}│\".into(), \"\".into());\n        let mut data = LineNumbersData::from_format_strings(&format, w);\n\n        data.initialize_hunk(&[(10, 11), (10000, 100001)], \"a\".into());\n        assert_eq!(data.formatted_width(), MinusPlus::new(32, 0));\n    }\n\n    fn _get_capture<'a>(i: usize, j: usize, caps: &'a [Captures]) -> &'a str {\n        caps[i].get(j).map_or(\"\", |m| m.as_str())\n    }\n\n    #[test]\n    fn test_two_minus_lines() {\n        DeltaTest::with_args(&[\n            \"--line-numbers\",\n            \"--line-numbers-left-format\",\n            \"{nm:^4}⋮\",\n            \"--line-numbers-right-format\",\n            \"{np:^4}│\",\n            \"--line-numbers-left-style\",\n            \"0 1\",\n            \"--line-numbers-minus-style\",\n            \"0 2\",\n            \"--line-numbers-right-style\",\n            \"0 3\",\n            \"--line-numbers-plus-style\",\n            \"0 4\",\n        ])\n        .with_input(TWO_MINUS_LINES_DIFF)\n        .expect_after_header(\n            r#\"\n             #indent_mark\n               1 ⋮    │a = 1\n               2 ⋮    │b = 23456\"#,\n        );\n    }\n\n    #[test]\n    fn test_two_plus_lines() {\n        DeltaTest::with_args(&[\n            \"--line-numbers\",\n            \"--line-numbers-left-format\",\n            \"{nm:^4}⋮\",\n            \"--line-numbers-right-format\",\n            \"{np:^4}│\",\n            \"--line-numbers-left-style\",\n            \"0 1\",\n            \"--line-numbers-minus-style\",\n            \"0 2\",\n            \"--line-numbers-right-style\",\n            \"0 3\",\n            \"--line-numbers-plus-style\",\n            \"0 4\",\n        ])\n        .with_input(TWO_PLUS_LINES_DIFF)\n        .expect_after_header(\n            r#\"\n             #indent_mark\n                 ⋮  1 │a = 1\n                 ⋮  2 │b = 234567\"#,\n        );\n    }\n\n    #[test]\n    fn test_one_minus_one_plus_line() {\n        let config = make_config_from_args(&[\n            \"--line-numbers\",\n            \"--line-numbers-left-format\",\n            \"{nm:^4}⋮\",\n            \"--line-numbers-right-format\",\n            \"{np:^4}│\",\n            \"--line-numbers-left-style\",\n            \"0 1\",\n            \"--line-numbers-minus-style\",\n            \"0 2\",\n            \"--line-numbers-right-style\",\n            \"0 3\",\n            \"--line-numbers-plus-style\",\n            \"0 4\",\n        ]);\n        let output = run_delta(ONE_MINUS_ONE_PLUS_LINE_DIFF, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        assert_eq!(lines.next().unwrap(), \"  1 ⋮  1 │a = 1\");\n        assert_eq!(lines.next().unwrap(), \"  2 ⋮    │b = 2\");\n        assert_eq!(lines.next().unwrap(), \"    ⋮  2 │bb = 2\");\n    }\n\n    #[test]\n    fn test_repeated_placeholder() {\n        let config = make_config_from_args(&[\n            \"--line-numbers\",\n            \"--line-numbers-left-format\",\n            \"{nm:^4} {nm:^4}⋮\",\n            \"--line-numbers-right-format\",\n            \"{np:^4}│\",\n            \"--line-numbers-left-style\",\n            \"0 1\",\n            \"--line-numbers-minus-style\",\n            \"0 2\",\n            \"--line-numbers-right-style\",\n            \"0 3\",\n            \"--line-numbers-plus-style\",\n            \"0 4\",\n        ]);\n        let output = run_delta(ONE_MINUS_ONE_PLUS_LINE_DIFF, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        assert_eq!(lines.next().unwrap(), \"  1    1 ⋮  1 │a = 1\");\n        assert_eq!(lines.next().unwrap(), \"  2    2 ⋮    │b = 2\");\n        assert_eq!(lines.next().unwrap(), \"         ⋮  2 │bb = 2\");\n    }\n\n    #[test]\n    fn test_five_digit_line_number() {\n        let config = make_config_from_args(&[\"--line-numbers\"]);\n        let output = run_delta(FIVE_DIGIT_LINE_NUMBER_DIFF, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        assert_eq!(lines.next().unwrap(), \"10000⋮10000│a = 1\");\n        assert_eq!(lines.next().unwrap(), \"10001⋮     │b = 2\");\n        assert_eq!(lines.next().unwrap(), \"     ⋮10001│bb = 2\");\n    }\n\n    #[test]\n    fn test_unequal_digit_line_number() {\n        let config = make_config_from_args(&[\"--line-numbers\"]);\n        let output = run_delta(UNEQUAL_DIGIT_DIFF, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        assert_eq!(lines.next().unwrap(), \"10000⋮ 9999│a = 1\");\n        assert_eq!(lines.next().unwrap(), \"10001⋮     │b = 2\");\n        assert_eq!(lines.next().unwrap(), \"     ⋮10000│bb = 2\");\n    }\n\n    #[test]\n    fn test_color_only() {\n        let config = make_config_from_args(&[\"--line-numbers\", \"--color-only\"]);\n        let output = run_delta(TWO_MINUS_LINES_DIFF, &config);\n        let mut lines = output.lines().skip(5);\n        let (line_1, line_2) = (lines.next().unwrap(), lines.next().unwrap());\n        assert_eq!(strip_ansi_codes(line_1), \"  1 ⋮    │-a = 1\");\n        assert_eq!(strip_ansi_codes(line_2), \"  2 ⋮    │-b = 23456\");\n    }\n\n    #[test]\n    fn test_hunk_header_style_is_omit() {\n        let config = make_config_from_args(&[\"--line-numbers\", \"--hunk-header-style\", \"omit\"]);\n        let output = run_delta(TWO_LINE_DIFFS, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines().skip(4);\n        assert_eq!(lines.next().unwrap(), \"  1 ⋮  1 │a = 1\");\n        assert_eq!(lines.next().unwrap(), \"  2 ⋮    │b = 2\");\n        assert_eq!(lines.next().unwrap(), \"    ⋮  2 │bb = 2\");\n        assert_eq!(lines.next().unwrap(), \"\");\n        assert_eq!(lines.next().unwrap(), \" 499⋮ 499│a = 3\");\n        assert_eq!(lines.next().unwrap(), \" 500⋮    │b = 4\");\n        assert_eq!(lines.next().unwrap(), \"    ⋮ 500│bb = 4\");\n    }\n\n    #[test]\n    fn test_line_numbers_continue_correctly() {\n        DeltaTest::with_args(&[\"--side-by-side\", \"--width\", \"44\", \"--line-fill-method=ansi\"])\n            .with_input(DIFF_PLUS_MINUS_WITH_1_CONTEXT_DIFF)\n            .expect_after_header(\n                r#\"\n                │  1 │abc             │  1 │abc\n                │  2 │a = left side   │  2 │a = right side\n                │  3 │xyz             │  3 │xyz\"#,\n            );\n    }\n\n    #[test]\n    fn test_line_numbers_continue_correctly_after_wrapping() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"32\",\n            \"--line-fill-method=ansi\",\n            \"--wrap-left-symbol\",\n            \"@\",\n            \"--wrap-right-symbol\",\n            \"@\",\n            \"--wrap-right-prefix-symbol\",\n            \">\",\n        ])\n        .with_input(DIFF_PLUS_MINUS_WITH_1_CONTEXT_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │abc       │  1 │abc\n            │  2 │a = left @│  2 │a = right@\n            │    │side      │    │ side\n            │  3 │xyz       │  3 │xyz\"#,\n        );\n\n        let cfg = &[\n            \"--side-by-side\",\n            \"--width\",\n            \"42\",\n            \"--line-fill-method=ansi\",\n            \"--wrap-left-symbol\",\n            \"@\",\n            \"--wrap-right-symbol\",\n            \"@\",\n            \"--wrap-right-prefix-symbol\",\n            \">\",\n        ];\n\n        DeltaTest::with_args(cfg)\n            .with_input(DIFF_WITH_LONGER_MINUS_1_CONTEXT)\n            .expect_after_header(\n                r#\"\n                │  1 │abc            │  1 │abc\n                │  2 │a = one side   │  2 │a = one longer@\n                │    │               │    │         > side\n                │  3 │xyz            │  3 │xyz\"#,\n            );\n\n        DeltaTest::with_args(cfg)\n            .with_input(DIFF_WITH_LONGER_PLUS_1_CONTEXT)\n            .expect_after_header(\n                r#\"\n                │  1 │abc            │  1 │abc\n                │  2 │a = one longer@│  2 │a = one side\n                │    │         > side│    │\n                │  3 │xyz            │  3 │xyz\"#,\n            );\n\n        DeltaTest::with_args(cfg)\n            .with_input(DIFF_MISMATCH_LONGER_MINUS_1_CONTEXT)\n            .expect_after_header(\n                r#\"\n                │  1 │abc            │  1 │abc\n                │  2 │a = left side @│    │\n                │    │which is longer│    │\n                │    │               │  2 │a = other one\n                │  3 │xyz            │  3 │xyz\"#,\n            );\n\n        DeltaTest::with_args(cfg)\n            .with_input(DIFF_MISMATCH_LONGER_PLUS_1_CONTEXT)\n            .expect_after_header(\n                r#\"\n                │  1 │abc            │  1 │abc\n                │  2 │a = other one  │    │\n                │    │               │  2 │a = right side@\n                │    │               │    │ which is long@\n                │    │               │    │er\n                │  3 │xyz            │  3 │xyz\"#,\n            );\n    }\n\n    pub const TWO_MINUS_LINES_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..e69de29 100644\n--- i/a.py\n+++ w/a.py\n@@ -1,2 +0,0 @@\n-a = 1\n-b = 23456\n\";\n\n    pub const TWO_PLUS_LINES_DIFF: &str = \"\\\ndiff --git c/a.py i/a.py\nnew file mode 100644\nindex 0000000..223ca50\n--- /dev/null\n+++ i/a.py\n@@ -0,0 +1,2 @@\n+a = 1\n+b = 234567\n\";\n\n    pub const ONE_MINUS_ONE_PLUS_LINE_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..367a6f6 100644\n--- i/a.py\n+++ w/a.py\n@@ -1,2 +1,2 @@\n a = 1\n-b = 2\n+bb = 2\n\";\n\n    const TWO_LINE_DIFFS: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..367a6f6 100644\n--- i/a.py\n+++ w/a.py\n@@ -1,2 +1,2 @@\n a = 1\n-b = 2\n+bb = 2\n@@ -499,2 +499,2 @@\n a = 3\n-b = 4\n+bb = 4\n\";\n\n    const FIVE_DIGIT_LINE_NUMBER_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..367a6f6 100644\n--- i/a.py\n+++ w/a.py\n@@ -10000,2 +10000,2 @@\n a = 1\n-b = 2\n+bb = 2\n\";\n\n    const UNEQUAL_DIGIT_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..367a6f6 100644\n--- i/a.py\n+++ w/a.py\n@@ -10000,2 +9999,2 @@\n a = 1\n-b = 2\n+bb = 2\n\";\n\n    const DIFF_PLUS_MINUS_WITH_1_CONTEXT_DIFF: &str = \"\\\n--- a/a.py\n+++ b/b.py\n@@ -1,3 +1,3 @@\n abc\n-a = left side\n+a = right side\n xyz\";\n\n    const DIFF_WITH_LONGER_MINUS_1_CONTEXT: &str = \"\\\n--- a/a.py\n+++ b/b.py\n@@ -1,3 +1,3 @@\n abc\n-a = one side\n+a = one longer side\n xyz\";\n\n    const DIFF_WITH_LONGER_PLUS_1_CONTEXT: &str = \"\\\n--- a/a.py\n+++ b/b.py\n@@ -1,3 +1,3 @@\n abc\n-a = one longer side\n+a = one side\n xyz\";\n\n    const DIFF_MISMATCH_LONGER_MINUS_1_CONTEXT: &str = \"\\\n--- a/a.py\n+++ b/b.py\n@@ -1,3 +1,3 @@\n abc\n-a = left side which is longer\n+a = other one\n xyz\";\n\n    const DIFF_MISMATCH_LONGER_PLUS_1_CONTEXT: &str = \"\\\n--- a/a.py\n+++ b/b.py\n@@ -1,3 +1,3 @@\n abc\n-a = other one\n+a = right side which is longer\n xyz\";\n\n    pub const TWO_MINUS_LINES_UNICODE_DIFF: &str = \"\\\ndiff --git a/a.py b/a.py\nindex 8b0d958..e69de29 100644\n--- a/a.txt\n+++ b/b.txt\n@@ -1,1 +0,0 @@\n-一二三\n\";\n}\n"
  },
  {
    "path": "src/features/mod.rs",
    "content": "use std::collections::HashMap;\n\nuse crate::cli;\nuse crate::git_config::GitConfig;\nuse crate::options::option_value::ProvenancedOptionValue;\nuse ProvenancedOptionValue::*;\n\n/// A custom feature is a named set of command line (option, value) pairs, supplied in a git config\n/// file. I.e. it might look like\n///\n/// [delta \"decorations\"]\n///     commit-decoration-style = bold box ul\n///     file-style = bold 19 ul\n///     file-decoration-style = none\n///\n/// A builtin feature is a named set of command line (option, value) pairs that is built-in to\n/// delta. The valueof a builtin feature is a function. This function is passed the current set of\n/// all command-line option-value pairs, and GitConfig, and returns either a GitConfigValue, or a\n/// DefaultValue. (It may use the set of all option-value pairs when computing its default).\npub type BuiltinFeature = HashMap<String, OptionValueFunction>;\n\ntype OptionValueFunction = Box<dyn Fn(&cli::Opt, &Option<GitConfig>) -> ProvenancedOptionValue>;\n\n// Construct a 2-level hash map: (feature name) -> (option name) -> (value function). A value\n// function is a function that takes an Opt struct, and a git Config struct, and returns the value\n// for the option.\npub fn make_builtin_features() -> HashMap<String, BuiltinFeature> {\n    vec![\n        (\n            \"color-only\".to_string(),\n            color_only::make_feature().into_iter().collect(),\n        ),\n        (\n            \"diff-highlight\".to_string(),\n            diff_highlight::make_feature().into_iter().collect(),\n        ),\n        (\n            \"diff-so-fancy\".to_string(),\n            diff_so_fancy::make_feature().into_iter().collect(),\n        ),\n        (\n            \"hyperlinks\".to_string(),\n            hyperlinks::make_feature().into_iter().collect(),\n        ),\n        (\n            \"line-numbers\".to_string(),\n            line_numbers::make_feature().into_iter().collect(),\n        ),\n        (\n            \"navigate\".to_string(),\n            navigate::make_feature().into_iter().collect(),\n        ),\n        (\"raw\".to_string(), raw::make_feature().into_iter().collect()),\n        (\n            \"side-by-side\".to_string(),\n            side_by_side::make_feature().into_iter().collect(),\n        ),\n    ]\n    .into_iter()\n    .collect()\n}\n\n/// The macro permits the values of a builtin feature to be specified as either (a) a git config\n/// entry or (b) a value, which may be computed from the other command line options (cli::Opt).\nmacro_rules! builtin_feature {\n    ([$( ($option_name:expr, $type:ty, $git_config_key:expr, $opt:ident => $value:expr) ),*]) => {\n        vec![$(\n            (\n                $option_name.to_string(),\n                Box::new(move |$opt: &$crate::cli::Opt, git_config: &Option<$crate::git_config::GitConfig>| {\n                    match (git_config, $git_config_key) {\n                        (Some(git_config), Some(git_config_key)) => git_config.get::<$type>(git_config_key).map(|value| $crate::features::GitConfigValue(value.into())),\n                        _ => None,\n                    }\n                    .unwrap_or_else(|| $crate::features::DefaultValue($value.into()))\n                }) as OptionValueFunction\n            )\n        ),*]\n    }\n}\n\npub mod color_only;\npub mod diff_highlight;\npub mod diff_so_fancy;\npub mod hyperlinks;\npub mod line_numbers;\npub mod navigate;\npub mod raw;\npub mod side_by_side;\n\n#[cfg(test)]\npub mod tests {\n    use std::collections::HashSet;\n    use std::fs::remove_file;\n\n    use crate::cli;\n    use crate::env::DeltaEnv;\n    use crate::features::make_builtin_features;\n    use crate::tests::integration_test_utils::make_options_from_args_and_git_config;\n\n    #[test]\n    fn test_builtin_features_have_flags_and_these_set_features() {\n        let builtin_features = make_builtin_features();\n        let mut args = vec![\"delta\".to_string()];\n        args.extend(builtin_features.keys().map(|s| format!(\"--{s}\")));\n        let opt = cli::Opt::from_iter_and_git_config(&DeltaEnv::default(), args, None);\n        let features: HashSet<&str> = opt\n            .features\n            .as_deref()\n            .unwrap_or(\"\")\n            .split_whitespace()\n            .collect();\n        for feature in builtin_features.keys() {\n            assert!(features.contains(feature.as_str()))\n        }\n    }\n\n    #[test]\n    fn test_builtin_feature_from_gitconfig() {\n        let git_config_contents = b\"\n[delta]\n    navigate = true\n\";\n        let git_config_path = \"delta__test_builtin_feature_from_gitconfig.gitconfig\";\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .features\n            .unwrap(),\n            \"navigate\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_features_on_command_line_replace_features_in_gitconfig() {\n        let git_config_contents = b\"\n[delta]\n    features = my-feature\n\";\n        let git_config_path =\n            \"delta__test_features_on_command_line_replace_features_in_gitconfig.gitconfig\";\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"navigate raw\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .features\n            .unwrap(),\n            \"navigate raw\"\n        );\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--navigate\", \"--features\", \"raw\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .features\n            .unwrap(),\n            \"navigate raw\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_feature_flag_on_command_line_does_not_replace_features_in_gitconfig() {\n        let git_config_contents = b\"\n[delta]\n    features = my-feature\n\";\n        let git_config_path =\n            \"delta__test_feature_flag_on_command_line_does_not_replace_features_in_gitconfig.gitconfig\";\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--navigate\", \"--raw\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .features\n            .unwrap(),\n            \"my-feature navigate raw\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_recursive_feature_gathering_1() {\n        let git_config_contents = b\"\n[delta]\n    features = h g\n\n[delta \\\"a\\\"]\n    features = c b\n    diff-highlight = true\n\n[delta \\\"d\\\"]\n    features = f e\n    diff-so-fancy = true\n\";\n        let git_config_path = \"delta__test_feature_collection.gitconfig\";\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--raw\", \"--features\", \"d a\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .features\n            .unwrap(),\n            \"raw diff-so-fancy f e d diff-highlight c b a\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_recursive_feature_gathering_2() {\n        let git_config_contents = b\"\n[delta]\n    features = feature-1\n\n[delta \\\"feature-1\\\"]\n    features = feature-2 feature-3\n\n[delta \\\"feature-2\\\"]\n    features = feature-4\n\n[delta \\\"feature-4\\\"]\n    minus-style = blue\n\";\n        let git_config_path = \"delta__test_recursive_features.gitconfig\";\n        let opt = make_options_from_args_and_git_config(\n            &[\"delta\"],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        assert_eq!(\n            opt.features.unwrap(),\n            \"feature-4 feature-2 feature-3 feature-1\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_main_section() {\n        let git_config_contents = b\"\n[delta]\n    minus-style = blue\n\";\n        let git_config_path = \"delta__test_main_section.gitconfig\";\n\n        // First check that it doesn't default to blue, because that's going to be used to signal\n        // that gitconfig has set the style.\n        assert_ne!(\n            make_options_from_args_and_git_config(&[], None, None).minus_style,\n            \"blue\"\n        );\n\n        // Check that --minus-style is honored as we expect.\n        assert_eq!(\n            make_options_from_args_and_git_config(&[\"--minus-style\", \"red\"], None, None)\n                .minus_style,\n            \"red\"\n        );\n\n        // Check that gitconfig does not override a command line argument\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--minus-style\", \"red\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"red\"\n        );\n\n        // Finally, check that gitconfig is honored when not overridden by a command line argument.\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .minus_style,\n            \"blue\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_feature() {\n        let git_config_contents = b\"\n[delta]\n\n\n[delta \\\"my-feature\\\"]\n    minus-style = green\n\";\n        let git_config_path = \"delta__test_feature.gitconfig\";\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"green\"\n        );\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_main_section_overrides_feature() {\n        let git_config_contents = b\"\n[delta]\n    minus-style = blue\n\n[delta \\\"my-feature-1\\\"]\n    minus-style = green\n\";\n        let git_config_path = \"delta__test_main_section_overrides_feature.gitconfig\";\n\n        // Without --features the main section takes effect\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .minus_style,\n            \"blue\"\n        );\n\n        // Event with --features the main section overrides the feature.\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-1\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"blue\"\n        );\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_multiple_features() {\n        let git_config_contents = b\"\n[delta]\n\n\n[delta \\\"my-feature-1\\\"]\n    minus-style = green\n\n[delta \\\"my-feature-2\\\"]\n    minus-style = yellow\n\";\n        let git_config_path = \"delta__test_multiple_features.gitconfig\";\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-1 my-feature-2\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"yellow\"\n        );\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-2 my-feature-1\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"green\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_invalid_features() {\n        let git_config_contents = b\"\n[delta \\\"my-feature-1\\\"]\n    minus-style = green\n\n[delta \\\"my-feature-2\\\"]\n    minus-style = yellow\n\";\n        let git_config_path = \"delta__test_invalid_features.gitconfig\";\n\n        let default = make_options_from_args_and_git_config(&[], None, None).minus_style;\n        assert_ne!(default, \"green\");\n        assert_ne!(default, \"yellow\");\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-1\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"green\"\n        );\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-x\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            default\n        );\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-1 my-feature-x\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"green\"\n        );\n\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-feature-x my-feature-2 my-feature-x\"],\n                Some(git_config_contents),\n                Some(git_config_path),\n            )\n            .minus_style,\n            \"yellow\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_whitespace_error_style() {\n        let git_config_contents = b\"\n[color \\\"diff\\\"]\n    whitespace = yellow dim ul magenta\n\";\n        let git_config_path = \"delta__test_whitespace_error_style.gitconfig\";\n\n        // Git config disabled: hard-coded delta default wins\n        assert_eq!(\n            make_options_from_args_and_git_config(&[], None, None).whitespace_error_style,\n            \"magenta reverse\"\n        );\n\n        // Unspecified by user: color.diff.whitespace wins\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .whitespace_error_style,\n            \"yellow dim ul magenta\"\n        );\n\n        // Command line argument wins\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--whitespace-error-style\", \"red reverse\"],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .whitespace_error_style,\n            \"red reverse\"\n        );\n\n        let git_config_contents = b\"\n[color \\\"diff\\\"]\n    whitespace = yellow dim ul magenta\n\n[delta]\n    whitespace-error-style = blue reverse\n\n[delta \\\"my-whitespace-error-style-feature\\\"]\n    whitespace-error-style = green reverse\n\";\n\n        // Command line argument wins\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--whitespace-error-style\", \"red reverse\"],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .whitespace_error_style,\n            \"red reverse\"\n        );\n\n        // No command line argument or features; main [delta] section wins\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .whitespace_error_style,\n            \"blue reverse\"\n        );\n\n        // Feature contains key, but main [delta] section still wins.\n        // This is equivalent to\n        //\n        // [delta]\n        //     features = my-whitespace-error-style-feature\n        //     whitespace-error-style = blue reverse\n        //\n        // In this situation, the value from the feature is overridden.\n        assert_eq!(\n            make_options_from_args_and_git_config(\n                &[\"--features\", \"my-whitespace-error-style-feature\"],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .whitespace_error_style,\n            \"blue reverse\"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/features/navigate.rs",
    "content": "use std::io::Write;\n#[cfg(target_os = \"windows\")]\nuse std::io::{Error, ErrorKind};\nuse std::path::PathBuf;\n\nuse crate::features::OptionValueFunction;\nuse crate::utils::bat::output::PagerCfg;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    builtin_feature!([\n        (\n            \"navigate\",\n            bool,\n            None,\n            _opt => true\n        ),\n        (\n            \"file-modified-label\",\n            String,\n            None,\n            _opt => \"Δ\"\n        ),\n        (\n            \"hunk-label\",\n            String,\n            None,\n            _opt => \"•\"\n        )\n    ])\n}\n\n// Construct the regexp used by less for paging, if --show-themes or --navigate is enabled.\npub fn make_navigate_regex(\n    show_themes: bool,\n    file_modified_label: &str,\n    file_added_label: &str,\n    file_removed_label: &str,\n    file_renamed_label: &str,\n    hunk_label: &str,\n) -> String {\n    if show_themes {\n        \"^Theme:\".to_string()\n    } else {\n        let optional_regexp = |find: &str| {\n            if !find.is_empty() {\n                format!(\"|{}\", regex::escape(find))\n            } else {\n                \"\".to_string()\n            }\n        };\n        format!(\n            \"^(commit{}{}{}{}{})\",\n            optional_regexp(file_added_label),\n            optional_regexp(file_removed_label),\n            optional_regexp(file_renamed_label),\n            optional_regexp(file_modified_label),\n            optional_regexp(hunk_label),\n        )\n    }\n}\n\n// Create a less history file to be used by delta's child less process. This file is initialized\n// with the contents of user's real less hist file, to which the navigate regex is appended. This\n// has the effect that 'n' or 'N' in delta's less process will search for the navigate regex,\n// without the undesirable aspects of using --pattern, yet without polluting the user's less search\n// history with delta's navigate regex. See\n// https://github.com/dandavison/delta/issues/237#issuecomment-780654036. Note that with the\n// current implementation, no writes to the delta less history file are propagated back to the real\n// history file so, for example, a (non-navigate) search performed in the delta less process will\n// not be stored in history.\npub fn copy_less_hist_file_and_append_navigate_regex(\n    config: &PagerCfg,\n) -> std::io::Result<PathBuf> {\n    let delta_less_hist_file = get_delta_less_hist_file()?;\n    let initial_contents = \".less-history-file:\\n\".to_string();\n    let mut contents = if let Some(hist_file) = get_less_hist_file() {\n        std::fs::read_to_string(hist_file).unwrap_or(initial_contents)\n    } else {\n        initial_contents\n    };\n    if !contents.ends_with(\".search\\n\") {\n        contents = format!(\"{contents}.search\\n\");\n    }\n    writeln!(\n        std::fs::File::create(&delta_less_hist_file)?,\n        \"{}\\\"{}\",\n        contents,\n        config.navigate_regex.as_ref().unwrap(),\n    )?;\n    Ok(delta_less_hist_file)\n}\n\n#[cfg(target_os = \"windows\")]\nfn get_delta_less_hist_file() -> std::io::Result<PathBuf> {\n    let mut path = dirs::data_local_dir()\n        .ok_or_else(|| Error::new(ErrorKind::NotFound, \"Can't find AppData\\\\Local folder\"))?;\n    path.push(\"delta\");\n    std::fs::create_dir_all(&path)?;\n    path.push(\"delta.lesshst\");\n    Ok(path)\n}\n\n#[cfg(not(target_os = \"windows\"))]\nfn get_delta_less_hist_file() -> std::io::Result<PathBuf> {\n    let dir = xdg::BaseDirectories::with_prefix(\"delta\")?;\n    dir.place_data_file(\"lesshst\")\n}\n\n// Get path of the less history file. See `man less` for more details.\n// On Unix, check all possible locations and pick the newest file.\nfn get_less_hist_file() -> Option<PathBuf> {\n    if let Some(home_dir) = dirs::home_dir() {\n        match std::env::var(\"LESSHISTFILE\").as_deref() {\n            Ok(\"-\") | Ok(\"/dev/null\") => {\n                // The user has explicitly disabled less history.\n                None\n            }\n            Ok(path) => {\n                // The user has specified a custom histfile.\n                Some(PathBuf::from(path))\n            }\n            Err(_) => {\n                // The user is using the default less histfile location.\n                #[cfg(unix)]\n                {\n                    // According to the less 643 manual:\n                    // \"$XDG_STATE_HOME/lesshst\" or \"$HOME/.local/state/lesshst\" or\n                    // \"$XDG_DATA_HOME/lesshst\" or \"$HOME/.lesshst\".\n                    let xdg_dirs = xdg::BaseDirectories::new().ok()?;\n                    [\n                        xdg_dirs.get_state_home().join(\"lesshst\"),\n                        xdg_dirs.get_data_home().join(\"lesshst\"),\n                        home_dir.join(\".lesshst\"),\n                    ]\n                    .iter()\n                    .filter(|path| path.exists())\n                    .max_by_key(|path| {\n                        std::fs::metadata(path)\n                            .and_then(|m| m.modified())\n                            .unwrap_or(std::time::UNIX_EPOCH)\n                    })\n                    .cloned()\n                }\n                #[cfg(not(unix))]\n                {\n                    let mut hist_file = home_dir;\n                    hist_file.push(if cfg!(windows) {\n                        \"_lesshst\"\n                    } else {\n                        \".lesshst\"\n                    });\n                    Some(hist_file)\n                }\n            }\n        }\n    } else {\n        None\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use std::fs::remove_file;\n\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    #[ignore]\n    // manually verify: cargo test -- test_get_less_hist_file --ignored --nocapture\n    fn test_get_less_hist_file() {\n        let hist_file = super::get_less_hist_file();\n        dbg!(hist_file);\n    }\n\n    #[test]\n    fn test_navigate_with_overridden_key_in_main_section() {\n        let git_config_contents = b\"\n[delta]\n    features = navigate\n    file-modified-label = \\\"modified: \\\"\n\";\n        let git_config_path = \"delta__test_navigate_with_overridden_key_in_main_section.gitconfig\";\n\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(&[], None, None)\n                .file_modified_label,\n            \"\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[\"--features\", \"navigate\"],\n                None,\n                None\n            )\n            .file_modified_label,\n            \"Δ\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[\"--navigate\"],\n                None,\n                None\n            )\n            .file_modified_label,\n            \"Δ\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .file_modified_label,\n            \"modified: \"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_navigate_with_overridden_key_in_custom_navigate_section() {\n        let git_config_contents = b\"\n[delta]\n    features = navigate\n\n[delta \\\"navigate\\\"]\n    file-modified-label = \\\"modified: \\\"\n\";\n        let git_config_path =\n            \"delta__test_navigate_with_overridden_key_in_custom_navigate_section.gitconfig\";\n\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(&[], None, None)\n                .file_modified_label,\n            \"\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[\"--features\", \"navigate\"],\n                None,\n                None\n            )\n            .file_modified_label,\n            \"Δ\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .file_modified_label,\n            \"modified: \"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_navigate_activated_by_custom_feature() {\n        let git_config_contents = b\"\n[delta \\\"my-navigate-feature\\\"]\n    features = navigate\n    file-modified-label = \\\"modified: \\\"\n\";\n        let git_config_path = \"delta__test_navigate_activated_by_custom_feature.gitconfig\";\n\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .file_modified_label,\n            \"\"\n        );\n        assert_eq!(\n            integration_test_utils::make_options_from_args_and_git_config(\n                &[\"--features\", \"my-navigate-feature\"],\n                Some(git_config_contents),\n                Some(git_config_path)\n            )\n            .file_modified_label,\n            \"modified: \"\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/features/raw.rs",
    "content": "use crate::features::OptionValueFunction;\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    builtin_feature!([\n        (\n            \"commit-decoration-style\",\n            String,\n            None,\n            _opt => \"none\"\n        ),\n        (\n            \"commit-style\",\n            String,\n            None,\n            _opt => \"raw\"\n        ),\n        (\n            \"file-decoration-style\",\n            String,\n            None,\n            _opt => \"none\"\n        ),\n        (\n            \"file-style\",\n            String,\n            None,\n            _opt => \"raw\"\n        ),\n        (\n            \"hunk-header-decoration-style\",\n            String,\n            None,\n            _opt => \"none\"\n        ),\n        (\n            \"hunk-header-style\",\n            String,\n            None,\n            _opt => \"raw\"\n        ),\n        (\n            \"minus-style\",\n            String,\n            Some(\"color.diff.old\"),\n            _opt => \"red\"\n        ),\n        (\n            \"minus-emph-style\",\n            String,\n            Some(\"color.diff.old\"),\n            _opt => \"red\"\n        ),\n        (\n            \"zero-style\",\n            String,\n            None,\n            _opt => \"normal\"\n        ),\n        (\n            \"plus-style\",\n            String,\n            Some(\"color.diff.new\"),\n            _opt => \"green\"\n        ),\n        (\n            \"plus-emph-style\",\n            String,\n            Some(\"color.diff.new\"),\n            _opt => \"green\"\n        ),\n        (\n            \"keep-plus-minus-markers\",\n            bool,\n            None,\n            _opt => true\n        ),\n        (\n            \"tabs\",\n            usize,\n            None,\n            _opt => 0\n        )\n    ])\n}\n"
  },
  {
    "path": "src/features/side_by_side.rs",
    "content": "use itertools::Itertools;\nuse syntect::highlighting::Style as SyntectStyle;\nuse unicode_width::UnicodeWidthStr;\n\nuse crate::ansi;\nuse crate::cli;\nuse crate::config::{self, delta_unreachable, Config};\nuse crate::delta::DiffType;\nuse crate::delta::State;\nuse crate::edits;\nuse crate::features::{line_numbers, OptionValueFunction};\nuse crate::minusplus::*;\nuse crate::paint::{BgFillMethod, BgShouldFill, LineSections, Painter};\nuse crate::style::Style;\nuse crate::wrapping::{wrap_minusplus_block, wrap_zero_block};\n\npub fn make_feature() -> Vec<(String, OptionValueFunction)> {\n    builtin_feature!([\n        (\n            \"side-by-side\",\n            bool,\n            None,\n            _opt => true\n        ),\n        (\"features\", bool, None, _opt => \"line-numbers\"),\n        (\"line-numbers-left-format\", String, None, _opt => \"│{nm:^4}│\".to_string()),\n        (\"line-numbers-right-format\", String, None, _opt => \"│{np:^4}│\".to_string())\n    ])\n}\n\n// Aliases for Minus/Plus because Left/Right and PanelSide makes\n// more sense in a side-by-side context.\npub use crate::minusplus::MinusPlusIndex as PanelSide;\npub use MinusPlusIndex::Minus as Left;\npub use MinusPlusIndex::Plus as Right;\n\nuse super::line_numbers::LineNumbersData;\n\n#[derive(Debug, Clone)]\npub struct Panel {\n    pub width: usize,\n}\n\npub type LeftRight<T> = MinusPlus<T>;\n\npub type SideBySideData = LeftRight<Panel>;\n\nimpl SideBySideData {\n    /// Create a [`LeftRight<Panel>`](LeftRight<Panel>) named [`SideBySideData`].\n    pub fn new_sbs(decorations_width: &cli::Width, available_terminal_width: &usize) -> Self {\n        let panel_width = match decorations_width {\n            cli::Width::Fixed(w) => w / 2,\n            _ => available_terminal_width / 2,\n        };\n        SideBySideData::new(Panel { width: panel_width }, Panel { width: panel_width })\n    }\n}\n\npub fn available_line_width(\n    config: &Config,\n    data: &line_numbers::LineNumbersData,\n) -> line_numbers::SideBySideLineWidth {\n    let line_numbers_width = data.formatted_width();\n\n    // The width can be reduced by the line numbers and/or\n    // a possibly added/restored 1-wide \"+/-/ \" prefix.\n    let line_width = |side: PanelSide| {\n        config.side_by_side_data[side]\n            .width\n            .saturating_sub(line_numbers_width[side])\n            .saturating_sub(config.keep_plus_minus_markers as usize)\n    };\n\n    LeftRight::new(line_width(Left), line_width(Right))\n}\n\npub fn line_is_too_long(line: &str, line_width: usize) -> bool {\n    debug_assert!(line.ends_with('\\n'));\n\n    // graphemes will take care of newlines\n    line.width() > line_width\n}\n\n/// Return whether any of the input lines is too long, and a data\n/// structure indicating which of the input lines are too long. This avoids\n/// recalculating the length later.\npub fn has_long_lines(\n    lines: &LeftRight<&Vec<(String, State)>>,\n    line_width: &line_numbers::SideBySideLineWidth,\n) -> (bool, LeftRight<Vec<bool>>) {\n    let mut wrap_any = LeftRight::default();\n    let mut wrapping_lines = LeftRight::default();\n\n    let mut check_if_too_long = |side| {\n        let lines_side: &[(String, State)] = lines[side];\n        wrapping_lines[side] = lines_side\n            .iter()\n            .map(|(line, _)| line_is_too_long(line, line_width[side]))\n            .inspect(|b| wrap_any[side] |= b)\n            .collect();\n    };\n\n    check_if_too_long(Left);\n    check_if_too_long(Right);\n\n    (wrap_any[Left] || wrap_any[Right], wrapping_lines)\n}\n\n#[allow(clippy::too_many_arguments)]\npub fn paint_minus_and_plus_lines_side_by_side(\n    lines: LeftRight<&Vec<(String, State)>>,\n    syntax_sections: LeftRight<Vec<LineSections<SyntectStyle>>>,\n    diff_sections: LeftRight<Vec<LineSections<Style>>>,\n    lines_have_homolog: LeftRight<Vec<bool>>,\n    line_alignment: Vec<(Option<usize>, Option<usize>)>,\n    line_numbers_data: &mut Option<LineNumbersData>,\n    output_buffer: &mut String,\n    config: &config::Config,\n) {\n    let line_states = LeftRight::new(\n        lines[Left].iter().map(|(_, state)| state.clone()).collect(),\n        lines[Right]\n            .iter()\n            .map(|(_, state)| state.clone())\n            .collect(),\n    );\n\n    let line_numbers_data = line_numbers_data\n        .as_mut()\n        .unwrap_or_else(|| delta_unreachable(\"side-by-side requires Some(line_numbers_data)\"));\n\n    let bg_should_fill = LeftRight::new(\n        // Using an ANSI sequence to fill the left panel would not work.\n        BgShouldFill::With(BgFillMethod::Spaces),\n        // Use what is configured for the right side.\n        BgShouldFill::With(config.line_fill_method),\n    );\n\n    // Only set `should_wrap` to true if wrapping is wanted and lines which are\n    // too long are found.\n    // If so, remember the calculated line width and which of the lines are too\n    // long for later re-use.\n    let (should_wrap, line_width, long_lines) = {\n        if config.wrap_config.max_lines == 1 {\n            (false, LeftRight::default(), LeftRight::default())\n        } else {\n            let line_width = available_line_width(config, line_numbers_data);\n\n            let (should_wrap, long_lines) = has_long_lines(&lines, &line_width);\n\n            (should_wrap, line_width, long_lines)\n        }\n    };\n\n    let (line_alignment, line_states, syntax_sections, diff_sections) = if should_wrap {\n        // Calculated for syntect::highlighting::style::Style and delta::Style\n        wrap_minusplus_block(\n            config,\n            syntax_sections,\n            diff_sections,\n            &line_alignment,\n            &line_width,\n            &long_lines,\n        )\n    } else {\n        (line_alignment, line_states, syntax_sections, diff_sections)\n    };\n    let lines_have_homolog = if should_wrap {\n        edits::make_lines_have_homolog(&line_alignment)\n    } else {\n        lines_have_homolog\n    };\n\n    for (minus_line_index, plus_line_index) in line_alignment {\n        let left_state = match minus_line_index {\n            Some(i) => &line_states[Left][i],\n            None => &State::HunkMinus(DiffType::Unified, None),\n        };\n        output_buffer.push_str(&paint_left_panel_minus_line(\n            minus_line_index,\n            &syntax_sections[Left],\n            &diff_sections[Left],\n            &lines_have_homolog[Left],\n            left_state,\n            &mut Some(line_numbers_data),\n            bg_should_fill[Left],\n            config,\n        ));\n\n        let right_state = match plus_line_index {\n            Some(i) => &line_states[Right][i],\n            None => &State::HunkPlus(DiffType::Unified, None),\n        };\n        output_buffer.push_str(&paint_right_panel_plus_line(\n            plus_line_index,\n            &syntax_sections[Right],\n            &diff_sections[Right],\n            &lines_have_homolog[Right],\n            right_state,\n            &mut Some(line_numbers_data),\n            bg_should_fill[Right],\n            config,\n        ));\n        output_buffer.push('\\n');\n\n        // HACK: The left line number is not getting incremented in `linenumbers_and_styles()`\n        // when the alignment matches a minus with a plus line, so fix that here and take\n        // wrapped lines into account.\n        // Similarly an increment happens when it should not, so undo that.\n        // TODO: Pass this information down into `paint_line()` to set `increment` accordingly.\n        match (left_state, right_state, minus_line_index, plus_line_index) {\n            (State::HunkMinusWrapped, State::HunkPlus(_, _), Some(_), None) => {\n                line_numbers_data.line_number[Left] =\n                    line_numbers_data.line_number[Left].saturating_sub(1)\n            }\n            // Duplicating the logic from `linenumbers_and_styles()` a bit:\n            (State::HunkMinusWrapped | State::HunkPlusWrapped, _, _, _) => {}\n            (_, _, Some(_), Some(_)) => line_numbers_data.line_number[Left] += 1,\n            _ => {}\n        }\n    }\n}\n\n#[allow(clippy::too_many_arguments)]\npub fn paint_zero_lines_side_by_side<'a>(\n    line: &str,\n    syntax_style_sections: Vec<LineSections<'a, SyntectStyle>>,\n    diff_style_sections: Vec<LineSections<'a, Style>>,\n    output_buffer: &mut String,\n    config: &Config,\n    line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n    painted_prefix: Option<ansi_term::ANSIString>,\n    background_color_extends_to_terminal_width: BgShouldFill,\n) {\n    let states = vec![State::HunkZero(DiffType::Unified, None)];\n\n    let (states, syntax_style_sections, diff_style_sections) = wrap_zero_block(\n        config,\n        line,\n        states,\n        syntax_style_sections,\n        diff_style_sections,\n        line_numbers_data,\n    );\n\n    for (line_index, ((syntax_sections, diff_sections), state)) in syntax_style_sections\n        .into_iter()\n        .zip_eq(diff_style_sections.iter())\n        .zip_eq(states.into_iter())\n        .enumerate()\n    {\n        for panel_side in &[Left, Right] {\n            let (mut panel_line, panel_line_is_empty) = Painter::paint_line(\n                &syntax_sections,\n                diff_sections,\n                &state,\n                line_numbers_data,\n                Some(*panel_side),\n                painted_prefix.clone(),\n                config,\n            );\n            pad_panel_line_to_width(\n                &mut panel_line,\n                panel_line_is_empty,\n                Some(line_index),\n                &diff_style_sections,\n                None,\n                &state,\n                *panel_side,\n                background_color_extends_to_terminal_width,\n                config,\n            );\n            output_buffer.push_str(&panel_line);\n        }\n        output_buffer.push('\\n');\n    }\n}\n\n#[allow(clippy::too_many_arguments)]\nfn paint_left_panel_minus_line<'a>(\n    line_index: Option<usize>,\n    syntax_style_sections: &[LineSections<'a, SyntectStyle>],\n    diff_style_sections: &[LineSections<'a, Style>],\n    lines_have_homolog: &[bool],\n    state: &'a State,\n    line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n    background_color_extends_to_terminal_width: BgShouldFill,\n    config: &Config,\n) -> String {\n    let (mut panel_line, panel_line_is_empty) = paint_minus_or_plus_panel_line(\n        line_index,\n        syntax_style_sections,\n        diff_style_sections,\n        state,\n        line_numbers_data,\n        Left,\n        config,\n    );\n    pad_panel_line_to_width(\n        &mut panel_line,\n        panel_line_is_empty,\n        line_index,\n        diff_style_sections,\n        Some(lines_have_homolog),\n        state,\n        Left,\n        background_color_extends_to_terminal_width,\n        config,\n    );\n\n    panel_line\n}\n\n#[allow(clippy::too_many_arguments)]\nfn paint_right_panel_plus_line<'a>(\n    line_index: Option<usize>,\n    syntax_style_sections: &[LineSections<'a, SyntectStyle>],\n    diff_style_sections: &[LineSections<'a, Style>],\n    lines_have_homolog: &[bool],\n    state: &'a State,\n    line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n    background_color_extends_to_terminal_width: BgShouldFill,\n    config: &Config,\n) -> String {\n    let (mut panel_line, panel_line_is_empty) = paint_minus_or_plus_panel_line(\n        line_index,\n        syntax_style_sections,\n        diff_style_sections,\n        state,\n        line_numbers_data,\n        Right,\n        config,\n    );\n\n    pad_panel_line_to_width(\n        &mut panel_line,\n        panel_line_is_empty,\n        line_index,\n        diff_style_sections,\n        Some(lines_have_homolog),\n        state,\n        Right,\n        background_color_extends_to_terminal_width,\n        config,\n    );\n\n    panel_line\n}\n\n#[allow(clippy::too_many_arguments)]\nfn get_right_fill_style_for_panel(\n    line_is_empty: bool,\n    line_index: Option<usize>,\n    diff_style_sections: &[LineSections<'_, Style>],\n    lines_have_homolog: Option<&[bool]>,\n    state: &State,\n    panel_side: PanelSide,\n    background_color_extends_to_terminal_width: BgShouldFill,\n    config: &Config,\n) -> (Option<BgFillMethod>, Style) {\n    // If in the left panel then it must be filled with spaces.\n    let none_or_override = if panel_side == Left {\n        Some(BgFillMethod::Spaces)\n    } else {\n        None\n    };\n\n    match (line_is_empty, line_index) {\n        (true, _) => (none_or_override, config.null_style),\n        (false, None) => (none_or_override, config.null_style),\n        (false, Some(index)) => {\n            let (bg_fill_mode, fill_style) =\n                Painter::get_should_right_fill_background_color_and_fill_style(\n                    &diff_style_sections[index],\n                    lines_have_homolog.map(|h| h[index]),\n                    state,\n                    background_color_extends_to_terminal_width,\n                    config,\n                );\n\n            match bg_fill_mode {\n                None => (none_or_override, config.null_style),\n                _ if panel_side == Left => (Some(BgFillMethod::Spaces), fill_style),\n                _ => (bg_fill_mode, fill_style),\n            }\n        }\n    }\n}\n\n/// Construct half of a minus or plus line under side-by-side mode, i.e. the half line that\n/// goes in one or other panel. Return a tuple `(painted_half_line, is_empty)`.\n// Suppose the line being displayed is a minus line with a paired plus line. Then both times\n// this function is called, `line_index` will be `Some`. This case proceeds as one would\n// expect: on the first call, we are constructing the left panel line, and we are passed\n// `(Some(index), HunkMinus, Left)`. We pass `(HunkMinus, Left)` to\n// `paint_line`. This has two consequences:\n// 1. `format_and_paint_line_numbers` will increment the minus line number.\n// 2. `format_and_paint_line_numbers` will emit the left line number field, and not the right.\n//\n// The second call does the analogous thing for the plus line to be displayed in the right panel:\n// we are passed `(Some(index), HunkPlus, Right)` and we pass `(HunkPlus, Right)` to `paint_line`,\n// causing it to increment the plus line number and emit the right line number field.\n//\n// Now consider the case where the line being displayed is a minus line with no paired plus line.\n// The first call is as before. On the second call, we are passed `(None, HunkPlus, Right)` and we\n// wish to display the right panel, with its line number container, but without any line number\n// (and without any line contents). We do this by passing (HunkMinus, Right) to `paint_line`, since\n// what this will do is set the line number pair in that function to `(Some(minus_number), None)`,\n// and then only emit the right field (which has a None number, i.e. blank).\n#[allow(clippy::too_many_arguments)]\nfn paint_minus_or_plus_panel_line<'a>(\n    line_index: Option<usize>,\n    syntax_style_sections: &[LineSections<'a, SyntectStyle>],\n    diff_style_sections: &[LineSections<'a, Style>],\n    state: &State,\n    line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n    panel_side: PanelSide,\n    config: &Config,\n) -> (String, bool) {\n    let (empty_line_syntax_sections, empty_line_diff_sections) = (Vec::new(), Vec::new());\n\n    let (line_syntax_sections, line_diff_sections, state_for_line_numbers_field) =\n        if let Some(index) = line_index {\n            (\n                &syntax_style_sections[index],\n                &diff_style_sections[index],\n                state.clone(),\n            )\n        } else {\n            let opposite_state = match state {\n                State::HunkMinus(DiffType::Unified, s) => {\n                    State::HunkPlus(DiffType::Unified, s.clone())\n                }\n                State::HunkPlus(DiffType::Unified, s) => {\n                    State::HunkMinus(DiffType::Unified, s.clone())\n                }\n                _ => unreachable!(),\n            };\n            (\n                &empty_line_syntax_sections,\n                &empty_line_diff_sections,\n                opposite_state,\n            )\n        };\n\n    let painted_prefix = match (config.keep_plus_minus_markers, panel_side, state) {\n        (true, _, State::HunkPlusWrapped) => Some(config.plus_style.paint(\" \")),\n        (true, _, State::HunkMinusWrapped) => Some(config.minus_style.paint(\" \")),\n        (true, Left, _) => Some(config.minus_style.paint(\"-\")),\n        (true, Right, _) => Some(config.plus_style.paint(\"+\")),\n        _ => None,\n    };\n\n    let (line, line_is_empty) = Painter::paint_line(\n        line_syntax_sections,\n        line_diff_sections,\n        &state_for_line_numbers_field,\n        line_numbers_data,\n        Some(panel_side),\n        painted_prefix,\n        config,\n    );\n\n    (line, line_is_empty)\n}\n\n/// Right-fill the background color of a line in a panel. If in the left panel this is always\n/// done with spaces. The right panel can be filled with spaces or using ANSI sequences\n/// instructing the terminal emulator to fill the background color rightwards.\n#[allow(clippy::too_many_arguments, clippy::comparison_chain)]\nfn pad_panel_line_to_width(\n    panel_line: &mut String,\n    panel_line_is_empty: bool,\n    line_index: Option<usize>,\n    diff_style_sections: &[LineSections<'_, Style>],\n    lines_have_homolog: Option<&[bool]>,\n    state: &State,\n    panel_side: PanelSide,\n    background_color_extends_to_terminal_width: BgShouldFill,\n    config: &Config,\n) {\n    // Emit empty line marker if the panel line is empty but not empty-by-construction. IOW if the\n    // other panel contains a real line, and we are currently emitting an empty counterpart panel\n    // to form the other half of the line, then don't emit the empty line marker.\n    if panel_line_is_empty && line_index.is_some() {\n        match state {\n            State::HunkMinus(_, _) => Painter::mark_empty_line(\n                &config.minus_empty_line_marker_style,\n                panel_line,\n                Some(\" \"),\n            ),\n            State::HunkPlus(_, _) => Painter::mark_empty_line(\n                &config.plus_empty_line_marker_style,\n                panel_line,\n                Some(\" \"),\n            ),\n            State::HunkZero(_, _) => {}\n            _ => unreachable!(),\n        };\n    };\n\n    let text_width = ansi::measure_text_width(panel_line);\n    let panel_width = config.side_by_side_data[panel_side].width;\n\n    if text_width > panel_width {\n        *panel_line =\n            ansi::truncate_str(panel_line, panel_width, &config.truncation_symbol).to_string();\n    }\n\n    let (bg_fill_mode, fill_style) = get_right_fill_style_for_panel(\n        panel_line_is_empty,\n        line_index,\n        diff_style_sections,\n        lines_have_homolog,\n        state,\n        panel_side,\n        background_color_extends_to_terminal_width,\n        config,\n    );\n\n    match bg_fill_mode {\n        Some(BgFillMethod::TryAnsiSequence) => {\n            Painter::right_fill_background_color(panel_line, fill_style)\n        }\n        Some(BgFillMethod::Spaces) if text_width >= panel_width => (),\n        Some(BgFillMethod::Spaces) => panel_line.push_str(\n            #[allow(clippy::unnecessary_to_owned)]\n            &fill_style\n                .paint(\" \".repeat(panel_width - text_width))\n                .to_string(),\n        ),\n        None => (),\n    }\n}\n\npub mod ansifill {\n    use super::SideBySideData;\n    use crate::config::Config;\n    use crate::paint::BgFillMethod;\n\n    pub const ODD_PAD_CHAR: char = ' ';\n\n    // Panels in side-by-side mode always sum up to an even number, so when the terminal\n    // has an odd width an extra column is left over.\n    // If the background color is extended with an ANSI sequence (which only knows \"fill\n    // this row until the end\") instead of spaces (see `BgFillMethod`), then the coloring\n    // extends into that column. This becomes noticeable when the displayed content reaches\n    // the right side of the right panel to be truncated or wrapped.\n    // However using an ANSI sequence instead of spaces is generally preferable because\n    // small changes to the terminal width are less noticeable.\n\n    /// The solution in this case is to add `ODD_PAD_CHAR` before the first line number in\n    /// the right panel and increasing its width by one, thus using the full terminal width\n    /// with the two panels.\n    /// This also means line numbers can not be disabled in side-by-side mode, but they may\n    /// not actually paint numbers.\n    #[derive(Clone, Debug)]\n    pub struct UseFullPanelWidth(pub bool);\n    impl UseFullPanelWidth {\n        pub fn new(config: &Config) -> Self {\n            Self(\n                config.side_by_side\n                    && Self::is_odd_with_ansi(&config.decorations_width, &config.line_fill_method),\n            )\n        }\n        pub fn sbs_odd_fix(\n            width: &crate::cli::Width,\n            method: &BgFillMethod,\n            sbs_data: SideBySideData,\n        ) -> SideBySideData {\n            if Self::is_odd_with_ansi(width, method) {\n                Self::adapt_sbs_data(sbs_data)\n            } else {\n                sbs_data\n            }\n        }\n        pub fn pad_width(&self) -> bool {\n            self.0\n        }\n        fn is_odd_with_ansi(width: &crate::cli::Width, method: &BgFillMethod) -> bool {\n            method == &BgFillMethod::TryAnsiSequence\n                && matches!(&width, crate::cli::Width::Fixed(width) if width % 2 == 1)\n        }\n        fn adapt_sbs_data(mut sbs_data: SideBySideData) -> SideBySideData {\n            sbs_data[super::Right].width += 1;\n            sbs_data\n        }\n    }\n}\n\n#[cfg(test)]\npub mod tests {\n    use crate::ansi::strip_ansi_codes;\n    use crate::features::line_numbers::tests::*;\n    use crate::tests::integration_test_utils::{make_config_from_args, run_delta, DeltaTest};\n    use insta::assert_snapshot;\n\n    #[test]\n    fn test_two_fitting_minus_lines() {\n        // rustfmt ignores the assert macro arguments, so do the setup outside\n        let result = DeltaTest::with_args(&[\"--side-by-side\"])\n            .with_input(TWO_MINUS_LINES_DIFF)\n            .skip_header();\n        assert_snapshot!(result, @r###\"\n        │  1 │a = 1           │    │\n        │  2 │b = 23456       │    │\n        \"###\n        );\n    }\n\n    #[test]\n    fn test_two_minus_lines_truncated() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--wrap-max-lines\",\n            \"0\",\n            \"--width\",\n            \"28\",\n            \"--line-fill-method=spaces\",\n        ])\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(TWO_MINUS_LINES_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │a = 1   │    │\n            │  2 │b = 234>│    │\"#,\n        );\n    }\n\n    #[test]\n    fn test_two_plus_lines() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"41\",\n            \"--line-fill-method=spaces\",\n        ])\n        .with_input(TWO_PLUS_LINES_DIFF)\n        .expect_after_header(\n            r#\"\n            │    │              │  1 │a = 1         \n            │    │              │  2 │b = 234567    \"#,\n        );\n    }\n\n    #[test]\n    fn test_two_plus_lines_spaces_and_ansi() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"41\",\n            \"--line-fill-method=spaces\",\n        ])\n        .explain_ansi()\n        .with_input(TWO_PLUS_LINES_DIFF)\n        .expect_after_header(r#\"\n        (blue)│(88)    (blue)│(normal)              (blue)│(28)  1 (blue)│(231 22)a (203)=(231) (141)1(normal 22)         (normal)\n        (blue)│(88)    (blue)│(normal)              (blue)│(28)  2 (blue)│(231 22)b (203)=(231) (141)234567(normal 22)    (normal)\"#);\n\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"41\",\n            \"--line-fill-method=ansi\",\n        ])\n        .explain_ansi()\n        .with_input(TWO_PLUS_LINES_DIFF)\n        .expect_after_header(r#\"\n        (blue)│(88)    (blue)│(normal)              (blue) │(28)  1 (blue)│(231 22)a (203)=(231) (141)1(normal)\n        (blue)│(88)    (blue)│(normal)              (blue) │(28)  2 (blue)│(231 22)b (203)=(231) (141)234567(normal)\"#);\n    }\n\n    #[test]\n    fn test_two_plus_lines_truncated() {\n        let mut config = make_config_from_args(&[\n            \"--side-by-side\",\n            \"--wrap-max-lines\",\n            \"0\",\n            \"--width\",\n            \"30\",\n            \"--line-fill-method=spaces\",\n        ]);\n        config.truncation_symbol = \">\".into();\n\n        let output = run_delta(TWO_PLUS_LINES_DIFF, &config);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        let (line_1, line_2) = (lines.next().unwrap(), lines.next().unwrap());\n        assert_eq!(\"│    │         │  1 │a = 1    \", strip_ansi_codes(line_1));\n        assert_eq!(\"│    │         │  2 │b = 2345>\", strip_ansi_codes(line_2));\n    }\n\n    #[test]\n    fn test_two_plus_lines_exact_fit() {\n        let config =\n            make_config_from_args(&[\"--side-by-side\", \"--width\", \"33\", \"--line-fill-method=ansi\"]);\n        let output = run_delta(TWO_PLUS_LINES_DIFF, &config);\n        let mut lines = output.lines().skip(crate::config::HEADER_LEN);\n        let (line_1, line_2) = (lines.next().unwrap(), lines.next().unwrap());\n        let sac = strip_ansi_codes; // alias to help with `cargo fmt`-ing:\n        assert_eq!(\"│    │           │  1 │a = 1\", sac(line_1));\n        assert_eq!(\"│    │           │  2 │b = 234567\", sac(line_2));\n    }\n\n    #[test]\n    fn test_one_minus_one_plus_line() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"40\",\n            \"--line-fill-method=spaces\",\n        ])\n        .with_input(ONE_MINUS_ONE_PLUS_LINE_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │a = 1         │  1 │a = 1\n            │  2 │b = 2         │  2 │bb = 2        \"#,\n        );\n    }\n\n    #[test]\n    fn test_two_minus_lines_unicode_truncated() {\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--wrap-max-lines\",\n            \"2\",\n            \"--width\",\n            \"16\",\n            \"--line-fill-method=spaces\",\n        ])\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(TWO_MINUS_LINES_UNICODE_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │↵ │    │\n            │    │↵ │    │\n            │    │ >│    │\"#,\n        );\n\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--wrap-max-lines\",\n            \"2\",\n            \"--width\",\n            \"17\",\n            \"--line-fill-method=spaces\",\n        ])\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(TWO_MINUS_LINES_UNICODE_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │↵ │    │\n            │    │↵ │    │\n            │    │ >│    │\"#,\n        );\n\n        DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--wrap-max-lines\",\n            \"2\",\n            \"--width\",\n            \"18\",\n            \"--line-fill-method=spaces\",\n        ])\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(TWO_MINUS_LINES_UNICODE_DIFF)\n        .expect_after_header(\n            r#\"\n            │  1 │一↵│    │\n            │    │二↵│    │\n            │    │三 │    │\"#,\n        );\n    }\n}\n"
  },
  {
    "path": "src/format.rs",
    "content": "use std::convert::{TryFrom, TryInto};\n\nuse regex::Regex;\nuse smol_str::SmolStr;\nuse unicode_segmentation::UnicodeSegmentation;\n\nuse crate::features::side_by_side::ansifill::ODD_PAD_CHAR;\n\n#[derive(Debug, PartialEq, Eq)]\npub enum Placeholder<'a> {\n    NumberMinus,\n    NumberPlus,\n    Str(&'a str),\n}\n\nimpl<'a> TryFrom<Option<&'a str>> for Placeholder<'a> {\n    type Error = ();\n    fn try_from(from: Option<&'a str>) -> Result<Self, Self::Error> {\n        match from {\n            Some(\"nm\") => Ok(Placeholder::NumberMinus),\n            Some(\"np\") => Ok(Placeholder::NumberPlus),\n            Some(placeholder) => Ok(Placeholder::Str(placeholder)),\n            _ => Err(()),\n        }\n    }\n}\n\n#[derive(Debug, Copy, Clone, PartialEq, Eq)]\npub enum Align {\n    Left,\n    Center,\n    Right,\n}\n\nimpl TryFrom<Option<&str>> for Align {\n    type Error = ();\n    fn try_from(from: Option<&str>) -> Result<Self, Self::Error> {\n        // inlined format args are not supported for `debug_assert` with edition 2018.\n        #[allow(clippy::uninlined_format_args)]\n        match from {\n            Some(\"<\") => Ok(Align::Left),\n            Some(\">\") => Ok(Align::Right),\n            Some(\"^\") => Ok(Align::Center),\n            Some(alignment) => {\n                debug_assert!(false, \"Unknown Alignment: {}\", alignment);\n                Err(())\n            }\n            None => Err(()),\n        }\n    }\n}\n\n#[derive(Debug, PartialEq, Eq, Clone)]\npub struct FormatStringPlaceholderDataAnyPlaceholder<T> {\n    pub prefix: SmolStr,\n    pub prefix_len: usize,\n    pub placeholder: Option<T>,\n    pub alignment_spec: Option<Align>,\n    pub width: Option<usize>,\n    pub precision: Option<usize>,\n    pub fmt_type: SmolStr,\n    pub suffix: SmolStr,\n    pub suffix_len: usize,\n}\n\nimpl<T> Default for FormatStringPlaceholderDataAnyPlaceholder<T> {\n    fn default() -> Self {\n        Self {\n            prefix: SmolStr::default(),\n            prefix_len: 0,\n            placeholder: None,\n            alignment_spec: None,\n            width: None,\n            precision: None,\n            fmt_type: SmolStr::default(),\n            suffix: SmolStr::default(),\n            suffix_len: 0,\n        }\n    }\n}\n\nimpl<T> FormatStringPlaceholderDataAnyPlaceholder<T> {\n    pub fn only_string(s: &str) -> Self {\n        Self {\n            suffix: s.into(),\n            suffix_len: s.graphemes(true).count(),\n            ..Self::default()\n        }\n    }\n}\n\npub type FormatStringPlaceholderData<'a> =\n    FormatStringPlaceholderDataAnyPlaceholder<Placeholder<'a>>;\n\npub type FormatStringSimple = FormatStringPlaceholderDataAnyPlaceholder<()>;\n\nimpl FormatStringPlaceholderData<'_> {\n    pub fn width(&self, hunk_max_line_number_width: usize) -> (usize, usize) {\n        // Only if Some(placeholder) is present will there be a number formatted\n        // by this placeholder, if not width is also None.\n        (\n            self.prefix_len\n                + std::cmp::max(\n                    self.placeholder\n                        .as_ref()\n                        .map_or(0, |_| hunk_max_line_number_width),\n                    self.width.unwrap_or(0),\n                ),\n            self.suffix_len,\n        )\n    }\n    pub fn into_simple(self) -> FormatStringSimple {\n        FormatStringSimple {\n            prefix: self.prefix,\n            prefix_len: self.prefix_len,\n            placeholder: None,\n            alignment_spec: self.alignment_spec,\n            width: self.width,\n            precision: self.precision,\n            fmt_type: self.fmt_type,\n            suffix: self.suffix,\n            suffix_len: self.suffix_len,\n        }\n    }\n}\n\npub type FormatStringData<'a> = Vec<FormatStringPlaceholderData<'a>>;\n\npub fn make_placeholder_regex(labels: &[&str]) -> Regex {\n    Regex::new(&format!(\n        r\"(?x)\n    \\{{\n    ({})                             # 1: Placeholder labels\n    (?:                              # Start optional format spec (non-capturing)\n      :                              #     Literal colon\n      (?:                            #     Start optional fill/alignment spec (non-capturing)\n        ([^<^>])?                    #         2: Optional fill character (ignored)\n        ([<^>])                      #         3: Alignment spec\n      )?                             #\n      (\\d+)?                         #     4: Width (optional)\n      (?:                            #     Start optional precision (non-capturing)\n        \\.(\\d+)                      #         5: Precision\n      )?                             #\n      (?:                            #     Start optional format type (non-capturing)\n        _?([A-Za-z][0-9A-Za-z_-]*)   #         6: Format type, optional leading _\n      )?                             #\n    )?                               #\n    \\}}\n    \",\n        labels.join(\"|\")\n    ))\n    .unwrap()\n}\n\n// The resulting vector is never empty\npub fn parse_line_number_format<'a>(\n    format_string: &'a str,\n    placeholder_regex: &Regex,\n    mut prefix_with_space: bool,\n) -> FormatStringData<'a> {\n    let mut format_data = Vec::new();\n    let mut offset = 0;\n\n    let mut expand_first_prefix = |prefix: SmolStr| {\n        // Only prefix the first placeholder with a space, also see `UseFullPanelWidth`\n        if prefix_with_space {\n            let prefix = SmolStr::new(format!(\"{ODD_PAD_CHAR}{prefix}\"));\n            prefix_with_space = false;\n            prefix\n        } else {\n            prefix\n        }\n    };\n\n    for captures in placeholder_regex.captures_iter(format_string) {\n        let match_ = captures.get(0).unwrap();\n        let prefix = SmolStr::new(&format_string[offset..match_.start()]);\n        let prefix = expand_first_prefix(prefix);\n        let prefix_len = prefix.graphemes(true).count();\n        let suffix = SmolStr::new(&format_string[match_.end()..]);\n        let suffix_len = suffix.graphemes(true).count();\n        format_data.push(FormatStringPlaceholderData {\n            prefix,\n            prefix_len,\n            placeholder: captures.get(1).map(|m| m.as_str()).try_into().ok(),\n            alignment_spec: captures.get(3).map(|m| m.as_str()).try_into().ok(),\n            width: captures.get(4).map(|m| {\n                m.as_str()\n                    .parse()\n                    .unwrap_or_else(|_| panic!(\"Invalid width in format string: {}\", format_string))\n            }),\n            precision: captures.get(5).map(|m| {\n                m.as_str().parse().unwrap_or_else(|_| {\n                    panic!(\"Invalid precision in format string: {}\", format_string)\n                })\n            }),\n            fmt_type: captures\n                .get(6)\n                .map(|m| SmolStr::from(m.as_str()))\n                .unwrap_or_default(),\n            suffix,\n            suffix_len,\n        });\n        offset = match_.end();\n    }\n    if offset == 0 {\n        let prefix = SmolStr::new(\"\");\n        let prefix = expand_first_prefix(prefix);\n        let prefix_len = prefix.graphemes(true).count();\n        // No placeholders\n        format_data.push(FormatStringPlaceholderData {\n            prefix,\n            prefix_len,\n            suffix: SmolStr::new(format_string),\n            suffix_len: format_string.graphemes(true).count(),\n            ..Default::default()\n        })\n    }\n\n    format_data\n}\n\npub trait CenterRightNumbers {\n    // There is no such thing as \"Center Align\" with discrete terminal cells. In\n    // some cases a decision has to be made whether to use the left or the right\n    // cell, e.g. when centering one char in 4 cells: \"_X__\" or \"__X_\".\n    //\n    // The format!() center/^ default is center left, but when padding numbers\n    // these are now aligned to the center right by having this trait return \" \"\n    // instead of \"\". This is prepended to the format string. In the case of \" \"\n    // the trailing \" \" must then be removed so everything is shifted to the right.\n    // This assumes no special padding characters, i.e. the default of space.\n    fn center_right_space(&self, alignment: Align, width: usize) -> &'static str;\n}\n\nimpl CenterRightNumbers for &str {\n    fn center_right_space(&self, _alignment: Align, _width: usize) -> &'static str {\n        // Disables center-right formatting and aligns strings center-left\n        \"\"\n    }\n}\n\nimpl CenterRightNumbers for String {\n    fn center_right_space(&self, alignment: Align, width: usize) -> &'static str {\n        self.as_str().center_right_space(alignment, width)\n    }\n}\n\nimpl CenterRightNumbers for &std::borrow::Cow<'_, str> {\n    fn center_right_space(&self, alignment: Align, width: usize) -> &'static str {\n        self.as_ref().center_right_space(alignment, width)\n    }\n}\n\n// Returns the base-10 width of `n`, i.e. `floor(log10(n)) + 1` and 0 is treated as 1.\npub fn log10_plus_1(mut n: usize) -> usize {\n    let mut len = 0;\n    // log10 for integers is only in nightly and this is faster than\n    // casting to f64 and back.\n    loop {\n        if n <= 9 {\n            break len + 1;\n        }\n        if n <= 99 {\n            break len + 2;\n        }\n        if n <= 999 {\n            break len + 3;\n        }\n        if n <= 9999 {\n            break len + 4;\n        }\n\n        len += 4;\n        n /= 10000;\n    }\n}\n\nimpl CenterRightNumbers for usize {\n    fn center_right_space(&self, alignment: Align, width: usize) -> &'static str {\n        if alignment != Align::Center {\n            return \"\";\n        }\n\n        let width_of_number = log10_plus_1(*self);\n        if width > width_of_number && (width % 2 != width_of_number % 2) {\n            \" \"\n        } else {\n            \"\"\n        }\n    }\n}\n\n// Note that in this case of a string `s`, `precision` means \"max width\".\n// See https://doc.rust-lang.org/std/fmt/index.html\npub fn pad<T: std::fmt::Display + CenterRightNumbers>(\n    s: T,\n    width: usize,\n    alignment: Align,\n    precision: Option<usize>,\n) -> String {\n    let space = s.center_right_space(alignment, width);\n    let mut result = match precision {\n        None => match alignment {\n            Align::Left => format!(\"{space}{s:<width$}\"),\n            Align::Center => format!(\"{space}{s:^width$}\"),\n            Align::Right => format!(\"{space}{s:>width$}\"),\n        },\n        Some(precision) => match alignment {\n            Align::Left => format!(\"{space}{s:<width$.precision$}\"),\n            Align::Center => format!(\"{space}{s:^width$.precision$}\"),\n            Align::Right => format!(\"{space}{s:>width$.precision$}\"),\n        },\n    };\n    if space == \" \" {\n        result.pop();\n    }\n    result\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn test_log10_plus_1() {\n        let nrs = [\n            1, 9, 10, 11, 99, 100, 101, 999, 1_000, 1_001, 9_999, 10_000, 10_001, 99_999, 100_000,\n            100_001, 0,\n        ];\n        let widths = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 1];\n        for (n, w) in nrs.iter().zip(widths.iter()) {\n            assert_eq!(log10_plus_1(*n), *w);\n        }\n\n        #[cfg(target_pointer_width = \"64\")]\n        {\n            assert_eq!(log10_plus_1(744_073_709_551_615), 5 * 3);\n            assert_eq!(log10_plus_1(18_446_744_073_709_551_615), 2 + 6 * 3);\n        }\n    }\n\n    #[test]\n    fn test_center_right_space_trait() {\n        assert_eq!(\"abc\".center_right_space(Align::Center, 6), \"\");\n        assert_eq!(\"abc\".center_right_space(Align::Center, 7), \"\");\n        assert_eq!(123.center_right_space(Align::Center, 6), \" \");\n        assert_eq!(123.center_right_space(Align::Center, 7), \"\");\n    }\n\n    #[test]\n    fn test_pad_center_align() {\n        assert_eq!(pad(\"abc\", 6, Align::Center, None), \" abc  \");\n        assert_eq!(pad(1, 1, Align::Center, None), \"1\");\n        assert_eq!(pad(1, 2, Align::Center, None), \" 1\");\n        assert_eq!(pad(1, 3, Align::Center, None), \" 1 \");\n        assert_eq!(pad(1, 4, Align::Center, None), \"  1 \");\n\n        assert_eq!(pad(1001, 3, Align::Center, None), \"1001\");\n        assert_eq!(pad(1001, 4, Align::Center, None), \"1001\");\n        assert_eq!(pad(1001, 5, Align::Center, None), \" 1001\");\n\n        assert_eq!(pad(1, 4, Align::Left, None), \"1   \");\n        assert_eq!(pad(1, 4, Align::Right, None), \"   1\");\n        assert_eq!(pad(\"abc\", 5, Align::Left, None), \"abc  \");\n        assert_eq!(pad(\"abc\", 5, Align::Right, None), \"  abc\");\n    }\n\n    #[test]\n    fn test_placeholder_with_notype() {\n        let regex = make_placeholder_regex(&[\"placeholder\"]);\n        assert_eq!(\n            parse_line_number_format(\"{placeholder:^4}\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                alignment_spec: Some(Align::Center),\n                width: Some(4),\n                ..Default::default()\n            }]\n        );\n    }\n\n    #[test]\n    fn test_placeholder_with_only_type_dash_number() {\n        let regex = make_placeholder_regex(&[\"placeholder\"]);\n        assert_eq!(\n            parse_line_number_format(\"{placeholder:a_type-b-12}\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                fmt_type: \"a_type-b-12\".into(),\n                ..Default::default()\n            }]\n        );\n    }\n\n    #[test]\n    fn test_placeholder_with_empty_formatting() {\n        let regex = make_placeholder_regex(&[\"placeholder\"]);\n        assert_eq!(\n            parse_line_number_format(\"{placeholder:}\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                ..Default::default()\n            }]\n        );\n    }\n\n    #[test]\n    fn test_placeholder_with_type_and_more() {\n        let regex = make_placeholder_regex(&[\"placeholder\"]);\n        assert_eq!(\n            parse_line_number_format(\"prefix {placeholder:<15.14type} suffix\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                prefix: \"prefix \".into(),\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: \"type\".into(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n\n        assert_eq!(\n            parse_line_number_format(\"prefix {placeholder:<15.14_type} suffix\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                prefix: \"prefix \".into(),\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: \"type\".into(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n    }\n\n    #[test]\n    fn test_placeholder_regex() {\n        let regex = make_placeholder_regex(&[\"placeholder\"]);\n        assert_eq!(\n            parse_line_number_format(\"prefix {placeholder:<15.14} suffix\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                prefix: \"prefix \".into(),\n                placeholder: Some(Placeholder::Str(\"placeholder\")),\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: SmolStr::default(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n    }\n\n    #[test]\n    fn test_placeholder_regex_empty_placeholder() {\n        let regex = make_placeholder_regex(&[\"\"]);\n        assert_eq!(\n            parse_line_number_format(\"prefix {:<15.14} suffix\", &regex, false),\n            vec![FormatStringPlaceholderData {\n                prefix: \"prefix \".into(),\n                placeholder: Some(Placeholder::Str(\"\")),\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: SmolStr::default(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n    }\n    #[test]\n    fn test_format_string_simple() {\n        let regex = make_placeholder_regex(&[\"foo\"]);\n        let f = parse_line_number_format(\"prefix {foo:<15.14} suffix\", &regex, false);\n\n        assert_eq!(\n            f,\n            vec![FormatStringPlaceholderData {\n                prefix: \"prefix \".into(),\n                placeholder: Some(Placeholder::Str(\"foo\")),\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: SmolStr::default(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n        let simple: Vec<_> = f\n            .into_iter()\n            .map(FormatStringPlaceholderData::into_simple)\n            .collect();\n        assert_eq!(\n            simple,\n            vec![FormatStringSimple {\n                prefix: \"prefix \".into(),\n                placeholder: None,\n                alignment_spec: Some(Align::Left),\n                width: Some(15),\n                precision: Some(14),\n                fmt_type: SmolStr::default(),\n                suffix: \" suffix\".into(),\n                prefix_len: 7,\n                suffix_len: 7,\n            }]\n        );\n    }\n\n    #[test]\n    fn test_line_number_format_only_string() {\n        let f = FormatStringSimple::only_string(\"abc\");\n        assert_eq!(f.suffix_len, 3);\n    }\n\n    #[test]\n    fn test_parse_line_number_format_not_empty() {\n        let regex = make_placeholder_regex(&[\"abc\"]);\n        assert!(!parse_line_number_format(\" abc \", &regex, false).is_empty());\n        assert!(!parse_line_number_format(\"\", &regex, false).is_empty());\n        let regex = make_placeholder_regex(&[\"\"]);\n        assert!(!parse_line_number_format(\" abc \", &regex, false).is_empty());\n        assert!(!parse_line_number_format(\"\", &regex, false).is_empty());\n    }\n}\n"
  },
  {
    "path": "src/git_config/mod.rs",
    "content": "mod remote;\n\npub use remote::GitRemoteRepo;\n\nuse crate::env::DeltaEnv;\nuse regex::Regex;\nuse std::cell::OnceCell;\nuse std::collections::HashMap;\nuse std::path::Path;\n\nuse lazy_static::lazy_static;\n\npub struct GitConfig {\n    config: git2::Config,\n    config_from_env_var: HashMap<String, String>,\n    pub enabled: bool,\n    repo: Option<git2::Repository>,\n    remote_url: OnceCell<Option<GitRemoteRepo>>,\n    // To make GitConfig cloneable when testing (in turn to make Config cloneable):\n    #[cfg(test)]\n    path: std::path::PathBuf,\n}\n\n#[cfg(test)]\nimpl Clone for GitConfig {\n    fn clone(&self) -> Self {\n        assert!(self.repo.is_none());\n        GitConfig {\n            // Assumes no test modifies the file pointed to by `path`\n            config: git2::Config::open(&self.path).unwrap(),\n            config_from_env_var: self.config_from_env_var.clone(),\n            enabled: self.enabled,\n            repo: None,\n            remote_url: OnceCell::new(),\n            path: self.path.clone(),\n        }\n    }\n}\n\nimpl GitConfig {\n    #[cfg(not(test))]\n    pub fn try_create(env: &DeltaEnv) -> Option<Self> {\n        use crate::fatal;\n\n        let repo = match &env.current_dir {\n            Some(dir) => git2::Repository::discover(dir).ok(),\n            _ => None,\n        };\n        let config = match &repo {\n            Some(repo) => repo.config().ok(),\n            None => git2::Config::open_default().ok(),\n        };\n        match config {\n            Some(mut config) => {\n                let config = config.snapshot().unwrap_or_else(|err| {\n                    fatal(format!(\"Failed to read git config: {err}\"));\n                });\n                Some(Self {\n                    config,\n                    config_from_env_var: parse_config_from_env_var(env),\n                    repo,\n                    enabled: true,\n                    remote_url: OnceCell::new(),\n                })\n            }\n            None => None,\n        }\n    }\n\n    #[cfg(test)]\n    pub fn try_create(_env: &DeltaEnv) -> Option<Self> {\n        // Do not read local git configs when testing\n        None\n    }\n\n    #[cfg(test)]\n    pub fn for_testing() -> Option<Self> {\n        Some(GitConfig {\n            config: git2::Config::new().unwrap(),\n            config_from_env_var: HashMap::new(),\n            enabled: true,\n            repo: None,\n            remote_url: OnceCell::new(),\n            path: std::path::PathBuf::from(\"/invalid_null.git\"),\n        })\n    }\n\n    pub fn from_path(env: &DeltaEnv, path: &Path, honor_env_var: bool) -> Self {\n        use crate::fatal;\n\n        match git2::Config::open(path) {\n            Ok(mut config) => {\n                let config = config.snapshot().unwrap_or_else(|err| {\n                    fatal(format!(\"Failed to read git config: {err}\"));\n                });\n\n                Self {\n                    config,\n                    config_from_env_var: if honor_env_var {\n                        parse_config_from_env_var(env)\n                    } else {\n                        HashMap::new()\n                    },\n                    repo: None,\n                    enabled: true,\n                    remote_url: OnceCell::new(),\n                    #[cfg(test)]\n                    path: path.into(),\n                }\n            }\n            Err(e) => {\n                fatal(format!(\"Failed to read git config: {}\", e.message()));\n            }\n        }\n    }\n\n    pub fn get<T>(&self, key: &str) -> Option<T>\n    where\n        T: GitConfigGet,\n    {\n        if self.enabled {\n            T::git_config_get(key, self)\n        } else {\n            None\n        }\n    }\n\n    #[cfg(test)]\n    fn get_remote_url_impl(&self) -> Option<GitRemoteRepo> {\n        GitRemoteRepo::for_testing()\n    }\n\n    #[cfg(not(test))]\n    fn get_remote_url_impl(&self) -> Option<GitRemoteRepo> {\n        use std::str::FromStr;\n        self.repo\n            .as_ref()?\n            .find_remote(\"origin\")\n            .ok()?\n            .url()\n            .and_then(|url| GitRemoteRepo::from_str(url).ok())\n    }\n\n    pub fn get_remote_url(&self) -> &Option<GitRemoteRepo> {\n        self.remote_url.get_or_init(|| self.get_remote_url_impl())\n    }\n\n    pub fn for_each<F>(&self, regex: &str, mut f: F)\n    where\n        F: FnMut(&str, Option<&str>),\n    {\n        let mut entries = self.config.entries(Some(regex)).unwrap();\n        while let Some(entry) = entries.next() {\n            let entry = entry.unwrap();\n            let name = entry.name().unwrap();\n            f(name, entry.value());\n        }\n    }\n}\n\nfn parse_config_from_env_var(env: &DeltaEnv) -> HashMap<String, String> {\n    if let Some(s) = &env.git_config_parameters {\n        parse_config_from_env_var_value(s)\n    } else {\n        HashMap::new()\n    }\n}\n\nlazy_static! {\n    static ref GIT_CONFIG_PARAMETERS_REGEX: Regex = Regex::new(\n        r\"(?x)\n        (?:                               # Non-capturing group containing union\n            '(delta\\.[a-z-]+)=([^']+)'    # Git <2.31.0 format\n        |\n            '(delta\\.[a-z-]+)'='([^']+)'  # Git ≥2.31.0 format\n        )\n        \"\n    )\n    .unwrap();\n}\n\nfn parse_config_from_env_var_value(s: &str) -> HashMap<String, String> {\n    GIT_CONFIG_PARAMETERS_REGEX\n        .captures_iter(s)\n        .map(|captures| {\n            let (i, j) = match (\n                captures.get(1),\n                captures.get(2),\n                captures.get(3),\n                captures.get(4),\n            ) {\n                (Some(_), Some(_), None, None) => (1, 2),\n                (None, None, Some(_), Some(_)) => (3, 4),\n                _ => (0, 0),\n            };\n            if (i, j) == (0, 0) {\n                (\"\".to_string(), \"\".to_string())\n            } else {\n                (captures[i].to_string(), captures[j].to_string())\n            }\n        })\n        .collect()\n}\n\npub trait GitConfigGet {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self>\n    where\n        Self: Sized;\n}\n\nimpl GitConfigGet for String {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self> {\n        match git_config.config_from_env_var.get(key) {\n            Some(val) => Some(val.to_string()),\n            None => git_config.config.get_string(key).ok(),\n        }\n    }\n}\n\nimpl GitConfigGet for Option<String> {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self> {\n        match git_config.config_from_env_var.get(key) {\n            Some(val) => Some(Some(val.to_string())),\n            None => match git_config.config.get_string(key) {\n                Ok(val) => Some(Some(val)),\n                _ => None,\n            },\n        }\n    }\n}\n\nimpl GitConfigGet for bool {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self> {\n        match git_config.config_from_env_var.get(key).map(|s| s.as_str()) {\n            Some(\"true\") => Some(true),\n            Some(\"false\") => Some(false),\n            _ => git_config.config.get_bool(key).ok(),\n        }\n    }\n}\n\nimpl GitConfigGet for usize {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self> {\n        if let Some(s) = git_config.config_from_env_var.get(key) {\n            if let Ok(n) = s.parse::<usize>() {\n                return Some(n);\n            }\n        }\n        match git_config.config.get_i64(key) {\n            Ok(value) => Some(value as usize),\n            _ => None,\n        }\n    }\n}\n\nimpl GitConfigGet for f64 {\n    fn git_config_get(key: &str, git_config: &GitConfig) -> Option<Self> {\n        if let Some(s) = git_config.config_from_env_var.get(key) {\n            if let Ok(n) = s.parse::<f64>() {\n                return Some(n);\n            }\n        }\n        match git_config.config.get_string(key) {\n            Ok(value) => value.parse::<f64>().ok(),\n            _ => None,\n        }\n    }\n}\n\n#[cfg(test)]\nmod tests {\n\n    use super::parse_config_from_env_var_value;\n\n    #[test]\n    fn test_parse_config_from_env_var_value() {\n        // To generate test cases, use git -c ... with\n        // [core]\n        //     pager = env | grep GIT_CONFIG_PARAMETERS\n\n        // We test multiple formats because the format of the value stored by\n        // git in this environment variable has changed in recent versions of\n        // Git. See\n        // https://github.com/git/git/blob/311531c9de557d25ac087c1637818bd2aad6eb3a/Documentation/RelNotes/2.31.0.txt#L127-L130\n\n        for env_var_value in &[\"'user.name=xxx'\", \"'user.name'='xxx'\"] {\n            let config = parse_config_from_env_var_value(env_var_value);\n            assert!(config.is_empty());\n        }\n\n        for env_var_value in &[\"'delta.plus-style=green'\", \"'delta.plus-style'='green'\"] {\n            let config = parse_config_from_env_var_value(env_var_value);\n            assert_eq!(config[\"delta.plus-style\"], \"green\");\n        }\n\n        for env_var_value in &[\n            r##\"'user.name=xxx' 'delta.hunk-header-line-number-style=red \"#067a00\"'\"##,\n            r##\"'user.name'='xxx' 'delta.hunk-header-line-number-style'='red \"#067a00\"'\"##,\n        ] {\n            let config = parse_config_from_env_var_value(env_var_value);\n            assert_eq!(\n                config[\"delta.hunk-header-line-number-style\"],\n                r##\"red \"#067a00\"\"##\n            );\n        }\n\n        for env_var_value in &[\n            r##\"'user.name=xxx' 'delta.side-by-side=false'\"##,\n            r##\"'user.name'='xxx' 'delta.side-by-side'='false'\"##,\n        ] {\n            let config = parse_config_from_env_var_value(env_var_value);\n            assert_eq!(config[\"delta.side-by-side\"], \"false\");\n        }\n\n        for env_var_value in &[\n            r##\"'delta.plus-style=green' 'delta.side-by-side=false' 'delta.hunk-header-line-number-style=red \"#067a00\"'\"##,\n            r##\"'delta.plus-style'='green' 'delta.side-by-side'='false' 'delta.hunk-header-line-number-style'='red \"#067a00\"'\"##,\n        ] {\n            let config = parse_config_from_env_var_value(env_var_value);\n            assert_eq!(config[\"delta.plus-style\"], \"green\");\n            assert_eq!(config[\"delta.side-by-side\"], \"false\");\n            assert_eq!(\n                config[\"delta.hunk-header-line-number-style\"],\n                r##\"red \"#067a00\"\"##\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "src/git_config/remote.rs",
    "content": "use std::result::Result;\nuse std::str::FromStr;\n\nuse lazy_static::lazy_static;\nuse regex::Regex;\n\nuse crate::errors::*;\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum GitRemoteRepo {\n    GitHub { slug: String },\n    GitLab { slug: String },\n    SourceHut { slug: String },\n    Codeberg { slug: String },\n}\n\nimpl GitRemoteRepo {\n    pub fn format_commit_url(&self, commit: &str) -> String {\n        match self {\n            Self::GitHub { slug } => {\n                format!(\"https://github.com/{slug}/commit/{commit}\")\n            }\n            Self::GitLab { slug } => {\n                format!(\"https://gitlab.com/{slug}/-/commit/{commit}\")\n            }\n            Self::SourceHut { slug } => {\n                format!(\"https://git.sr.ht/{slug}/commit/{commit}\")\n            }\n            Self::Codeberg { slug } => {\n                format!(\"https://codeberg.org/{slug}/commit/{commit}\")\n            }\n        }\n    }\n\n    #[cfg(test)]\n    pub fn for_testing() -> Option<GitRemoteRepo> {\n        Some(GitRemoteRepo::GitHub {\n            slug: \"dandavison/delta\".to_string(),\n        })\n    }\n}\n\nlazy_static! {\n    static ref GITHUB_REMOTE_URL: Regex = Regex::new(\n        r\"(?x)\n        ^\n        (?:https://|[^@]+@)? # Support both HTTPS and SSH URLs\n        github\\.com\n        [:/]              # This separator differs between SSH and HTTPS URLs\n        ([^/]+)           # Capture the user/org name\n        /\n        (.+?)             # Capture the repo name (lazy to avoid consuming '.git' if present)\n        (?:\\.git)?        # Non-capturing group to consume '.git' if present\n        $\n        \"\n    )\n    .unwrap();\n    static ref GITLAB_REMOTE_URL: Regex = Regex::new(\n        r\"(?x)\n        ^\n        (?:https://|git@)? # Support both HTTPS and SSH URLs, SSH URLs optionally omitting the git@\n        gitlab\\.com\n        [:/]              # This separator differs between SSH and HTTPS URLs\n        ([^/]+)           # Capture the user/org name\n        (/.*)?            # Capture group(s), if any\n        /\n        (.+?)             # Capture the repo name (lazy to avoid consuming '.git' if present)\n        (?:\\.git)?        # Non-capturing group to consume '.git' if present\n        $\n        \"\n    )\n    .unwrap();\n    static ref SOURCEHUT_REMOTE_URL: Regex = Regex::new(\n        r\"(?x)\n        ^\n        (?:https://|git@)? # Support both HTTPS and SSH URLs, SSH URLs optionally omitting the git@\n        git\\.sr\\.ht\n        [:/]              # This separator differs between SSH and HTTPS URLs\n        ~([^/]+)          # Capture the username\n        /\n        (.+)             # Capture the repo name\n        $\n        \"\n    )\n    .unwrap();\n    static ref CODEBERG_REMOTE_URL: Regex = Regex::new(\n        r\"(?x)\n        ^\n        (?:https://|git@)? # Support both HTTPS and SSH URLs, SSH URLs optionally omitting the git@\n        codeberg\\.org\n        [:/]              # This separator differs between SSH and HTTPS URLs\n        ([^/]+)           # Capture the user/org name\n        /\n        (.+?)             # Capture the repo name (lazy to avoid consuming '.git' if present)\n        (?:\\.git)?        # Non-capturing group to consume '.git' if present\n        $\n        \"\n    )\n    .unwrap();\n}\n\nimpl FromStr for GitRemoteRepo {\n    type Err = Error;\n    fn from_str(s: &str) -> Result<Self, Self::Err> {\n        if let Some(caps) = GITHUB_REMOTE_URL.captures(s) {\n            Ok(Self::GitHub {\n                slug: format!(\n                    \"{user}/{repo}\",\n                    user = caps.get(1).unwrap().as_str(),\n                    repo = caps.get(2).unwrap().as_str()\n                ),\n            })\n        } else if let Some(caps) = GITLAB_REMOTE_URL.captures(s) {\n            Ok(Self::GitLab {\n                slug: format!(\n                    \"{user}{groups}/{repo}\",\n                    user = caps.get(1).unwrap().as_str(),\n                    groups = caps.get(2).map(|x| x.as_str()).unwrap_or_default(),\n                    repo = caps.get(3).unwrap().as_str()\n                ),\n            })\n        } else if let Some(caps) = SOURCEHUT_REMOTE_URL.captures(s) {\n            Ok(Self::SourceHut {\n                slug: format!(\n                    \"~{user}/{repo}\",\n                    user = caps.get(1).unwrap().as_str(),\n                    repo = caps.get(2).unwrap().as_str()\n                ),\n            })\n        } else if let Some(caps) = CODEBERG_REMOTE_URL.captures(s) {\n            Ok(Self::Codeberg {\n                slug: format!(\n                    \"{user}/{repo}\",\n                    user = caps.get(1).unwrap().as_str(),\n                    repo = caps.get(2).unwrap().as_str()\n                ),\n            })\n        } else {\n            Err(anyhow!(\"Not a GitHub, GitLab, SourceHut or Codeberg repo.\"))\n        }\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn test_parse_github_urls() {\n        let urls = &[\n            \"https://github.com/dandavison/delta.git\",\n            \"https://github.com/dandavison/delta\",\n            \"git@github.com:dandavison/delta.git\",\n            \"git@github.com:dandavison/delta\",\n            \"github.com:dandavison/delta.git\",\n            \"github.com:dandavison/delta\",\n        ];\n        for url in urls {\n            let parsed = GitRemoteRepo::from_str(url);\n            assert!(parsed.is_ok());\n            assert_eq!(\n                parsed.unwrap(),\n                GitRemoteRepo::GitHub {\n                    slug: \"dandavison/delta\".to_string()\n                }\n            );\n        }\n    }\n\n    #[test]\n    fn test_format_github_commit_link() {\n        let repo = GitRemoteRepo::GitHub {\n            slug: \"dandavison/delta\".to_string(),\n        };\n        let commit_hash = \"d3b07384d113edec49eaa6238ad5ff00\";\n        assert_eq!(\n            repo.format_commit_url(commit_hash),\n            format!(\"https://github.com/dandavison/delta/commit/{commit_hash}\")\n        )\n    }\n\n    #[test]\n    fn test_parse_gitlab_urls() {\n        let urls = &[\n            (\n                \"https://gitlab.com/proj/grp/subgrp/repo.git\",\n                \"proj/grp/subgrp/repo\",\n            ),\n            (\"https://gitlab.com/proj/grp/repo.git\", \"proj/grp/repo\"),\n            (\"https://gitlab.com/proj/repo.git\", \"proj/repo\"),\n            (\"https://gitlab.com/proj/repo\", \"proj/repo\"),\n            (\n                \"git@gitlab.com:proj/grp/subgrp/repo.git\",\n                \"proj/grp/subgrp/repo\",\n            ),\n            (\"git@gitlab.com:proj/repo.git\", \"proj/repo\"),\n            (\"git@gitlab.com:proj/repo\", \"proj/repo\"),\n            (\"gitlab.com:proj/grp/repo.git\", \"proj/grp/repo\"),\n            (\"gitlab.com:proj/repo.git\", \"proj/repo\"),\n            (\"gitlab.com:proj/repo\", \"proj/repo\"),\n        ];\n\n        for (url, expected) in urls {\n            let parsed = GitRemoteRepo::from_str(url);\n            assert!(parsed.is_ok());\n            assert_eq!(\n                parsed.unwrap(),\n                GitRemoteRepo::GitLab {\n                    slug: expected.to_string()\n                }\n            );\n        }\n    }\n\n    #[test]\n    fn test_format_gitlab_commit_link() {\n        let repo = GitRemoteRepo::GitLab {\n            slug: \"proj/grp/repo\".to_string(),\n        };\n        let commit_hash = \"d3b07384d113edec49eaa6238ad5ff00\";\n        assert_eq!(\n            repo.format_commit_url(commit_hash),\n            format!(\"https://gitlab.com/proj/grp/repo/-/commit/{commit_hash}\")\n        )\n    }\n\n    #[test]\n    fn test_parse_sourcehut_urls() {\n        let urls = &[\n            \"https://git.sr.ht/~someuser/somerepo\",\n            \"git@git.sr.ht:~someuser/somerepo\",\n            \"git.sr.ht:~someuser/somerepo\",\n        ];\n        for url in urls {\n            let parsed = GitRemoteRepo::from_str(url);\n            assert!(parsed.is_ok());\n            assert_eq!(\n                parsed.unwrap(),\n                GitRemoteRepo::SourceHut {\n                    slug: \"~someuser/somerepo\".to_string()\n                }\n            );\n        }\n    }\n\n    #[test]\n    fn test_format_sourcehut_commit_link() {\n        let repo = GitRemoteRepo::SourceHut {\n            slug: \"~someuser/somerepo\".to_string(),\n        };\n        let commit_hash = \"df41ac86f08a40e64c76062fd67e238522c14990\";\n        assert_eq!(\n            repo.format_commit_url(commit_hash),\n            format!(\"https://git.sr.ht/~someuser/somerepo/commit/{commit_hash}\")\n        )\n    }\n\n    #[test]\n    fn test_parse_codeberg_urls() {\n        let urls = &[\n            \"https://codeberg.org/someuser/somerepo.git\",\n            \"https://codeberg.org/someuser/somerepo\",\n            \"git@codeberg.org:someuser/somerepo.git\",\n            \"git@codeberg.org:someuser/somerepo\",\n            \"codeberg.org:someuser/somerepo.git\",\n            \"codeberg.org:someuser/somerepo\",\n        ];\n        for url in urls {\n            let parsed = GitRemoteRepo::from_str(url);\n            assert!(parsed.is_ok());\n            assert_eq!(\n                parsed.unwrap(),\n                GitRemoteRepo::Codeberg {\n                    slug: \"someuser/somerepo\".to_string()\n                }\n            );\n        }\n    }\n\n    #[test]\n    fn test_format_codeberg_commit_link() {\n        let repo = GitRemoteRepo::Codeberg {\n            slug: \"dnkl/foot\".to_string(),\n        };\n        let commit_hash = \"1c072856ebf12419378c5098ad543c497197c6da\";\n        assert_eq!(\n            repo.format_commit_url(commit_hash),\n            format!(\"https://codeberg.org/dnkl/foot/commit/{commit_hash}\")\n        )\n    }\n}\n"
  },
  {
    "path": "src/handlers/blame.rs",
    "content": "use chrono::{DateTime, FixedOffset};\nuse lazy_static::lazy_static;\nuse regex::Regex;\nuse std::borrow::Cow;\nuse unicode_width::UnicodeWidthStr;\n\nuse crate::ansi::measure_text_width;\nuse crate::color;\nuse crate::config;\nuse crate::config::delta_unreachable;\nuse crate::delta::{self, State, StateMachine};\nuse crate::fatal;\nuse crate::format::{self, FormatStringSimple, Placeholder};\nuse crate::format::{make_placeholder_regex, parse_line_number_format};\nuse crate::paint::{self, BgShouldFill, StyleSectionSpecifier};\nuse crate::style::Style;\nuse crate::utils::process;\n\n#[derive(Clone, Debug)]\npub enum BlameLineNumbers {\n    // \"none\" equals a fixed string with just a separator\n    On(FormatStringSimple),\n    PerBlock(FormatStringSimple),\n    Every(usize, FormatStringSimple),\n}\n\nimpl StateMachine<'_> {\n    /// If this is a line of git blame output then render it accordingly. If\n    /// this is the first blame line, then set the syntax-highlighter language\n    /// according to delta.default-language.\n    pub fn handle_blame_line(&mut self) -> std::io::Result<bool> {\n        // TODO: It should be possible to eliminate some of the .clone()s and\n        // .to_owned()s.\n        let mut handled_line = false;\n        self.painter.emit()?;\n        let (previous_key, try_parse) = match &self.state {\n            State::Blame(key) => (Some(key.clone()), true),\n            State::Unknown => (None, true),\n            _ => (None, false),\n        };\n        if try_parse {\n            let line = self.line.to_owned();\n            if let Some(blame) = parse_git_blame_line(&line, &self.config.blame_timestamp_format) {\n                // Format blame metadata\n                let format_data = format::parse_line_number_format(\n                    &self.config.blame_format,\n                    &BLAME_PLACEHOLDER_REGEX,\n                    false,\n                );\n                let mut formatted_blame_metadata =\n                    format_blame_metadata(&format_data, &blame, self.config);\n                let key = formatted_blame_metadata.clone();\n                let is_repeat = previous_key.as_deref() == Some(&key);\n                if is_repeat {\n                    formatted_blame_metadata =\n                        \" \".repeat(measure_text_width(&formatted_blame_metadata))\n                };\n                let metadata_style =\n                    self.blame_metadata_style(&key, previous_key.as_deref(), is_repeat);\n                let code_style = self.config.blame_code_style.unwrap_or(metadata_style);\n                let separator_style = self.config.blame_separator_style.unwrap_or(code_style);\n\n                let (nr_prefix, line_number, nr_suffix) = format_blame_line_number(\n                    &self.config.blame_separator_format,\n                    blame.line_number,\n                    is_repeat,\n                );\n\n                write!(\n                    self.painter.writer,\n                    \"{}{}{}{}\",\n                    metadata_style.paint(&formatted_blame_metadata),\n                    separator_style.paint(nr_prefix),\n                    metadata_style.paint(&line_number),\n                    separator_style.paint(nr_suffix),\n                )?;\n\n                // Emit syntax-highlighted code\n                if self.state == State::Unknown {\n                    self.painter.set_syntax(self.get_filename().as_deref());\n                    self.painter.set_highlighter();\n                }\n                self.state = State::Blame(key);\n                self.painter.syntax_highlight_and_paint_line(\n                    &format!(\"{}\\n\", blame.code),\n                    StyleSectionSpecifier::Style(code_style),\n                    self.state.clone(),\n                    BgShouldFill::default(),\n                );\n                handled_line = true\n            }\n        }\n        Ok(handled_line)\n    }\n\n    fn get_filename(&self) -> Option<String> {\n        match &*process::calling_process() {\n            process::CallingProcess::GitBlame(command_line) => command_line.last_arg.clone(),\n            _ => None,\n        }\n    }\n\n    fn blame_metadata_style(\n        &mut self,\n        key: &str,\n        previous_key: Option<&str>,\n        is_repeat: bool,\n    ) -> Style {\n        let mut style = match paint::parse_style_sections(&self.raw_line, self.config).first() {\n            Some((style, _)) if style != &Style::default() => {\n                // Something like `blame.coloring = highlightRecent` is in effect; honor\n                // the color from git, subject to map-styles.\n                *style\n            }\n            _ => {\n                // Compute the color ourselves.\n                let color = self.get_color(key, previous_key, is_repeat);\n                // TODO: This will often be pointlessly updating a key with the\n                // value it already has. It might be nicer to do this (and\n                // compute the style) in get_color(), but as things stand the\n                // borrow checker won't permit that.\n                let style = Style::from_colors(\n                    None,\n                    color::parse_color(&color, true, self.config.git_config()),\n                );\n                self.blame_key_colors.insert(key.to_owned(), color);\n                style\n            }\n        };\n\n        style.is_syntax_highlighted = true;\n        style\n    }\n\n    fn get_color(&self, this_key: &str, previous_key: Option<&str>, is_repeat: bool) -> String {\n        // Determine color for this line\n        let previous_key_color = match previous_key {\n            Some(previous_key) => self.blame_key_colors.get(previous_key),\n            None => None,\n        };\n\n        match (\n            self.blame_key_colors.get(this_key),\n            previous_key_color,\n            is_repeat,\n        ) {\n            (Some(key_color), Some(previous_key_color), true) => {\n                debug_assert!(key_color == previous_key_color);\n                // Repeated key: assign same color\n                key_color.to_owned()\n            }\n            (None, Some(previous_key_color), false) => {\n                // The key has no color: assign the next color that differs\n                // from previous key.\n                self.get_next_color(Some(previous_key_color))\n            }\n            (None, None, false) => {\n                // The key has no color, and there is no previous key:\n                // Just assign the next color. is_repeat is necessarily false.\n                self.get_next_color(None)\n            }\n            (Some(key_color), Some(previous_key_color), false) => {\n                if key_color != previous_key_color {\n                    // Consecutive keys differ without a collision\n                    key_color.to_owned()\n                } else {\n                    // Consecutive keys differ; prevent color collision\n                    self.get_next_color(Some(key_color))\n                }\n            }\n            (None, _, true) => delta_unreachable(\"is_repeat cannot be true when key has no color.\"),\n            (Some(_), None, _) => {\n                delta_unreachable(\"There must be a previous key if the key has a color.\")\n            }\n        }\n    }\n\n    fn get_next_color(&self, other_than_color: Option<&str>) -> String {\n        let n_keys = self.blame_key_colors.len();\n        let n_colors = self.config.blame_palette.len();\n        let color = self.config.blame_palette[n_keys % n_colors].clone();\n        if Some(color.as_str()) != other_than_color {\n            color\n        } else {\n            self.config.blame_palette[(n_keys + 1) % n_colors].clone()\n        }\n    }\n}\n\n#[derive(Debug)]\npub struct BlameLine<'a> {\n    pub commit: &'a str,\n    pub author: &'a str,\n    pub time: DateTime<FixedOffset>,\n    pub line_number: usize,\n    pub code: &'a str,\n}\n\n// E.g.\n//ea82f2d0 (Dan Davison       2021-08-22 18:20:19 -0700 120)             let mut handled_line = self.handle_key_meta_header_line()?\n\nlazy_static! {\n    static ref BLAME_LINE_REGEX: Regex = Regex::new(\n        r\"(?x)\n^\n(\n    \\^?[0-9a-f]{4,40} # commit hash (^ is 'boundary commit' marker)\n)\n(?: [^(]+)?        # optional file name (unused; present if file has been renamed; TODO: inefficient?)\n[\\ ]\n\\(                 # open ( which the previous file name may not contain in case a name does (which is more likely)\n(\n    [^\\ ].*[^\\ ]   # author name\n)\n[\\ ]+\n(                  # timestamp\n    [0-9]{4}-[0-9]{2}-[0-9]{2}\\ [0-9]{2}:[0-9]{2}:[0-9]{2}\\ [-+][0-9]{4}\n)\n[\\ ]+\n(\n    [0-9]+        # line number\n)\n\\)                # close )\n(\n    .*            # code, with leading space\n)\n$\n\"\n    )\n    .unwrap();\n}\n\npub fn parse_git_blame_line<'a>(line: &'a str, timestamp_format: &str) -> Option<BlameLine<'a>> {\n    let caps = BLAME_LINE_REGEX.captures(line)?;\n\n    let commit = caps.get(1).unwrap().as_str();\n    let author = caps.get(2).unwrap().as_str();\n    let timestamp = caps.get(3).unwrap().as_str();\n\n    let time = DateTime::parse_from_str(timestamp, timestamp_format).ok()?;\n\n    let line_number = caps.get(4).unwrap().as_str().parse::<usize>().ok()?;\n\n    let code = caps.get(5).unwrap().as_str();\n\n    Some(BlameLine {\n        commit,\n        author,\n        time,\n        line_number,\n        code,\n    })\n}\n\nlazy_static! {\n    // line numbers (`{n}`) change with every line and are set separately via `blame-separator-format`\n    pub static ref BLAME_PLACEHOLDER_REGEX: Regex =\n        format::make_placeholder_regex(&[\"timestamp\", \"author\", \"commit\"]);\n}\n\npub fn format_blame_metadata(\n    format_data: &[format::FormatStringPlaceholderData],\n    blame: &BlameLine,\n    config: &config::Config,\n) -> String {\n    let mut s = String::new();\n    let mut suffix = \"\";\n    for placeholder in format_data {\n        s.push_str(placeholder.prefix.as_str());\n\n        let alignment_spec = placeholder.alignment_spec.unwrap_or(format::Align::Left);\n        let width = placeholder.width.unwrap_or(15);\n\n        let field = match placeholder.placeholder {\n            Some(Placeholder::Str(\"timestamp\")) => {\n                Some(Cow::from(match &config.blame_timestamp_output_format {\n                    Some(time_format) => blame.time.format(time_format).to_string(),\n                    None => chrono_humanize::HumanTime::from(blame.time).to_string(),\n                }))\n            }\n            Some(Placeholder::Str(\"author\")) => Some(Cow::from(blame.author)),\n            Some(Placeholder::Str(\"commit\")) => Some(delta::format_raw_line(blame.commit, config)),\n            None => None,\n            _ => unreachable!(\"Unexpected `git blame` input\"),\n        };\n        if let Some(field) = field {\n            // Unicode modifier should not be counted as character to allow a consistent padding\n            let unicode_modifier_width =\n                field.as_ref().chars().count() - UnicodeWidthStr::width(field.as_ref());\n            s.push_str(&format::pad(\n                &field,\n                width + unicode_modifier_width,\n                alignment_spec,\n                placeholder.precision,\n            ))\n        }\n        suffix = placeholder.suffix.as_str();\n    }\n    s.push_str(suffix);\n    s\n}\n\npub fn format_blame_line_number(\n    format: &BlameLineNumbers,\n    line_number: usize,\n    is_repeat: bool,\n) -> (&str, String, &str) {\n    let (format, empty) = match &format {\n        BlameLineNumbers::PerBlock(format) => (format, is_repeat),\n        BlameLineNumbers::Every(n, format) => (format, is_repeat && line_number.is_multiple_of(*n)),\n        BlameLineNumbers::On(format) => (format, false),\n    };\n    let mut result = String::new();\n\n    // depends on defaults being set when parsing arguments\n    let line_number = if let Some(width) = format.width {\n        format::pad(line_number, width, format.alignment_spec.unwrap(), None)\n    } else {\n        String::new()\n    };\n\n    if empty {\n        for _ in 0..measure_text_width(&line_number) {\n            result.push(' ');\n        }\n    } else {\n        result.push_str(&line_number);\n    }\n\n    (format.prefix.as_str(), result, format.suffix.as_str())\n}\n\npub fn parse_blame_line_numbers(arg: &str) -> BlameLineNumbers {\n    if arg == \"none\" {\n        return BlameLineNumbers::On(crate::format::FormatStringSimple::only_string(\"│\"));\n    }\n\n    let regex = make_placeholder_regex(&[\"n\"]);\n    let f = match parse_line_number_format(arg, &regex, false) {\n        v if v.len() > 1 => {\n            fatal(\"Too many format arguments numbers for blame-line-numbers\".to_string())\n        }\n        mut v => v.pop().unwrap(),\n    };\n\n    let set_defaults = |mut format: crate::format::FormatStringSimple| {\n        format.width = format.width.or(Some(4));\n        format.alignment_spec = format.alignment_spec.or(Some(crate::format::Align::Center));\n\n        format\n    };\n\n    if f.placeholder.is_none() {\n        return BlameLineNumbers::On(crate::format::FormatStringSimple::only_string(\n            f.suffix.as_str(),\n        ));\n    }\n\n    match f.fmt_type.as_str() {\n        t if t.is_empty() || t == \"every\" => BlameLineNumbers::On(set_defaults(f.into_simple())),\n        \"block\" => BlameLineNumbers::PerBlock(set_defaults(f.into_simple())),\n        every_n if every_n.starts_with(\"every-\") => {\n            let n = every_n[\"every-\".len()..]\n                .parse::<usize>()\n                .unwrap_or_else(|err| {\n                    fatal(format!(\n                        \"Invalid number for blame-line-numbers in every-N argument: {err}\",\n                    ))\n                });\n\n            if n > 1 {\n                BlameLineNumbers::Every(n, set_defaults(f.into_simple()))\n            } else {\n                BlameLineNumbers::On(set_defaults(f.into_simple()))\n            }\n        }\n        t => fatal(format!(\n            \"Invalid format type \\\"{t}\\\" for blame-line-numbers\",\n        )),\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use itertools::Itertools;\n    use std::{collections::HashMap, io::Cursor};\n\n    use crate::tests::integration_test_utils;\n\n    use super::*;\n\n    #[test]\n    fn test_blame_line_regex() {\n        for line in &[\n            \"ea82f2d0 (Dan Davison       2021-08-22 18:20:19 -0700 120)             let mut handled_line = self.handle_commit_meta_header_line()?\",\n            \"b2257cfa (Dan Davison  2020-07-18 15:34:43 -0400   1) use std::borrow::Cow;\",\n            \"^35876eaa (Nicholas Marriott 2009-06-01 22:58:49 +0000   38) /* Default grid cell data. */\",\n        ] {\n            let caps = BLAME_LINE_REGEX.captures(line);\n            assert!(caps.is_some());\n            assert!(parse_git_blame_line(line, \"%Y-%m-%d %H:%M:%S %z\").is_some());\n        }\n    }\n\n    #[test]\n    fn test_blame_line_with_parens_in_name() {\n        let line =\n            \"61f180c8 (Kangwook Lee (이강욱) 2021-06-09 23:33:59 +0900 130)     let mut output_type =\";\n        let caps = BLAME_LINE_REGEX.captures(line).unwrap();\n        assert_eq!(caps.get(2).unwrap().as_str(), \"Kangwook Lee (이강욱)\");\n    }\n\n    #[test]\n    fn test_format_blame_metadata_with_default_timestamp_output_format() {\n        let format_data = make_format_data_with_placeholder(\"timestamp\");\n        let blame = make_blame_line_with_time(\"1996-12-19T16:39:57-08:00\");\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let regex = Regex::new(r\"^\\d+ years ago$\").unwrap();\n        let result = format_blame_metadata(&[format_data], &blame, &config);\n        assert!(regex.is_match(result.trim()));\n    }\n\n    #[test]\n    fn test_format_blame_metadata_with_custom_timestamp_output_format() {\n        let format_data = make_format_data_with_placeholder(\"timestamp\");\n        let blame = make_blame_line_with_time(\"1996-12-19T16:39:57-08:00\");\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--blame-timestamp-output-format=%Y-%m-%d %H:%M\",\n        ]);\n        let result = format_blame_metadata(&[format_data], &blame, &config);\n        assert_eq!(result.trim(), \"1996-12-19 16:39\");\n    }\n\n    #[test]\n    fn test_format_blame_metadata_with_accent_in_name() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n\n        let count_trailing_spaces = |s: String| s.chars().rev().filter(|&c| c == ' ').count();\n\n        let format_data1 = make_format_data_with_placeholder(\"author\");\n        let blame1 = make_blame_line_with_author(\"E\\u{301}dith Piaf\");\n        let result1 = format_blame_metadata(&[format_data1], &blame1, &config);\n\n        let format_data2 = make_format_data_with_placeholder(\"author\");\n        let blame2 = make_blame_line_with_author(\"Edith Piaf\");\n        let result2 = format_blame_metadata(&[format_data2], &blame2, &config);\n\n        assert_eq!(\n            count_trailing_spaces(result1),\n            count_trailing_spaces(result2)\n        );\n    }\n\n    #[test]\n    fn test_color_assignment() {\n        let mut writer = Cursor::new(vec![0; 512]);\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--blame-format\",\n            \"{author} {commit}\",\n            \"--blame-palette\",\n            \"1 2\",\n        ]);\n        let mut machine = StateMachine::new(&mut writer, &config);\n\n        let blame_lines: HashMap<&str, &str> = vec![\n            (\n                \"A\",\n                \"aaaaaaa (Dan Davison       2021-08-22 18:20:19 -0700 120) A\",\n            ),\n            (\n                \"B\",\n                \"bbbbbbb (Dan Davison  2020-07-18 15:34:43 -0400   1) B\",\n            ),\n            (\n                \"C\",\n                \"ccccccc (Dan Davison  2020-07-18 15:34:43 -0400   1) C\",\n            ),\n        ]\n        .into_iter()\n        .collect();\n\n        // First key gets first color\n        machine.line = blame_lines[\"A\"].into();\n        machine.handle_blame_line().unwrap();\n        assert_eq!(\n            hashmap_items(&machine.blame_key_colors),\n            &[(\"Dan Davison     aaaaaaa        \", \"1\")]\n        );\n\n        // Repeat key: same color\n        machine.line = blame_lines[\"A\"].into();\n        machine.handle_blame_line().unwrap();\n        assert_eq!(\n            hashmap_items(&machine.blame_key_colors),\n            &[(\"Dan Davison     aaaaaaa        \", \"1\")]\n        );\n\n        // Second distinct key gets second color\n        machine.line = blame_lines[\"B\"].into();\n        machine.handle_blame_line().unwrap();\n        assert_eq!(\n            hashmap_items(&machine.blame_key_colors),\n            &[\n                (\"Dan Davison     aaaaaaa        \", \"1\"),\n                (\"Dan Davison     bbbbbbb        \", \"2\")\n            ]\n        );\n\n        // Third distinct key gets first color (we only have 2 colors)\n        machine.line = blame_lines[\"C\"].into();\n        machine.handle_blame_line().unwrap();\n        assert_eq!(\n            hashmap_items(&machine.blame_key_colors),\n            &[\n                (\"Dan Davison     aaaaaaa        \", \"1\"),\n                (\"Dan Davison     bbbbbbb        \", \"2\"),\n                (\"Dan Davison     ccccccc        \", \"1\")\n            ]\n        );\n\n        // Now the first key appears again. It would get the first color, but\n        // that would be a consecutive-key-color-collision. So it gets the\n        // second color.\n        machine.line = blame_lines[\"A\"].into();\n        machine.handle_blame_line().unwrap();\n        assert_eq!(\n            hashmap_items(&machine.blame_key_colors),\n            &[\n                (\"Dan Davison     aaaaaaa        \", \"2\"),\n                (\"Dan Davison     bbbbbbb        \", \"2\"),\n                (\"Dan Davison     ccccccc        \", \"1\")\n            ]\n        );\n    }\n\n    fn hashmap_items(hashmap: &HashMap<String, String>) -> Vec<(&str, &str)> {\n        hashmap\n            .iter()\n            .sorted()\n            .map(|(k, v)| (k.as_str(), v.as_str()))\n            .collect()\n    }\n\n    fn make_blame_line_with_time(timestamp: &str) -> BlameLine<'_> {\n        let time = chrono::DateTime::parse_from_rfc3339(timestamp).unwrap();\n        BlameLine {\n            commit: \"\",\n            author: \"\",\n            time,\n            line_number: 0,\n            code: \"\",\n        }\n    }\n\n    fn make_format_data_with_placeholder(\n        placeholder: &str,\n    ) -> format::FormatStringPlaceholderData<'_> {\n        format::FormatStringPlaceholderData {\n            placeholder: Some(Placeholder::Str(placeholder)),\n            ..Default::default()\n        }\n    }\n\n    fn make_blame_line_with_author(author: &str) -> BlameLine<'_> {\n        BlameLine {\n            commit: \"\",\n            author,\n            time: chrono::DateTime::default(),\n            line_number: 0,\n            code: \"\",\n        }\n    }\n}\n"
  },
  {
    "path": "src/handlers/commit_meta.rs",
    "content": "use std::borrow::Cow;\n\nuse super::draw;\nuse crate::delta::{State, StateMachine};\nuse crate::features;\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_commit_meta_header_line(&self) -> bool {\n        self.config.commit_regex.is_match(&self.line)\n    }\n\n    pub fn handle_commit_meta_header_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_commit_meta_header_line() {\n            return Ok(false);\n        }\n        let mut handled_line = false;\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.handle_pending_line_with_diff_name()?;\n        self.state = State::CommitMeta;\n        if self.should_handle() {\n            self.painter.emit()?;\n            self._handle_commit_meta_header_line()?;\n            handled_line = true\n        }\n        Ok(handled_line)\n    }\n\n    fn _handle_commit_meta_header_line(&mut self) -> std::io::Result<()> {\n        if self.config.commit_style.is_omitted {\n            return Ok(());\n        }\n        let (mut draw_fn, pad, decoration_ansi_term_style) =\n            draw::get_draw_function(self.config.commit_style.decoration_style);\n        let (formatted_line, formatted_raw_line) = if self.config.hyperlinks {\n            (\n                features::hyperlinks::format_commit_line_with_osc8_commit_hyperlink(\n                    &self.line,\n                    self.config,\n                ),\n                features::hyperlinks::format_commit_line_with_osc8_commit_hyperlink(\n                    &self.raw_line,\n                    self.config,\n                ),\n            )\n        } else {\n            (Cow::from(&self.line), Cow::from(&self.raw_line))\n        };\n\n        draw_fn(\n            self.painter.writer,\n            &format!(\"{}{}\", formatted_line, if pad { \" \" } else { \"\" }),\n            &format!(\"{}{}\", formatted_raw_line, if pad { \" \" } else { \"\" }),\n            \"\",\n            &self.config.decorations_width,\n            self.config.commit_style,\n            decoration_ansi_term_style,\n        )?;\n        Ok(())\n    }\n}\n"
  },
  {
    "path": "src/handlers/diff_header.rs",
    "content": "use std::borrow::Cow;\nuse std::path::Path;\n\nuse unicode_segmentation::UnicodeSegmentation;\n\nuse super::draw;\nuse crate::config::Config;\nuse crate::delta::{DiffType, Source, State, StateMachine};\nuse crate::paint::Painter;\nuse crate::{features, utils};\n\n// https://git-scm.com/docs/git-config#Documentation/git-config.txt-diffmnemonicPrefix\nconst DIFF_PREFIXES: [&str; 6] = [\"a/\", \"b/\", \"c/\", \"i/\", \"o/\", \"w/\"];\n\n#[derive(Debug, PartialEq, Eq)]\npub enum FileEvent {\n    Added,\n    Change,\n    Copy,\n    Rename,\n    Removed,\n    NoEvent,\n}\n\nimpl StateMachine<'_> {\n    /// Check for the old mode|new mode lines and cache their info for later use.\n    pub fn handle_diff_header_mode_line(&mut self) -> std::io::Result<bool> {\n        let mut handled_line = false;\n        if let Some(line_suf) = self.line.strip_prefix(\"old mode \") {\n            self.state = State::DiffHeader(DiffType::Unified);\n            if self.should_handle() && !self.config.color_only {\n                self.mode_info = line_suf.to_string();\n                handled_line = true;\n            }\n        } else if let Some(line_suf) = self.line.strip_prefix(\"new mode \") {\n            self.state = State::DiffHeader(DiffType::Unified);\n            if self.should_handle() && !self.config.color_only && !self.mode_info.is_empty() {\n                self.mode_info = match (self.mode_info.as_str(), line_suf) {\n                    // 100755 for executable and 100644 for non-executable are the only file modes Git records.\n                    // https://medium.com/@tahteche/how-git-treats-changes-in-file-permissions-f71874ca239d\n                    (\"100644\", \"100755\") => \"mode +x\".to_string(),\n                    (\"100755\", \"100644\") => \"mode -x\".to_string(),\n                    _ => format!(\n                        \"mode {} {} {}\",\n                        self.mode_info, self.config.right_arrow, line_suf\n                    ),\n                };\n                handled_line = true;\n            }\n        }\n        Ok(handled_line)\n    }\n\n    fn should_write_generic_diff_header_header_line(&mut self) -> std::io::Result<bool> {\n        // In color_only mode, raw_line's structure shouldn't be changed.\n        // So it needs to avoid fn _handle_diff_header_header_line\n        // (it connects the plus_file and minus_file),\n        // and to call fn handle_generic_diff_header_header_line directly.\n        if self.config.color_only {\n            write_generic_diff_header_header_line(\n                &self.line,\n                &self.raw_line,\n                &mut self.painter,\n                &mut self.mode_info,\n                self.config,\n            )?;\n            Ok(true)\n        } else {\n            Ok(false)\n        }\n    }\n\n    #[inline]\n    fn test_diff_header_minus_line(&self) -> bool {\n        (matches!(self.state, State::DiffHeader(_)) || self.source == Source::DiffUnified)\n            && ((self.line.starts_with(\"--- \") && self.minus_line_counter.three_dashes_expected())\n                || self.line.starts_with(\"rename from \")\n                || self.line.starts_with(\"copy from \"))\n    }\n\n    /// Check for and handle the \"--- filename ...\" line.\n    pub fn handle_diff_header_minus_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_header_minus_line() {\n            return Ok(false);\n        }\n\n        let (mut path_or_mode, file_event) =\n            parse_diff_header_line(&self.line, self.source == Source::GitDiff);\n\n        utils::path::relativize_path_maybe(&mut path_or_mode, self.config);\n        self.minus_file = path_or_mode;\n        self.minus_file_event = file_event;\n\n        if self.source == Source::DiffUnified {\n            self.state = State::DiffHeader(DiffType::Unified);\n            self.painter\n                .set_syntax(get_filename_from_marker_line(&self.line));\n        } else {\n            self.painter\n                .set_syntax(get_filename_from_diff_header_line_file_path(\n                    &self.minus_file,\n                ));\n        }\n\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.should_write_generic_diff_header_header_line()\n    }\n\n    #[inline]\n    fn test_diff_header_plus_line(&self) -> bool {\n        (matches!(self.state, State::DiffHeader(_)) || self.source == Source::DiffUnified)\n            && (self.line.starts_with(\"+++ \")\n                || self.line.starts_with(\"rename to \")\n                || self.line.starts_with(\"copy to \"))\n    }\n\n    /// Check for and handle the \"+++ filename ...\" line.\n    pub fn handle_diff_header_plus_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_header_plus_line() {\n            return Ok(false);\n        }\n        let mut handled_line = false;\n        let (mut path_or_mode, file_event) =\n            parse_diff_header_line(&self.line, self.source == Source::GitDiff);\n\n        utils::path::relativize_path_maybe(&mut path_or_mode, self.config);\n        self.plus_file = path_or_mode;\n        self.plus_file_event = file_event;\n        self.painter\n            .set_syntax(get_filename_from_diff_header_line_file_path(\n                &self.plus_file,\n            ));\n        self.current_file_pair = Some((self.minus_file.clone(), self.plus_file.clone()));\n\n        self.painter.paint_buffered_minus_and_plus_lines();\n        if self.should_write_generic_diff_header_header_line()? {\n            handled_line = true;\n        } else if self.should_handle()\n            && self.handled_diff_header_header_line_file_pair != self.current_file_pair\n        {\n            self.painter.emit()?;\n            self._handle_diff_header_header_line(self.source == Source::DiffUnified)?;\n            self.handled_diff_header_header_line_file_pair\n                .clone_from(&self.current_file_pair);\n        }\n        Ok(handled_line)\n    }\n\n    #[inline]\n    fn test_diff_header_file_operation_line(&self) -> bool {\n        (matches!(self.state, State::DiffHeader(_)) || self.source == Source::DiffUnified)\n            && (self.line.starts_with(\"deleted file mode \")\n                || self.line.starts_with(\"new file mode \"))\n    }\n\n    /// Check for and handle the \"deleted file ...\"  line.\n    pub fn handle_diff_header_file_operation_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_header_file_operation_line() {\n            return Ok(false);\n        }\n        let mut handled_line = false;\n        let (_mode_info, file_event) =\n            parse_diff_header_line(&self.line, self.source == Source::GitDiff);\n        let name = get_repeated_file_path_from_diff_line(&self.diff_line).unwrap_or_default();\n        match file_event {\n            FileEvent::Removed => {\n                self.minus_file = name;\n                self.plus_file = \"/dev/null\".into();\n                self.minus_file_event = FileEvent::Change;\n                self.plus_file_event = FileEvent::Change;\n                self.current_file_pair = Some((self.minus_file.clone(), self.plus_file.clone()));\n            }\n            FileEvent::Added => {\n                self.minus_file = \"/dev/null\".into();\n                self.plus_file = name;\n                self.minus_file_event = FileEvent::Change;\n                self.plus_file_event = FileEvent::Change;\n                self.current_file_pair = Some((self.minus_file.clone(), self.plus_file.clone()));\n            }\n            _ => (),\n        }\n\n        if self.should_write_generic_diff_header_header_line()?\n            || (self.should_handle()\n                && self.handled_diff_header_header_line_file_pair != self.current_file_pair)\n        {\n            handled_line = true;\n        }\n        Ok(handled_line)\n    }\n\n    /// Construct file change line from minus and plus file and write with DiffHeader styling.\n    fn _handle_diff_header_header_line(&mut self, comparing: bool) -> std::io::Result<()> {\n        let line = get_file_change_description_from_file_paths(\n            &self.minus_file,\n            &self.plus_file,\n            comparing,\n            &self.minus_file_event,\n            &self.plus_file_event,\n            self.config,\n        );\n        // FIXME: no support for 'raw'\n        write_generic_diff_header_header_line(\n            &line,\n            &line,\n            &mut self.painter,\n            &mut self.mode_info,\n            self.config,\n        )\n    }\n\n    #[inline]\n    fn test_pending_line_with_diff_name(&self) -> bool {\n        matches!(self.state, State::DiffHeader(_)) || self.source == Source::DiffUnified\n    }\n\n    pub fn handle_pending_line_with_diff_name(&mut self) -> std::io::Result<()> {\n        if !self.test_pending_line_with_diff_name() {\n            return Ok(());\n        }\n\n        if !self.mode_info.is_empty() {\n            let format_label = |label: &str| {\n                if !label.is_empty() {\n                    format!(\"{label} \")\n                } else {\n                    \"\".to_string()\n                }\n            };\n            let format_file = |file| match (\n                self.config.hyperlinks,\n                utils::path::absolute_path(file, self.config),\n            ) {\n                (true, Some(absolute_path)) => features::hyperlinks::format_osc8_file_hyperlink(\n                    absolute_path,\n                    None,\n                    file,\n                    self.config,\n                ),\n                _ => Cow::from(file),\n            };\n            let label = format_label(&self.config.file_modified_label);\n            let name = get_repeated_file_path_from_diff_line(&self.diff_line).unwrap_or_default();\n            let line = format!(\"{}{}\", label, format_file(&name));\n            write_generic_diff_header_header_line(\n                &line,\n                &line,\n                &mut self.painter,\n                &mut self.mode_info,\n                self.config,\n            )\n        } else if !self.config.color_only\n            && self.should_handle()\n            && self.handled_diff_header_header_line_file_pair != self.current_file_pair\n        {\n            self._handle_diff_header_header_line(self.source == Source::DiffUnified)?;\n            self.handled_diff_header_header_line_file_pair\n                .clone_from(&self.current_file_pair);\n            Ok(())\n        } else {\n            Ok(())\n        }\n    }\n}\n\n/// Write `line` with DiffHeader styling.\npub fn write_generic_diff_header_header_line(\n    line: &str,\n    raw_line: &str,\n    painter: &mut Painter,\n    mode_info: &mut String,\n    config: &Config,\n) -> std::io::Result<()> {\n    // If file_style is \"omit\", we'll skip the process and print nothing.\n    // However in the case of color_only mode,\n    // we won't skip because we can't change raw_line structure.\n    if config.file_style.is_omitted && !config.color_only {\n        return Ok(());\n    }\n    let (mut draw_fn, pad, decoration_ansi_term_style) =\n        draw::get_draw_function(config.file_style.decoration_style);\n    if !config.color_only {\n        // Maintain 1-1 correspondence between input and output lines.\n        writeln!(painter.writer)?;\n    }\n    draw_fn(\n        painter.writer,\n        &format!(\"{}{}\", line, if pad { \" \" } else { \"\" }),\n        &format!(\"{}{}\", raw_line, if pad { \" \" } else { \"\" }),\n        mode_info,\n        &config.decorations_width,\n        config.file_style,\n        decoration_ansi_term_style,\n    )?;\n    if !mode_info.is_empty() {\n        mode_info.truncate(0);\n    }\n    Ok(())\n}\n\n#[allow(clippy::tabs_in_doc_comments)]\n/// Given input like\n/// \"--- a/zero/one.rs\t2019-11-20 06:16:08.000000000 +0100\"\n/// Return \"one.rs\"\nfn get_filename_from_marker_line(line: &str) -> Option<&str> {\n    line.split('\\t')\n        .next()\n        .and_then(|column| column.split(' ').nth(1))\n        .and_then(get_filename_from_diff_header_line_file_path)\n}\n\nfn get_filename_from_diff_header_line_file_path(path: &str) -> Option<&str> {\n    Path::new(path).file_name().and_then(|filename| {\n        if path != \"/dev/null\" {\n            filename.to_str()\n        } else {\n            None\n        }\n    })\n}\n\nfn parse_diff_header_line(line: &str, git_diff_name: bool) -> (String, FileEvent) {\n    match line {\n        line if line.starts_with(\"--- \") || line.starts_with(\"+++ \") => {\n            let offset = 4;\n            let file = _parse_file_path(&line[offset..], git_diff_name);\n            (file, FileEvent::Change)\n        }\n        line if line.starts_with(\"rename from \") => {\n            (line[12..].to_string(), FileEvent::Rename) // \"rename from \".len()\n        }\n        line if line.starts_with(\"rename to \") => {\n            (line[10..].to_string(), FileEvent::Rename) // \"rename to \".len()\n        }\n        line if line.starts_with(\"copy from \") => {\n            (line[10..].to_string(), FileEvent::Copy) // \"copy from \".len()\n        }\n        line if line.starts_with(\"copy to \") => {\n            (line[8..].to_string(), FileEvent::Copy) // \"copy to \".len()\n        }\n        line if line.starts_with(\"new file mode \") => {\n            (line[14..].to_string(), FileEvent::Added) // \"new file mode \".len()\n        }\n        line if line.starts_with(\"deleted file mode \") => {\n            (line[18..].to_string(), FileEvent::Removed) // \"deleted file mode \".len()\n        }\n        _ => (\"\".to_string(), FileEvent::NoEvent),\n    }\n}\n\n/// Given input like \"diff --git a/src/my file.rs b/src/my file.rs\"\n/// return Some(\"src/my file.rs\")\npub fn get_repeated_file_path_from_diff_line(line: &str) -> Option<String> {\n    if let Some(line) = line.strip_prefix(\"diff --git \") {\n        let line: Vec<&str> = line.graphemes(true).collect();\n        let midpoint = line.len() / 2;\n        if line[midpoint] == \" \" {\n            let first_path = _parse_file_path(&line[..midpoint].join(\"\"), true);\n            let second_path = _parse_file_path(&line[midpoint + 1..].join(\"\"), true);\n            if first_path == second_path {\n                return Some(first_path);\n            }\n        }\n    }\n    None\n}\n\nfn remove_surrounding_quotes(path: &str) -> &str {\n    if path.starts_with('\"') && path.ends_with('\"') {\n        // Indexing into the UTF-8 string is safe because of the previous test\n        &path[1..path.len() - 1]\n    } else {\n        path\n    }\n}\n\nfn _parse_file_path(path: &str, git_diff_name: bool) -> String {\n    // When git config 'core.quotepath = true' (the default), and `path` contains\n    // non-ASCII characters, a backslash, or a quote; then it is quoted, so remove\n    // these quotes. Characters may also be escaped, but these are left as-is.\n    let path = remove_surrounding_quotes(path);\n    // It appears that, if the file name contains a space, git appends a tab\n    // character in the diff metadata lines, e.g.\n    // $ git diff --no-index \"a b\" \"c d\" | cat -A\n    // diff·--git·a/a·b·b/c·d␊\n    // index·d00491f..0cfbf08·100644␊\n    // ---·a/a·b├──┤␊\n    // +++·b/c·d├──┤␊\n    match path.strip_suffix('\\t').unwrap_or(path) {\n        \"/dev/null\" => \"/dev/null\",\n        path if git_diff_name && DIFF_PREFIXES.iter().any(|s| path.starts_with(s)) => &path[2..],\n        path if git_diff_name => path,\n        path => path.split('\\t').next().unwrap_or(\"\"),\n    }\n    .to_string()\n}\n\npub fn get_file_change_description_from_file_paths(\n    minus_file: &str,\n    plus_file: &str,\n    comparing: bool,\n    minus_file_event: &FileEvent,\n    plus_file_event: &FileEvent,\n    config: &Config,\n) -> String {\n    let format_label = |label: &str| {\n        if !label.is_empty() {\n            format!(\"{label} \")\n        } else {\n            \"\".to_string()\n        }\n    };\n    if comparing {\n        format!(\n            \"{}{} {} {}\",\n            format_label(&config.file_modified_label),\n            minus_file,\n            config.right_arrow,\n            plus_file\n        )\n    } else {\n        let format_file = |file| {\n            let formatted_file = if let Some(regex_replacement) = &config.file_regex_replacement {\n                regex_replacement.execute(file)\n            } else {\n                Cow::from(file)\n            };\n            match (config.hyperlinks, utils::path::absolute_path(file, config)) {\n                (true, Some(absolute_path)) => features::hyperlinks::format_osc8_file_hyperlink(\n                    absolute_path,\n                    None,\n                    &formatted_file,\n                    config,\n                ),\n                _ => formatted_file,\n            }\n        };\n        match (minus_file, plus_file, minus_file_event, plus_file_event) {\n            (minus_file, plus_file, _, _) if minus_file == plus_file => format!(\n                \"{}{}\",\n                format_label(&config.file_modified_label),\n                format_file(minus_file)\n            ),\n            (minus_file, \"/dev/null\", _, _) => format!(\n                \"{}{}\",\n                format_label(&config.file_removed_label),\n                format_file(minus_file)\n            ),\n            (\"/dev/null\", plus_file, _, _) => format!(\n                \"{}{}\",\n                format_label(&config.file_added_label),\n                format_file(plus_file)\n            ),\n            // minus_file_event == plus_file_event\n            (minus_file, plus_file, file_event, _) => format!(\n                \"{}{} {} {}\",\n                format_label(match file_event {\n                    FileEvent::Rename => &config.file_renamed_label,\n                    FileEvent::Copy => &config.file_copied_label,\n                    _ => &config.file_modified_label,\n                }),\n                format_file(minus_file),\n                config.right_arrow,\n                format_file(plus_file)\n            ),\n        }\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use crate::tests::integration_test_utils::{make_config_from_args, DeltaTest};\n    use insta::assert_snapshot;\n\n    #[test]\n    fn test_get_filename_from_marker_line() {\n        assert_eq!(\n            get_filename_from_marker_line(\"--- src/one.rs\t2019-11-20 06:47:56.000000000 +0100\"),\n            Some(\"one.rs\")\n        );\n    }\n\n    #[test]\n    fn test_get_filename_from_diff_header_line() {\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"a/src/parse.rs\"),\n            Some(\"parse.rs\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"b/src/pa rse.rs\"),\n            Some(\"pa rse.rs\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"src/pa rse.rs\"),\n            Some(\"pa rse.rs\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"wat hello.rs\"),\n            Some(\"wat hello.rs\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"/dev/null\"),\n            None\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"Dockerfile\"),\n            Some(\"Dockerfile\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"Makefile\"),\n            Some(\"Makefile\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"a/src/Makefile\"),\n            Some(\"Makefile\")\n        );\n        assert_eq!(\n            get_filename_from_diff_header_line_file_path(\"src/Makefile\"),\n            Some(\"Makefile\")\n        );\n    }\n\n    // We should only strip the prefixes if they are \"a/\" or \"b/\". This will be correct except for\n    // the case of a user with `diff.noprefix = true` who has directories named \"a\" or \"b\", which\n    // is an irresolvable ambiguity. Ideally one would only strip the prefixes if we have confirmed\n    // that we are looking at something like\n    //\n    // --- a/src/parse.rs\n    // +++ b/src/parse.rs\n    //\n    // as opposed to something like\n    //\n    // --- a/src/parse.rs\n    // +++ sibling_of_a/src/parse.rs\n    //\n    // but we don't attempt that currently.\n    #[test]\n    fn test_get_file_path_from_git_diff_header_line() {\n        assert_eq!(\n            parse_diff_header_line(\"--- /dev/null\", true),\n            (\"/dev/null\".to_string(), FileEvent::Change)\n        );\n        for prefix in &DIFF_PREFIXES {\n            assert_eq!(\n                parse_diff_header_line(&format!(\"--- {prefix}src/delta.rs\"), true),\n                (\"src/delta.rs\".to_string(), FileEvent::Change)\n            );\n        }\n        assert_eq!(\n            parse_diff_header_line(\"--- src/delta.rs\", true),\n            (\"src/delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ src/delta.rs\", true),\n            (\"src/delta.rs\".to_string(), FileEvent::Change)\n        );\n\n        assert_eq!(\n            parse_diff_header_line(\"+++ \\\".\\\\delta.rs\\\"\", true),\n            (\".\\\\delta.rs\".to_string(), FileEvent::Change)\n        );\n    }\n\n    #[test]\n    fn test_get_file_path_from_git_diff_header_line_containing_spaces() {\n        assert_eq!(\n            parse_diff_header_line(\"+++ a/my src/delta.rs\", true),\n            (\"my src/delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ my src/delta.rs\", true),\n            (\"my src/delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ a/src/my delta.rs\", true),\n            (\"src/my delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ a/my src/my delta.rs\", true),\n            (\"my src/my delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ b/my src/my enough/my delta.rs\", true),\n            (\n                \"my src/my enough/my delta.rs\".to_string(),\n                FileEvent::Change\n            )\n        );\n    }\n\n    #[test]\n    fn test_get_file_path_from_git_diff_header_line_rename() {\n        assert_eq!(\n            parse_diff_header_line(\"rename from nospace/file2.el\", true),\n            (\"nospace/file2.el\".to_string(), FileEvent::Rename)\n        );\n    }\n\n    #[test]\n    fn test_get_file_path_from_git_diff_header_line_rename_containing_spaces() {\n        assert_eq!(\n            parse_diff_header_line(\"rename from with space/file1.el\", true),\n            (\"with space/file1.el\".to_string(), FileEvent::Rename)\n        );\n    }\n\n    #[test]\n    fn test_parse_diff_header_line() {\n        assert_eq!(\n            parse_diff_header_line(\"--- src/delta.rs\", false),\n            (\"src/delta.rs\".to_string(), FileEvent::Change)\n        );\n        assert_eq!(\n            parse_diff_header_line(\"+++ src/delta.rs\", false),\n            (\"src/delta.rs\".to_string(), FileEvent::Change)\n        );\n    }\n\n    #[test]\n    fn test_get_repeated_file_path_from_diff_line() {\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(\"diff --git a/src/main.rs b/src/main.rs\"),\n            Some(\"src/main.rs\".to_string())\n        );\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(\"diff --git a/a b/a\"),\n            Some(\"a\".to_string())\n        );\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(\"diff --git a/a b b/a b\"),\n            Some(\"a b\".to_string())\n        );\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(\"diff --git a/a b/aa\"),\n            None\n        );\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(\n                \"diff --git a/.config/Code - Insiders/User/settings.json b/.config/Code - Insiders/User/settings.json\"),\n            Some(\".config/Code - Insiders/User/settings.json\".to_string())\n        );\n        assert_eq!(\n            get_repeated_file_path_from_diff_line(r#\"diff --git \"a/quoted\" \"b/quoted\"\"#),\n            Some(\"quoted\".to_string())\n        );\n    }\n\n    #[test]\n    fn test_diff_header_with_mode_change_in_last_hunk() {\n        let input = \"\\\ndiff --git a/a.txt b/a.txt\nindex 44371ed..e69de29 100644\n--- a/a.txt\n+++ b/a.txt\n@@ -1 +0,0 @@\n-A-content\ndiff --git a/b.txt b/b.txt\nold mode 100644\nnew mode 100755\n\";\n\n        let result = DeltaTest::with_args(&[]).with_input(input);\n\n        assert_snapshot!(result.output, @r\"\n        a.txt\n        ───────────────────────────────────────────\n\n        ───┐\n        0: │\n        ───┘\n        A-content\n\n        b.txt (mode +x)\n        ───────────────────────────────────────────\n        \");\n    }\n\n    #[test]\n    fn test_diff_header_with_2x_mode_change() {\n        let input = \"\\\ndiff --git a/a.txt b/a.txt\nindex 44371ed..e69de29 100644\n--- a/a.txt\n+++ b/a.txt\n@@ -1 +0,0 @@\n-A-content\ndiff --git a/b.txt b/b.txt\nold mode 100644\nnew mode 100755\n--- a/b.txt\n+++ b/b.txt\ndiff --git a/c.txt b/c.txt\nold mode 100644\nnew mode 100755\n\";\n\n        let result = DeltaTest::with_args(&[]).with_input(input);\n\n        assert_snapshot!(result.output, @r\"\n        a.txt\n        ───────────────────────────────────────────\n\n        ───┐\n        0: │\n        ───┘\n        A-content\n\n        b.txt (mode +x)\n        ───────────────────────────────────────────\n\n        c.txt (mode +x)\n        ───────────────────────────────────────────\n        \");\n    }\n\n    pub const BIN_AND_TXT_FILE_ADDED: &str = \"\\\ndiff --git a/BIN b/BIN\nnew file mode 100644\nindex 0000000..a5d0c46\nBinary files /dev/null and b/BIN differ\ndiff --git a/TXT b/TXT\nnew file mode 100644\nindex 0000000..323fae0\n--- /dev/null\n+++ b/TXT\n@@ -0,0 +1 @@\n+plain text\";\n\n    #[test]\n    fn test_diff_header_relative_paths() {\n        // rustfmt ignores the assert macro arguments, so do the setup outside\n        let mut cfg = make_config_from_args(&[\"--relative-paths\", \"-s\"]);\n        cfg.cwd_relative_to_repo_root = Some(\"src/utils/\".into());\n        let result = DeltaTest::with_config(&cfg)\n            .with_input(BIN_AND_TXT_FILE_ADDED)\n            .output;\n        // convert windows '..\\' to unix '../' paths\n        insta::with_settings!({filters => vec![(r\"\\.\\.\\\\\", \"../\")]}, {\n            assert_snapshot!(result, @r###\"\n\n            added: ../../BIN (binary file)\n            ───────────────────────────────────────────\n\n            added: ../../TXT\n            ───────────────────────────────────────────\n\n            ───┐\n            1: │\n            ───┘\n            │    │                │  1 │plain text\n            \"###)\n        });\n    }\n\n    pub const DIFF_AMBIGUOUS_HEADER_3X_MINUS: &str = r#\"--- a.lua\n+++ b.lua\n@@ -1,5 +1,4 @@\n #!/usr/bin/env lua\n \n print(\"Hello\")\n--- World?\n print(\"..\")\n\"#;\n    pub const DIFF_AMBIGUOUS_HEADER_3X_MINUS_LAST_LINE: &str = r#\"--- c.lua\n+++ d.lua\n@@ -1,4 +1,3 @@\n #!/usr/bin/env lua\n \n print(\"Hello\")\n--- World?\n\"#;\n\n    pub const DIFF_AMBIGUOUS_HEADER_MULTIPLE_HUNKS: &str = r#\"--- e.lua\t2024-08-04 20:50:27.257726606 +0200\n+++ f.lua\t2024-08-04 20:50:35.345795405 +0200\n@@ -3,3 +3,2 @@\n print(\"Hello\")\n--- World?\n print(\"\")\n@@ -7,2 +6,3 @@\n print(\"\")\n+print(\"World\")\n print(\"\")\n@@ -10,2 +10 @@\n print(\"\")\n--- End\n\"#;\n\n    #[test]\n    fn test_diff_header_ambiguous_3x_minus() {\n        // check ansi output to ensure output is highlighted\n        let result = DeltaTest::with_args(&[])\n            .explain_ansi()\n            .with_input(DIFF_AMBIGUOUS_HEADER_3X_MINUS);\n\n        assert_snapshot!(result.output, @r###\"\n        (normal)\n        (blue)a.lua ⟶   b.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (203)#(231)!(203)/(231)usr(203)/(231)bin(203)/(231)env lua(normal)\n\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        (81)print(231)((186)\"..\"(231))(normal)\n\n        \"###);\n    }\n\n    #[test]\n    fn test_diff_header_ambiguous_3x_minus_concatenated() {\n        let result = DeltaTest::with_args(&[])\n            .explain_ansi()\n            .with_input(&format!(\n                \"{}{}{}\",\n                DIFF_AMBIGUOUS_HEADER_MULTIPLE_HUNKS,\n                DIFF_AMBIGUOUS_HEADER_3X_MINUS,\n                DIFF_AMBIGUOUS_HEADER_3X_MINUS_LAST_LINE\n            ));\n\n        assert_snapshot!(result.output, @r###\"\n        (normal)\n        (blue)e.lua ⟶   f.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)3(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)6(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n        (81 22)print(231)((186)\"World\"(231))(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n\n        (blue)────(blue)┐(normal)\n        (blue)10(normal): (blue)│(normal)\n        (blue)────(blue)┘(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n        (normal 52)-- End(normal)\n\n        (blue)a.lua ⟶   b.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (203)#(231)!(203)/(231)usr(203)/(231)bin(203)/(231)env lua(normal)\n\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        (81)print(231)((186)\"..\"(231))(normal)\n\n        (blue)c.lua ⟶   d.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (203)#(231)!(203)/(231)usr(203)/(231)bin(203)/(231)env lua(normal)\n\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        \"###);\n    }\n\n    #[test]\n    fn test_diff_header_ambiguous_3x_minus_extra_and_concatenated() {\n        let result = DeltaTest::with_args(&[])\n            .explain_ansi()\n            .with_input(&format!(\n                \"extra 1\\n\\n{}\\nextra 2\\n{}\\nextra 3\\n{}\",\n                DIFF_AMBIGUOUS_HEADER_MULTIPLE_HUNKS,\n                DIFF_AMBIGUOUS_HEADER_3X_MINUS,\n                DIFF_AMBIGUOUS_HEADER_3X_MINUS_LAST_LINE\n            ));\n\n        assert_snapshot!(result.output, @r###\"\n        (normal)extra 1\n\n\n        (blue)e.lua ⟶   f.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)3(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)6(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n        (81 22)print(231)((186)\"World\"(231))(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n\n        (blue)────(blue)┐(normal)\n        (blue)10(normal): (blue)│(normal)\n        (blue)────(blue)┘(normal)\n        (81)print(231)((186)\"\"(231))(normal)\n        (normal 52)-- End(normal)\n\n        extra 2\n\n        (blue)a.lua ⟶   b.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (203)#(231)!(203)/(231)usr(203)/(231)bin(203)/(231)env lua(normal)\n\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        (81)print(231)((186)\"..\"(231))(normal)\n\n        extra 3\n\n        (blue)c.lua ⟶   d.lua(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (203)#(231)!(203)/(231)usr(203)/(231)bin(203)/(231)env lua(normal)\n\n        (81)print(231)((186)\"Hello\"(231))(normal)\n        (normal 52)-- World?(normal)\n        \"###);\n    }\n}\n"
  },
  {
    "path": "src/handlers/diff_header_diff.rs",
    "content": "use crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\nuse crate::handlers::diff_header::{get_repeated_file_path_from_diff_line, FileEvent};\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_diff_header_diff_line(&self) -> bool {\n        self.line.starts_with(\"diff \")\n    }\n\n    #[allow(clippy::unnecessary_wraps)]\n    pub fn handle_diff_header_diff_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_header_diff_line() {\n            return Ok(false);\n        }\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.painter.emit()?;\n        self.state =\n            if self.line.starts_with(\"diff --cc \") || self.line.starts_with(\"diff --combined \") {\n                // We will determine the number of parents when we see the hunk header.\n                State::DiffHeader(DiffType::Combined(\n                    MergeParents::Unknown,\n                    InMergeConflict::No,\n                ))\n            } else {\n                State::DiffHeader(DiffType::Unified)\n            };\n        self.handle_pending_line_with_diff_name()?;\n        self.handled_diff_header_header_line_file_pair = None;\n        self.diff_line.clone_from(&self.line);\n\n        // Pre-fill header fields from the diff line. For added, removed or renamed files\n        // these are updated precisely on actual header minus and header plus lines.\n        // But for modified binary files which are not added, removed or renamed, there\n        // are no minus and plus lines. Without the code below, in such cases the file names\n        // would remain unchanged from the previous diff, or empty for the very first diff.\n        let name = get_repeated_file_path_from_diff_line(&self.line).unwrap_or_default();\n        self.minus_file.clone_from(&name);\n        self.plus_file.clone_from(&name);\n        self.minus_file_event = FileEvent::Change;\n        self.plus_file_event = FileEvent::Change;\n        self.current_file_pair = Some((self.minus_file.clone(), self.plus_file.clone()));\n\n        if !self.should_skip_line() {\n            self.emit_line_unchanged()?;\n        }\n        Ok(true)\n    }\n}\n"
  },
  {
    "path": "src/handlers/diff_header_misc.rs",
    "content": "use crate::delta::{DiffType, Source, State, StateMachine};\nuse crate::utils::path::relativize_path_maybe;\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_diff_file_missing(&self) -> bool {\n        self.source == Source::DiffUnified && self.line.starts_with(\"Only in \")\n    }\n\n    #[inline]\n    fn test_diff_is_binary(&self) -> bool {\n        self.line.starts_with(\"Binary files \")\n    }\n\n    pub fn handle_diff_header_misc_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_file_missing() && !self.test_diff_is_binary() {\n            return Ok(false);\n        }\n\n        // Preserve the \"Binary files\" line when diff lines should be kept unchanged.\n        if !self.config.color_only && self.test_diff_is_binary() {\n            // Print the \"Binary files\" line verbatim, if there was no \"diff\" line, or it\n            // listed different files but was not followed by header minus and plus lines.\n            // This can happen in output of standalone diff or git diff --no-index.\n            if self.minus_file.is_empty() && self.plus_file.is_empty() {\n                self.emit_line_unchanged()?;\n                self.handled_diff_header_header_line_file_pair\n                    .clone_from(&self.current_file_pair);\n                return Ok(true);\n            }\n\n            if self.minus_file != \"/dev/null\" {\n                relativize_path_maybe(&mut self.minus_file, self.config);\n                self.minus_file.push_str(\" (binary file)\");\n            }\n            if self.plus_file != \"/dev/null\" {\n                relativize_path_maybe(&mut self.plus_file, self.config);\n                self.plus_file.push_str(\" (binary file)\");\n            }\n            return Ok(true);\n        }\n\n        self.handle_additional_cases(match self.state {\n            State::DiffHeader(_) => self.state.clone(),\n            _ => State::DiffHeader(DiffType::Unified),\n        })\n    }\n}\n"
  },
  {
    "path": "src/handlers/diff_stat.rs",
    "content": "use lazy_static::lazy_static;\nuse regex::Regex;\nuse std::borrow::Cow;\n\nuse crate::config::Config;\nuse crate::delta::{State, StateMachine};\nuse crate::features;\nuse crate::utils;\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_diff_stat_line(&self) -> bool {\n        (self.state == State::CommitMeta || self.state == State::Unknown)\n            && self.line.starts_with(' ')\n    }\n\n    pub fn handle_diff_stat_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_diff_stat_line() {\n            return Ok(false);\n        }\n        let mut handled_line = false;\n        if self.config.relative_paths {\n            if let Some(cwd) = self.config.cwd_relative_to_repo_root.as_deref() {\n                if let Some(replacement_line) =\n                    relativize_path_in_diff_stat_line(&self.raw_line, cwd, self.config)\n                {\n                    self.painter.emit()?;\n                    writeln!(self.painter.writer, \"{replacement_line}\")?;\n                    handled_line = true\n                }\n            }\n        }\n        Ok(handled_line)\n    }\n}\n\n// A regex to capture the path, and the content from the pipe onwards, in lines\n// like these:\n// \" src/delta.rs  | 14 ++++++++++----\"\n// \" src/config.rs |  2 ++\"\nlazy_static! {\n    static ref DIFF_STAT_LINE_REGEX: Regex =\n        Regex::new(r\" ([^\\| ][^\\|]+[^\\| ]) +(\\| +[0-9]+ .+)\").unwrap();\n}\n\npub fn relativize_path_in_diff_stat_line(\n    line: &str,\n    cwd_relative_to_repo_root: &str,\n    config: &Config,\n) -> Option<String> {\n    let caps = DIFF_STAT_LINE_REGEX.captures(line)?;\n    let path_relative_to_repo_root = caps.get(1).unwrap().as_str();\n\n    let relative_path =\n        pathdiff::diff_paths(path_relative_to_repo_root, cwd_relative_to_repo_root)?;\n    let relative_path = relative_path.to_str()?;\n    let formatted_path = match (\n        config.hyperlinks,\n        utils::path::absolute_path(path_relative_to_repo_root, config),\n    ) {\n        (true, Some(absolute_path)) => features::hyperlinks::format_osc8_file_hyperlink(\n            absolute_path,\n            None,\n            relative_path,\n            config,\n        ),\n        _ => Cow::from(relative_path),\n    };\n    let suffix = caps.get(2).unwrap().as_str();\n    let pad_width = config\n        .diff_stat_align_width\n        .saturating_sub(relative_path.len());\n    let padding = \" \".repeat(pad_width);\n    Some(format!(\" {formatted_path}{padding}{suffix}\"))\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn test_diff_stat_line_regex_1() {\n        let caps = DIFF_STAT_LINE_REGEX.captures(\" src/delta.rs  | 14 ++++++++++----\");\n        assert!(caps.is_some());\n        let caps = caps.unwrap();\n        assert_eq!(caps.get(1).unwrap().as_str(), \"src/delta.rs\");\n        assert_eq!(caps.get(2).unwrap().as_str(), \"| 14 ++++++++++----\");\n    }\n\n    #[test]\n    fn test_diff_stat_line_regex_2() {\n        let caps = DIFF_STAT_LINE_REGEX.captures(\" src/config.rs |  2 ++\");\n        assert!(caps.is_some());\n        let caps = caps.unwrap();\n        assert_eq!(caps.get(1).unwrap().as_str(), \"src/config.rs\");\n        assert_eq!(caps.get(2).unwrap().as_str(), \"|  2 ++\");\n    }\n\n    #[test]\n    fn test_relative_path() {\n        for (path, cwd_relative_to_repo_root, expected) in &[\n            (\"file.rs\", \"\", \"file.rs\"),\n            (\"file.rs\", \"a/\", \"../file.rs\"),\n            (\"a/file.rs\", \"a/\", \"file.rs\"),\n            (\"a/b/file.rs\", \"a\", \"b/file.rs\"),\n            (\"c/d/file.rs\", \"a/b/\", \"../../c/d/file.rs\"),\n        ] {\n            assert_eq!(\n                pathdiff::diff_paths(path, cwd_relative_to_repo_root),\n                Some(expected.into())\n            )\n        }\n    }\n}\n"
  },
  {
    "path": "src/handlers/draw.rs",
    "content": "use std::cmp::max;\nuse std::io::Write;\n\nuse crate::ansi;\nuse crate::cli::Width;\nuse crate::style::{DecorationStyle, Style};\n\nfn paint_text(text_style: Style, text: &str, addendum: &str) -> String {\n    if addendum.is_empty() {\n        text_style.paint(text).to_string()\n    } else {\n        text_style\n            .paint(text.to_string() + \" (\" + addendum + \")\")\n            .to_string()\n    }\n}\n\npub type DrawFunction = dyn FnMut(\n    &mut dyn Write,\n    &str,\n    &str,\n    &str,\n    &Width,\n    Style,\n    ansi_term::Style,\n) -> std::io::Result<()>;\n\npub fn get_draw_function(\n    decoration_style: DecorationStyle,\n) -> (Box<DrawFunction>, bool, ansi_term::Style) {\n    match decoration_style {\n        DecorationStyle::Box(style) => (Box::new(write_boxed), true, style),\n        DecorationStyle::BoxWithUnderline(style) => {\n            (Box::new(write_boxed_with_underline), true, style)\n        }\n        DecorationStyle::BoxWithOverline(style) => {\n            // TODO: not implemented\n            (Box::new(write_boxed), true, style)\n        }\n        DecorationStyle::BoxWithUnderOverline(style) => {\n            // TODO: not implemented\n            (Box::new(write_boxed), true, style)\n        }\n        DecorationStyle::Underline(style) => (Box::new(write_underlined), false, style),\n        DecorationStyle::Overline(style) => (Box::new(write_overlined), false, style),\n        DecorationStyle::UnderOverline(style) => (Box::new(write_underoverlined), false, style),\n        DecorationStyle::NoDecoration => (\n            Box::new(write_no_decoration),\n            false,\n            ansi_term::Style::new(),\n        ),\n    }\n}\n\nfn write_no_decoration(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    _line_width: &Width, // ignored\n    text_style: Style,\n    _decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    if text_style.is_raw {\n        writeln!(writer, \"{raw_text}\")?;\n    } else {\n        writeln!(writer, \"{}\", paint_text(text_style, text, addendum))?;\n    }\n    Ok(())\n}\n\n/// Write text to stream, surrounded by a box, leaving the cursor just\n/// beyond the bottom right corner.\npub fn write_boxed(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    _line_width: &Width, // ignored\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let up_left = if decoration_style.is_bold {\n        box_drawing::heavy::UP_LEFT\n    } else {\n        box_drawing::light::UP_LEFT\n    };\n    let box_width = ansi::measure_text_width(text);\n    write_boxed_partial(\n        writer,\n        text,\n        raw_text,\n        addendum,\n        box_width,\n        text_style,\n        decoration_style,\n    )?;\n    writeln!(writer, \"{}\", decoration_style.paint(up_left))?;\n    Ok(())\n}\n\n/// Write text to stream, surrounded by a box, and extend a line from\n/// the bottom right corner.\nfn write_boxed_with_underline(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    line_width: &Width,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let box_width = ansi::measure_text_width(text);\n    write_boxed_with_horizontal_whisker(\n        writer,\n        text,\n        raw_text,\n        addendum,\n        box_width,\n        text_style,\n        decoration_style,\n    )?;\n    let line_width = match *line_width {\n        Width::Fixed(n) => n,\n        Width::Variable => box_width,\n    };\n    write_horizontal_line(\n        writer,\n        if line_width > box_width {\n            line_width - box_width - 1\n        } else {\n            0\n        },\n        text_style,\n        decoration_style,\n    )?;\n    writeln!(writer)?;\n    Ok(())\n}\n\nenum UnderOverline {\n    Under,\n    Over,\n    Underover,\n}\n\nfn write_underlined(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    line_width: &Width,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    _write_under_or_over_lined(\n        UnderOverline::Under,\n        writer,\n        text,\n        raw_text,\n        addendum,\n        line_width,\n        text_style,\n        decoration_style,\n    )\n}\n\nfn write_overlined(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    line_width: &Width,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    _write_under_or_over_lined(\n        UnderOverline::Over,\n        writer,\n        text,\n        raw_text,\n        addendum,\n        line_width,\n        text_style,\n        decoration_style,\n    )\n}\n\nfn write_underoverlined(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    line_width: &Width,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    _write_under_or_over_lined(\n        UnderOverline::Underover,\n        writer,\n        text,\n        raw_text,\n        addendum,\n        line_width,\n        text_style,\n        decoration_style,\n    )\n}\n\n#[allow(clippy::too_many_arguments)]\nfn _write_under_or_over_lined(\n    underoverline: UnderOverline,\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    line_width: &Width,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let text_width = ansi::measure_text_width(text);\n    let line_width = match *line_width {\n        Width::Fixed(n) => max(n, text_width),\n        Width::Variable => text_width,\n    };\n    let write_line = |writer: &mut dyn Write| -> std::io::Result<()> {\n        write_horizontal_line(writer, line_width, text_style, decoration_style)?;\n        writeln!(writer)?;\n        Ok(())\n    };\n    match underoverline {\n        UnderOverline::Under => {}\n        _ => write_line(writer)?,\n    }\n    if text_style.is_raw {\n        writeln!(writer, \"{raw_text}\")?;\n    } else {\n        writeln!(writer, \"{}\", paint_text(text_style, text, addendum))?;\n    }\n    match underoverline {\n        UnderOverline::Over => {}\n        _ => write_line(writer)?,\n    }\n    Ok(())\n}\n\nfn write_horizontal_line(\n    writer: &mut dyn Write,\n    width: usize,\n    _text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let horizontal = if decoration_style.is_bold {\n        box_drawing::heavy::HORIZONTAL\n    } else {\n        box_drawing::light::HORIZONTAL\n    };\n    write!(\n        writer,\n        \"{}\",\n        decoration_style.paint(horizontal.repeat(width))\n    )\n}\n\nfn write_boxed_with_horizontal_whisker(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    box_width: usize,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let up_horizontal = if decoration_style.is_bold {\n        box_drawing::heavy::UP_HORIZONTAL\n    } else {\n        box_drawing::light::UP_HORIZONTAL\n    };\n    write_boxed_partial(\n        writer,\n        text,\n        raw_text,\n        addendum,\n        box_width,\n        text_style,\n        decoration_style,\n    )?;\n    write!(writer, \"{}\", decoration_style.paint(up_horizontal))?;\n    Ok(())\n}\n\nfn write_boxed_partial(\n    writer: &mut dyn Write,\n    text: &str,\n    raw_text: &str,\n    addendum: &str,\n    box_width: usize,\n    text_style: Style,\n    decoration_style: ansi_term::Style,\n) -> std::io::Result<()> {\n    let (horizontal, down_left, vertical) = if decoration_style.is_bold {\n        (\n            box_drawing::heavy::HORIZONTAL,\n            box_drawing::heavy::DOWN_LEFT,\n            box_drawing::heavy::VERTICAL,\n        )\n    } else {\n        (\n            box_drawing::light::HORIZONTAL,\n            box_drawing::light::DOWN_LEFT,\n            box_drawing::light::VERTICAL,\n        )\n    };\n    let horizontal_edge = horizontal.repeat(box_width);\n    writeln!(\n        writer,\n        \"{}{}\",\n        decoration_style.paint(&horizontal_edge),\n        decoration_style.paint(down_left),\n    )?;\n    if text_style.is_raw {\n        write!(writer, \"{raw_text}\")?;\n    } else {\n        write!(writer, \"{}\", paint_text(text_style, text, addendum))?;\n    }\n    write!(\n        writer,\n        \"{}\\n{}\",\n        decoration_style.paint(vertical),\n        decoration_style.paint(&horizontal_edge),\n    )\n}\n"
  },
  {
    "path": "src/handlers/git_show_file.rs",
    "content": "use crate::delta::{State, StateMachine};\nuse crate::paint::{BgShouldFill, StyleSectionSpecifier};\nuse crate::utils::process;\n\nimpl StateMachine<'_> {\n    // If this is a line of `git show $revision:/path/to/file.ext` output then\n    // syntax-highlight it as language `ext`.\n    pub fn handle_git_show_file_line(&mut self) -> std::io::Result<bool> {\n        self.painter.emit()?;\n        let mut handled_line = false;\n        if matches!(self.state, State::Unknown) {\n            if let process::CallingProcess::GitShow(_, Some(filename)) =\n                &*process::calling_process()\n            {\n                self.state = State::GitShowFile;\n                self.painter.set_syntax(Some(filename));\n            } else {\n                return Ok(handled_line);\n            }\n        }\n        if matches!(self.state, State::GitShowFile) {\n            self.painter.set_highlighter();\n            self.painter.syntax_highlight_and_paint_line(\n                &self.line,\n                StyleSectionSpecifier::Style(self.config.zero_style),\n                self.state.clone(),\n                BgShouldFill::default(),\n            );\n            handled_line = true;\n        }\n        Ok(handled_line)\n    }\n}\n"
  },
  {
    "path": "src/handlers/grep.rs",
    "content": "use std::borrow::Cow;\n\nuse lazy_static::lazy_static;\nuse regex::Regex;\nuse serde::Deserialize;\n\nuse crate::ansi;\nuse crate::config::{\n    delta_unreachable, GrepType, HunkHeaderIncludeCodeFragment, HunkHeaderIncludeFilePath,\n    HunkHeaderIncludeLineNumber,\n};\nuse crate::delta::{State, StateMachine};\nuse crate::handlers::{self, ripgrep_json};\nuse crate::paint::{self, BgShouldFill, StyleSectionSpecifier};\nuse crate::style::Style;\nuse crate::utils::{process, tabs};\n\nuse super::hunk_header::HunkHeaderIncludeHunkLabel;\n\n#[derive(Debug, PartialEq, Eq)]\npub struct GrepLine<'b> {\n    pub grep_type: GrepType,\n    pub path: Cow<'b, str>,\n    pub line_number: Option<usize>,\n    pub line_type: LineType,\n    pub code: Cow<'b, str>,\n    pub submatches: Option<Vec<(usize, usize)>>,\n}\n\nimpl GrepLine<'_> {\n    fn expand_tabs(&mut self, tab_cfg: &tabs::TabCfg) {\n        let old_len = self.code.len();\n        self.code = tabs::expand(&self.code, tab_cfg).into();\n        let shift = self.code.len().saturating_sub(old_len);\n        // HACK: it is not necessarily the case that all submatch coordinates\n        // should be shifted in this way. It should be true in a common case of:\n        // (a) the only tabs were at the beginning of the line, and (b) the user\n        // was not searching for tabs.\n        self.submatches = self.submatches.as_ref().map(|submatches| {\n            submatches\n                .iter()\n                .map(|(a, b)| (a + shift, b + shift))\n                .collect()\n        });\n    }\n}\n\n#[derive(Clone, Copy, Debug, PartialEq, Eq, Deserialize)]\n#[serde(rename_all = \"lowercase\")]\npub enum LineType {\n    ContextHeader,\n    Context,\n    FileHeader,\n    Match,\n    Ignore,\n}\n\nstruct GrepOutputConfig {\n    add_navigate_marker_to_matches: bool,\n    render_context_header_as_hunk_header: bool,\n    pad_line_number: bool,\n}\n\nlazy_static! {\n    static ref OUTPUT_CONFIG: GrepOutputConfig = make_output_config();\n}\n\nimpl LineType {\n    fn file_path_separator(&self) -> &str {\n        // grep, rg, and git grep use \":\" for matching lines\n        // and \"-\" for non-matching lines (and `git grep -W`\n        // uses \"=\" for a context header line).\n        match self {\n            LineType::Match => \":\",\n            LineType::Context => \"-\",\n            LineType::ContextHeader => \"=\",\n            LineType::Ignore | LineType::FileHeader => \"\",\n        }\n    }\n}\n\nimpl StateMachine<'_> {\n    // If this is a line of grep output then render it accordingly.\n    pub fn handle_grep_line(&mut self) -> std::io::Result<bool> {\n        self.painter.emit()?;\n\n        let (previous_path, previous_line_type, previous_line, try_parse) = match &self.state {\n            State::Grep(_, line_type, path, line_number) => {\n                (Some(path.clone()), Some(line_type), line_number, true)\n            }\n            State::Unknown => (None, None, &None, true),\n            _ => (None, None, &None, false),\n        };\n        if !try_parse {\n            return Ok(false);\n        }\n\n        // Try parse_raw_grep_line on raw_line, and fall back to parse_grep_line\n        let raw_line = self.raw_line.clone(); // TODO: avoid clone\n        let line;\n        let grep_line = if let Some(grep_line) = parse_raw_grep_line(&raw_line) {\n            grep_line\n        } else {\n            line = self.line.clone(); // TODO: avoid clone\n            if let Some(grep_line) = parse_grep_line(&line) {\n                grep_line\n            } else {\n                return Ok(false);\n            }\n        };\n\n        if matches!(grep_line.line_type, LineType::Ignore) {\n            return Ok(true);\n        }\n        let first_path = previous_path.is_none();\n        let new_path = first_path || previous_path.as_deref() != Some(&grep_line.path);\n        let line_number_jump = previous_line < &grep_line.line_number.as_ref().map(|n| n - 1);\n        // Emit a '--' section separator when output contains context lines (i.e. *grep option -A, -B, -C is in effect).\n        let new_section = !new_path\n            && (previous_line_type == Some(&LineType::Context)\n                || grep_line.line_type == LineType::Context)\n            && line_number_jump;\n        if new_path {\n            self.painter.set_syntax(Some(grep_line.path.as_ref()));\n        }\n        if new_path || new_section {\n            self.painter.set_highlighter()\n        }\n        self.state = State::Grep(\n            self.config\n                .grep_output_type\n                .clone()\n                .unwrap_or_else(|| grep_line.grep_type.clone()),\n            grep_line.line_type,\n            grep_line.path.to_string(),\n            grep_line.line_number,\n        );\n        match &self.state {\n            State::Grep(GrepType::Ripgrep, _, _, _) => {\n                self.emit_ripgrep_format_grep_line(grep_line, new_path, first_path, new_section)\n            }\n            State::Grep(GrepType::Classic, _, _, _) => {\n                self.emit_classic_format_grep_line(grep_line)\n            }\n            _ => delta_unreachable(\"Impossible state while handling grep line.\"),\n        }?;\n        Ok(true)\n    }\n\n    // Emulate ripgrep output: each section of hits from the same path has a header line,\n    // and sections are separated by a blank line. Set language whenever path changes.\n    fn emit_ripgrep_format_grep_line(\n        &mut self,\n        mut grep_line: GrepLine,\n        new_path: bool,\n        first_path: bool,\n        new_section: bool,\n    ) -> std::io::Result<()> {\n        if new_path {\n            // Emit new path header line\n            if !first_path {\n                writeln!(self.painter.writer)?;\n            }\n            handlers::hunk_header::write_line_of_code_with_optional_path_and_line_number(\n                \"\",\n                &[(0, 0)],\n                None,\n                &mut self.painter,\n                &self.line,\n                &grep_line.path,\n                self.config.ripgrep_header_style.decoration_style,\n                &self.config.grep_file_style,\n                &self.config.grep_line_number_style,\n                &HunkHeaderIncludeFilePath::Yes,\n                &HunkHeaderIncludeLineNumber::No,\n                &HunkHeaderIncludeHunkLabel::Yes,\n                &HunkHeaderIncludeCodeFragment::YesNoSpace,\n                \"\",\n                self.config,\n            )?\n        }\n        if new_section {\n            writeln!(self.painter.writer, \"--\")?;\n        }\n        // Emit the actual grep hit line\n        let code_style_sections = match (&grep_line.line_type, &grep_line.submatches) {\n            (LineType::Match, Some(_)) => {\n                // We expand tabs at this late stage because\n                // the tabs are escaped in the JSON, so\n                // expansion must come after JSON parsing.\n                // (At the time of writing, we are in this\n                // arm iff we are handling `ripgrep --json`\n                // output.)\n                grep_line.expand_tabs(&self.config.tab_cfg);\n                make_style_sections(\n                    &grep_line.code,\n                    &grep_line.submatches.unwrap(),\n                    self.config.grep_match_word_style,\n                    self.config.grep_match_line_style,\n                )\n            }\n            (LineType::Match, None) => {\n                // HACK: We need tabs expanded, and we need\n                // the &str passed to\n                // `get_code_style_sections` to live long\n                // enough. But at this point it is guaranteed\n                // that this handler is going to handle this\n                // line, so mutating it is acceptable.\n                self.raw_line = tabs::expand(&self.raw_line, &self.config.tab_cfg);\n                get_code_style_sections(\n                    &self.raw_line,\n                    self.config.grep_match_word_style,\n                    self.config.grep_match_line_style,\n                    &grep_line.path,\n                    grep_line.line_number,\n                )\n                .unwrap_or(StyleSectionSpecifier::Style(\n                    self.config.grep_match_line_style,\n                ))\n            }\n            _ => StyleSectionSpecifier::Style(self.config.grep_context_line_style),\n        };\n        handlers::hunk_header::write_line_of_code_with_optional_path_and_line_number(\n            &grep_line.code,\n            &[(grep_line.line_number.unwrap_or(0), 0)],\n            Some(code_style_sections),\n            &mut self.painter,\n            &self.line,\n            &grep_line.path,\n            crate::style::DecorationStyle::NoDecoration,\n            &self.config.grep_file_style,\n            &self.config.grep_line_number_style,\n            &HunkHeaderIncludeFilePath::No,\n            if grep_line.line_number.is_some() {\n                &HunkHeaderIncludeLineNumber::Yes\n            } else {\n                &HunkHeaderIncludeLineNumber::No\n            },\n            &HunkHeaderIncludeHunkLabel::No,\n            &HunkHeaderIncludeCodeFragment::YesNoSpace,\n            grep_line.line_type.file_path_separator(),\n            self.config,\n        )\n    }\n\n    fn emit_classic_format_grep_line(&mut self, grep_line: GrepLine) -> std::io::Result<()> {\n        match (\n            &grep_line.line_type,\n            OUTPUT_CONFIG.render_context_header_as_hunk_header,\n        ) {\n            // Emit context header line (`git grep -W`)\n            (LineType::ContextHeader, true) => {\n                handlers::hunk_header::write_line_of_code_with_optional_path_and_line_number(\n                    &grep_line.code,\n                    &[(grep_line.line_number.unwrap_or(0), 0)],\n                    None,\n                    &mut self.painter,\n                    &self.line,\n                    &grep_line.path,\n                    self.config.classic_grep_header_style.decoration_style,\n                    &self.config.classic_grep_header_file_style,\n                    &self.config.grep_line_number_style,\n                    &self.config.hunk_header_style_include_file_path,\n                    &self.config.hunk_header_style_include_line_number,\n                    &HunkHeaderIncludeHunkLabel::Yes,\n                    &HunkHeaderIncludeCodeFragment::Yes,\n                    grep_line.line_type.file_path_separator(),\n                    self.config,\n                )?\n            }\n            _ => {\n                if self.config.navigate {\n                    write!(\n                        self.painter.writer,\n                        \"{}\",\n                        match (\n                            &grep_line.line_type,\n                            OUTPUT_CONFIG.add_navigate_marker_to_matches\n                        ) {\n                            (LineType::Match, true) => \"• \",\n                            (_, true) => \"  \",\n                            _ => \"\",\n                        }\n                    )?\n                }\n                self._emit_classic_format_file_and_line_number(&grep_line)?;\n                self._emit_classic_format_code(grep_line)?;\n            }\n        }\n        Ok(())\n    }\n\n    fn _emit_classic_format_file_and_line_number(\n        &mut self,\n        grep_line: &GrepLine,\n    ) -> std::io::Result<()> {\n        let separator = if self.config.grep_separator_symbol == \"keep\" {\n            grep_line.line_type.file_path_separator()\n        } else {\n            // But \":\" results in a \"file/path:number:\"\n            // construct that terminal emulators are more likely\n            // to recognize and render as a clickable link. If\n            // navigate is enabled then there is already a good\n            // visual indicator of match lines (in addition to\n            // the grep-match-style highlighting) and so we use\n            // \":\" for matches and non-matches alike.\n            &self.config.grep_separator_symbol\n        };\n        write!(\n            self.painter.writer,\n            \"{}\",\n            paint::paint_file_path_with_line_number(\n                grep_line.line_number,\n                &grep_line.path,\n                OUTPUT_CONFIG.pad_line_number,\n                separator,\n                true,\n                Some(self.config.grep_file_style),\n                Some(self.config.grep_line_number_style),\n                self.config\n            )\n        )?;\n        Ok(())\n    }\n\n    fn _emit_classic_format_code(&mut self, mut grep_line: GrepLine) -> std::io::Result<()> {\n        let code_style_sections = match (&grep_line.line_type, &grep_line.submatches) {\n            (LineType::Match, Some(_)) => {\n                // We expand tabs at this late stage because\n                // the tabs are escaped in the JSON, so\n                // expansion must come after JSON parsing.\n                // (At the time of writing, we are in this\n                // arm iff we are handling `ripgrep --json`\n                // output.)\n                grep_line.expand_tabs(&self.config.tab_cfg);\n                make_style_sections(\n                    &grep_line.code,\n                    &grep_line.submatches.unwrap(),\n                    self.config.grep_match_word_style,\n                    self.config.grep_match_line_style,\n                )\n            }\n            (LineType::Match, None) => {\n                // HACK: We need tabs expanded, and we need\n                // the &str passed to\n                // `get_code_style_sections` to live long\n                // enough. But at the point it is guaranteed\n                // that this handler is going to handle this\n                // line, so mutating it is acceptable.\n                self.raw_line = tabs::expand(&self.raw_line, &self.config.tab_cfg);\n                get_code_style_sections(\n                    &self.raw_line,\n                    self.config.grep_match_word_style,\n                    self.config.grep_match_line_style,\n                    &grep_line.path,\n                    grep_line.line_number,\n                )\n                .unwrap_or(StyleSectionSpecifier::Style(\n                    self.config.grep_match_line_style,\n                ))\n            }\n            _ => StyleSectionSpecifier::Style(self.config.grep_context_line_style),\n        };\n        self.painter.syntax_highlight_and_paint_line(\n            &format!(\"{}\\n\", grep_line.code),\n            code_style_sections,\n            self.state.clone(),\n            BgShouldFill::default(),\n        );\n        Ok(())\n    }\n}\n\nfn make_style_sections<'a>(\n    line: &'a str,\n    submatches: &[(usize, usize)],\n    match_style: Style,\n    non_match_style: Style,\n) -> StyleSectionSpecifier<'a> {\n    let mut sections = Vec::new();\n    let mut curr = 0;\n    for (start_, end_) in submatches {\n        let (start, end) = (*start_, *end_);\n        if start > curr {\n            sections.push((non_match_style, &line[curr..start]))\n        };\n        sections.push((match_style, &line[start..end]));\n        curr = end;\n    }\n    if curr < line.len() {\n        sections.push((non_match_style, &line[curr..]))\n    }\n    StyleSectionSpecifier::StyleSections(sections)\n}\n\n// Return style sections describing colors received from git.\nfn get_code_style_sections<'b>(\n    raw_line: &'b str,\n    match_style: Style,\n    non_match_style: Style,\n    path: &str,\n    line_number: Option<usize>,\n) -> Option<StyleSectionSpecifier<'b>> {\n    if let Some(prefix_end) = ansi::ansi_preserving_index(\n        raw_line,\n        match line_number {\n            Some(n) => format!(\"{path}:{n}:\").len() - 1,\n            None => path.len(),\n        },\n    ) {\n        let match_style_sections = ansi::parse_style_sections(&raw_line[(prefix_end + 1)..])\n            .iter()\n            .map(|(ansi_term_style, s)| {\n                if ansi_term_style.is_bold\n                    && ansi_term_style.foreground == Some(ansi_term::Colour::Red)\n                {\n                    (match_style, *s)\n                } else {\n                    (non_match_style, *s)\n                }\n            })\n            .collect();\n        Some(StyleSectionSpecifier::StyleSections(match_style_sections))\n    } else {\n        None\n    }\n}\n\nfn make_output_config() -> GrepOutputConfig {\n    match &*process::calling_process() {\n        process::CallingProcess::GitGrep(command_line)\n            if command_line.short_options.contains(\"-W\")\n                || command_line.long_options.contains(\"--function-context\") =>\n        {\n            // --function-context is in effect: i.e. the entire function is\n            // being displayed. In that case we don't render the first line as a\n            // header, since the second line is the true next line, and it will\n            // be more readable to have these displayed normally. We do add the\n            // navigate marker, since match lines will be surrounded by (many)\n            // non-match lines. And, since we are printing (many) successive lines\n            // of code, we pad line numbers <100 in order to maintain code\n            // alignment up to line 9999.\n            GrepOutputConfig {\n                render_context_header_as_hunk_header: false,\n                add_navigate_marker_to_matches: true,\n                pad_line_number: true,\n            }\n        }\n        process::CallingProcess::GitGrep(command_line)\n            if command_line.short_options.contains(\"-p\")\n                || command_line.long_options.contains(\"--show-function\") =>\n        {\n            // --show-function is in effect, i.e. the function header is being\n            // displayed, along with matches within the function. Therefore we\n            // render the first line as a header, but we do not add the navigate\n            // marker, since all non-header lines are matches.\n            GrepOutputConfig {\n                render_context_header_as_hunk_header: true,\n                add_navigate_marker_to_matches: false,\n                pad_line_number: true,\n            }\n        }\n        _ => GrepOutputConfig {\n            render_context_header_as_hunk_header: true,\n            add_navigate_marker_to_matches: false,\n            pad_line_number: true,\n        },\n    }\n}\n\nenum GrepLineRegex {\n    WithColor,\n    WithFileExtensionAndLineNumber,\n    WithFileExtension,\n    WithFileExtensionNoSpaces,\n    WithoutSeparatorCharacters,\n}\n\nlazy_static! {\n    static ref GREP_LINE_REGEX_ASSUMING_COLOR: Regex =\n        make_grep_line_regex(GrepLineRegex::WithColor);\n}\n\nlazy_static! {\n    static ref GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION_AND_LINE_NUMBER: Regex =\n        make_grep_line_regex(GrepLineRegex::WithFileExtensionAndLineNumber);\n}\n\nlazy_static! {\n    static ref GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION_NO_SPACES: Regex =\n        make_grep_line_regex(GrepLineRegex::WithFileExtensionNoSpaces);\n}\n\nlazy_static! {\n    static ref GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION: Regex =\n        make_grep_line_regex(GrepLineRegex::WithFileExtension);\n}\n\nlazy_static! {\n    static ref GREP_LINE_REGEX_ASSUMING_NO_INTERNAL_SEPARATOR_CHARS: Regex =\n        make_grep_line_regex(GrepLineRegex::WithoutSeparatorCharacters);\n}\n\n// See tests for example grep lines\nfn make_grep_line_regex(regex_variant: GrepLineRegex) -> Regex {\n    // Grep tools such as `git grep` and `rg` emit lines like the following,\n    // where \"xxx\" represents arbitrary code. Note that there are 3 possible\n    // \"separator characters\": ':', '-', '='.\n\n    // The format is ambiguous, but we attempt to parse it.\n\n    // src/co-7-fig.rs:xxx\n    // src/co-7-fig.rs:7:xxx\n    // src/co-7-fig.rs-xxx\n    // src/co-7-fig.rs-7-xxx\n    // src/co-7-fig.rs=xxx\n    // src/co-7-fig.rs=7=xxx\n\n    // Makefile:xxx\n    // Makefile:7:xxx\n    // Makefile-xxx\n    // Makefile-7-xxx\n\n    // Make-7-file:xxx\n    // Make-7-file:7:xxx\n    // Make-7-file-xxx\n    // Make-7-file-7-xxx\n\n    let file_path = match regex_variant {\n        GrepLineRegex::WithColor => {\n            r\"\n            \\x1b\\[35m               # starts with ANSI color sequence\n        (                        # 1. file name\n            [^\\x1b]*                # anything\n        )\n            \\x1b\\[m                 # ends with ANSI color reset\n        \"\n        }\n        GrepLineRegex::WithFileExtensionAndLineNumber | GrepLineRegex::WithFileExtension => {\n            r\"\n        (                        # 1. file name (colons not allowed)\n            [^:|\\ ]                 # try to be strict about what a file path can start with\n            [^:]*                   # anything\n            [^\\ ]\\.[^.\\ :=-]{1,10}  # extension\n        )\n        \"\n        }\n        GrepLineRegex::WithFileExtensionNoSpaces => {\n            r\"\n        (                        # 1. file name (colons not allowed)\n            [^:|\\ ]+                # try to be strict about what a file path can start with\n            [^\\ ]\\.[^.\\ :=-]{1,6}   # extension\n        )\n        \"\n        }\n        GrepLineRegex::WithoutSeparatorCharacters => {\n            r\"\n        (                        # 1. file name (colons not allowed)\n            [^:|\\ =-]               # try to be strict about what a file path can start with\n            [^:=-]*                 # anything except separators\n            [^:\\ ]                  # a file name cannot end with whitespace\n        )\n        \"\n        }\n    };\n\n    let separator = match regex_variant {\n        GrepLineRegex::WithColor => {\n            r#\"\n            \\x1b\\[36m        # starts with ANSI color sequence for separator\n    (?:\n        (\n            :                # 2. match marker\n            \\x1b\\[m          # ANSI color reset\n            (?:              # optional: line number followed by second match marker\n                \\x1b\\[32m        # ANSI color sequence for line number\n                ([0-9]+)         # 3. line number\n                \\x1b\\[m          # ANSI color reset\n                \\x1b\\[36m        # ANSI color sequence for separator\n                :                # second match marker\n                \\x1b\\[m          # ANSI color reset\n            )?\n        )\n        |\n        (\n            -                # 4. nomatch marker\n            \\x1b\\[m          # ANSI color reset\n            (?:              # optional: line number followed by second nomatch marker\n                \\x1b\\[32m        # ANSI color sequence for line number\n                ([0-9]+)         # 5. line number\n                \\x1b\\[m          # ANSI color reset\n                \\x1b\\[36m        # ANSI color sequence for separator\n                -                # second nomatch marker\n                \\x1b\\[m          # ANSI color reset\n            )?\n        )\n        |\n        (\n            =                # 6. context header marker\n            \\x1b\\[m          # ANSI color reset\n            (?:              # optional: line number followed by second context header marker\n                \\x1b\\[32m        # ANSI color sequence for line number\n                ([0-9]+)         # 7. line number\n                \\x1b\\[m          # ANSI color reset\n                \\x1b\\[36m        # ANSI color sequence for separator\n                =                # second context header marker\n                \\x1b\\[m          # ANSI color reset\n            )?\n        )\n    )\n            \"#\n        }\n        GrepLineRegex::WithFileExtensionAndLineNumber => {\n            r#\"\n    (?:\n        (\n            :                # 2. match marker\n            ([0-9]+):        # 3. line number followed by second match marker\n        )\n        |\n        (\n            -                # 4. nomatch marker\n            ([0-9]+)-        # 5. line number followed by second nomatch marker\n        )\n        |\n        (\n            =                # 6. context header marker\n            ([0-9]+)=        # 7. line number followed by second header marker\n        )\n    )\n            \"#\n        }\n        _ => {\n            r#\"\n    (?:\n        (\n            :                # 2. match marker\n            (?:([0-9]+):)?   # 3. optional: line number followed by second match marker\n        )\n        |\n        (\n            -                # 4. nomatch marker\n            (?:([0-9]+)-)?   # 5. optional: line number followed by second nomatch marker\n        )\n        |\n        (\n            =                # 6. context header marker\n            (?:([0-9]+)=)?   # 7. optional: line number followed by second header marker\n        )\n    )\n        \"#\n        }\n    };\n\n    Regex::new(&format!(\n        \"(?x)\n^\n{file_path}\n{separator}\n(.*)                         # 8. code (i.e. line contents)\n$\n\",\n    ))\n    .unwrap()\n}\n\npub fn parse_grep_line(line: &str) -> Option<GrepLine<'_>> {\n    if line.starts_with('{') {\n        ripgrep_json::parse_line(line)\n    } else {\n        match &*process::calling_process() {\n            process::CallingProcess::GitGrep(_) | process::CallingProcess::OtherGrep => [\n                &*GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION_AND_LINE_NUMBER,\n                &*GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION_NO_SPACES,\n                &*GREP_LINE_REGEX_ASSUMING_FILE_EXTENSION,\n                &*GREP_LINE_REGEX_ASSUMING_NO_INTERNAL_SEPARATOR_CHARS,\n            ]\n            .iter()\n            .find_map(|regex| _parse_grep_line(regex, line)),\n            _ => None,\n        }\n    }\n}\n\npub fn parse_raw_grep_line(raw_line: &str) -> Option<GrepLine<'_>> {\n    // Early exit if we don't have an escape sequence\n    if !raw_line.starts_with('\\x1b') {\n        return None;\n    }\n    if !matches!(\n        &*process::calling_process(),\n        process::CallingProcess::GitGrep(_) | process::CallingProcess::OtherGrep\n    ) {\n        return None;\n    }\n    _parse_grep_line(&GREP_LINE_REGEX_ASSUMING_COLOR, raw_line).map(|mut grep_line| {\n        grep_line.code = ansi::strip_ansi_codes(&grep_line.code).into();\n        grep_line\n    })\n}\n\npub fn _parse_grep_line<'b>(regex: &Regex, line: &'b str) -> Option<GrepLine<'b>> {\n    let caps = regex.captures(line)?;\n    let file = caps.get(1).unwrap().as_str().into();\n    let (line_type, line_number) = &[\n        (2, LineType::Match),\n        (4, LineType::Context),\n        (6, LineType::ContextHeader),\n    ]\n    .iter()\n    .find_map(|(i, line_type)| {\n        if caps.get(*i).is_some() {\n            let line_number: Option<usize> = caps.get(i + 1).and_then(|m| m.as_str().parse().ok());\n            Some((*line_type, line_number))\n        } else {\n            None\n        }\n    })\n    .unwrap(); // The regex matches so one of the three alternatives must have matched\n    let code = caps.get(8).unwrap().as_str().into();\n\n    Some(GrepLine {\n        grep_type: GrepType::Classic,\n        path: file,\n        line_number: *line_number,\n        line_type: *line_type,\n        code,\n        submatches: None,\n    })\n}\n\n#[cfg(test)]\nmod tests {\n    use crate::handlers::grep::{\n        parse_grep_line, parse_raw_grep_line, GrepLine, GrepType, LineType,\n    };\n    use crate::utils::process::tests::FakeParentArgs;\n\n    #[test]\n    fn test_parse_grep_match() {\n        let fake_parent_grep_command = \"git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"src/co-7-fig.rs:xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/co-7-fig.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/config.rs:use crate::minusplus::MinusPlus;\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"use crate::minusplus::MinusPlus;\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"src/config.rs:    pub line_numbers_style_minusplus: MinusPlus<Style>,\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"    pub line_numbers_style_minusplus: MinusPlus<Style>,\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/con-fig.rs:use crate::minusplus::MinusPlus;\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/con-fig.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"use crate::minusplus::MinusPlus;\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"src/con-fig.rs:    pub line_numbers_style_minusplus: MinusPlus<Style>,\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/con-fig.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"    pub line_numbers_style_minusplus: MinusPlus<Style>,\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"src/de lta.rs:pub fn delta<I>(lines: ByteLines<I>, writer: &mut dyn Write, config: &Config) -> std::io::Result<()>\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                                path: \"src/de lta.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"pub fn delta<I>(lines: ByteLines<I>, writer: &mut dyn Write, config: &Config) -> std::io::Result<()>\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"src/de lta.rs:    pub fn new(writer: &'a mut dyn Write, config: &'a Config) -> Self {\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                                path: \"src/de lta.rs\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"    pub fn new(writer: &'a mut dyn Write, config: &'a Config) -> Self {\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_n_match() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"src/co-7-fig.rs:7:xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/co-7-fig.rs\".into(),\n                line_number: Some(7),\n                line_type: LineType::Match,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/config.rs:21:use crate::minusplus::MinusPlus;\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: Some(21),\n                line_type: LineType::Match,\n                code: \"use crate::minusplus::MinusPlus;\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"src/config.rs:95:    pub line_numbers_style_minusplus: MinusPlus<Style>,\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: Some(95),\n                line_type: LineType::Match,\n                code: \"    pub line_numbers_style_minusplus: MinusPlus<Style>,\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"Makefile:10:test: unit-test end-to-end-test\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"Makefile\".into(),\n                line_number: Some(10),\n                line_type: LineType::Match,\n                code: \"test: unit-test end-to-end-test\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\n                \"Makefile:16:    ./tests/test_raw_output_matches_git_on_full_repo_history\"\n            ),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"Makefile\".into(),\n                line_number: Some(16),\n                line_type: LineType::Match,\n                code: \"    ./tests/test_raw_output_matches_git_on_full_repo_history\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    #[ignore]\n    fn test_parse_grep_n_match_file_name_with_dashes_and_no_extension() {\n        // git grep -n\n        // This fails: we can't parse it currently.\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"etc/examples/119-within-line-edits:4:repo=$(mktemp -d)\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"etc/examples/119-within-line-edits\".into(),\n                line_number: Some(4),\n                line_type: LineType::Match,\n                code: \"repo=$(mktemp -d)\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_n_match_directory_name_with_dashes() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"etc/META-INF/foo.properties:4:value=hi-there\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"etc/META-INF/foo.properties\".into(),\n                line_number: Some(4),\n                line_type: LineType::Match,\n                code: \"value=hi-there\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_color() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n\n        let e = \"\\x1B\";\n        assert_eq!(\n            parse_raw_grep_line(&format!(\n                r#\"{e}[35msrc/zlib-ng/configure{e}[m{e}[36m:{e}[m    -a*=* | -{e}[1;32m-arch{e}[ms=*) ARCHS=$(echo $1 | sed 's/.*=//'); shift ;;\"#\n            )),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/zlib-ng/configure\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: r#\"    -a*=* | --archs=*) ARCHS=$(echo $1 | sed 's/.*=//'); shift ;;\"#.into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_raw_grep_line(&format!(\n                r#\"{e}[35msrc/zlib-ng/configure{e}[m{e}[36m:{e}[m{e}[32m214{e}[m{e}[36m:{e}[m    -a*=* | -{e}[1;32m-arch{e}[ms=*) ARCHS=$(echo $1 | sed 's/.*=//'); shift ;;\"#\n            )),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/zlib-ng/configure\".into(),\n                line_number: Some(214),\n                line_type: LineType::Match,\n                code: r#\"    -a*=* | --archs=*) ARCHS=$(echo $1 | sed 's/.*=//'); shift ;;\"#.into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_no_match() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"src/co-7-fig.rs-xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/co-7-fig.rs\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/config.rs-    pub available_terminal_width: usize,\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: \"    pub available_terminal_width: usize,\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/con-fig.rs-use crate::minusplus::MinusPlus;\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/con-fig.rs\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: \"use crate::minusplus::MinusPlus;\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"de-lta.rs-            if self.source == Source::Unknown {\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"de-lta.rs\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: \"            if self.source == Source::Unknown {\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(r#\"aaa/bbb.scala-              s\"xxx.yyy.zzz: $ccc ddd\"\"#),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"aaa/bbb.scala\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: r#\"              s\"xxx.yyy.zzz: $ccc ddd\"\"#.into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(r#\"aaa/bbb.scala-  val atRegex = Regex.compile(\"(@.*)|(-shdw@.*)\"\"#),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"aaa/bbb.scala\".into(),\n                line_number: None,\n                line_type: LineType::Context,\n                code: r#\"  val atRegex = Regex.compile(\"(@.*)|(-shdw@.*)\"\"#.into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_n_no_match() {\n        // git grep -n\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n        assert_eq!(\n            parse_grep_line(\"src/co-7-fig.rs-7-xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/co-7-fig.rs\".into(),\n                line_number: Some(7),\n                line_type: LineType::Context,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(\"src/config.rs-58-    pub available_terminal_width: usize,\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: Some(58),\n                line_type: LineType::Context,\n                code: \"    pub available_terminal_width: usize,\".into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(r#\"foo.rs-12-  .x-\"#),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"foo.rs\".into(),\n                line_number: Some(12),\n                line_type: LineType::Context,\n                code: r#\"  .x-\"#.into(),\n                submatches: None,\n            })\n        );\n\n        assert_eq!(\n            parse_grep_line(r#\"foo.rs-12-.x-\"#),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"foo.rs\".into(),\n                line_number: Some(12),\n                line_type: LineType::Context,\n                code: r#\".x-\"#.into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_match_no_extension() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"Makefile:xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"Makefile\".into(),\n                line_number: None,\n                line_type: LineType::Match,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_n_match_no_extension() {\n        // git grep -n\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n        assert_eq!(\n            parse_grep_line(\"Makefile:7:xxx\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"Makefile\".into(),\n                line_number: Some(7),\n                line_type: LineType::Match,\n                code: \"xxx\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    #[allow(non_snake_case)]\n    fn test_parse_grep_W_context_header() {\n        // git grep -W\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n        assert_eq!(\n            parse_grep_line(\"src/config.rs=pub struct Config {\"), // match\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: None,\n                line_type: LineType::ContextHeader,\n                code: \"pub struct Config {\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    #[allow(non_snake_case)]\n    fn test_parse_grep_W_n_context_header() {\n        // git grep -n -W\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        assert_eq!(\n            parse_grep_line(\"src/config.rs=57=pub struct Config {\"),\n            Some(GrepLine {\n                grep_type: GrepType::Classic,\n                path: \"src/config.rs\".into(),\n                line_number: Some(57),\n                line_type: LineType::ContextHeader,\n                code: \"pub struct Config {\".into(),\n                submatches: None,\n            })\n        );\n    }\n\n    #[test]\n    fn test_parse_grep_not_grep_output() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        let not_grep_output = \"|       expose it in delta's color output styled with grep:\";\n        assert_eq!(parse_grep_line(not_grep_output), None);\n    }\n\n    #[test]\n    fn test_parse_grep_parent_command_is_not_grep_1() {\n        let fake_parent_grep_command =\n            \"/usr/local/bin/notgrep --doesnt-matter --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::once(fake_parent_grep_command);\n\n        let apparently_grep_output = \"src/co-7-fig.rs:xxx\";\n        assert_eq!(parse_grep_line(apparently_grep_output), None);\n    }\n\n    #[test]\n    fn test_parse_grep_parent_command_is_not_grep_2() {\n        // No fake parent grep command\n        let apparently_grep_output = \"src/co-7-fig.rs:xxx\";\n        assert_eq!(parse_grep_line(apparently_grep_output), None);\n    }\n\n    #[test]\n    fn test_get_code_style_sections() {\n        use crate::ansi::strip_ansi_codes;\n        use crate::handlers::grep::get_code_style_sections;\n        use crate::paint::StyleSectionSpecifier;\n        use crate::style::Style;\n\n        let fake_parent_grep_command = \"git --doesnt-matter grep --nor-this nor_this -- nor_this\";\n        let _args = FakeParentArgs::for_scope(fake_parent_grep_command);\n\n        let miss = Style::new();\n        let hit = Style {\n            is_emph: true,\n            ..miss\n        };\n\n        let escape = \"\\x1B\";\n        let working_example = format!(\"foo/bar/baz.yaml{escape}[36m:{escape}[m1090{escape}[36m:{escape}[m  - {escape}[1;31mkind: Service{escape}[mAccount\");\n        let stripped = strip_ansi_codes(&working_example);\n        let grep = parse_grep_line(&stripped).unwrap();\n\n        assert_eq!(\n            get_code_style_sections(&working_example, hit, miss, &grep.path, grep.line_number),\n            Some(StyleSectionSpecifier::StyleSections(vec![\n                (miss, \"  - \"),\n                (hit, \"kind: Service\"),\n                (miss, \"Account\")\n            ]))\n        );\n\n        let broken_example = format!(\"foo/bar/baz.yaml{escape}[36m:{escape}[m2{escape}[36m:{escape}[m{escape}[1;31mkind: Service{escape}[m\");\n        let broken_stripped = strip_ansi_codes(&broken_example);\n        let broken_grep = parse_grep_line(&broken_stripped).unwrap();\n\n        assert_eq!(\n            get_code_style_sections(\n                &broken_example,\n                hit,\n                miss,\n                &broken_grep.path,\n                broken_grep.line_number\n            ),\n            Some(StyleSectionSpecifier::StyleSections(vec![(\n                hit,\n                \"kind: Service\"\n            )]))\n        );\n\n        let plus_example = format!(\"etc/examples/189-merge-conflict.2.diff{escape}[36m:{escape}[m10{escape}[36m:{escape}[m{escape}[32m +        let (style, non_emph_style) = {escape}[1;31mmatch{escape}[m state {{{escape}[m\");\n        let plus_stripped = strip_ansi_codes(&plus_example);\n        let plus_grep = parse_grep_line(&plus_stripped).unwrap();\n\n        assert_eq!(\n            get_code_style_sections(\n                &plus_example,\n                hit,\n                miss,\n                &plus_grep.path,\n                plus_grep.line_number\n            ),\n            Some(StyleSectionSpecifier::StyleSections(vec![\n                (miss, \" +        let (style, non_emph_style) = \"),\n                (hit, \"match\"),\n                (miss, \" state {\")\n            ]))\n        );\n    }\n}\n"
  },
  {
    "path": "src/handlers/hunk.rs",
    "content": "use std::cmp::min;\n\nuse lazy_static::lazy_static;\n\nuse crate::cli;\nuse crate::config::{delta_unreachable, Config};\nuse crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\nuse crate::paint::{prepare, prepare_raw_line};\nuse crate::style;\nuse crate::utils::process::{self, CallingProcess};\nuse crate::utils::tabs;\n\n// HACK: WordDiff should probably be a distinct top-level line state\npub fn is_word_diff() -> bool {\n    #[cfg(not(test))]\n    {\n        *CACHED_IS_WORD_DIFF\n    }\n    #[cfg(test)]\n    {\n        compute_is_word_diff()\n    }\n}\n\nlazy_static! {\n    static ref CACHED_IS_WORD_DIFF: bool = compute_is_word_diff();\n}\n\nfn compute_is_word_diff() -> bool {\n    match &*process::calling_process() {\n        CallingProcess::GitDiff(cmd_line)\n        | CallingProcess::GitShow(cmd_line, _)\n        | CallingProcess::GitLog(cmd_line)\n        | CallingProcess::GitReflog(cmd_line) => {\n            cmd_line.long_options.contains(\"--word-diff\")\n                || cmd_line.long_options.contains(\"--word-diff-regex\")\n                || cmd_line.long_options.contains(\"--color-words\")\n        }\n        _ => false,\n    }\n}\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_hunk_line(&self) -> bool {\n        matches!(\n            self.state,\n            State::HunkHeader(_, _, _, _)\n                | State::HunkZero(_, _)\n                | State::HunkMinus(_, _)\n                | State::HunkPlus(_, _)\n        )\n    }\n\n    /// Handle a hunk line, i.e. a minus line, a plus line, or an unchanged line.\n    // In the case of a minus or plus line, we store the line in a\n    // buffer. When we exit the changed region we process the collected\n    // minus and plus lines jointly, in order to paint detailed\n    // highlighting according to inferred edit operations. In the case of\n    // an unchanged line, we paint it immediately.\n    pub fn handle_hunk_line(&mut self) -> std::io::Result<bool> {\n        use DiffType::*;\n        use State::*;\n\n        // A true hunk line should start with one of: '+', '-', ' '. However, handle_hunk_line\n        // handles all lines until the state transitions away from the hunk states.\n        if !self.test_hunk_line() {\n            return Ok(false);\n        }\n        // Don't let the line buffers become arbitrarily large -- if we\n        // were to allow that, then for a large deleted/added file we\n        // would process the entire file before painting anything.\n        if self.painter.minus_lines.len() > self.config.line_buffer_size\n            || self.painter.plus_lines.len() > self.config.line_buffer_size\n        {\n            self.painter.paint_buffered_minus_and_plus_lines();\n        }\n        if let State::HunkHeader(_, parsed_hunk_header, line, raw_line) = &self.state.clone() {\n            self.emit_hunk_header_line(parsed_hunk_header, line, raw_line)?;\n        }\n        self.state = match new_line_state(&self.line, &self.raw_line, &self.state, self.config) {\n            Some(HunkMinus(diff_type, raw_line)) => {\n                if let HunkPlus(_, _) = self.state {\n                    // We have just entered a new subhunk; process the previous one\n                    // and flush the line buffers.\n                    self.painter.paint_buffered_minus_and_plus_lines();\n                }\n                let n_parents = diff_type.n_parents();\n                let line = prepare(&self.line, n_parents, self.config);\n                let state = HunkMinus(diff_type, raw_line);\n                self.painter.minus_lines.push((line, state.clone()));\n                self.minus_line_counter.count_line();\n                state\n            }\n            Some(HunkPlus(diff_type, raw_line)) => {\n                let n_parents = diff_type.n_parents();\n                let line = prepare(&self.line, n_parents, self.config);\n                let state = HunkPlus(diff_type, raw_line);\n                self.painter.plus_lines.push((line, state.clone()));\n                state\n            }\n            Some(HunkZero(diff_type, raw_line)) => {\n                // We are in a zero (unchanged) line, therefore we have just exited a subhunk (a\n                // sequence of consecutive minus (removed) and/or plus (added) lines). Process that\n                // subhunk and flush the line buffers.\n                self.painter.paint_buffered_minus_and_plus_lines();\n                let n_parents = if is_word_diff() {\n                    0\n                } else {\n                    diff_type.n_parents()\n                };\n                let line = prepare(&self.line, n_parents, self.config);\n                let state = State::HunkZero(diff_type, raw_line);\n                self.painter.paint_zero_line(&line, state.clone());\n                self.minus_line_counter.count_line();\n                state\n            }\n            _ => {\n                // The first character here could be e.g. '\\' from '\\ No newline at end of file'. This\n                // is not a hunk line, but the parser does not have a more accurate state corresponding\n                // to this.\n                self.painter.paint_buffered_minus_and_plus_lines();\n                self.painter\n                    .output_buffer\n                    .push_str(&tabs::expand(&self.raw_line, &self.config.tab_cfg));\n                self.painter.output_buffer.push('\\n');\n                State::HunkZero(Unified, None)\n            }\n        };\n        self.painter.emit()?;\n        Ok(true)\n    }\n}\n\n// Return Some(prepared_raw_line) if delta should emit this line raw.\nfn maybe_raw_line(\n    raw_line: &str,\n    state_style_is_raw: bool,\n    n_parents: usize,\n    non_raw_styles: &[style::Style],\n    config: &Config,\n) -> Option<String> {\n    let emit_raw_line = is_word_diff()\n        || config.inspect_raw_lines == cli::InspectRawLines::True\n            && style::line_has_style_other_than(raw_line, non_raw_styles)\n        || state_style_is_raw;\n    if emit_raw_line {\n        Some(prepare_raw_line(raw_line, n_parents, config))\n    } else {\n        None\n    }\n}\n\n// Return the new state corresponding to `new_line`, given the previous state. A return value of\n// None means that `new_line` is not recognized as a hunk line.\nfn new_line_state(\n    new_line: &str,\n    new_raw_line: &str,\n    prev_state: &State,\n    config: &Config,\n) -> Option<State> {\n    use DiffType::*;\n    use MergeParents::*;\n    use State::*;\n\n    if is_word_diff() {\n        return Some(HunkZero(\n            Unified,\n            maybe_raw_line(new_raw_line, config.zero_style.is_raw, 0, &[], config),\n        ));\n    }\n\n    // 1. Given the previous line state, compute the new line diff type. These are basically the\n    //    same, except that a string prefix is converted into an integer number of parents (prefix\n    //    length).\n    let diff_type = match prev_state {\n        HunkMinus(Unified, _)\n        | HunkZero(Unified, _)\n        | HunkPlus(Unified, _)\n        | HunkHeader(Unified, _, _, _) => Unified,\n        HunkHeader(Combined(Number(n), InMergeConflict::No), _, _, _) => {\n            Combined(Number(*n), InMergeConflict::No)\n        }\n        // The prefixes are specific to the previous line, but the number of merge parents remains\n        // equal to the prefix length.\n        HunkHeader(Combined(Prefix(prefix), InMergeConflict::No), _, _, _) => {\n            Combined(Number(prefix.len()), InMergeConflict::No)\n        }\n        HunkMinus(Combined(Prefix(prefix), in_merge_conflict), _)\n        | HunkZero(Combined(Prefix(prefix), in_merge_conflict), _)\n        | HunkPlus(Combined(Prefix(prefix), in_merge_conflict), _) => {\n            Combined(Number(prefix.len()), in_merge_conflict.clone())\n        }\n        HunkMinus(Combined(Number(n), in_merge_conflict), _)\n        | HunkZero(Combined(Number(n), in_merge_conflict), _)\n        | HunkPlus(Combined(Number(n), in_merge_conflict), _) => {\n            Combined(Number(*n), in_merge_conflict.clone())\n        }\n        _ => delta_unreachable(&format!(\n            \"Unexpected state in new_line_state: {prev_state:?}\",\n        )),\n    };\n\n    // 2. Given the new diff state, and the new line, compute the new prefix.\n    let (prefix_char, prefix, in_merge_conflict) = match diff_type.clone() {\n        Unified => (new_line.chars().next(), None, None),\n        Combined(Number(n_parents), in_merge_conflict) => {\n            let prefix = &new_line[..min(n_parents, new_line.len())];\n            let prefix_char = match prefix.chars().find(|c| c == &'-' || c == &'+') {\n                Some(c) => Some(c),\n                None => match prefix.chars().find(|c| c != &' ') {\n                    None => Some(' '),\n                    Some(_) => None,\n                },\n            };\n            (\n                prefix_char,\n                Some(prefix.to_string()),\n                Some(in_merge_conflict),\n            )\n        }\n        _ => delta_unreachable(\"\"),\n    };\n\n    let maybe_minus_raw_line = || {\n        maybe_raw_line(\n            new_raw_line,\n            config.minus_style.is_raw,\n            diff_type.n_parents(),\n            &[*style::GIT_DEFAULT_MINUS_STYLE, config.git_minus_style],\n            config,\n        )\n    };\n    let maybe_zero_raw_line = || {\n        maybe_raw_line(\n            new_raw_line,\n            config.zero_style.is_raw,\n            diff_type.n_parents(),\n            &[],\n            config,\n        )\n    };\n    let maybe_plus_raw_line = || {\n        maybe_raw_line(\n            new_raw_line,\n            config.plus_style.is_raw,\n            diff_type.n_parents(),\n            &[*style::GIT_DEFAULT_PLUS_STYLE, config.git_plus_style],\n            config,\n        )\n    };\n\n    // 3. Given the new prefix, compute the full new line state...except without its raw_line, which\n    //    is added later. TODO: that is not a sensible design.\n    match (prefix_char, prefix, in_merge_conflict) {\n        (Some('-'), None, None) => Some(HunkMinus(Unified, maybe_minus_raw_line())),\n        (Some(' '), None, None) => Some(HunkZero(Unified, maybe_zero_raw_line())),\n        (Some('+'), None, None) => Some(HunkPlus(Unified, maybe_plus_raw_line())),\n        (Some('-'), Some(prefix), Some(in_merge_conflict)) => Some(HunkMinus(\n            Combined(Prefix(prefix), in_merge_conflict),\n            maybe_minus_raw_line(),\n        )),\n        (Some(' '), Some(prefix), Some(in_merge_conflict)) => Some(HunkZero(\n            Combined(Prefix(prefix), in_merge_conflict),\n            maybe_zero_raw_line(),\n        )),\n        (Some('+'), Some(prefix), Some(in_merge_conflict)) => Some(HunkPlus(\n            Combined(Prefix(prefix), in_merge_conflict),\n            maybe_plus_raw_line(),\n        )),\n        _ => None,\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use crate::tests::integration_test_utils::DeltaTest;\n\n    mod word_diff {\n        use super::*;\n\n        #[test]\n        fn test_word_diff() {\n            DeltaTest::with_args(&[])\n                .with_calling_process(\"git diff --word-diff\")\n                .explain_ansi()\n                .with_input(GIT_DIFF_WORD_DIFF)\n                .expect_after_skip(\n                    11,\n                    \"\n#indent_mark\n(blue)───(blue)┐(normal)\n(blue)1(normal): (blue)│(normal)\n(blue)───(blue)┘(normal)\n    (red)[-aaa-](green){+bbb+}(normal)\n\",\n                );\n        }\n\n        #[test]\n        fn test_color_words() {\n            DeltaTest::with_args(&[])\n                .with_calling_process(\"git diff --color-words\")\n                .explain_ansi()\n                .with_input(GIT_DIFF_COLOR_WORDS)\n                .expect_after_skip(\n                    11,\n                    \"\n#indent_mark\n(blue)───(blue)┐(normal)\n(blue)1(normal): (blue)│(normal)\n(blue)───(blue)┘(normal)\n    (red)aaa(green)bbb(normal)\n\",\n                );\n        }\n\n        #[test]\n        #[ignore] // FIXME\n        fn test_color_words_map_styles() {\n            DeltaTest::with_args(&[\n                \"--map-styles\",\n                \"red => bold yellow #dddddd, green => bold blue #dddddd\",\n            ])\n            .with_calling_process(\"git diff --color-words\")\n            .explain_ansi()\n            .with_input(GIT_DIFF_COLOR_WORDS)\n            .inspect()\n            .expect_after_skip(\n                11,\n                r##\"\n#indent_mark\n(blue)───(blue)┐(normal)\n(blue)1(normal): (blue)│(normal)\n(blue)───(blue)┘(normal)\n    (bold yellow \"#dddddd\")aaa(bold blue \"#dddddd\")bbb(normal)\n\"##,\n            );\n        }\n\n        #[test]\n        fn test_hunk_line_style_raw() {\n            DeltaTest::with_args(&[\"--minus-style\", \"raw\", \"--plus-style\", \"raw\"])\n                .explain_ansi()\n                .with_input(GIT_DIFF_WITH_COLOR)\n                .expect_after_skip(\n                    14,\n                    \"\n(red)aaa(normal)\n(green)bbb(normal)\n\",\n                );\n        }\n\n        #[test]\n        fn test_hunk_line_style_raw_map_styles() {\n            DeltaTest::with_args(&[\n                \"--minus-style\",\n                \"raw\",\n                \"--plus-style\",\n                \"raw\",\n                \"--map-styles\",\n                \"red => bold blue, green => dim yellow\",\n            ])\n            .explain_ansi()\n            .with_input(GIT_DIFF_WITH_COLOR)\n            .expect_after_skip(\n                14,\n                \"\n(bold blue)aaa(normal)\n(dim yellow)bbb(normal)\n\",\n            );\n        }\n\n        const GIT_DIFF_WITH_COLOR: &str = r#\"\\\n\u001b[33mcommit 3ef7fba7258fe473f1d8befff367bb793c786107\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Mon Dec 13 22:54:43 2021 -0500\n\n    753 Test file\n\n\u001b[1mdiff --git a/file b/file\u001b[m\n\u001b[1mindex 72943a1..f761ec1 100644\u001b[m\n\u001b[1m--- a/file\u001b[m\n\u001b[1m+++ b/file\u001b[m\n\u001b[31m@@ -1 +1 @@\u001b[m\n\u001b[31m-aaa\u001b[m\n\u001b[32m+\u001b[m\u001b[32mbbb\u001b[m\n\"#;\n\n        const GIT_DIFF_COLOR_WORDS: &str = r#\"\\\n\u001b[33mcommit 6feea4949c20583aaf16eee84f38d34d6a7f1741\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sat Dec 11 17:08:56 2021 -0500\n\n    file v2\n\n\u001b[1mdiff --git a/file b/file\u001b[m\n\u001b[1mindex c005da6..962086f 100644\u001b[m\n\u001b[1m--- a/file\u001b[m\n\u001b[1m+++ b/file\u001b[m\n\u001b[31m@@ -1 +1 @@\u001b[m\n    \u001b[31maaa\u001b[m\u001b[32mbbb\u001b[m\n\"#;\n\n        const GIT_DIFF_WORD_DIFF: &str = r#\"\\\n\u001b[33mcommit 6feea4949c20583aaf16eee84f38d34d6a7f1741\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sat Dec 11 17:08:56 2021 -0500\n\n    file v2\n\n\u001b[1mdiff --git a/file b/file\u001b[m\n\u001b[1mindex c005da6..962086f 100644\u001b[m\n\u001b[1m--- a/file\u001b[m\n\u001b[1m+++ b/file\u001b[m\n\u001b[31m@@ -1 +1 @@\u001b[m\n    \u001b[31m[-aaa-]\u001b[m\u001b[32m{+bbb+}\u001b[m\n\"#;\n    }\n}\n"
  },
  {
    "path": "src/handlers/hunk_header.rs",
    "content": "// A module for constructing and writing the hunk header.\n//\n// The structure of the hunk header output by delta is\n// ```\n// (file):(line-number): (code-fragment)\n// ```\n//\n// The code fragment and line number derive from a line of git/diff output that looks like\n// ```\n// @@ -119,12 +119,7 @@ fn write_to_output_buffer(\n// ```\n//\n// Whether or not file and line-number are included is controlled by the presence of the special\n// style attributes 'file' and 'line-number' in the hunk-header-style string. For example, delta\n// might output the above hunk header as\n// ```\n// ───────────────────────────────────────────────────┐\n// src/hunk_header.rs:119: fn write_to_output_buffer( │\n// ───────────────────────────────────────────────────┘\n// ```\nuse std::convert::TryInto;\nuse std::fmt::Write as FmtWrite;\n\nuse super::draw;\nuse crate::config::{\n    Config, HunkHeaderIncludeCodeFragment, HunkHeaderIncludeFilePath, HunkHeaderIncludeLineNumber,\n};\nuse crate::delta::{self, DiffType, InMergeConflict, MergeParents, State, StateMachine};\nuse crate::paint::{self, BgShouldFill, Painter, StyleSectionSpecifier};\nuse crate::style::{DecorationStyle, Style};\nuse lazy_static::lazy_static;\nuse regex::Regex;\n\n#[derive(Clone, Default, Debug, PartialEq, Eq)]\npub struct ParsedHunkHeader {\n    code_fragment: String,\n    line_numbers_and_hunk_lengths: Vec<(usize, usize)>,\n}\n\npub enum HunkHeaderIncludeHunkLabel {\n    Yes,\n    No,\n}\n\n// The output of `diff -u file1 file2` does not contain a header before the\n// `--- old.lua` / `+++ new.lua` block, and the hunk can of course contain lines\n// starting with '-- '. To avoid interpreting '--- lua comment' as a new header,\n// count the minus lines in a hunk (provided by the '@@ -1,4 +1,3 @@' header).\n// `diff` itself can not generate two diffs in this ambiguous format, so a second header\n// could just be ignored. But concatenated diffs exist and are accepted by `patch`.\n#[derive(Debug)]\npub struct AmbiguousDiffMinusCounter(isize);\n\nimpl AmbiguousDiffMinusCounter {\n    // The internal isize representation avoids calling `if let Some(..)` on every line. For\n    // nearly all input the counter is not needed, in this case it is decremented but ignored.\n    // [min, COUNTER_RELEVANT_IF_GT]   unambiguous diff\n    // (COUNTER_RELEVANT_IF_GT, 0]     handle next '--- ' like a header, and set counter in next @@ block\n    // [1, max]                        counting minus lines in ambiguous header\n    const COUNTER_RELEVANT_IF_GREATER_THAN: isize = -4096; // -1 works too, but be defensive\n    const EXPECT_DIFF_3DASH_HEADER: isize = 0;\n\n    pub fn not_needed() -> Self {\n        Self(Self::COUNTER_RELEVANT_IF_GREATER_THAN)\n    }\n    pub fn prepare_to_count() -> Self {\n        Self(Self::EXPECT_DIFF_3DASH_HEADER)\n    }\n    pub fn three_dashes_expected(&self) -> bool {\n        if self.0 > Self::COUNTER_RELEVANT_IF_GREATER_THAN {\n            self.0 <= Self::EXPECT_DIFF_3DASH_HEADER\n        } else {\n            true\n        }\n    }\n    pub fn count_line(&mut self) {\n        self.0 -= 1;\n    }\n    fn count_from(lines: usize) -> Self {\n        Self(\n            lines\n                .try_into()\n                .unwrap_or(Self::COUNTER_RELEVANT_IF_GREATER_THAN),\n        )\n    }\n    #[allow(clippy::needless_bool)]\n    fn must_count(&mut self) -> bool {\n        let relevant = self.0 > Self::COUNTER_RELEVANT_IF_GREATER_THAN;\n        if relevant {\n            true\n        } else {\n            #[cfg(target_pointer_width = \"32\")]\n            {\n                self.0 = Self::COUNTER_RELEVANT_IF_GREATER_THAN;\n            }\n            false\n        }\n    }\n}\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_hunk_header_line(&self) -> bool {\n        self.line.starts_with(\"@@\") &&\n        // A hunk header can occur within a merge conflict region, but we don't attempt to handle\n        // that. See #822.\n        !matches!(self.state, State::MergeConflict(_, _))\n    }\n\n    pub fn handle_hunk_header_line(&mut self) -> std::io::Result<bool> {\n        use DiffType::*;\n        use State::*;\n        if !self.test_hunk_header_line() {\n            return Ok(false);\n        }\n        let mut handled_line = false;\n        if let Some(parsed_hunk_header) = parse_hunk_header(&self.line) {\n            let diff_type = match &self.state {\n                DiffHeader(Combined(MergeParents::Unknown, InMergeConflict::No)) => {\n                    // https://git-scm.com/docs/git-diff#_combined_diff_format\n                    let n_parents = self.line.chars().take_while(|c| c == &'@').count() - 1;\n                    Combined(MergeParents::Number(n_parents), InMergeConflict::No)\n                }\n                DiffHeader(diff_type)\n                | HunkMinus(diff_type, _)\n                | HunkZero(diff_type, _)\n                | HunkPlus(diff_type, _) => diff_type.clone(),\n                _ => Unified,\n            };\n\n            if self.minus_line_counter.must_count() {\n                if let &[(_, minus_lines), (_, _plus_lines), ..] =\n                    parsed_hunk_header.line_numbers_and_hunk_lengths.as_slice()\n                {\n                    self.minus_line_counter = AmbiguousDiffMinusCounter::count_from(minus_lines);\n                }\n            }\n\n            self.state = HunkHeader(\n                diff_type,\n                parsed_hunk_header,\n                self.line.clone(),\n                self.raw_line.clone(),\n            );\n            handled_line = true;\n        }\n        Ok(handled_line)\n    }\n\n    /// Emit the hunk header, with any requested decoration.\n    pub fn emit_hunk_header_line(\n        &mut self,\n        parsed_hunk_header: &ParsedHunkHeader,\n        line: &str,\n        raw_line: &str,\n    ) -> std::io::Result<bool> {\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.painter.set_highlighter();\n        self.painter.emit()?;\n\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parsed_hunk_header;\n\n        if self.config.line_numbers {\n            self.painter\n                .line_numbers_data\n                .as_mut()\n                .unwrap()\n                .initialize_hunk(line_numbers_and_hunk_lengths, self.plus_file.to_string());\n        }\n\n        if self.config.hunk_header_style.is_raw {\n            write_hunk_header_raw(&mut self.painter, line, raw_line, self.config)?;\n        } else if self.config.hunk_header_style.is_omitted {\n            writeln!(self.painter.writer)?;\n        } else {\n            // Add a blank line below the hunk-header-line for readability, unless\n            // color_only mode is active.\n            if !self.config.color_only {\n                writeln!(self.painter.writer)?;\n            }\n\n            write_line_of_code_with_optional_path_and_line_number(\n                code_fragment,\n                line_numbers_and_hunk_lengths,\n                None,\n                &mut self.painter,\n                line,\n                if self.plus_file == \"/dev/null\" {\n                    &self.minus_file\n                } else {\n                    &self.plus_file\n                },\n                self.config.hunk_header_style.decoration_style,\n                &self.config.hunk_header_file_style,\n                &self.config.hunk_header_line_number_style,\n                &self.config.hunk_header_style_include_file_path,\n                &self.config.hunk_header_style_include_line_number,\n                &HunkHeaderIncludeHunkLabel::Yes,\n                &self.config.hunk_header_style_include_code_fragment,\n                \":\",\n                self.config,\n            )?;\n        };\n        self.painter.set_highlighter();\n        Ok(true)\n    }\n}\n\nlazy_static! {\n    static ref HUNK_HEADER_REGEX: Regex = Regex::new(r\"@+ ([^@]+)@+(.*\\s?)\").unwrap();\n}\n\n// Parse unified diff hunk header format. See\n// https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Unified.html\n// https://www.artima.com/weblogs/viewpost.jsp?thread=164293\nlazy_static! {\n    static ref HUNK_HEADER_FILE_COORDINATE_REGEX: Regex = Regex::new(\n        r\"(?x)\n[-+]\n(\\d+)            # 1. Hunk start line number\n(?:              # Start optional hunk length section (non-capturing)\n  ,              #   Literal comma\n  (\\d+)          #   2. Optional hunk length (defaults to 1)\n)?\"\n    )\n    .unwrap();\n}\n\n/// Given input like\n/// \"@@ -74,15 +74,14 @@ pub fn delta(\"\n/// Return \" pub fn delta(\" and a vector of (line_number, hunk_length) tuples.\nfn parse_hunk_header(line: &str) -> Option<ParsedHunkHeader> {\n    if let Some(caps) = HUNK_HEADER_REGEX.captures(line) {\n        let file_coordinates = &caps[1];\n        let line_numbers_and_hunk_lengths: Vec<(usize, usize)> = HUNK_HEADER_FILE_COORDINATE_REGEX\n            .captures_iter(file_coordinates)\n            .map(|caps| {\n                (\n                    caps[1].parse::<usize>().unwrap(),\n                    caps.get(2)\n                        .map(|m| m.as_str())\n                        // Per the specs linked above, if the hunk length is absent then it is 1.\n                        .unwrap_or(\"1\")\n                        .parse::<usize>()\n                        .unwrap(),\n                )\n            })\n            .collect();\n        if line_numbers_and_hunk_lengths.is_empty() {\n            None\n        } else {\n            let code_fragment = caps[2].to_string();\n            Some(ParsedHunkHeader {\n                code_fragment,\n                line_numbers_and_hunk_lengths,\n            })\n        }\n    } else {\n        None\n    }\n}\n\nfn write_hunk_header_raw(\n    painter: &mut Painter,\n    line: &str,\n    raw_line: &str,\n    config: &Config,\n) -> std::io::Result<()> {\n    let (mut draw_fn, pad, decoration_ansi_term_style) =\n        draw::get_draw_function(config.hunk_header_style.decoration_style);\n    if config.hunk_header_style.decoration_style != DecorationStyle::NoDecoration {\n        writeln!(painter.writer)?;\n    }\n    draw_fn(\n        painter.writer,\n        &format!(\"{}{}\", line, if pad { \" \" } else { \"\" }),\n        &format!(\"{}{}\", raw_line, if pad { \" \" } else { \"\" }),\n        \"\",\n        &config.decorations_width,\n        config.hunk_header_style,\n        decoration_ansi_term_style,\n    )?;\n    Ok(())\n}\n\n#[allow(clippy::too_many_arguments)]\npub fn write_line_of_code_with_optional_path_and_line_number(\n    code_fragment: &str,\n    line_numbers_and_hunk_lengths: &[(usize, usize)],\n    style_sections: Option<StyleSectionSpecifier>,\n    painter: &mut Painter,\n    line: &str,\n    plus_file: &str,\n    decoration_style: DecorationStyle,\n    file_style: &Style,\n    line_number_style: &Style,\n    include_file_path: &HunkHeaderIncludeFilePath,\n    include_line_number: &HunkHeaderIncludeLineNumber,\n    include_hunk_label: &HunkHeaderIncludeHunkLabel,\n    include_code_fragment: &HunkHeaderIncludeCodeFragment,\n    file_path_separator: &str,\n    config: &Config,\n) -> std::io::Result<()> {\n    let (mut draw_fn, _, decoration_ansi_term_style) = draw::get_draw_function(decoration_style);\n    let line = match (config.color_only, include_code_fragment) {\n        (true, _) => line.to_string(),\n        // When called from a ripgrep json context: No \" \" added, as this would prevent\n        // identifying that a newline already exists, and so another would be added.\n        (_, HunkHeaderIncludeCodeFragment::YesNoSpace) => code_fragment.to_string(),\n        (_, HunkHeaderIncludeCodeFragment::Yes) if !code_fragment.is_empty() => {\n            format!(\"{code_fragment} \")\n        }\n        _ => \"\".to_string(),\n    };\n\n    let plus_line_number = line_numbers_and_hunk_lengths[line_numbers_and_hunk_lengths.len() - 1].0;\n    let file_with_line_number = paint_file_path_with_line_number(\n        Some(plus_line_number),\n        plus_file,\n        file_style,\n        line_number_style,\n        include_file_path,\n        include_line_number,\n        file_path_separator,\n        config,\n    );\n\n    if !line.is_empty() || !file_with_line_number.is_empty() {\n        write_to_output_buffer(\n            &file_with_line_number,\n            file_path_separator,\n            line,\n            style_sections,\n            include_hunk_label,\n            painter,\n            config,\n        );\n        draw_fn(\n            painter.writer,\n            &painter.output_buffer,\n            &painter.output_buffer,\n            \"\",\n            &config.decorations_width,\n            config.null_style,\n            decoration_ansi_term_style,\n        )?;\n        painter.output_buffer.clear();\n    }\n\n    Ok(())\n}\n\n#[allow(clippy::too_many_arguments)]\nfn paint_file_path_with_line_number(\n    line_number: Option<usize>,\n    plus_file: &str,\n    file_style: &Style,\n    line_number_style: &Style,\n    include_file_path: &HunkHeaderIncludeFilePath,\n    include_line_number: &HunkHeaderIncludeLineNumber,\n    separator: &str,\n    config: &Config,\n) -> String {\n    let file_style = match include_file_path {\n        HunkHeaderIncludeFilePath::Yes => Some(*file_style),\n        HunkHeaderIncludeFilePath::No => None,\n    };\n    let line_number_style = if matches!(include_line_number, HunkHeaderIncludeLineNumber::Yes)\n        && line_number.is_some()\n        && !config.hunk_header_style.is_raw\n        && !config.color_only\n    {\n        Some(*line_number_style)\n    } else {\n        None\n    };\n\n    paint::paint_file_path_with_line_number(\n        line_number,\n        plus_file,\n        false,\n        separator,\n        false,\n        file_style,\n        line_number_style,\n        config,\n    )\n}\n\nfn write_to_output_buffer(\n    file_with_line_number: &str,\n    file_path_separator: &str,\n    line: String,\n    style_sections: Option<StyleSectionSpecifier>,\n    include_hunk_label: &HunkHeaderIncludeHunkLabel,\n    painter: &mut Painter,\n    config: &Config,\n) {\n    if matches!(include_hunk_label, HunkHeaderIncludeHunkLabel::Yes)\n        && !config.hunk_label.is_empty()\n    {\n        let _ = write!(\n            &mut painter.output_buffer,\n            \"{} \",\n            config.hunk_header_file_style.paint(&config.hunk_label)\n        );\n    }\n    if !file_with_line_number.is_empty() {\n        // The code fragment in \"line\" adds whitespace, but if only a line number is printed\n        // then the trailing space must be added.\n        let space = if line.is_empty() { \" \" } else { \"\" };\n        let _ = write!(\n            &mut painter.output_buffer,\n            \"{file_with_line_number}{file_path_separator}{space}\",\n        );\n    }\n    if !line.is_empty() {\n        painter.syntax_highlight_and_paint_line(\n            &line,\n            style_sections.unwrap_or(StyleSectionSpecifier::Style(config.hunk_header_style)),\n            delta::State::HunkHeader(\n                DiffType::Unified,\n                ParsedHunkHeader::default(),\n                \"\".to_owned(),\n                \"\".to_owned(),\n            ),\n            BgShouldFill::No,\n        );\n        painter.output_buffer.pop(); // trim newline\n    }\n}\n\n#[cfg(test)]\npub mod tests {\n    use super::*;\n    use crate::ansi::strip_ansi_codes;\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    fn test_parse_hunk_header() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@ -74,15 +75,14 @@ pub fn delta(\\n\").unwrap();\n        assert_eq!(code_fragment, \" pub fn delta(\\n\");\n        assert_eq!(line_numbers_and_hunk_lengths[0], (74, 15),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (75, 14),);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_with_omitted_hunk_lengths() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@ -74 +75,2 @@ pub fn delta(\\n\").unwrap();\n        assert_eq!(code_fragment, \" pub fn delta(\\n\");\n        assert_eq!(line_numbers_and_hunk_lengths[0], (74, 1),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (75, 2),);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_with_no_hunk_lengths() {\n        let result = parse_hunk_header(\"@@  @@\\n\");\n        assert_eq!(result, None);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_added_file() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@ -1,22 +0,0 @@\").unwrap();\n        assert_eq!(code_fragment, \"\",);\n        assert_eq!(line_numbers_and_hunk_lengths[0], (1, 22),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (0, 0),);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_deleted_file() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@ -0,0 +1,3 @@\").unwrap();\n        assert_eq!(code_fragment, \"\",);\n        assert_eq!(line_numbers_and_hunk_lengths[0], (0, 0),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (1, 3),);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_merge() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@@ -293,11 -358,15 +358,16 @@@ dependencies =\").unwrap();\n        assert_eq!(code_fragment, \" dependencies =\");\n        assert_eq!(line_numbers_and_hunk_lengths[0], (293, 11),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (358, 15),);\n        assert_eq!(line_numbers_and_hunk_lengths[2], (358, 16),);\n    }\n\n    #[test]\n    fn test_parse_hunk_header_cthulhu() {\n        let ParsedHunkHeader {\n            code_fragment,\n            line_numbers_and_hunk_lengths,\n        } = parse_hunk_header(\"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -444,17 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 -446,6 +444,17 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ int snd_soc_jack_add_gpios(struct snd_s\").unwrap();\n        assert_eq!(code_fragment, \" int snd_soc_jack_add_gpios(struct snd_s\");\n        assert_eq!(line_numbers_and_hunk_lengths[0], (446, 6),);\n        assert_eq!(line_numbers_and_hunk_lengths[1], (446, 6),);\n        assert_eq!(line_numbers_and_hunk_lengths[2], (446, 6),);\n        assert_eq!(line_numbers_and_hunk_lengths[65], (446, 6),);\n    }\n\n    #[test]\n    fn test_paint_file_path_with_line_number_default() {\n        // hunk-header-style (by default) includes 'line-number' but not 'file'.\n        // This test confirms that `paint_file_path_with_line_number` returns a painted line number.\n        let config = integration_test_utils::make_config_from_args(&[]);\n\n        let result = paint_file_path_with_line_number(\n            Some(3),\n            \"some-file\",\n            &config.hunk_header_style,\n            &config.hunk_header_line_number_style,\n            &config.hunk_header_style_include_file_path,\n            &config.hunk_header_style_include_line_number,\n            \":\",\n            &config,\n        );\n\n        assert_eq!(result, \"\\u{1b}[34m3\\u{1b}[0m\");\n    }\n\n    #[test]\n    fn test_paint_file_path_with_line_number_hyperlinks() {\n        use std::{iter::FromIterator, path::PathBuf};\n\n        use crate::utils;\n\n        // hunk-header-style (by default) includes 'line-number' but not 'file'.\n        // Normally, `paint_file_path_with_line_number` would return a painted line number.\n        // But in this test hyperlinks are activated, and the test ensures that delta.__workdir__ is\n        // present in git_config_entries.\n        // This test confirms that, under those circumstances, `paint_file_path_with_line_number`\n        // returns a hyperlinked file path with line number.\n\n        let config = integration_test_utils::make_config_from_args(&[\"--features\", \"hyperlinks\"]);\n        let relative_path = PathBuf::from_iter([\"some-dir\", \"some-file\"]);\n\n        let result = paint_file_path_with_line_number(\n            Some(3),\n            &relative_path.to_string_lossy(),\n            &config.hunk_header_style,\n            &config.hunk_header_line_number_style,\n            &config.hunk_header_style_include_file_path,\n            &config.hunk_header_style_include_line_number,\n            \":\",\n            &config,\n        );\n\n        assert_eq!(\n            result,\n            format!(\n                \"\\u{1b}]8;;file://{}\\u{1b}\\\\\\u{1b}[34m3\\u{1b}[0m\\u{1b}]8;;\\u{1b}\\\\\",\n                utils::path::fake_delta_cwd_for_tests()\n                    .join(relative_path)\n                    .to_string_lossy()\n            )\n        );\n    }\n\n    #[test]\n    fn test_paint_file_path_with_line_number_empty() {\n        // hunk-header-style includes neither 'file' nor 'line-number'.\n        // This causes `paint_file_path_with_line_number` to return empty string.\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"syntax bold\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n        ]);\n\n        let result = paint_file_path_with_line_number(\n            Some(3),\n            \"some-file\",\n            &config.hunk_header_style,\n            &config.hunk_header_line_number_style,\n            &config.hunk_header_style_include_file_path,\n            &config.hunk_header_style_include_line_number,\n            \":\",\n            &config,\n        );\n\n        // result is\n        // \"\\u{1b}[1msome-file\\u{1b}[0m:\\u{1b}[34m3\\u{1b}[0m\"\n        assert_eq!(result, \"\");\n    }\n\n    #[test]\n    fn test_paint_file_path_with_line_number_empty_hyperlinks() {\n        // hunk-header-style includes neither 'file' nor 'line-number'.\n        // This causes `paint_file_path_with_line_number` to return empty string.\n        // This test confirms that this remains true even when we are requesting hyperlinks.\n\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"syntax bold\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n            \"--features\",\n            \"hyperlinks\",\n        ]);\n\n        let result = paint_file_path_with_line_number(\n            Some(3),\n            \"some-file\",\n            &config.hunk_header_style,\n            &config.hunk_header_line_number_style,\n            &config.hunk_header_style_include_file_path,\n            &config.hunk_header_style_include_line_number,\n            \":\",\n            &config,\n        );\n\n        assert_eq!(result, \"\");\n    }\n\n    #[test]\n    fn test_paint_file_path_with_line_number_empty_navigate() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"syntax bold\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n            \"--navigate\",\n        ]);\n\n        let result = paint_file_path_with_line_number(\n            Some(3),\n            \"δ some-file\",\n            &config.hunk_header_style,\n            &config.hunk_header_line_number_style,\n            &config.hunk_header_style_include_file_path,\n            &config.hunk_header_style_include_line_number,\n            \":\",\n            &config,\n        );\n\n        // result is\n        // \"\\u{1b}[1mδ some-file\\u{1b}[0m:\\u{1b}[34m3\\u{1b}[0m\"\n        assert_eq!(result, \"\");\n    }\n\n    #[test]\n    fn test_not_a_hunk_header_is_handled_gracefully() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output =\n            integration_test_utils::run_delta(GIT_LOG_OUTPUT_WITH_NOT_A_HUNK_HEADER, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"@@@2021-12-05\"));\n    }\n\n    const GIT_LOG_OUTPUT_WITH_NOT_A_HUNK_HEADER: &str = \"\\\n@@@2021-12-05\n\nsrc/config.rs                  |   2 +-\nsrc/delta.rs                   |   3 ++-\nsrc/handlers/hunk.rs           |  12 ++++++------\nsrc/handlers/hunk_header.rs    | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------\nsrc/handlers/merge_conflict.rs |   2 +-\nsrc/handlers/submodule.rs      |   4 ++--\nsrc/paint.rs                   |   2 +-\n7 files changed, 90 insertions(+), 54 deletions(-)\n\";\n}\n"
  },
  {
    "path": "src/handlers/merge_conflict.rs",
    "content": "use std::ops::{Index, IndexMut};\n\nuse itertools::Itertools;\nuse unicode_segmentation::UnicodeSegmentation;\n\nuse super::draw;\nuse crate::cli;\nuse crate::config::{self, delta_unreachable};\nuse crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\nuse crate::minusplus::MinusPlus;\nuse crate::paint::{self, prepare};\nuse crate::style::Style;\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum MergeConflictCommit {\n    Ours,\n    Ancestral,\n    Theirs,\n}\n\npub struct MergeConflictCommits<T> {\n    ours: T,\n    ancestral: T,\n    theirs: T,\n}\n\npub type MergeConflictLines = MergeConflictCommits<Vec<(String, State)>>;\n\npub type MergeConflictCommitNames = MergeConflictCommits<Option<String>>;\n\nimpl StateMachine<'_> {\n    pub fn handle_merge_conflict_line(&mut self) -> std::io::Result<bool> {\n        use DiffType::*;\n        use MergeConflictCommit::*;\n        use State::*;\n\n        let mut handled_line = false;\n        if self.config.color_only || !self.config.handle_merge_conflicts {\n            return Ok(handled_line);\n        }\n\n        match self.state.clone() {\n            HunkHeader(Combined(merge_parents, InMergeConflict::No), _, _, _)\n            | HunkMinus(Combined(merge_parents, InMergeConflict::No), _)\n            | HunkZero(Combined(merge_parents, InMergeConflict::No), _)\n            | HunkPlus(Combined(merge_parents, InMergeConflict::No), _) => {\n                handled_line = self.enter_merge_conflict(&merge_parents)\n            }\n            MergeConflict(merge_parents, Ours) => {\n                handled_line = self.enter_ancestral(&merge_parents)\n                    || self.enter_theirs(&merge_parents)\n                    || self.exit_merge_conflict(&merge_parents)?\n                    || self.store_line(\n                        Ours,\n                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n                    );\n            }\n            MergeConflict(merge_parents, Ancestral) => {\n                handled_line = self.enter_theirs(&merge_parents)\n                    || self.exit_merge_conflict(&merge_parents)?\n                    || self.store_line(\n                        Ancestral,\n                        HunkMinus(Combined(merge_parents, InMergeConflict::Yes), None),\n                    );\n            }\n            MergeConflict(merge_parents, Theirs) => {\n                handled_line = self.exit_merge_conflict(&merge_parents)?\n                    || self.store_line(\n                        Theirs,\n                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n                    );\n            }\n            _ => {}\n        }\n\n        Ok(handled_line)\n    }\n\n    fn enter_merge_conflict(&mut self, merge_parents: &MergeParents) -> bool {\n        use State::*;\n        if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n            self.state = MergeConflict(merge_parents.clone(), Ours);\n            self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n            true\n        } else {\n            false\n        }\n    }\n\n    fn enter_ancestral(&mut self, merge_parents: &MergeParents) -> bool {\n        use State::*;\n        if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n            self.state = MergeConflict(merge_parents.clone(), Ancestral);\n            self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n            true\n        } else {\n            false\n        }\n    }\n\n    fn enter_theirs(&mut self, merge_parents: &MergeParents) -> bool {\n        use State::*;\n        if self.line.starts_with(\"++=======\") {\n            self.state = MergeConflict(merge_parents.clone(), Theirs);\n            true\n        } else {\n            false\n        }\n    }\n\n    fn exit_merge_conflict(&mut self, merge_parents: &MergeParents) -> std::io::Result<bool> {\n        if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n            self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n            self.paint_buffered_merge_conflict_lines(merge_parents)?;\n            Ok(true)\n        } else {\n            Ok(false)\n        }\n    }\n\n    fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n        use State::*;\n        if let HunkMinus(diff_type, _) | HunkZero(diff_type, _) | HunkPlus(diff_type, _) = &state {\n            let line = prepare(&self.line, diff_type.n_parents(), self.config);\n            self.painter.merge_conflict_lines[commit].push((line, state));\n            true\n        } else {\n            delta_unreachable(&format!(\"Invalid state: {state:?}\"))\n        }\n    }\n\n    fn paint_buffered_merge_conflict_lines(\n        &mut self,\n        merge_parents: &MergeParents,\n    ) -> std::io::Result<()> {\n        use DiffType::*;\n        use State::*;\n        self.painter.emit()?;\n\n        write_merge_conflict_bar(\n            &self.config.merge_conflict_begin_symbol,\n            &mut self.painter,\n            self.config,\n        )?;\n        for (derived_commit_type, header_style) in &[\n            (Ours, self.config.merge_conflict_ours_diff_header_style),\n            (Theirs, self.config.merge_conflict_theirs_diff_header_style),\n        ] {\n            write_diff_header(\n                derived_commit_type,\n                *header_style,\n                &mut self.painter,\n                self.config,\n            )?;\n            self.painter.emit()?;\n            paint::paint_minus_and_plus_lines(\n                MinusPlus::new(\n                    &self.painter.merge_conflict_lines[Ancestral],\n                    &self.painter.merge_conflict_lines[derived_commit_type],\n                ),\n                &mut self.painter.line_numbers_data,\n                &mut self.painter.highlighter,\n                &mut self.painter.output_buffer,\n                self.config,\n            );\n            self.painter.emit()?;\n        }\n        // write_merge_conflict_decoration(\"bold ol\", &mut self.painter, self.config)?;\n        write_merge_conflict_bar(\n            &self.config.merge_conflict_end_symbol,\n            &mut self.painter,\n            self.config,\n        )?;\n        self.painter.merge_conflict_lines.clear();\n        self.state = HunkZero(Combined(merge_parents.clone(), InMergeConflict::No), None);\n        Ok(())\n    }\n}\n\nfn write_diff_header(\n    derived_commit_type: &MergeConflictCommit,\n    style: Style,\n    painter: &mut paint::Painter,\n    config: &config::Config,\n) -> std::io::Result<()> {\n    let (mut draw_fn, pad, decoration_ansi_term_style) =\n        draw::get_draw_function(style.decoration_style);\n    let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n    let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n        format!(\n            \"ancestor {} {}{}\",\n            config.right_arrow,\n            derived_commit_name.as_deref().unwrap_or(\"?\"),\n            if pad { \" \" } else { \"\" }\n        )\n    } else {\n        derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n    };\n    draw_fn(\n        painter.writer,\n        &text,\n        &text,\n        \"\",\n        &config.decorations_width,\n        style,\n        decoration_ansi_term_style,\n    )?;\n    Ok(())\n}\n\nfn write_merge_conflict_bar(\n    s: &str,\n    painter: &mut paint::Painter,\n    config: &config::Config,\n) -> std::io::Result<()> {\n    let width = match config.decorations_width {\n        cli::Width::Fixed(width) => width,\n        cli::Width::Variable => config.available_terminal_width,\n    };\n    writeln!(\n        painter.writer,\n        \"{}\",\n        &s.graphemes(true).cycle().take(width).join(\"\")\n    )?;\n    Ok(())\n}\n\nfn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n    match line.strip_prefix(marker) {\n        Some(suffix) => {\n            let suffix = suffix.trim();\n            if !suffix.is_empty() {\n                Some(suffix)\n            } else {\n                None\n            }\n        }\n        None => None,\n    }\n}\n\npub use MergeConflictCommit::*;\n\nimpl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n    type Output = T;\n    fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n        match commit {\n            Ours => &self.ours,\n            Ancestral => &self.ancestral,\n            Theirs => &self.theirs,\n        }\n    }\n}\n\nimpl<T> Index<&MergeConflictCommit> for MergeConflictCommits<T> {\n    type Output = T;\n    fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n        match commit {\n            Ours => &self.ours,\n            Ancestral => &self.ancestral,\n            Theirs => &self.theirs,\n        }\n    }\n}\n\nimpl<T> IndexMut<MergeConflictCommit> for MergeConflictCommits<T> {\n    fn index_mut(&mut self, commit: MergeConflictCommit) -> &mut Self::Output {\n        match commit {\n            Ours => &mut self.ours,\n            Ancestral => &mut self.ancestral,\n            Theirs => &mut self.theirs,\n        }\n    }\n}\n\nimpl MergeConflictLines {\n    pub fn new() -> Self {\n        Self {\n            ours: Vec::new(),\n            ancestral: Vec::new(),\n            theirs: Vec::new(),\n        }\n    }\n\n    fn clear(&mut self) {\n        self[Ours].clear();\n        self[Ancestral].clear();\n        self[Theirs].clear();\n    }\n}\n\nimpl MergeConflictCommitNames {\n    pub fn new() -> Self {\n        Self {\n            ours: None,\n            ancestral: None,\n            theirs: None,\n        }\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use crate::ansi::strip_ansi_codes;\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    fn test_toy_merge_conflict_no_context() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(GIT_TOY_MERGE_CONFLICT_NO_CONTEXT, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"\\n▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼\"));\n        assert!(output.contains(\n            \"\\\n──────────────────┐\nancestor ⟶   HEAD │\n──────────────────┘\n\"\n        ));\n        assert!(output.contains(\"\\n▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲\"));\n    }\n\n    #[test]\n    fn test_real_merge_conflict() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(GIT_MERGE_CONFLICT, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"\\n▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼\"));\n        assert!(output.contains(\n            \"\\\n──────────────────┐\nancestor ⟶   HEAD │\n──────────────────┘\n\"\n        ));\n        assert!(output.contains(\"\\n▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲\"));\n    }\n\n    #[test]\n    #[allow(non_snake_case)]\n    fn test_real_merge_conflict_U0() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(GIT_MERGE_CONFLICT_U0, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"\\n▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼\"));\n        assert!(output.contains(\n            \"\\\n──────────────────┐\nancestor ⟶   HEAD │\n──────────────────┘\n\"\n        ));\n        assert!(output.contains(\"\\n▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲\"));\n    }\n\n    const GIT_TOY_MERGE_CONFLICT_NO_CONTEXT: &str = \"\\\ndiff --cc file\nindex 6178079,7898192..0000000\n--- a/file\n+++ b/file\n@@@ -1,1 -1,1 +1,6 @@@\n++<<<<<<< HEAD\n +a\n++||||||| parent of 0c20c9d... wip\n++=======\n+ b\n++>>>>>>> 0c20c9d... wip\n\";\n\n    const GIT_MERGE_CONFLICT: &str = r#\"\\\ndiff --cc src/handlers/merge_conflict.rs\nindex 27d47c0,3a7e7b9..0000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -1,14 -1,13 +1,24 @@@\n -use std::cmp::min;\n  use std::ops::{Index, IndexMut};\n  \n++<<<<<<< HEAD\n +use itertools::Itertools;\n +use unicode_segmentation::UnicodeSegmentation;\n +\n +use super::draw;\n +use crate::cli;\n +use crate::config::{self, delta_unreachable};\n +use crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\n++||||||| parent of b2b28c8... Display merge conflict branches\n++use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++=======\n+ use super::draw;\n+ use crate::cli;\n+ use crate::config::{self, delta_unreachable};\n+ use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++>>>>>>> b2b28c8... Display merge conflict branches\n  use crate::minusplus::MinusPlus;\n  use crate::paint;\n+ use crate::style::DecorationStyle;\n  \n  #[derive(Clone, Debug, PartialEq)]\n  pub enum MergeConflictCommit {\n@@@ -30,7 -29,8 +40,15 @@@ pub type MergeConflictCommitNames = Mer\n  impl<'a> StateMachine<'a> {\n      pub fn handle_merge_conflict_line(&mut self) -> std::io::Result<bool> {\n          use DiffType::*;\n++<<<<<<< HEAD\n          use MergeConflictCommit::*;\n++||||||| parent of b2b28c8... Display merge conflict branches\n+         use MergeParents::*;\n++        use Source::*;\n++=======\n++        use MergeConflictCommit::*;\n++        use MergeParents::*;\n++>>>>>>> b2b28c8... Display merge conflict branches\n          use State::*;\n  \n          let mut handled_line = false;\n@@@ -38,36 -38,28 +56,113 @@@\n              return Ok(handled_line);\n          }\n  \n++<<<<<<< HEAD\n +        match self.state.clone() {\n +            HunkHeader(Combined(merge_parents, InMergeConflict::No), _, _)\n +            | HunkMinus(Combined(merge_parents, InMergeConflict::No), _)\n +            | HunkZero(Combined(merge_parents, InMergeConflict::No))\n +            | HunkPlus(Combined(merge_parents, InMergeConflict::No), _) => {\n +                handled_line = self.enter_merge_conflict(&merge_parents)\n +            }\n +            MergeConflict(merge_parents, Ours) => {\n +                handled_line = self.enter_ancestral(&merge_parents)\n +                    || self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ours,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        // TODO: don't allocate on heap at this point\n++        let prefix = self.line[..min(self.line.len(), 2)].to_string();\n++        let diff_type = Combined(Prefix(prefix));\n++\n++        match self.state {\n++            // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n++            // TODO: shouldn't this be HunkZero(Some(_))?\n++            HunkZero(_) => {\n++                if self.line.starts_with(\"++<<<<<<<\") {\n++                    self.state = MergeConflict(Ours);\n++                    handled_line = true\n++                }\n +            }\n++            MergeConflict(Ours) => {\n++                if self.line.starts_with(\"++|||||||\") {\n++                    self.state = MergeConflict(Ancestral);\n++                } else if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ours].push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+         // TODO: don't allocate on heap at this point\n+         let prefix = self.line[..min(self.line.len(), 2)].to_string();\n+         let diff_type = Combined(Prefix(prefix));\n+ \n+         match self.state {\n+             // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n+             // TODO: shouldn't this be HunkZero(Some(_))?\n+             HunkZero(_) => handled_line = self.enter_merge_conflict(),\n+             MergeConflict(Ours) => {\n+                 handled_line = self.enter_ancestral()\n+                     || self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ours, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n+             }\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Ancestral) => {\n +                handled_line = self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ancestral,\n +                        HunkMinus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Ancestral) => {\n++                if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ancestral]\n++                        .push((line, HunkMinus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Ancestral) => {\n+                 handled_line = self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ancestral, HunkMinus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n              }\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Theirs) => {\n +                handled_line = self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Theirs,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Theirs) => {\n++                if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Theirs]\n++                        .push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Theirs) => {\n+                 handled_line = self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Theirs, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n              }\n              _ => {}\n          }\n@@@ -75,75 -67,71 +170,150 @@@\n          Ok(handled_line)\n      }\n  \n++<<<<<<< HEAD\n +    fn enter_merge_conflict(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ours);\n +            self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_ancestral(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ancestral);\n +            self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_theirs(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if self.line.starts_with(\"++=======\") {\n +            self.state = MergeConflict(merge_parents.clone(), Theirs);\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn exit_merge_conflict(&mut self, merge_parents: &MergeParents) -> std::io::Result<bool> {\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n +            self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n +            self.paint_buffered_merge_conflict_lines(merge_parents)?;\n +            Ok(true)\n +        } else {\n +            Ok(false)\n +        }\n +    }\n +\n +    fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n +        use State::*;\n +        if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n +            let line = self.painter.prepare(&self.line, diff_type.n_parents());\n +            self.painter.merge_conflict_lines[commit].push((line, state));\n +            true\n +        } else {\n +            delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n +        }\n +    }\n +\n +    fn paint_buffered_merge_conflict_lines(\n +        &mut self,\n +        merge_parents: &MergeParents,\n +    ) -> std::io::Result<()> {\n +        use DiffType::*;\n +        use State::*;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++    fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++=======\n+     fn enter_merge_conflict(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n+             self.state = MergeConflict(Ours);\n+             self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_ancestral(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n+             self.state = MergeConflict(Ancestral);\n+             self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_theirs(&mut self) -> bool {\n+         use State::*;\n+         if self.line.starts_with(\"++=======\") {\n+             self.state = MergeConflict(Theirs);\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn exit_merge_conflict(&mut self, diff_type: DiffType) -> std::io::Result<bool> {\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n+             self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n+             self.paint_buffered_merge_conflict_lines(diff_type)?;\n+             Ok(true)\n+         } else {\n+             Ok(false)\n+         }\n+     }\n+ \n+     fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n+         use State::*;\n+         if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n+             let line = self.painter.prepare(&self.line, diff_type.n_parents());\n+             self.painter.merge_conflict_lines[commit].push((line, state));\n+             true\n+         } else {\n+             delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n+         }\n+     }\n+ \n+     fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++>>>>>>> b2b28c8... Display merge conflict branches\n          self.painter.emit()?;\n++<<<<<<< HEAD\n +\n +        write_merge_conflict_bar(\n +            &self.config.merge_conflict_begin_symbol,\n +            &mut self.painter,\n +            self.config,\n +        )?;\n +        for derived_commit_type in &[Ours, Theirs] {\n +            write_diff_header(derived_commit_type, &mut self.painter, self.config)?;\n +            self.painter.emit()?;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        let lines = &self.painter.merge_conflict_lines;\n++        for derived_lines in &[&lines[Ours], &lines[Theirs]] {\n++=======\n+ \n+         write_merge_conflict_bar(\"▼\", &mut self.painter, self.config)?;\n+         for (derived_commit_type, decoration_style) in &[(Ours, \"box\"), (Theirs, \"box\")] {\n+             write_subhunk_header(\n+                 derived_commit_type,\n+                 decoration_style,\n+                 &mut self.painter,\n+                 self.config,\n+             )?;\n+             self.painter.emit()?;\n++>>>>>>> b2b28c8... Display merge conflict branches\n              paint::paint_minus_and_plus_lines(\n                  MinusPlus::new(\n                      &self.painter.merge_conflict_lines[Ancestral],\n@@@ -156,78 -144,94 +326,190 @@@\n              );\n              self.painter.emit()?;\n          }\n++<<<<<<< HEAD\n +        // write_merge_conflict_decoration(\"bold ol\", &mut self.painter, self.config)?;\n +        write_merge_conflict_bar(\n +            &self.config.merge_conflict_end_symbol,\n +            &mut self.painter,\n +            self.config,\n +        )?;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++=======\n+         // write_merge_conflict_decoration(\"bold ol\", &mut self.painter, self.config)?;\n+         write_merge_conflict_bar(\"▲\", &mut self.painter, self.config)?;\n++>>>>>>> b2b28c8... Display merge conflict branches\n          self.painter.merge_conflict_lines.clear();\n -        self.state = State::HunkZero(diff_type);\n +        self.state = HunkZero(Combined(merge_parents.clone(), InMergeConflict::No));\n          Ok(())\n      }\n  }\n  \n++<<<<<<< HEAD\n +fn write_diff_header(\n +    derived_commit_type: &MergeConflictCommit,\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    let (mut draw_fn, pad, decoration_ansi_term_style) =\n +        draw::get_draw_function(config.merge_conflict_diff_header_style.decoration_style);\n +    let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n +    let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n +        format!(\n +            \"ancestor {} {}{}\",\n +            config.right_arrow,\n +            derived_commit_name.as_deref().unwrap_or(\"?\"),\n +            if pad { \" \" } else { \"\" }\n +        )\n +    } else {\n +        derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n +    };\n +    draw_fn(\n +        painter.writer,\n +        &text,\n +        &text,\n +        &config.decorations_width,\n +        config.merge_conflict_diff_header_style,\n +        decoration_ansi_term_style,\n +    )?;\n +    Ok(())\n +}\n +\n +fn write_merge_conflict_bar(\n +    s: &str,\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    if let cli::Width::Fixed(width) = config.decorations_width {\n +        writeln!(\n +            painter.writer,\n +            \"{}\",\n +            &s.graphemes(true).cycle().take(width).join(\"\")\n +        )?;\n +    }\n +    Ok(())\n +}\n +\n +fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n +    match line.strip_prefix(marker) {\n +        Some(suffix) => {\n +            let suffix = suffix.trim();\n +            if !suffix.is_empty() {\n +                Some(suffix)\n +            } else {\n +                None\n +            }\n +        }\n +        None => None,\n +    }\n +}\n +\n +pub use MergeConflictCommit::*;\n +\n++impl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n++    type Output = T;\n++    fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n++        match commit {\n++            Ours => &self.ours,\n++            Ancestral => &self.ancestral,\n++            Theirs => &self.theirs,\n++        }\n++    }\n++}\n++||||||| parent of b2b28c8... Display merge conflict branches\n++pub use Source::*;\n++=======\n+ fn write_subhunk_header(\n+     derived_commit_type: &MergeConflictCommit,\n+     decoration_style: &str,\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     let (mut draw_fn, pad, decoration_ansi_term_style) =\n+         draw::get_draw_function(DecorationStyle::from_str(\n+             decoration_style,\n+             config.true_color,\n+             config.git_config.as_ref(),\n+         ));\n+     let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n+     let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n+         format!(\n+             \"ancestor {} {}{}\",\n+             config.right_arrow,\n+             derived_commit_name.as_deref().unwrap_or(\"?\"),\n+             if pad { \" \" } else { \"\" }\n+         )\n+     } else {\n+         derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n+     };\n+     draw_fn(\n+         painter.writer,\n+         &text,\n+         &text,\n+         &config.decorations_width,\n+         config.hunk_header_style,\n+         decoration_ansi_term_style,\n+     )?;\n+     Ok(())\n+ }\n++>>>>>>> b2b28c8... Display merge conflict branches\n+ \n++<<<<<<< HEAD\n++impl<T> Index<&MergeConflictCommit> for MergeConflictCommits<T> {\n++    type Output = T;\n++    fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n++        match commit {\n++||||||| parent of b2b28c8... Display merge conflict branches\n++impl Index<Source> for MergeConflictLines {\n++    type Output = Vec<(String, State)>;\n++    fn index(&self, source: Source) -> &Self::Output {\n++        match source {\n++=======\n+ #[allow(unused)]\n+ fn write_merge_conflict_line(\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     let (mut draw_fn, _pad, decoration_ansi_term_style) = draw::get_draw_function(\n+         DecorationStyle::from_str(\"bold ol\", config.true_color, config.git_config.as_ref()),\n+     );\n+     draw_fn(\n+         painter.writer,\n+         \"\",\n+         \"\",\n+         &config.decorations_width,\n+         config.hunk_header_style,\n+         decoration_ansi_term_style,\n+     )?;\n+     Ok(())\n+ }\n+ \n+ fn write_merge_conflict_bar(\n+     s: &str,\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     if let cli::Width::Fixed(width) = config.decorations_width {\n+         writeln!(painter.writer, \"{}\", s.repeat(width))?;\n+     }\n+     Ok(())\n+ }\n+ \n+ fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n+     match line.strip_prefix(marker) {\n+         Some(suffix) => {\n+             let suffix = suffix.trim();\n+             if !suffix.is_empty() {\n+                 Some(suffix)\n+             } else {\n+                 None\n+             }\n+         }\n+         None => None,\n+     }\n+ }\n+ \n+ pub use MergeConflictCommit::*;\n+ \n  impl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n      type Output = T;\n      fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n@@@ -243,6 -247,6 +525,7 @@@ impl<T> Index<&MergeConflictCommit> fo\n      type Output = T;\n      fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n          match commit {\n++>>>>>>> b2b28c8... Display merge conflict branches\n              Ours => &self.ours,\n              Ancestral => &self.ancestral,\n              Theirs => &self.theirs,\n\"#;\n\n    const GIT_MERGE_CONFLICT_U0: &str = r#\"\\\ndiff --cc src/handlers/merge_conflict.rs\nindex 27d47c0,3a7e7b9..0000000\n--- a/src/handlers/merge_conflict.rs\n+++ b/src/handlers/merge_conflict.rs\n@@@ -3,7 -4,4 +3,16 @@@ use std::ops::{Index, IndexMut}\n++<<<<<<< HEAD\n +use itertools::Itertools;\n +use unicode_segmentation::UnicodeSegmentation;\n +\n +use super::draw;\n +use crate::cli;\n +use crate::config::{self, delta_unreachable};\n +use crate::delta::{DiffType, InMergeConflict, MergeParents, State, StateMachine};\n++||||||| parent of b2b28c8... Display merge conflict branches\n++use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++=======\n+ use super::draw;\n+ use crate::cli;\n+ use crate::config::{self, delta_unreachable};\n+ use crate::delta::{DiffType, MergeParents, State, StateMachine};\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -33,0 -32,0 +43,1 @@@ impl<'a> StateMachine<'a> \n++<<<<<<< HEAD\n@@@ -34,0 -33,1 +45,7 @@@\n++||||||| parent of b2b28c8... Display merge conflict branches\n+         use MergeParents::*;\n++        use Source::*;\n++=======\n++        use MergeConflictCommit::*;\n++        use MergeParents::*;\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -41,23 -41,18 +59,84 @@@\n++<<<<<<< HEAD\n +        match self.state.clone() {\n +            HunkHeader(Combined(merge_parents, InMergeConflict::No), _, _)\n +            | HunkMinus(Combined(merge_parents, InMergeConflict::No), _)\n +            | HunkZero(Combined(merge_parents, InMergeConflict::No))\n +            | HunkPlus(Combined(merge_parents, InMergeConflict::No), _) => {\n +                handled_line = self.enter_merge_conflict(&merge_parents)\n +            }\n +            MergeConflict(merge_parents, Ours) => {\n +                handled_line = self.enter_ancestral(&merge_parents)\n +                    || self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ours,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        // TODO: don't allocate on heap at this point\n++        let prefix = self.line[..min(self.line.len(), 2)].to_string();\n++        let diff_type = Combined(Prefix(prefix));\n++\n++        match self.state {\n++            // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n++            // TODO: shouldn't this be HunkZero(Some(_))?\n++            HunkZero(_) => {\n++                if self.line.starts_with(\"++<<<<<<<\") {\n++                    self.state = MergeConflict(Ours);\n++                    handled_line = true\n++                }\n +            }\n++            MergeConflict(Ours) => {\n++                if self.line.starts_with(\"++|||||||\") {\n++                    self.state = MergeConflict(Ancestral);\n++                } else if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ours].push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+         // TODO: don't allocate on heap at this point\n+         let prefix = self.line[..min(self.line.len(), 2)].to_string();\n+         let diff_type = Combined(Prefix(prefix));\n+ \n+         match self.state {\n+             // The only transition into a merge conflict is HunkZero => MergeConflict(Ours)\n+             // TODO: shouldn't this be HunkZero(Some(_))?\n+             HunkZero(_) => handled_line = self.enter_merge_conflict(),\n+             MergeConflict(Ours) => {\n+                 handled_line = self.enter_ancestral()\n+                     || self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ours, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n+             }\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Ancestral) => {\n +                handled_line = self.enter_theirs(&merge_parents)\n +                    || self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Ancestral,\n +                        HunkMinus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Ancestral) => {\n++                if self.line.starts_with(\"++=======\") {\n++                    self.state = MergeConflict(Theirs);\n++                } else if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Ancestral]\n++                        .push((line, HunkMinus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Ancestral) => {\n+                 handled_line = self.enter_theirs()\n+                     || self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Ancestral, HunkMinus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -65,6 -60,3 +144,22 @@@\n++<<<<<<< HEAD\n +            MergeConflict(merge_parents, Theirs) => {\n +                handled_line = self.exit_merge_conflict(&merge_parents)?\n +                    || self.store_line(\n +                        Theirs,\n +                        HunkPlus(Combined(merge_parents, InMergeConflict::Yes), None),\n +                    );\n++||||||| parent of b2b28c8... Display merge conflict branches\n++            MergeConflict(Theirs) => {\n++                if self.line.starts_with(\"++>>>>>>>\") {\n++                    self.paint_buffered_merge_conflict_lines(diff_type)?;\n++                } else {\n++                    let line = self.painter.prepare(&self.line, diff_type.n_parents());\n++                    self.painter.merge_conflict_lines[Theirs]\n++                        .push((line, HunkPlus(diff_type, None)));\n++                }\n++                handled_line = true\n++=======\n+             MergeConflict(Theirs) => {\n+                 handled_line = self.exit_merge_conflict(diff_type.clone())?\n+                     || self.store_line(Theirs, HunkPlus(diff_type, None));\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -78,59 -70,54 +173,118 @@@\n++<<<<<<< HEAD\n +    fn enter_merge_conflict(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ours);\n +            self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_ancestral(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n +            self.state = MergeConflict(merge_parents.clone(), Ancestral);\n +            self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn enter_theirs(&mut self, merge_parents: &MergeParents) -> bool {\n +        use State::*;\n +        if self.line.starts_with(\"++=======\") {\n +            self.state = MergeConflict(merge_parents.clone(), Theirs);\n +            true\n +        } else {\n +            false\n +        }\n +    }\n +\n +    fn exit_merge_conflict(&mut self, merge_parents: &MergeParents) -> std::io::Result<bool> {\n +        if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n +            self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n +            self.paint_buffered_merge_conflict_lines(merge_parents)?;\n +            Ok(true)\n +        } else {\n +            Ok(false)\n +        }\n +    }\n +\n +    fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n +        use State::*;\n +        if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n +            let line = self.painter.prepare(&self.line, diff_type.n_parents());\n +            self.painter.merge_conflict_lines[commit].push((line, state));\n +            true\n +        } else {\n +            delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n +        }\n +    }\n +\n +    fn paint_buffered_merge_conflict_lines(\n +        &mut self,\n +        merge_parents: &MergeParents,\n +    ) -> std::io::Result<()> {\n +        use DiffType::*;\n +        use State::*;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++    fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++=======\n+     fn enter_merge_conflict(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++<<<<<<<\") {\n+             self.state = MergeConflict(Ours);\n+             self.painter.merge_conflict_commit_names[Ours] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_ancestral(&mut self) -> bool {\n+         use State::*;\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++|||||||\") {\n+             self.state = MergeConflict(Ancestral);\n+             self.painter.merge_conflict_commit_names[Ancestral] = Some(commit.to_string());\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn enter_theirs(&mut self) -> bool {\n+         use State::*;\n+         if self.line.starts_with(\"++=======\") {\n+             self.state = MergeConflict(Theirs);\n+             true\n+         } else {\n+             false\n+         }\n+     }\n+ \n+     fn exit_merge_conflict(&mut self, diff_type: DiffType) -> std::io::Result<bool> {\n+         if let Some(commit) = parse_merge_marker(&self.line, \"++>>>>>>>\") {\n+             self.painter.merge_conflict_commit_names[Theirs] = Some(commit.to_string());\n+             self.paint_buffered_merge_conflict_lines(diff_type)?;\n+             Ok(true)\n+         } else {\n+             Ok(false)\n+         }\n+     }\n+ \n+     fn store_line(&mut self, commit: MergeConflictCommit, state: State) -> bool {\n+         use State::*;\n+         if let HunkMinus(diff_type, _) | HunkZero(diff_type) | HunkPlus(diff_type, _) = &state {\n+             let line = self.painter.prepare(&self.line, diff_type.n_parents());\n+             self.painter.merge_conflict_lines[commit].push((line, state));\n+             true\n+         } else {\n+             delta_unreachable(&format!(\"Invalid state: {:?}\", state))\n+         }\n+     }\n+ \n+     fn paint_buffered_merge_conflict_lines(&mut self, diff_type: DiffType) -> std::io::Result<()> {\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -138,9 -125,10 +292,25 @@@\n++<<<<<<< HEAD\n +\n +        write_merge_conflict_bar(\n +            &self.config.merge_conflict_begin_symbol,\n +            &mut self.painter,\n +            self.config,\n +        )?;\n +        for derived_commit_type in &[Ours, Theirs] {\n +            write_diff_header(derived_commit_type, &mut self.painter, self.config)?;\n +            self.painter.emit()?;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++        let lines = &self.painter.merge_conflict_lines;\n++        for derived_lines in &[&lines[Ours], &lines[Theirs]] {\n++=======\n+ \n+         write_merge_conflict_bar(\"▼\", &mut self.painter, self.config)?;\n+         for (derived_commit_type, decoration_style) in &[(Ours, \"box\"), (Theirs, \"box\")] {\n+             write_subhunk_header(\n+                 derived_commit_type,\n+                 decoration_style,\n+                 &mut self.painter,\n+                 self.config,\n+             )?;\n+             self.painter.emit()?;\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -159,6 -147,2 +329,12 @@@\n++<<<<<<< HEAD\n +        // write_merge_conflict_decoration(\"bold ol\", &mut self.painter, self.config)?;\n +        write_merge_conflict_bar(\n +            &self.config.merge_conflict_end_symbol,\n +            &mut self.painter,\n +            self.config,\n +        )?;\n++||||||| parent of b2b28c8... Display merge conflict branches\n++=======\n+         // write_merge_conflict_decoration(\"bold ol\", &mut self.painter, self.config)?;\n+         write_merge_conflict_bar(\"▲\", &mut self.painter, self.config)?;\n++>>>>>>> b2b28c8... Display merge conflict branches\n@@@ -171,60 -155,80 +347,166 @@@\n++<<<<<<< HEAD\n +fn write_diff_header(\n +    derived_commit_type: &MergeConflictCommit,\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    let (mut draw_fn, pad, decoration_ansi_term_style) =\n +        draw::get_draw_function(config.merge_conflict_diff_header_style.decoration_style);\n +    let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n +    let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n +        format!(\n +            \"ancestor {} {}{}\",\n +            config.right_arrow,\n +            derived_commit_name.as_deref().unwrap_or(\"?\"),\n +            if pad { \" \" } else { \"\" }\n +        )\n +    } else {\n +        derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n +    };\n +    draw_fn(\n +        painter.writer,\n +        &text,\n +        &text,\n +        &config.decorations_width,\n +        config.merge_conflict_diff_header_style,\n +        decoration_ansi_term_style,\n +    )?;\n +    Ok(())\n +}\n +\n +fn write_merge_conflict_bar(\n +    s: &str,\n +    painter: &mut paint::Painter,\n +    config: &config::Config,\n +) -> std::io::Result<()> {\n +    if let cli::Width::Fixed(width) = config.decorations_width {\n +        writeln!(\n +            painter.writer,\n +            \"{}\",\n +            &s.graphemes(true).cycle().take(width).join(\"\")\n +        )?;\n +    }\n +    Ok(())\n +}\n +\n +fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n +    match line.strip_prefix(marker) {\n +        Some(suffix) => {\n +            let suffix = suffix.trim();\n +            if !suffix.is_empty() {\n +                Some(suffix)\n +            } else {\n +                None\n +            }\n +        }\n +        None => None,\n +    }\n +}\n +\n +pub use MergeConflictCommit::*;\n +\n++impl<T> Index<MergeConflictCommit> for MergeConflictCommits<T> {\n++    type Output = T;\n++    fn index(&self, commit: MergeConflictCommit) -> &Self::Output {\n++        match commit {\n++            Ours => &self.ours,\n++            Ancestral => &self.ancestral,\n++            Theirs => &self.theirs,\n++        }\n++    }\n++}\n++||||||| parent of b2b28c8... Display merge conflict branches\n++pub use Source::*;\n++=======\n+ fn write_subhunk_header(\n+     derived_commit_type: &MergeConflictCommit,\n+     decoration_style: &str,\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     let (mut draw_fn, pad, decoration_ansi_term_style) =\n+         draw::get_draw_function(DecorationStyle::from_str(\n+             decoration_style,\n+             config.true_color,\n+             config.git_config.as_ref(),\n+         ));\n+     let derived_commit_name = &painter.merge_conflict_commit_names[derived_commit_type];\n+     let text = if let Some(_ancestral_commit) = &painter.merge_conflict_commit_names[Ancestral] {\n+         format!(\n+             \"ancestor {} {}{}\",\n+             config.right_arrow,\n+             derived_commit_name.as_deref().unwrap_or(\"?\"),\n+             if pad { \" \" } else { \"\" }\n+         )\n+     } else {\n+         derived_commit_name.as_deref().unwrap_or(\"?\").to_string()\n+     };\n+     draw_fn(\n+         painter.writer,\n+         &text,\n+         &text,\n+         &config.decorations_width,\n+         config.hunk_header_style,\n+         decoration_ansi_term_style,\n+     )?;\n+     Ok(())\n+ }\n++>>>>>>> b2b28c8... Display merge conflict branches\n+ \n++<<<<<<< HEAD\n++impl<T> Index<&MergeConflictCommit> for MergeConflictCommits<T> {\n++    type Output = T;\n++    fn index(&self, commit: &MergeConflictCommit) -> &Self::Output {\n++        match commit {\n++||||||| parent of b2b28c8... Display merge conflict branches\n++impl Index<Source> for MergeConflictLines {\n++    type Output = Vec<(String, State)>;\n++    fn index(&self, source: Source) -> &Self::Output {\n++        match source {\n++=======\n+ #[allow(unused)]\n+ fn write_merge_conflict_line(\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     let (mut draw_fn, _pad, decoration_ansi_term_style) = draw::get_draw_function(\n+         DecorationStyle::from_str(\"bold ol\", config.true_color, config.git_config.as_ref()),\n+     );\n+     draw_fn(\n+         painter.writer,\n+         \"\",\n+         \"\",\n+         &config.decorations_width,\n+         config.hunk_header_style,\n+         decoration_ansi_term_style,\n+     )?;\n+     Ok(())\n+ }\n+ \n+ fn write_merge_conflict_bar(\n+     s: &str,\n+     painter: &mut paint::Painter,\n+     config: &config::Config,\n+ ) -> std::io::Result<()> {\n+     if let cli::Width::Fixed(width) = config.decorations_width {\n+         writeln!(painter.writer, \"{}\", s.repeat(width))?;\n+     }\n+     Ok(())\n+ }\n+ \n+ fn parse_merge_marker<'a>(line: &'a str, marker: &str) -> Option<&'a str> {\n+     match line.strip_prefix(marker) {\n+         Some(suffix) => {\n+             let suffix = suffix.trim();\n+             if !suffix.is_empty() {\n+                 Some(suffix)\n+             } else {\n+                 None\n+             }\n+         }\n+         None => None,\n+     }\n+ }\n+ \n+ pub use MergeConflictCommit::*;\n+ \n@@@ -246,0 -250,0 +528,1 @@@ impl<T> Index<&MergeConflictCommit> fo\n++>>>>>>> b2b28c8... Display merge conflict branches\n\"#;\n}\n"
  },
  {
    "path": "src/handlers/mod.rs",
    "content": "/// This module contains functions handling input lines encountered during the\n/// main `StateMachine::consume()` loop.\npub mod blame;\npub mod commit_meta;\npub mod diff_header;\npub mod diff_header_diff;\npub mod diff_header_misc;\npub mod diff_stat;\npub mod draw;\npub mod git_show_file;\npub mod grep;\npub mod hunk;\npub mod hunk_header;\npub mod merge_conflict;\nmod ripgrep_json;\npub mod submodule;\n\nuse crate::delta::{State, StateMachine};\n\nimpl StateMachine<'_> {\n    pub fn handle_additional_cases(&mut self, to_state: State) -> std::io::Result<bool> {\n        let mut handled_line = false;\n\n        // Additional cases:\n        //\n        // 1. When comparing directories with diff -u, if filenames match between the\n        //    directories, the files themselves will be compared. However, if an equivalent\n        //    filename is not present, diff outputs a single line (Only in...) starting\n        //    indicating that the file is present in only one of the directories.\n        //\n        // 2. Git diff emits lines describing submodule state such as \"Submodule x/y/z contains\n        //    untracked content\"\n        //\n        // 3. When comparing binary files, diff can emit \"Binary files ... differ\" line.\n        //\n        // See https://github.com/dandavison/delta/issues/60#issuecomment-557485242 for a\n        // proposal for more robust parsing logic.\n\n        self.painter.paint_buffered_minus_and_plus_lines();\n        self.state = to_state;\n        if self.should_handle() {\n            self.painter.emit()?;\n            diff_header::write_generic_diff_header_header_line(\n                &self.line,\n                &self.raw_line,\n                &mut self.painter,\n                &mut self.mode_info,\n                self.config,\n            )?;\n            handled_line = true;\n        }\n\n        Ok(handled_line)\n    }\n}\n"
  },
  {
    "path": "src/handlers/ripgrep_json.rs",
    "content": "// See https://github.com/BurntSushi/ripgrep\n// This module implements handling of `rg --json` output. It is called by the\n// handler in handlers/grep.rs. Normal rg output (i.e. without --json) is\n// handled by the same code paths as `git grep` etc output, in handlers/grep.rs.\nuse std::borrow::Cow;\n\nuse crate::handlers::grep;\nuse serde::Deserialize;\nuse serde_json::Value;\n\npub fn parse_line(line: &str) -> Option<grep::GrepLine<'_>> {\n    let ripgrep_line: Option<RipGrepLine> = serde_json::from_str(line).ok();\n    match ripgrep_line {\n        Some(ripgrep_line) => {\n            // A real line of rg --json output, i.e. either of type \"match\" or\n            // \"context\".\n            let mut code = ripgrep_line.data.lines.text;\n            // Keep newlines so the syntax highlighter handles C-style line comments\n            // correctly. Also remove \\r, see [EndCRLF] in src/delta.rs, but this time\n            // it is syntect which adds an ANSI escape sequence in between \\r\\n later.\n            if code.ends_with(\"\\r\\n\") {\n                code.truncate(code.len() - 2);\n                code.push('\\n');\n            }\n            Some(grep::GrepLine {\n                grep_type: crate::config::GrepType::Ripgrep,\n                line_type: ripgrep_line._type,\n                line_number: ripgrep_line.data.line_number,\n                path: Cow::from(ripgrep_line.data.path.text),\n                code: Cow::from(code),\n                submatches: Some(\n                    ripgrep_line\n                        .data\n                        .submatches\n                        .iter()\n                        .map(|m| (m.start, m.end))\n                        .collect(),\n                ),\n            })\n        }\n        None => {\n            let value: Value = serde_json::from_str(line).ok()?;\n            match &value[\"type\"] {\n                Value::String(s) if s == \"begin\" || s == \"end\" || s == \"summary\" => {\n                    Some(grep::GrepLine {\n                        // ripgrep --json also emits these metadata lines at\n                        // file boundaries. We emit nothing but signal that the\n                        // line has been handled.\n                        grep_type: crate::config::GrepType::Ripgrep,\n                        line_type: grep::LineType::Ignore,\n                        line_number: None,\n                        path: \"\".into(),\n                        code: \"\".into(),\n                        submatches: None,\n                    })\n                }\n                _ => {\n                    // Failed to interpret the line as ripgrep output; allow\n                    // another delta handler to try.\n                    None\n                }\n            }\n        }\n    }\n}\n\n//   {\n//     \"type\": \"match\",\n//     \"data\": {\n//       \"path\": {\n//         \"text\": \"src/cli.rs\"\n//       },\n//       \"lines\": {\n//         \"text\": \"    fn from_clap_and_git_config(\\n\"\n//       },\n//       \"line_number\": null,\n//       \"absolute_offset\": 35837,\n//       \"submatches\": [\n//         {\n//           \"match\": {\n//             \"text\": \"fn\"\n//           },\n//           \"start\": 4,\n//           \"end\": 6\n//         }\n//       ]\n//     }\n//   }\n\n#[derive(Deserialize, PartialEq, Debug)]\nstruct RipGrepLine {\n    #[serde(rename(deserialize = \"type\"))]\n    _type: grep::LineType,\n    data: RipGrepLineData,\n}\n\n#[derive(Deserialize, PartialEq, Debug)]\nstruct RipGrepLineData {\n    path: RipGrepLineText,\n    lines: RipGrepLineText,\n    line_number: Option<usize>,\n    absolute_offset: usize,\n    submatches: Vec<RipGrepLineSubmatch>,\n}\n\n#[derive(Deserialize, PartialEq, Debug)]\nstruct RipGrepLineText {\n    text: String,\n}\n\n#[derive(Deserialize, PartialEq, Debug)]\nstruct RipGrepLineSubmatch {\n    #[serde(rename(deserialize = \"match\"))]\n    _match: RipGrepLineText,\n    start: usize,\n    end: usize,\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    use crate::tests::integration_test_utils::DeltaTest;\n    use insta::assert_snapshot;\n\n    /* FILE test.c:\n    // i ABC\n    int f() { return 4; }\n    const char* i = \"ABC\";\n    double n = 1.23;\n     */\n    #[test]\n    fn test_syntax_in_rg_output_with_context() {\n        // `rg int  -C2 --json test.c`\n        let data = r#\"{\"type\":\"begin\",\"data\":{\"path\":{\"text\":\"test.c\"}}}\n{\"type\":\"context\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"// i ABC\\n\"},\"line_number\":1,\"absolute_offset\":0,\"submatches\":[]}}\n{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"int f() { return 4; }\\n\"},\"line_number\":2,\"absolute_offset\":9,\"submatches\":[{\"match\":{\"text\":\"int\"},\"start\":0,\"end\":3}]}}\n{\"type\":\"context\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"const char* i = \\\"ABC\\\";\\n\"},\"line_number\":3,\"absolute_offset\":31,\"submatches\":[]}}\n{\"type\":\"context\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"double n = 1.23;\\n\"},\"line_number\":4,\"absolute_offset\":54,\"submatches\":[]}}\n{\"type\":\"end\",\"data\":{\"path\":{\"text\":\"test.c\"},\"binary_offset\":null,\"stats\":{\"elapsed\":{\"secs\":0,\"nanos\":26941,\"human\":\"0.000027s\"},\"searches\":1,\"searches_with_match\":1,\"bytes_searched\":71,\"bytes_printed\":670,\"matched_lines\":1,\"matches\":1}}}\n{\"data\":{\"elapsed_total\":{\"human\":\"0.000479s\",\"nanos\":478729,\"secs\":0},\"stats\":{\"bytes_printed\":670,\"bytes_searched\":71,\"elapsed\":{\"human\":\"0.000027s\",\"nanos\":26941,\"secs\":0},\"matched_lines\":1,\"matches\":1,\"searches\":1,\"searches_with_match\":1}},\"type\":\"summary\"}\"#;\n        let result = DeltaTest::with_args(&[]).explain_ansi().with_input(data);\n        // eprintln!(\"{}\", result.raw_output);\n        assert_snapshot!(result.output, @r#\"\n        (purple)test.c(normal) \n        (green)1(normal)-(242)// i ABC(normal)\n        (green)2(normal):(81 28)int(231) (149)f(231)() { (203)return(231) (141)4(231); }(normal)\n        (green)3(normal)-(203)const(231) (81)char(203)*(231) i (203)=(231) (186)\"ABC\"(231);(normal)\n        (green)4(normal)-(81)double(231) n (203)=(231) (141)1.23(231);(normal)\n        \"#);\n    }\n\n    #[test]\n    fn test_syntax_in_rg_output_no_context() {\n        // `rg i  --json test.c`\n        let data = r#\"{\"type\":\"begin\",\"data\":{\"path\":{\"text\":\"test.c\"}}}\n{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"// i ABC\\n\"},\"line_number\":1,\"absolute_offset\":0,\"submatches\":[{\"match\":{\"text\":\"i\"},\"start\":3,\"end\":4}]}}\n{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"int f() { return 4; }\\n\"},\"line_number\":2,\"absolute_offset\":9,\"submatches\":[{\"match\":{\"text\":\"i\"},\"start\":0,\"end\":1}]}}\n{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"test.c\"},\"lines\":{\"text\":\"const char* i = \\\"ABC\\\";\\n\"},\"line_number\":3,\"absolute_offset\":31,\"submatches\":[{\"match\":{\"text\":\"i\"},\"start\":12,\"end\":13}]}}\n{\"type\":\"end\",\"data\":{\"path\":{\"text\":\"test.c\"},\"binary_offset\":null,\"stats\":{\"elapsed\":{\"secs\":0,\"nanos\":23885,\"human\":\"0.000024s\"},\"searches\":1,\"searches_with_match\":1,\"bytes_searched\":71,\"bytes_printed\":602,\"matched_lines\":3,\"matches\":3}}}\n{\"data\":{\"elapsed_total\":{\"human\":\"0.000433s\",\"nanos\":432974,\"secs\":0},\"stats\":{\"bytes_printed\":602,\"bytes_searched\":71,\"elapsed\":{\"human\":\"0.000024s\",\"nanos\":23885,\"secs\":0},\"matched_lines\":3,\"matches\":3,\"searches\":1,\"searches_with_match\":1}},\"type\":\"summary\"}\n\"#;\n        let result = DeltaTest::with_args(&[]).explain_ansi().with_input(data);\n        // eprintln!(\"{}\", result.raw_output);\n        assert_snapshot!(result.output, @r#\"\n        (purple)test.c(normal) \n        (green)1(normal):(242)// (normal 28)i(242) ABC(normal)\n        (green)2(normal):(81 28)i(81)nt(231) (149)f(231)() { (203)return(231) (141)4(231); }(normal)\n        (green)3(normal):(203)const(231) (81)char(203)*(231) (normal 28)i(231) (203)=(231) (186)\"ABC\"(231);(normal)\n        \"#);\n    }\n\n    #[test]\n    fn test_deserialize() {\n        let line = r#\"{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"src/cli.rs\"},\"lines\":{\"text\":\"    fn from_clap_and_git_config(\\n\"},\"line_number\":null,\"absolute_offset\":35837,\"submatches\":[{\"match\":{\"text\":\"fn\"},\"start\":4,\"end\":6}]}}\"#;\n        let ripgrep_line: RipGrepLine = serde_json::from_str(line).unwrap();\n        assert_eq!(\n            ripgrep_line,\n            RipGrepLine {\n                _type: grep::LineType::Match,\n                data: RipGrepLineData {\n                    path: RipGrepLineText {\n                        text: \"src/cli.rs\".into()\n                    },\n                    lines: RipGrepLineText {\n                        text: \"    fn from_clap_and_git_config(\\n\".into(),\n                    },\n                    line_number: None,\n                    absolute_offset: 35837,\n                    submatches: vec![RipGrepLineSubmatch {\n                        _match: RipGrepLineText { text: \"fn\".into() },\n                        start: 4,\n                        end: 6\n                    }]\n                }\n            }\n        )\n    }\n\n    #[test]\n    fn test_deserialize_2() {\n        let line = r#\"{\"type\":\"match\",\"data\":{\"path\":{\"text\":\"src/handlers/submodule.rs\"},\"lines\":{\"text\":\"                        .paint(minus_commit.chars().take(7).collect::<String>()),\\n\"},\"line_number\":41,\"absolute_offset\":1430,\"submatches\":[{\"match\":{\"text\":\"(\"},\"start\":30,\"end\":31},{\"match\":{\"text\":\"(\"},\"start\":49,\"end\":50},{\"match\":{\"text\":\")\"},\"start\":50,\"end\":51},{\"match\":{\"text\":\"(\"},\"start\":56,\"end\":57},{\"match\":{\"text\":\")\"},\"start\":58,\"end\":59},{\"match\":{\"text\":\"(\"},\"start\":77,\"end\":78},{\"match\":{\"text\":\")\"},\"start\":78,\"end\":79},{\"match\":{\"text\":\")\"},\"start\":79,\"end\":80}]}}\"#;\n        let ripgrep_line: RipGrepLine = serde_json::from_str(line).unwrap();\n        assert_eq!(\n            ripgrep_line,\n            RipGrepLine {\n                _type: grep::LineType::Match,\n                data: RipGrepLineData {\n                    path: RipGrepLineText {\n                        text: \"src/handlers/submodule.rs\".into()\n                    },\n                    lines: RipGrepLineText {\n                        text: \"                        .paint(minus_commit.chars().take(7).collect::<String>()),\\n\".into(),\n                    },\n                    line_number: Some(41),\n                    absolute_offset: 1430,\n                    submatches: vec![\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \"(\".into() },\n                            start: 30,\n                            end: 31\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \"(\".into() },\n                            start: 49,\n                            end: 50\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \")\".into() },\n                            start: 50,\n                            end: 51\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \"(\".into() },\n                            start: 56,\n                            end: 57\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \")\".into() },\n                            start: 58,\n                            end: 59\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \"(\".into() },\n                            start: 77,\n                            end: 78\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \")\".into() },\n                            start: 78,\n                            end: 79\n                        },\n                        RipGrepLineSubmatch {\n                            _match: RipGrepLineText { text: \")\".into() },\n                            start: 79,\n                            end: 80\n                        },\n                    ]\n                }\n            }\n        )\n    }\n}\n"
  },
  {
    "path": "src/handlers/submodule.rs",
    "content": "use lazy_static::lazy_static;\nuse regex::Regex;\n\nuse crate::delta::{State, StateMachine};\n\nimpl StateMachine<'_> {\n    #[inline]\n    fn test_submodule_log(&self) -> bool {\n        self.line.starts_with(\"Submodule \")\n    }\n\n    pub fn handle_submodule_log_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_submodule_log() {\n            return Ok(false);\n        }\n        self.handle_additional_cases(State::SubmoduleLog)\n    }\n\n    #[inline]\n    fn test_submodule_short_line(&self) -> bool {\n        matches!(self.state, State::HunkHeader(_, _, _, _))\n            && self.line.starts_with(\"-Subproject commit \")\n            || matches!(self.state, State::SubmoduleShort(_))\n                && self.line.starts_with(\"+Subproject commit \")\n    }\n\n    pub fn handle_submodule_short_line(&mut self) -> std::io::Result<bool> {\n        if !self.test_submodule_short_line() || self.config.color_only {\n            return Ok(false);\n        }\n        if let Some(commit) = get_submodule_short_commit(&self.line) {\n            if let State::HunkHeader(_, _, _, _) = self.state {\n                self.state = State::SubmoduleShort(commit.to_owned());\n            } else if let State::SubmoduleShort(minus_commit) = &self.state {\n                self.painter.emit()?;\n                writeln!(\n                    self.painter.writer,\n                    \"{}..{}\",\n                    self.config\n                        .minus_style\n                        .paint(minus_commit.chars().take(12).collect::<String>()),\n                    self.config\n                        .plus_style\n                        .paint(commit.chars().take(12).collect::<String>()),\n                )?;\n            }\n        }\n        Ok(true)\n    }\n}\n\nlazy_static! {\n    static ref SUBMODULE_SHORT_LINE_REGEX: Regex =\n        Regex::new(\"^[-+]Subproject commit ([0-9a-f]{40})(-dirty)?$\").unwrap();\n}\n\npub fn get_submodule_short_commit(line: &str) -> Option<&str> {\n    match SUBMODULE_SHORT_LINE_REGEX.captures(line) {\n        Some(caps) => Some(caps.get(1).unwrap().as_str()),\n        None => None,\n    }\n}\n"
  },
  {
    "path": "src/main.rs",
    "content": "mod align;\nmod ansi;\nmod cli;\nmod color;\nmod colors;\nmod config;\nmod delta;\nmod edits;\nmod env;\nmod features;\nmod format;\nmod git_config;\nmod handlers;\nmod minusplus;\nmod options;\nmod paint;\nmod parse_style;\nmod parse_styles;\nmod style;\nmod utils;\nmod wrapping;\n\nmod subcommands;\n\nmod tests;\n\nuse std::ffi::{OsStr, OsString};\nuse std::io::{self, BufRead, Cursor, ErrorKind, IsTerminal, Write};\nuse std::process::{self, Command, Stdio};\n\nuse bytelines::ByteLinesReader;\n\nuse crate::cli::Call;\nuse crate::config::delta_unreachable;\nuse crate::delta::delta;\nuse crate::subcommands::{SubCmdKind, SubCommand};\nuse crate::utils::bat::assets::list_languages;\nuse crate::utils::bat::output::{OutputType, PagingMode};\n\npub fn fatal<T>(errmsg: T) -> !\nwhere\n    T: AsRef<str> + std::fmt::Display,\n{\n    #[cfg(not(test))]\n    {\n        eprintln!(\"{errmsg}\");\n        // As in Config::error_exit_code: use 2 for error\n        // because diff uses 0 and 1 for non-error.\n        process::exit(2);\n    }\n    #[cfg(test)]\n    panic!(\"{}\\n\", errmsg);\n}\n\npub mod errors {\n    pub use anyhow::{anyhow, Context, Error, Result};\n}\n\n#[cfg(not(tarpaulin_include))]\nfn main() -> std::io::Result<()> {\n    // Do this first because both parsing all the input in `run_app()` and\n    // listing all processes takes about 50ms on Linux.\n    // It also improves the chance that the calling process is still around when\n    // input is piped into delta (e.g. `git show  --word-diff=color | delta`).\n    utils::process::start_determining_calling_process_in_thread();\n\n    // Ignore ctrl-c (SIGINT) to avoid leaving an orphaned pager process.\n    // See https://github.com/dandavison/delta/issues/681\n    ctrlc::set_handler(|| {})\n        .unwrap_or_else(|err| eprintln!(\"Failed to set ctrl-c handler: {err}\"));\n    let exit_code = run_app(std::env::args_os().collect::<Vec<_>>(), None)?;\n    // when you call process::exit, no drop impls are called, so we want to do it only once, here\n    process::exit(exit_code);\n}\n\n#[cfg(not(tarpaulin_include))]\n// An Ok result contains the desired process exit code. Note that 1 is used to\n// report that two files differ when delta is called with two positional\n// arguments and without standard input; 2 is used to report a real problem.\npub fn run_app(\n    args: Vec<OsString>,\n    capture_output: Option<&mut Cursor<Vec<u8>>>,\n) -> std::io::Result<i32> {\n    let env = env::DeltaEnv::init();\n    let assets = utils::bat::assets::load_highlighting_assets();\n    let (call, opt) = cli::Opt::from_args_and_git_config(args, &env, assets);\n\n    if let Call::Version(msg) = call {\n        writeln!(std::io::stdout(), \"{}\", msg.trim_end())?;\n        return Ok(0);\n    } else if let Call::Help(msg) = call {\n        OutputType::oneshot_write(msg)?;\n        return Ok(0);\n    } else if let Call::SubCommand(_, cmd) = &call {\n        // Set before creating the Config, which already asks for the calling process\n        // (not required for Call::DeltaDiff)\n        utils::process::set_calling_process(\n            &cmd.args\n                .iter()\n                .map(|arg| OsStr::to_string_lossy(arg).to_string())\n                .collect::<Vec<_>>(),\n        );\n    }\n    let opt = opt.unwrap_or_else(|| delta_unreachable(\"Opt is set\"));\n\n    let subcommand_result = if let Some(shell) = opt.generate_completion {\n        Some(subcommands::generate_completion::generate_completion_file(\n            shell,\n        ))\n    } else if opt.list_languages {\n        Some(list_languages())\n    } else if opt.list_syntax_themes {\n        Some(subcommands::list_syntax_themes::list_syntax_themes())\n    } else if opt.show_syntax_themes {\n        Some(subcommands::show_syntax_themes::show_syntax_themes())\n    } else if opt.show_themes {\n        Some(subcommands::show_themes::show_themes(\n            opt.dark,\n            opt.light,\n            opt.computed.color_mode,\n        ))\n    } else if opt.show_colors {\n        Some(subcommands::show_colors::show_colors())\n    } else if opt.parse_ansi {\n        Some(subcommands::parse_ansi::parse_ansi())\n    } else {\n        None\n    };\n    if let Some(result) = subcommand_result {\n        if let Err(error) = result {\n            match error.kind() {\n                ErrorKind::BrokenPipe => {}\n                _ => fatal(format!(\"{error}\")),\n            }\n        }\n        return Ok(0);\n    };\n\n    let _show_config = opt.show_config;\n    let config = config::Config::from(opt);\n\n    if _show_config {\n        let stdout = io::stdout();\n        let mut stdout = stdout.lock();\n        subcommands::show_config::show_config(&config, &mut stdout)?;\n        return Ok(0);\n    }\n\n    // The following block structure is because of `writer` and related lifetimes:\n    let pager_cfg = (&config).into();\n    let paging_mode = if capture_output.is_some() {\n        PagingMode::Capture\n    } else {\n        config.paging_mode\n    };\n    let mut output_type =\n        OutputType::from_mode(&env, paging_mode, config.pager.clone(), &pager_cfg).unwrap();\n    let mut writer: &mut dyn Write = if paging_mode == PagingMode::Capture {\n        &mut capture_output.unwrap()\n    } else {\n        output_type.handle().unwrap()\n    };\n\n    let subcmd = match call {\n        Call::DeltaDiff(_, minus, plus) => {\n            match subcommands::diff::build_diff_cmd(&minus, &plus, &config) {\n                Err(code) => return Ok(code),\n                Ok(val) => val,\n            }\n        }\n        Call::SubCommand(_, subcmd) => subcmd,\n        Call::Delta(_) => SubCommand::none(),\n        Call::Help(_) | Call::Version(_) => delta_unreachable(\"help/version handled earlier\"),\n    };\n\n    if subcmd.is_none() {\n        // Default delta run: read input from stdin, write to stdout or pager (pager started already^).\n\n        if io::stdin().is_terminal() {\n            eprintln!(\n                \"\\\n                    The main way to use delta is to configure it as the pager for git: \\\n                    see https://github.com/dandavison/delta#get-started. \\\n                    You can also use delta to diff two files: `delta file_A file_B`.\"\n            );\n            return Ok(config.error_exit_code);\n        }\n\n        let res = delta(io::stdin().lock().byte_lines(), &mut writer, &config);\n\n        if let Err(error) = res {\n            match error.kind() {\n                ErrorKind::BrokenPipe => return Ok(0),\n                _ => {\n                    eprintln!(\"{error}\");\n                    return Ok(config.error_exit_code);\n                }\n            }\n        }\n\n        Ok(0)\n    } else {\n        // First start a subcommand, and pipe input from it to delta(). Also handle\n        // subcommand exit code and stderr (maybe truncate it, e.g. for git and diff logic).\n\n        let (subcmd_bin, subcmd_args) = subcmd.args.split_first().unwrap();\n        let subcmd_kind = subcmd.kind; // for easier {} formatting\n\n        let subcmd_bin_path = match grep_cli::resolve_binary(std::path::PathBuf::from(subcmd_bin)) {\n            Ok(path) => path,\n            Err(err) => {\n                eprintln!(\"Failed to resolve command {subcmd_bin:?}: {err}\");\n                return Ok(config.error_exit_code);\n            }\n        };\n\n        let cmd = Command::new(subcmd_bin)\n            .args(subcmd_args.iter())\n            .stdout(Stdio::piped())\n            .stderr(Stdio::piped())\n            .spawn();\n\n        if let Err(err) = cmd {\n            eprintln!(\"Failed to execute the command {subcmd_bin:?}: {err}\");\n            return Ok(config.error_exit_code);\n        }\n        let mut cmd = cmd.unwrap();\n\n        let cmd_stdout = cmd\n            .stdout\n            .take()\n            .unwrap_or_else(|| panic!(\"Failed to open stdout\"));\n        let cmd_stdout_buf = io::BufReader::new(cmd_stdout);\n\n        let res = delta(cmd_stdout_buf.byte_lines(), &mut writer, &config);\n\n        if let Err(error) = res {\n            let _ = cmd.wait(); // for clippy::zombie_processes\n            match error.kind() {\n                ErrorKind::BrokenPipe => return Ok(0),\n                _ => {\n                    eprintln!(\"{error}\");\n                    return Ok(config.error_exit_code);\n                }\n            }\n        };\n\n        let subcmd_status = cmd\n            .wait()\n            .unwrap_or_else(|_| {\n                delta_unreachable(&format!(\"{subcmd_kind:?} process not running.\"));\n            })\n            .code()\n            .unwrap_or_else(|| {\n                eprintln!(\"delta: {subcmd_kind:?} process terminated without exit status.\");\n                config.error_exit_code\n            });\n\n        let mut stderr_lines = io::BufReader::new(\n            cmd.stderr\n                .unwrap_or_else(|| panic!(\"Failed to open stderr\")),\n        )\n        .lines();\n        if let Some(line1) = stderr_lines.next() {\n            // prefix the first error line with the called subcommand\n            eprintln!(\n                \"{}: {}\",\n                subcmd_kind,\n                line1.unwrap_or(\"<delta: could not parse stderr line>\".into())\n            );\n        }\n\n        // On `git diff` unknown option error: stop after printing the first line above (which is\n        // an error message), because the entire --help text follows.\n        if !(subcmd_status == 129\n            && matches!(subcmd_kind, SubCmdKind::GitDiff | SubCmdKind::Git(_)))\n        {\n            for line in stderr_lines {\n                eprintln!(\n                    \"{}\",\n                    line.unwrap_or(\"<delta: could not parse stderr line>\".into())\n                );\n            }\n        }\n\n        if matches!(subcmd_kind, SubCmdKind::GitDiff | SubCmdKind::Diff) && subcmd_status >= 2 {\n            eprintln!(\n                \"{subcmd_kind:?} process failed with exit status {subcmd_status}. Command was: {}\",\n                format_args!(\n                    \"{} {}\",\n                    subcmd_bin_path.display(),\n                    shell_words::join(\n                        subcmd_args\n                            .iter()\n                            .map(|arg0: &OsString| std::ffi::OsStr::to_string_lossy(arg0))\n                    ),\n                )\n            );\n        }\n\n        Ok(subcmd_status)\n    }\n\n    // `output_type` drop impl runs here\n}\n"
  },
  {
    "path": "src/minusplus.rs",
    "content": "use std::ops::{Index, IndexMut};\n\n/// Represent data related to removed/minus and added/plus lines which\n/// can be indexed with [`MinusPlusIndex::{Plus`](MinusPlusIndex::Plus)`,`[`Minus}`](MinusPlusIndex::Minus).\n#[derive(Debug, Clone, PartialEq, Eq)]\npub struct MinusPlus<T> {\n    pub minus: T,\n    pub plus: T,\n}\n\n#[derive(Debug, Clone, Copy, PartialEq, Eq)]\npub enum MinusPlusIndex {\n    Minus,\n    Plus,\n}\n\npub use MinusPlusIndex::*;\n\nimpl<T> Index<MinusPlusIndex> for MinusPlus<T> {\n    type Output = T;\n    fn index(&self, side: MinusPlusIndex) -> &Self::Output {\n        match side {\n            Minus => &self.minus,\n            Plus => &self.plus,\n        }\n    }\n}\n\nimpl<T> IndexMut<MinusPlusIndex> for MinusPlus<T> {\n    fn index_mut(&mut self, side: MinusPlusIndex) -> &mut Self::Output {\n        match side {\n            Minus => &mut self.minus,\n            Plus => &mut self.plus,\n        }\n    }\n}\n\nimpl<T> MinusPlus<T> {\n    pub fn new(minus: T, plus: T) -> Self {\n        MinusPlus { minus, plus }\n    }\n}\n\nimpl<T: Default> Default for MinusPlus<T> {\n    fn default() -> Self {\n        Self {\n            minus: T::default(),\n            plus: T::default(),\n        }\n    }\n}\n"
  },
  {
    "path": "src/options/get.rs",
    "content": "use std::collections::HashMap;\n\nuse crate::cli;\nuse crate::features;\nuse crate::git_config::{self, GitConfigGet};\nuse crate::options::option_value::{OptionValue, ProvenancedOptionValue};\nuse ProvenancedOptionValue::*;\n\n// Look up a value of type `T` associated with `option name`. The search rules are:\n//\n// 1. If there is a value associated with `option_name` in the main [delta] git config\n//    section, then stop searching and return that value (steps 2 and 3 are not executed at all).\n//\n// 2. For each feature in the ordered list of enabled features:\n//\n//    2.1 Look-up the value, treating `feature` as a custom feature.\n//        I.e., if there is a value associated with `option_name` in a git config section\n//        named [delta \"`feature`\"] then stop searching and return that value.\n//\n//    2.2 Look-up the value, treating `feature` as a builtin feature.\n//        I.e., if there is a value (not a default value) associated with `option_name` in a\n//        builtin feature named `feature`, then stop searching and return that value.\n//        Otherwise, record the default value and continue searching.\n//\n// 3. Return the last default value that was encountered.\npub fn get_option_value<T>(\n    option_name: &str,\n    builtin_features: &HashMap<String, features::BuiltinFeature>,\n    opt: &cli::Opt,\n    git_config: &mut Option<git_config::GitConfig>,\n) -> Option<T>\nwhere\n    T: GitConfigGet,\n    T: GetOptionValue,\n    T: From<OptionValue>,\n    T: Into<OptionValue>,\n{\n    T::get_option_value(option_name, builtin_features, opt, git_config)\n}\n\nstatic GIT_CONFIG_THEME_REGEX: &str = r\"^delta\\.(.+)\\.(light|dark)$\";\n\npub fn get_themes(git_config: Option<git_config::GitConfig>) -> Vec<String> {\n    let mut themes: Vec<String> = Vec::new();\n    let git_config = git_config.unwrap();\n    git_config.for_each(GIT_CONFIG_THEME_REGEX, |name, _| {\n        if let Some(name) = name.strip_prefix(\"delta.\") {\n            if let Some((name, _)) = name.rsplit_once('.') {\n                let name = name.to_owned();\n                if !themes.contains(&name) {\n                    themes.push(name);\n                }\n            }\n        }\n    });\n    themes.sort_by_key(|a| a.to_lowercase());\n    themes\n}\n\npub trait GetOptionValue {\n    fn get_option_value(\n        option_name: &str,\n        builtin_features: &HashMap<String, features::BuiltinFeature>,\n        opt: &cli::Opt,\n        git_config: &mut Option<git_config::GitConfig>,\n    ) -> Option<Self>\n    where\n        Self: Sized,\n        Self: GitConfigGet,\n        Self: From<OptionValue>,\n        Self: Into<OptionValue>,\n    {\n        if let Some(git_config) = git_config {\n            if let Some(value) = git_config.get::<Self>(&format!(\"delta.{option_name}\")) {\n                return Some(value);\n            }\n        }\n        if let Some(features) = &opt.features {\n            for feature in features.split_whitespace().rev() {\n                match Self::get_provenanced_value_for_feature(\n                    option_name,\n                    feature,\n                    builtin_features,\n                    opt,\n                    git_config,\n                ) {\n                    Some(GitConfigValue(value)) | Some(DefaultValue(value)) => {\n                        return Some(value.into());\n                    }\n                    None => {}\n                }\n            }\n        }\n        None\n    }\n\n    /// Return the value, or default value, associated with `option_name` under feature name\n    /// `feature`. This may refer to a custom feature, or a builtin feature, or both. Only builtin\n    /// features have defaults. See `GetOptionValue::get_option_value`.\n    fn get_provenanced_value_for_feature(\n        option_name: &str,\n        feature: &str,\n        builtin_features: &HashMap<String, features::BuiltinFeature>,\n        opt: &cli::Opt,\n        git_config: &mut Option<git_config::GitConfig>,\n    ) -> Option<ProvenancedOptionValue>\n    where\n        Self: Sized,\n        Self: GitConfigGet,\n        Self: Into<OptionValue>,\n    {\n        if let Some(git_config) = git_config {\n            if let Some(value) = git_config.get::<Self>(&format!(\"delta.{feature}.{option_name}\")) {\n                return Some(GitConfigValue(value.into()));\n            }\n        }\n        if let Some(builtin_feature) = builtin_features.get(feature) {\n            if let Some(value_function) = builtin_feature.get(option_name) {\n                return Some(value_function(opt, git_config));\n            }\n        }\n        None\n    }\n}\n\nimpl GetOptionValue for Option<String> {}\nimpl GetOptionValue for String {}\nimpl GetOptionValue for bool {}\nimpl GetOptionValue for f64 {}\nimpl GetOptionValue for usize {}\n\n#[cfg(test)]\npub mod tests {\n    use std::fs::remove_file;\n\n    use crate::cli::Opt;\n    use crate::env::DeltaEnv;\n    use crate::options::get::get_themes;\n    use crate::tests::integration_test_utils;\n\n    // fn generic<T>(_s: SGen<T>) {}\n    fn _test_env_var_overrides_git_config_generic(\n        git_config_contents: &[u8],\n        git_config_path: &str,\n        env_value: String,\n        fn_cmp_before: &dyn Fn(Opt),\n        fn_cmp_after: &dyn Fn(Opt),\n    ) {\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        fn_cmp_before(opt);\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config_honoring_env_var_with_custom_env(\n            DeltaEnv {\n                git_config_parameters: Some(env_value),\n                ..DeltaEnv::default()\n            },\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        fn_cmp_after(opt);\n\n        remove_file(git_config_path).unwrap();\n    }\n    #[test]\n    fn test_env_var_overrides_git_config_simple_string() {\n        let git_config_contents = b\"\n[delta]\n    plus-style = blue\n\";\n        let git_config_path = \"delta__test_simple_string_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            \"'delta.plus-style=green'\".into(),\n            &|opt: Opt| assert_eq!(opt.plus_style, \"blue\"),\n            &|opt: Opt| assert_eq!(opt.plus_style, \"green\"),\n        );\n    }\n\n    #[test]\n    fn test_env_var_overrides_git_config_complex_string() {\n        let git_config_contents = br##\"\n[delta]\n    minus-style = red bold ul \"#ffeeee\"\n\"##;\n        let git_config_path = \"delta__test_complex_string_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            r##\"'delta.minus-style=magenta italic ol \"#aabbcc\"'\"##.into(),\n            &|opt: Opt| assert_eq!(opt.minus_style, r##\"red bold ul #ffeeee\"##),\n            &|opt: Opt| assert_eq!(opt.minus_style, r##\"magenta italic ol \"#aabbcc\"\"##,),\n        );\n    }\n\n    #[test]\n    fn test_env_var_overrides_git_config_option_string() {\n        let git_config_contents = b\"\n[delta]\n    plus-style = blue\n\";\n        let git_config_path = \"delta__test_option_string_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            \"'delta.plus-style=green'\".into(),\n            &|opt: Opt| assert_eq!(opt.plus_style, \"blue\"),\n            &|opt: Opt| assert_eq!(opt.plus_style, \"green\"),\n        );\n    }\n\n    #[test]\n    fn test_env_var_overrides_git_config_bool() {\n        let git_config_contents = b\"\n[delta]\n    side-by-side = true\n\";\n        let git_config_path = \"delta__test_bool_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            \"'delta.side-by-side=false'\".into(),\n            &|opt: Opt| assert!(opt.side_by_side),\n            &|opt: Opt| assert!(!opt.side_by_side),\n        );\n    }\n\n    #[test]\n    fn test_env_var_overrides_git_config_int() {\n        let git_config_contents = b\"\n[delta]\n    max-line-length = 1\n\";\n        let git_config_path = \"delta__test_int_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            \"'delta.max-line-length=2'\".into(),\n            &|opt: Opt| assert_eq!(opt.max_line_length, 1),\n            &|opt: Opt| assert_eq!(opt.max_line_length, 2),\n        );\n    }\n\n    #[test]\n    fn test_env_var_overrides_git_config_float() {\n        let git_config_contents = b\"\n[delta]\n    max-line-distance = 0.6\n\";\n        let git_config_path = \"delta__test_float_env_var_overrides_git_config.gitconfig\";\n        _test_env_var_overrides_git_config_generic(\n            git_config_contents,\n            git_config_path,\n            \"'delta.max-line-distance=0.7'\".into(),\n            &|opt: Opt| assert_eq!(opt.max_line_distance, 0.6),\n            &|opt: Opt| assert_eq!(opt.max_line_distance, 0.7),\n        );\n    }\n\n    #[test]\n    fn test_delta_features_env_var() {\n        let git_config_contents = b\"\n[delta]\n    features = feature-from-gitconfig\n\";\n        let git_config_path = \"delta__test_delta_features_env_var.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        assert_eq!(opt.features.unwrap(), \"feature-from-gitconfig\");\n        assert!(!opt.side_by_side);\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config_with_custom_env(\n            DeltaEnv {\n                features: Some(\"side-by-side\".into()),\n                ..DeltaEnv::default()\n            },\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        // `line-numbers` is a builtin feature induced by side-by-side\n        assert_eq!(opt.features.unwrap(), \"line-numbers side-by-side\");\n        assert!(opt.side_by_side);\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config_with_custom_env(\n            DeltaEnv {\n                features: Some(\"+side-by-side\".into()),\n                ..DeltaEnv::default()\n            },\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n        assert_eq!(\n            opt.features.unwrap(),\n            \"feature-from-gitconfig line-numbers side-by-side\"\n        );\n        assert!(opt.side_by_side);\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_get_themes_from_config() {\n        let git_config_contents = r#\"\n[delta \"dark-theme\"]\n    max-line-distance = 0.6\n    dark = true\n\n[delta \"light-theme\"]\n    max-line-distance = 0.6\n    light = true\n\n[delta \"light-and-dark-theme\"]\n    max-line-distance = 0.6\n    light = true\n    dark = true\n\n[delta \"Uppercase-Theme\"]\n    light = true\n\n[delta \"not-a-theme\"]\n    max-line-distance = 0.6\n\"#;\n        let git_config_path = \"delta__test_get_themes_git_config.gitconfig\";\n\n        let git_config = Some(integration_test_utils::make_git_config(\n            &DeltaEnv::default(),\n            git_config_contents.as_bytes(),\n            git_config_path,\n            false,\n        ));\n\n        let themes = get_themes(git_config);\n\n        assert_eq!(\n            themes,\n            [\n                \"dark-theme\",\n                \"light-and-dark-theme\",\n                \"light-theme\",\n                \"Uppercase-Theme\"\n            ]\n        );\n\n        remove_file(git_config_path).unwrap();\n    }\n}\n"
  },
  {
    "path": "src/options/mod.rs",
    "content": "pub mod get;\npub mod option_value;\npub mod set;\npub mod theme;\n"
  },
  {
    "path": "src/options/option_value.rs",
    "content": "use crate::config::delta_unreachable;\n\n/// A value associated with a Delta command-line option name.\npub enum OptionValue {\n    Boolean(bool),\n    Float(f64),\n    OptionString(Option<String>),\n    String(String),\n    Int(usize),\n}\n\n/// An OptionValue, tagged according to its provenance/semantics.\npub enum ProvenancedOptionValue {\n    GitConfigValue(OptionValue),\n    DefaultValue(OptionValue),\n}\n\nimpl From<bool> for OptionValue {\n    fn from(value: bool) -> Self {\n        OptionValue::Boolean(value)\n    }\n}\n\nimpl From<OptionValue> for bool {\n    fn from(value: OptionValue) -> Self {\n        match value {\n            OptionValue::Boolean(value) => value,\n            _ => delta_unreachable(\"Error converting OptionValue to bool.\"),\n        }\n    }\n}\n\nimpl From<f64> for OptionValue {\n    fn from(value: f64) -> Self {\n        OptionValue::Float(value)\n    }\n}\n\nimpl From<OptionValue> for f64 {\n    fn from(value: OptionValue) -> Self {\n        match value {\n            OptionValue::Float(value) => value,\n            _ => delta_unreachable(\"Error converting OptionValue to f64.\"),\n        }\n    }\n}\n\nimpl From<Option<String>> for OptionValue {\n    fn from(value: Option<String>) -> Self {\n        OptionValue::OptionString(value)\n    }\n}\n\nimpl From<OptionValue> for Option<String> {\n    fn from(value: OptionValue) -> Self {\n        match value {\n            OptionValue::OptionString(value) => value,\n            _ => delta_unreachable(\"Error converting OptionValue to Option<String>.\"),\n        }\n    }\n}\n\nimpl From<String> for OptionValue {\n    fn from(value: String) -> Self {\n        OptionValue::String(value)\n    }\n}\n\nimpl From<&str> for OptionValue {\n    fn from(value: &str) -> Self {\n        value.to_string().into()\n    }\n}\n\nimpl From<OptionValue> for String {\n    fn from(value: OptionValue) -> Self {\n        match value {\n            OptionValue::String(value) => value,\n            _ => delta_unreachable(\"Error converting OptionValue to String.\"),\n        }\n    }\n}\n\nimpl From<usize> for OptionValue {\n    fn from(value: usize) -> Self {\n        OptionValue::Int(value)\n    }\n}\n\nimpl From<OptionValue> for usize {\n    fn from(value: OptionValue) -> Self {\n        match value {\n            OptionValue::Int(value) => value,\n            _ => delta_unreachable(\"Error converting OptionValue to usize.\"),\n        }\n    }\n}\n"
  },
  {
    "path": "src/options/set.rs",
    "content": "use std::collections::{HashMap, HashSet, VecDeque};\nuse std::convert::TryInto;\nuse std::result::Result;\nuse std::str::FromStr;\n\nuse bat::assets::HighlightingAssets;\nuse console::Term;\n\nuse crate::cli;\nuse crate::config;\nuse crate::env::DeltaEnv;\nuse crate::errors::*;\nuse crate::fatal;\nuse crate::features;\nuse crate::git_config::GitConfig;\nuse crate::options::option_value::{OptionValue, ProvenancedOptionValue};\nuse crate::options::theme;\nuse crate::utils::bat::output::PagingMode;\n\nmacro_rules! set_options {\n    ([$( $field_ident:ident ),* ],\n    $opt:expr, $builtin_features:expr, $git_config:expr, $arg_matches:expr, $expected_option_name_map:expr, $check_names:expr) => {\n        let mut option_names = HashSet::new();\n        $(\n            let field_name = stringify!($field_ident);\n            let option_name = &$expected_option_name_map[field_name];\n            if !$crate::config::user_supplied_option(&field_name, $arg_matches) {\n                if let Some(value) = $crate::options::get::get_option_value(\n                    option_name,\n                    &$builtin_features,\n                    $opt,\n                    $git_config\n                ) {\n                    $opt.$field_ident = value;\n                }\n            }\n            if $check_names {\n                option_names.insert(option_name.as_str());\n            }\n        )*\n        if $check_names {\n            option_names.extend(&[\n                \"24-bit-color\",\n                \"diff-highlight\", // Does not exist as a flag on config\n                \"diff-so-fancy\", // Does not exist as a flag on config\n                \"detect-dark-light\", // Does not exist as a flag on config\n                \"features\",  // Processed differently\n                // Set prior to the rest\n                \"no-gitconfig\",\n                \"dark\",\n                \"light\",\n                \"syntax-theme\",\n            ]);\n            let expected_option_names: HashSet<_> = $expected_option_name_map\n                .values()\n                .map(String::as_str)\n                .collect();\n\n            if option_names != expected_option_names {\n                $crate::config::delta_unreachable(\n                    &format!(\"Error processing options.\\nUnhandled names: {:?}\\nInvalid names: {:?}.\\n\",\n                             &expected_option_names - &option_names,\n                             &option_names - &expected_option_names));\n            }\n        }\n    }\n}\n\npub fn set_options(\n    opt: &mut cli::Opt,\n    git_config: &mut Option<GitConfig>,\n    arg_matches: &clap::ArgMatches,\n    assets: HighlightingAssets,\n) {\n    if let Some(git_config) = git_config {\n        if opt.no_gitconfig {\n            git_config.enabled = false;\n        }\n    }\n    opt.navigate = opt.navigate || opt.env.navigate.is_some();\n    if opt.syntax_theme.is_none() {\n        opt.syntax_theme.clone_from(&opt.env.bat_theme);\n    }\n\n    let option_names = cli::Opt::get_argument_and_option_names();\n\n    // Set features\n    let mut builtin_features = features::make_builtin_features();\n\n    // --color-only is used for interactive.diffFilter (git add -p) and side-by-side cannot be used\n    // there (does not emit lines in 1-1 correspondence with raw git output). See #274.\n    if config::user_supplied_option(\"color_only\", arg_matches) {\n        builtin_features.remove(\"side-by-side\");\n    }\n\n    let features = gather_features(opt, &builtin_features, git_config);\n    opt.features = Some(features.join(\" \"));\n\n    // Set light, dark, and syntax-theme.\n    set__light__dark__syntax_theme__options(opt, git_config, arg_matches, &option_names);\n\n    // HACK: make minus-line styles have syntax-highlighting iff side-by-side.\n    if features.contains(&\"side-by-side\".to_string()) {\n        let prefix = \"normal \";\n        if !config::user_supplied_option(\"minus_style\", arg_matches)\n            && opt.minus_style.starts_with(prefix)\n        {\n            opt.minus_style = format!(\"syntax {}\", &opt.minus_style[prefix.len()..]);\n        }\n        if !config::user_supplied_option(\"minus_emph_style\", arg_matches)\n            && opt.minus_emph_style.starts_with(prefix)\n        {\n            opt.minus_emph_style = format!(\"syntax {}\", &opt.minus_emph_style[prefix.len()..]);\n        }\n    }\n\n    // Handle options which default to an arbitrary git config value.\n    // TODO: incorporate this logic into the set_options macro.\n    if !config::user_supplied_option(\"whitespace_error_style\", arg_matches) {\n        opt.whitespace_error_style = if let Some(git_config) = git_config {\n            git_config.get::<String>(\"color.diff.whitespace\")\n        } else {\n            None\n        }\n        .unwrap_or_else(|| \"magenta reverse\".to_string())\n    }\n\n    set_options!(\n        [\n            blame_code_style,\n            blame_format,\n            blame_separator_format,\n            blame_palette,\n            blame_separator_style,\n            blame_timestamp_format,\n            blame_timestamp_output_format,\n            color_only,\n            config,\n            commit_decoration_style,\n            commit_regex,\n            commit_style,\n            default_language,\n            diff_args,\n            diff_stat_align_width,\n            file_added_label,\n            file_copied_label,\n            file_decoration_style,\n            file_modified_label,\n            file_removed_label,\n            file_renamed_label,\n            file_regex_replacement,\n            right_arrow,\n            hunk_label,\n            file_style,\n            grep_context_line_style,\n            grep_file_style,\n            grep_header_decoration_style,\n            grep_header_file_style,\n            grep_output_type,\n            grep_line_number_style,\n            grep_match_line_style,\n            grep_match_word_style,\n            grep_separator_symbol,\n            hunk_header_decoration_style,\n            hunk_header_file_style,\n            hunk_header_line_number_style,\n            hunk_header_style,\n            hyperlinks,\n            hyperlinks_commit_link_format,\n            hyperlinks_file_link_format,\n            inline_hint_style,\n            inspect_raw_lines,\n            keep_plus_minus_markers,\n            line_buffer_size,\n            map_styles,\n            max_line_distance,\n            max_line_length,\n            max_syntax_length,\n            // Hack: minus-style must come before minus-*emph-style because the latter default\n            // dynamically to the value of the former.\n            merge_conflict_begin_symbol,\n            merge_conflict_end_symbol,\n            merge_conflict_ours_diff_header_decoration_style,\n            merge_conflict_ours_diff_header_style,\n            merge_conflict_theirs_diff_header_decoration_style,\n            merge_conflict_theirs_diff_header_style,\n            minus_style,\n            minus_emph_style,\n            minus_empty_line_marker_style,\n            minus_non_emph_style,\n            minus_non_emph_style,\n            navigate,\n            navigate_regex,\n            line_fill_method,\n            line_numbers,\n            line_numbers_left_format,\n            line_numbers_left_style,\n            line_numbers_minus_style,\n            line_numbers_plus_style,\n            line_numbers_right_format,\n            line_numbers_right_style,\n            line_numbers_zero_style,\n            pager,\n            paging_mode,\n            parse_ansi,\n            // Hack: plus-style must come before plus-*emph-style because the latter default\n            // dynamically to the value of the former.\n            plus_style,\n            plus_emph_style,\n            plus_empty_line_marker_style,\n            plus_non_emph_style,\n            raw,\n            relative_paths,\n            show_colors,\n            show_themes,\n            side_by_side,\n            wrap_max_lines,\n            wrap_right_prefix_symbol,\n            wrap_right_percent,\n            wrap_right_symbol,\n            wrap_left_symbol,\n            tab_width,\n            tokenization_regex,\n            true_color,\n            whitespace_error_style,\n            width,\n            zero_style\n        ],\n        opt,\n        builtin_features,\n        git_config,\n        arg_matches,\n        &option_names,\n        true\n    );\n\n    // Setting ComputedValues\n    set_widths_and_isatty(opt);\n    set_true_color(opt);\n    theme::set__color_mode__syntax_theme__syntax_set(opt, assets);\n    opt.computed.inspect_raw_lines =\n        cli::InspectRawLines::from_str(&opt.inspect_raw_lines).unwrap();\n    opt.computed.paging_mode = parse_paging_mode(&opt.paging_mode);\n\n    // --color-only is used for interactive.diffFilter (git add -p). side-by-side, and\n    // **-decoration-style cannot be used there (does not emit lines in 1-1 correspondence with raw git output).\n    // See #274.\n    if opt.color_only {\n        opt.side_by_side = false;\n        opt.file_decoration_style = \"none\".to_string();\n        opt.commit_decoration_style = \"none\".to_string();\n        opt.hunk_header_decoration_style = \"none\".to_string();\n    }\n}\n\n#[allow(non_snake_case)]\nfn set__light__dark__syntax_theme__options(\n    opt: &mut cli::Opt,\n    git_config: &mut Option<GitConfig>,\n    arg_matches: &clap::ArgMatches,\n    option_names: &HashMap<String, String>,\n) {\n    let validate_light_and_dark = |opt: &cli::Opt| {\n        if opt.light && opt.dark {\n            fatal(\"--light and --dark cannot be used together.\");\n        }\n    };\n    let empty_builtin_features = HashMap::new();\n    validate_light_and_dark(opt);\n    if !(opt.light || opt.dark) {\n        set_options!(\n            [dark, light],\n            opt,\n            &empty_builtin_features,\n            git_config,\n            arg_matches,\n            option_names,\n            false\n        );\n    }\n    validate_light_and_dark(opt);\n    set_options!(\n        [syntax_theme],\n        opt,\n        &empty_builtin_features,\n        git_config,\n        arg_matches,\n        option_names,\n        false\n    );\n}\n\n// Features are processed differently from all other options. The role of this function is to\n// collect all configuration related to features and summarize it as a single list\n// (space-separated string) of enabled features. The list is arranged in order of increasing\n// priority in the sense that, when searching for a option value, one starts at the right-hand end\n// and moves leftward, examining each feature in turn until a feature that associates a value with\n// the option name is encountered. This search is documented in\n// `get_option_value::get_option_value`.\n//\n// The feature list comprises features deriving from the following sources, listed in order of\n// decreasing priority:\n//\n// 1. Suppose the command-line has `--features \"a b\"`. Then\n//    - `b`, followed by b's \"ordered descendents\"\n//    - `a`, followed by a's \"ordered descendents\"\n//\n// 2. Suppose the command line enables two builtin features via `--navigate --diff-so-fancy`. Then\n//    - `diff-so-fancy`\n//    - `navigate`\n//\n// 3. Suppose the main [delta] section has `features = d e`. Then\n//    - `e`, followed by e's \"ordered descendents\"\n//    - `d`, followed by d's \"ordered descendents\"\n//\n// 4. Suppose the main [delta] section has `diff-highlight = true` followed by `raw = true`.\n//    Then\n//    - `diff-highlight`\n//    - `raw`\n//\n// The \"ordered descendents\" of a feature `f` is a list of features obtained via a pre-order\n// traversal of the feature tree rooted at `f`. This tree arises because it is allowed for a\n// feature to contain a (key, value) pair that itself enables features.\n//\n// If a feature has already been included at higher priority, and is encountered again, it is\n// ignored.\n//\n// Thus, for example:\n//\n// delta --features \"my-navigate-settings\" --navigate   =>   \"navigate my-navigate-settings\"\n//\n// In the following configuration, the feature names indicate their priority, with `a` having\n// highest priority:\n//\n// delta --g --features \"d a\"\n//\n// [delta \"a\"]\n//     features = c b\n//\n// [delta \"d\"]\n//     features = f e\nfn gather_features(\n    opt: &mut cli::Opt,\n    builtin_features: &HashMap<String, features::BuiltinFeature>,\n    git_config: &Option<GitConfig>,\n) -> Vec<String> {\n    let from_env_var = &opt.env.features;\n    let from_args = opt.features.as_deref().unwrap_or(\"\");\n    let input_features: Vec<&str> = match from_env_var.as_deref() {\n        Some(from_env_var) if from_env_var.starts_with('+') => from_env_var[1..]\n            .split_whitespace()\n            .chain(split_feature_string(from_args))\n            .collect(),\n        Some(from_env_var) => {\n            opt.features = Some(from_env_var.to_string());\n            split_feature_string(from_env_var).collect()\n        }\n        None => split_feature_string(from_args).collect(),\n    };\n\n    let mut features = VecDeque::new();\n\n    // Gather features from command line.\n    if let Some(git_config) = git_config {\n        for feature in input_features {\n            gather_features_recursively(feature, &mut features, builtin_features, opt, git_config);\n        }\n    } else {\n        for feature in input_features {\n            features.push_front(feature.to_string());\n        }\n    }\n\n    // Gather builtin feature flags supplied on command line.\n    // TODO: Iterate over programmatically-obtained names of builtin features.\n    if opt.raw {\n        gather_builtin_features_recursively(\"raw\", &mut features, builtin_features, opt);\n    }\n    if opt.color_only {\n        gather_builtin_features_recursively(\"color-only\", &mut features, builtin_features, opt);\n    }\n    if opt.diff_highlight {\n        gather_builtin_features_recursively(\"diff-highlight\", &mut features, builtin_features, opt);\n    }\n    if opt.diff_so_fancy {\n        gather_builtin_features_recursively(\"diff-so-fancy\", &mut features, builtin_features, opt);\n    }\n    if opt.hyperlinks {\n        gather_builtin_features_recursively(\"hyperlinks\", &mut features, builtin_features, opt);\n    }\n    if opt.line_numbers {\n        gather_builtin_features_recursively(\"line-numbers\", &mut features, builtin_features, opt);\n    }\n    if opt.navigate {\n        gather_builtin_features_recursively(\"navigate\", &mut features, builtin_features, opt);\n    }\n    if opt.side_by_side {\n        gather_builtin_features_recursively(\"side-by-side\", &mut features, builtin_features, opt);\n    }\n\n    if let Some(git_config) = git_config {\n        // Gather features from [delta] section if --features was not passed.\n        if opt.features.is_none() {\n            if let Some(feature_string) = git_config.get::<String>(\"delta.features\") {\n                for feature in split_feature_string(&feature_string) {\n                    gather_features_recursively(\n                        feature,\n                        &mut features,\n                        builtin_features,\n                        opt,\n                        git_config,\n                    )\n                }\n            }\n        }\n        // Always gather builtin feature flags from [delta] section.\n        gather_builtin_features_from_flags_in_gitconfig(\n            \"delta\",\n            &mut features,\n            builtin_features,\n            opt,\n            git_config,\n        );\n    }\n\n    Vec::<String>::from(features)\n}\n\n/// Add to feature list `features` all features in the tree rooted at `feature`.\nfn gather_features_recursively(\n    feature: &str,\n    features: &mut VecDeque<String>,\n    builtin_features: &HashMap<String, features::BuiltinFeature>,\n    opt: &cli::Opt,\n    git_config: &GitConfig,\n) {\n    if builtin_features.contains_key(feature) {\n        gather_builtin_features_recursively(feature, features, builtin_features, opt);\n    } else {\n        features.push_front(feature.to_string());\n    }\n    if let Some(child_features) = git_config.get::<String>(&format!(\"delta.{feature}.features\")) {\n        for child_feature in split_feature_string(&child_features) {\n            if !features.contains(&child_feature.to_string()) {\n                gather_features_recursively(\n                    child_feature,\n                    features,\n                    builtin_features,\n                    opt,\n                    git_config,\n                )\n            }\n        }\n    }\n    gather_builtin_features_from_flags_in_gitconfig(\n        &format!(\"delta.{feature}\"),\n        features,\n        builtin_features,\n        opt,\n        git_config,\n    );\n}\n\n/// Look for builtin features requested via boolean feature flags (as opposed to via a \"features\"\n/// list) in a custom feature section in git config and add them to the features list.\nfn gather_builtin_features_from_flags_in_gitconfig(\n    git_config_key: &str,\n    features: &mut VecDeque<String>,\n    builtin_features: &HashMap<String, features::BuiltinFeature>,\n    opt: &cli::Opt,\n    git_config: &GitConfig,\n) {\n    for child_feature in builtin_features.keys() {\n        if let Some(true) = git_config.get::<bool>(&format!(\"{git_config_key}.{child_feature}\")) {\n            gather_builtin_features_recursively(child_feature, features, builtin_features, opt);\n        }\n    }\n}\n\n/// Add to feature list `features` all builtin features in the tree rooted at `builtin_feature`. A\n/// builtin feature is a named collection of (option-name, value) pairs. This tree arises because\n/// those option names might include (a) a \"features\" list, and (b) boolean feature flags. I.e. the\n/// children of a node in the tree are features in (a) and (b). (In both cases the features\n/// referenced will be other builtin features, since a builtin feature is determined at compile\n/// time and therefore cannot know of the existence of a non-builtin custom features in gitconfig).\nfn gather_builtin_features_recursively(\n    feature: &str,\n    features: &mut VecDeque<String>,\n    builtin_features: &HashMap<String, features::BuiltinFeature>,\n    opt: &cli::Opt,\n) {\n    let feature_string = feature.to_string();\n    if features.contains(&feature_string) {\n        return;\n    }\n    features.push_front(feature_string);\n    if let Some(feature_data) = builtin_features.get(feature) {\n        if let Some(child_features_fn) = feature_data.get(\"features\") {\n            if let ProvenancedOptionValue::DefaultValue(OptionValue::String(features_string)) =\n                child_features_fn(opt, &None)\n            {\n                for child_feature in split_feature_string(&features_string) {\n                    gather_builtin_features_recursively(\n                        child_feature,\n                        features,\n                        builtin_features,\n                        opt,\n                    );\n                }\n            }\n        }\n        for child_feature in builtin_features.keys() {\n            if let Some(child_features_fn) = feature_data.get(child_feature) {\n                if let ProvenancedOptionValue::DefaultValue(OptionValue::Boolean(true)) =\n                    child_features_fn(opt, &None)\n                {\n                    gather_builtin_features_recursively(\n                        child_feature,\n                        features,\n                        builtin_features,\n                        opt,\n                    );\n                }\n            }\n        }\n    }\n}\n\nfn split_feature_string(features: &str) -> impl Iterator<Item = &str> {\n    features.split_whitespace().rev()\n}\n\nimpl FromStr for cli::InspectRawLines {\n    type Err = Error;\n    fn from_str(s: &str) -> Result<Self, Self::Err> {\n        match s.to_lowercase().as_str() {\n            \"true\" => Ok(Self::True),\n            \"false\" => Ok(Self::False),\n            _ => {\n                fatal(format!(\n                    r#\"Invalid value for inspect-raw-lines option: {s}. Valid values are \"true\", and \"false\".\"#,\n                ));\n            }\n        }\n    }\n}\n\nfn parse_paging_mode(paging_mode_string: &str) -> PagingMode {\n    match paging_mode_string.to_lowercase().as_str() {\n        \"always\" => PagingMode::Always,\n        \"never\" => PagingMode::Never,\n        \"auto\" => PagingMode::QuitIfOneScreen,\n        _ => {\n            fatal(format!(\n                \"Invalid value for --paging option: {paging_mode_string} (valid values are \\\"always\\\", \\\"never\\\", and \\\"auto\\\")\",\n            ));\n        }\n    }\n}\n\nfn parse_width_specifier(width_arg: &str, terminal_width: usize) -> Result<usize, String> {\n    let width_arg = width_arg.trim();\n\n    let parse = |width: &str, must_be_negative, subexpression| -> Result<isize, String> {\n        let remove_spaces = |s: &str| s.chars().filter(|c| c != &' ').collect::<String>();\n        match remove_spaces(width).parse() {\n            Ok(val) if must_be_negative && val > 0 => Err(()),\n            Err(_) => Err(()),\n            Ok(ok) => Ok(ok),\n        }\n        .map_err(|_| {\n            let pos = if must_be_negative { \" negative\" } else { \"n\" };\n            let subexpr = if subexpression {\n                format!(\" (from {width_arg:?})\")\n            } else {\n                \"\".into()\n            };\n            format!(\"{width:?}{subexpr} is not a{pos} integer\")\n        })\n    };\n\n    let width = match width_arg.find('-') {\n        None => parse(width_arg, false, false)?.try_into().unwrap(),\n        Some(0) => (terminal_width as isize + parse(width_arg, true, false)?)\n            .try_into()\n            .map_err(|_| {\n                format!(\n                    \"the current terminal width of {} minus {} is negative\",\n                    terminal_width,\n                    &width_arg[1..].trim(),\n                )\n            })?,\n        Some(index) => {\n            let a = parse(&width_arg[0..index], false, true)?;\n            let b = parse(&width_arg[index..], true, true)?;\n            (a + b)\n                .try_into()\n                .map_err(|_| format!(\"expression {width_arg:?} is not positive\"))?\n        }\n    };\n\n    Ok(width)\n}\n\nfn set_widths_and_isatty(opt: &mut cli::Opt) {\n    let term_stdout = Term::stdout();\n    opt.computed.stdout_is_term = term_stdout.is_term();\n\n    // If one extra character for e.g. `less --status-column` is required use \"-1\"\n    // as an argument, also see #41, #10, #115 and #727.\n    opt.computed.available_terminal_width =\n        crate::utils::workarounds::windows_msys2_width_fix(term_stdout.size(), &term_stdout);\n\n    let (decorations_width, background_color_extends_to_terminal_width) = match opt.width.as_deref()\n    {\n        Some(\"variable\") => (cli::Width::Variable, false),\n        Some(width) => {\n            let width = parse_width_specifier(width, opt.computed.available_terminal_width)\n                .unwrap_or_else(|err| fatal(format!(\"Invalid value for width: {err}\")));\n            (cli::Width::Fixed(width), true)\n        }\n        None => {\n            #[cfg(test)]\n            {\n                // instead of passing `--width=..` to all tests, set it here:\n                (cli::Width::Fixed(tests::TERMINAL_WIDTH_IN_TESTS), true)\n            }\n            #[cfg(not(test))]\n            {\n                (\n                    cli::Width::Fixed(opt.computed.available_terminal_width),\n                    true,\n                )\n            }\n        }\n    };\n    opt.computed.decorations_width = decorations_width;\n    opt.computed.background_color_extends_to_terminal_width =\n        background_color_extends_to_terminal_width;\n}\n\nfn set_true_color(opt: &mut cli::Opt) {\n    if opt.true_color == \"auto\" {\n        // It's equal to its default, so the user might be using the deprecated\n        // --24-bit-color option.\n        if let Some(_24_bit_color) = opt._24_bit_color.as_ref() {\n            opt.true_color.clone_from(_24_bit_color);\n        }\n    }\n\n    opt.computed.true_color = match opt.true_color.as_ref() {\n        \"always\" => true,\n        \"never\" => false,\n        \"auto\" => is_truecolor_terminal(&opt.env),\n        _ => {\n            fatal(format!(\n                \"Invalid value for --true-color option: {} (valid values are \\\"always\\\", \\\"never\\\", and \\\"auto\\\")\",\n                opt.true_color\n            ));\n        }\n    };\n}\n\nfn is_truecolor_terminal(env: &DeltaEnv) -> bool {\n    env.colorterm\n        .as_ref()\n        .map(|colorterm| colorterm == \"truecolor\" || colorterm == \"24bit\")\n        .unwrap_or(false)\n}\n\n#[cfg(test)]\npub mod tests {\n    use std::fs::remove_file;\n\n    use crate::cli;\n    use crate::tests::integration_test_utils;\n    use crate::utils::bat::output::PagingMode;\n\n    pub const TERMINAL_WIDTH_IN_TESTS: usize = 43;\n\n    #[test]\n    fn test_options_can_be_set_in_git_config() {\n        // In general the values here are not the default values. However there are some exceptions\n        // since e.g. color-only = true (non-default) forces side-by-side = false (default).\n        let git_config_contents = b\"\n[delta]\n    color-only = false\n    commit-decoration-style = black black\n    commit-style = black black\n    dark = false\n    default-language = rs\n    diff-highlight = true\n    diff-so-fancy = true\n    features = xxxyyyzzz\n    file-added-label = xxxyyyzzz\n    file-decoration-style = black black\n    file-modified-label = xxxyyyzzz\n    file-removed-label = xxxyyyzzz\n    file-renamed-label = xxxyyyzzz\n    file-transformation = s/foo/bar/\n    right-arrow = xxxyyyzzz\n    file-style = black black\n    hunk-header-decoration-style = black black\n    hunk-header-style = black black\n    keep-plus-minus-markers = true\n    light = true\n    line-numbers = true\n    line-numbers-left-format = xxxyyyzzz\n    line-numbers-left-style = black black\n    line-numbers-minus-style = black black\n    line-numbers-plus-style = black black\n    line-numbers-right-format = xxxyyyzzz\n    line-numbers-right-style = black black\n    line-numbers-zero-style = black black\n    max-line-distance = 77\n    max-line-length = 77\n    minus-emph-style = black black\n    minus-empty-line-marker-style = black black\n    minus-non-emph-style = black black\n    minus-style = black black\n    navigate = true\n    navigate-regex = xxxyyyzzz\n    paging = never\n    plus-emph-style = black black\n    plus-empty-line-marker-style = black black\n    plus-non-emph-style = black black\n    plus-style = black black\n    raw = true\n    side-by-side = true\n    syntax-theme = xxxyyyzzz\n    tabs = 77\n    true-color = never\n    whitespace-error-style = black black\n    width = 77\n    word-diff-regex = xxxyyyzzz\n    zero-style = black black\n    # no-gitconfig\n\";\n        let git_config_path = \"delta__test_options_can_be_set_in_git_config.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.true_color, \"never\");\n        assert!(!opt.color_only);\n        assert_eq!(opt.commit_decoration_style, \"black black\");\n        assert_eq!(opt.commit_style, \"black black\");\n        assert!(!opt.dark);\n        assert_eq!(opt.default_language, \"rs\".to_owned());\n        // TODO: should set_options not be called on any feature flags?\n        // assert_eq!(opt.diff_highlight, true);\n        // assert_eq!(opt.diff_so_fancy, true);\n        assert!(opt\n            .features\n            .unwrap()\n            .split_whitespace()\n            .any(|s| s == \"xxxyyyzzz\"));\n        assert_eq!(opt.file_added_label, \"xxxyyyzzz\");\n        assert_eq!(opt.file_decoration_style, \"black black\");\n        assert_eq!(opt.file_modified_label, \"xxxyyyzzz\");\n        assert_eq!(opt.file_removed_label, \"xxxyyyzzz\");\n        assert_eq!(opt.file_renamed_label, \"xxxyyyzzz\");\n        assert_eq!(opt.right_arrow, \"xxxyyyzzz\");\n        assert_eq!(opt.file_style, \"black black\");\n        assert_eq!(opt.file_regex_replacement, Some(\"s/foo/bar/\".to_string()));\n        assert_eq!(opt.hunk_header_decoration_style, \"black black\");\n        assert_eq!(opt.hunk_header_style, \"black black\");\n        assert!(opt.keep_plus_minus_markers);\n        assert!(opt.light);\n        assert!(opt.line_numbers);\n        assert_eq!(opt.line_numbers_left_format, \"xxxyyyzzz\");\n        assert_eq!(opt.line_numbers_left_style, \"black black\");\n        assert_eq!(opt.line_numbers_minus_style, \"black black\");\n        assert_eq!(opt.line_numbers_plus_style, \"black black\");\n        assert_eq!(opt.line_numbers_right_format, \"xxxyyyzzz\");\n        assert_eq!(opt.line_numbers_right_style, \"black black\");\n        assert_eq!(opt.line_numbers_zero_style, \"black black\");\n        assert_eq!(opt.max_line_distance, 77.0);\n        assert_eq!(opt.max_line_length, 77);\n        assert_eq!(opt.minus_emph_style, \"black black\");\n        assert_eq!(opt.minus_empty_line_marker_style, \"black black\");\n        assert_eq!(opt.minus_non_emph_style, \"black black\");\n        assert_eq!(opt.minus_style, \"black black\");\n        assert!(opt.navigate);\n        assert_eq!(opt.navigate_regex, Some(\"xxxyyyzzz\".to_string()));\n        assert_eq!(opt.paging_mode, \"never\");\n        assert_eq!(opt.plus_emph_style, \"black black\");\n        assert_eq!(opt.plus_empty_line_marker_style, \"black black\");\n        assert_eq!(opt.plus_non_emph_style, \"black black\");\n        assert_eq!(opt.plus_style, \"black black\");\n        assert!(opt.raw);\n        assert!(opt.side_by_side);\n        assert_eq!(opt.syntax_theme, Some(\"xxxyyyzzz\".to_string()));\n        assert_eq!(opt.tab_width, 77);\n        assert_eq!(opt.true_color, \"never\");\n        assert_eq!(opt.whitespace_error_style, \"black black\");\n        assert_eq!(opt.width, Some(\"77\".to_string()));\n        assert_eq!(opt.tokenization_regex, \"xxxyyyzzz\");\n        assert_eq!(opt.zero_style, \"black black\");\n\n        assert_eq!(opt.computed.paging_mode, PagingMode::Never);\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_width_in_git_config_is_honored() {\n        let git_config_contents = b\"\n[delta]\n    features = my-width-feature\n\n[delta \\\"my-width-feature\\\"]\n    width = variable\n\";\n        let git_config_path = \"delta__test_width_in_git_config_is_honored.gitconfig\";\n\n        let opt = integration_test_utils::make_options_from_args_and_git_config(\n            &[],\n            Some(git_config_contents),\n            Some(git_config_path),\n        );\n\n        assert_eq!(opt.computed.decorations_width, cli::Width::Variable);\n\n        remove_file(git_config_path).unwrap();\n    }\n\n    #[test]\n    fn test_parse_width_specifier() {\n        use super::parse_width_specifier;\n        let term_width = 12;\n\n        let assert_failure_containing = |x, errmsg| {\n            assert!(parse_width_specifier(x, term_width)\n                .unwrap_err()\n                .contains(errmsg));\n        };\n\n        assert_failure_containing(\"\", \"is not an integer\");\n        assert_failure_containing(\"foo\", \"is not an integer\");\n        assert_failure_containing(\"123foo\", \"is not an integer\");\n        assert_failure_containing(\"+12bar\", \"is not an integer\");\n        assert_failure_containing(\"-456bar\", \"is not a negative integer\");\n\n        assert_failure_containing(\"-13\", \"minus 13 is negative\");\n        assert_failure_containing(\" -   13 \", \"minus 13 is negative\");\n        assert_failure_containing(\"12-13\", \"expression\");\n        assert_failure_containing(\" 12   -   13  \", \"expression \\\"12   -   13\\\" is not\");\n        assert_failure_containing(\"12+foo\", \"is not an integer\");\n        assert_failure_containing(\n            \"  12 -  bar  \",\n            \"\\\"-  bar\\\" (from \\\"12 -  bar\\\") is not a negative integer\",\n        );\n\n        assert_eq!(parse_width_specifier(\"1\", term_width).unwrap(), 1);\n        assert_eq!(parse_width_specifier(\" 1 \", term_width).unwrap(), 1);\n        assert_eq!(parse_width_specifier(\"-2\", term_width).unwrap(), 10);\n        assert_eq!(parse_width_specifier(\" - 2\", term_width).unwrap(), 10);\n        assert_eq!(parse_width_specifier(\"-12\", term_width).unwrap(), 0);\n        assert_eq!(parse_width_specifier(\" - 12 \", term_width).unwrap(), 0);\n        assert_eq!(parse_width_specifier(\" 2 - 2 \", term_width).unwrap(), 0);\n    }\n}\n"
  },
  {
    "path": "src/options/theme.rs",
    "content": "//! Delta doesn't have a formal concept of a \"theme\". What it has is\n//!\n//! 1. The choice of \"theme\". This is the language syntax highlighting theme; you have to make this\n//!    choice when using `bat` also.\n//! 2. The choice of \"light vs dark mode\". This determines whether the background colors should be\n//!    chosen for a light or dark terminal background. (`bat` has no equivalent.)\n//!\n//! Basically:\n//! 1. The theme is specified by the `--syntax-theme` option. If this isn't supplied then it is specified\n//!    by the `BAT_THEME` environment variable.\n//! 2. Light vs dark mode is specified by the `--light` or `--dark` options. If these aren't\n//!    supplied then it detected from the terminal. If this fails it is inferred from the chosen theme.\n//!\n//! In the absence of other factors, the default assumes a dark terminal background.\n\nuse std::io::{stdout, IsTerminal};\n\nuse bat;\nuse bat::assets::HighlightingAssets;\n#[cfg(not(test))]\nuse terminal_colorsaurus::{color_scheme, QueryOptions};\n\nuse crate::cli::{self, DetectDarkLight};\nuse crate::color::{ColorMode, ColorMode::*};\n\n#[allow(non_snake_case)]\npub fn set__color_mode__syntax_theme__syntax_set(opt: &mut cli::Opt, assets: HighlightingAssets) {\n    let (color_mode, syntax_theme_name) =\n        get_color_mode_and_syntax_theme_name(opt.syntax_theme.as_ref(), get_color_mode(opt));\n    opt.computed.color_mode = color_mode;\n\n    opt.computed.syntax_theme = if is_no_syntax_highlighting_syntax_theme_name(&syntax_theme_name) {\n        None\n    } else {\n        Some(assets.get_theme(&syntax_theme_name).clone())\n    };\n    opt.computed.syntax_set = assets.get_syntax_set().unwrap().clone();\n}\n\npub fn is_light_syntax_theme(theme: &str) -> bool {\n    LIGHT_SYNTAX_THEMES.contains(&theme) || theme.to_lowercase().contains(\"light\")\n}\n\npub fn color_mode_from_syntax_theme(theme: &str) -> ColorMode {\n    if is_light_syntax_theme(theme) {\n        ColorMode::Light\n    } else {\n        ColorMode::Dark\n    }\n}\n\nconst LIGHT_SYNTAX_THEMES: [&str; 7] = [\n    \"Catppuccin Latte\",\n    \"GitHub\",\n    \"gruvbox-light\",\n    \"gruvbox-white\",\n    \"Monokai Extended Light\",\n    \"OneHalfLight\",\n    \"Solarized (light)\",\n];\n\nconst DEFAULT_LIGHT_SYNTAX_THEME: &str = \"GitHub\";\nconst DEFAULT_DARK_SYNTAX_THEME: &str = \"Monokai Extended\";\n\nfn is_no_syntax_highlighting_syntax_theme_name(theme_name: &str) -> bool {\n    theme_name.to_lowercase() == \"none\"\n}\n\n/// Return a (theme_name, color_mode) tuple.\n/// theme_name == None in return value means syntax highlighting is disabled.\nfn get_color_mode_and_syntax_theme_name(\n    syntax_theme: Option<&String>,\n    mode: Option<ColorMode>,\n) -> (ColorMode, String) {\n    match (syntax_theme, mode) {\n        (Some(theme), None) => (color_mode_from_syntax_theme(theme), theme.to_string()),\n        (Some(theme), Some(mode)) => (mode, theme.to_string()),\n        (None, None | Some(Dark)) => (Dark, DEFAULT_DARK_SYNTAX_THEME.to_string()),\n        (None, Some(Light)) => (Light, DEFAULT_LIGHT_SYNTAX_THEME.to_string()),\n    }\n}\n\nfn get_color_mode(opt: &cli::Opt) -> Option<ColorMode> {\n    if opt.light {\n        Some(Light)\n    } else if opt.dark {\n        Some(Dark)\n    } else if should_detect_color_mode(opt) {\n        detect_color_mode()\n    } else {\n        None\n    }\n}\n\n/// See [`cli::Opt::detect_dark_light`] for a detailed explanation.\nfn should_detect_color_mode(opt: &cli::Opt) -> bool {\n    match opt.detect_dark_light {\n        DetectDarkLight::Auto => opt.color_only || stdout().is_terminal(),\n        DetectDarkLight::Always => true,\n        DetectDarkLight::Never => false,\n    }\n}\n\n#[cfg(not(test))]\nfn detect_color_mode() -> Option<ColorMode> {\n    color_scheme(QueryOptions::default())\n        .ok()\n        .map(ColorMode::from)\n}\n\nimpl From<terminal_colorsaurus::ColorScheme> for ColorMode {\n    fn from(value: terminal_colorsaurus::ColorScheme) -> Self {\n        match value {\n            terminal_colorsaurus::ColorScheme::Dark => ColorMode::Dark,\n            terminal_colorsaurus::ColorScheme::Light => ColorMode::Light,\n        }\n    }\n}\n\n#[cfg(test)]\nfn detect_color_mode() -> Option<ColorMode> {\n    None\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use crate::color;\n    use crate::tests::integration_test_utils;\n\n    // TODO: Test influence of BAT_THEME env var. E.g. see utils::process::tests::FakeParentArgs.\n    #[test]\n    fn test_syntax_theme_selection() {\n        for (\n            syntax_theme,\n            mode, // (--light, --dark)\n            expected_syntax_theme,\n            expected_mode,\n        ) in vec![\n            (None, None, DEFAULT_DARK_SYNTAX_THEME, Dark),\n            (Some(\"GitHub\"), None, \"GitHub\", Light),\n            (Some(\"Nord\"), None, \"Nord\", Dark),\n            (None, Some(Dark), DEFAULT_DARK_SYNTAX_THEME, Dark),\n            (None, Some(Light), DEFAULT_LIGHT_SYNTAX_THEME, Light),\n            (Some(\"GitHub\"), Some(Light), \"GitHub\", Light),\n            (Some(\"GitHub\"), Some(Dark), \"GitHub\", Dark),\n            (Some(\"Nord\"), Some(Light), \"Nord\", Light),\n            (Some(\"Nord\"), Some(Dark), \"Nord\", Dark),\n            (Some(\"none\"), None, \"none\", Dark),\n            (Some(\"none\"), Some(Dark), \"none\", Dark),\n            (Some(\"None\"), Some(Light), \"none\", Light),\n        ] {\n            let mut args = vec![];\n            if let Some(syntax_theme) = syntax_theme {\n                args.push(\"--syntax-theme\");\n                args.push(syntax_theme);\n            }\n            let is_true_color = true;\n            if is_true_color {\n                args.push(\"--true-color\");\n                args.push(\"always\");\n            } else {\n                args.push(\"--true-color\");\n                args.push(\"never\");\n            }\n            match mode {\n                Some(Light) => {\n                    args.push(\"--light\");\n                }\n                Some(Dark) => {\n                    args.push(\"--dark\");\n                }\n                None => {}\n            }\n            let config = integration_test_utils::make_config_from_args(&args);\n            assert_eq!(\n                &config\n                    .syntax_theme\n                    .clone()\n                    .map(|t| t.name.unwrap())\n                    .unwrap_or(\"none\".to_string()),\n                expected_syntax_theme\n            );\n            if is_no_syntax_highlighting_syntax_theme_name(expected_syntax_theme) {\n                assert!(config.syntax_theme.is_none())\n            } else {\n                assert_eq!(\n                    config.syntax_theme.unwrap().name.as_ref().unwrap(),\n                    expected_syntax_theme\n                );\n            }\n            assert_eq!(\n                config.minus_style.ansi_term_style.background.unwrap(),\n                color::get_minus_background_color_default(expected_mode, is_true_color)\n            );\n            assert_eq!(\n                config.minus_emph_style.ansi_term_style.background.unwrap(),\n                color::get_minus_emph_background_color_default(expected_mode, is_true_color)\n            );\n            assert_eq!(\n                config.plus_style.ansi_term_style.background.unwrap(),\n                color::get_plus_background_color_default(expected_mode, is_true_color)\n            );\n            assert_eq!(\n                config.plus_emph_style.ansi_term_style.background.unwrap(),\n                color::get_plus_emph_background_color_default(expected_mode, is_true_color)\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "src/paint.rs",
    "content": "use std::borrow::Cow;\nuse std::collections::HashMap;\nuse std::io::Write;\n\nuse ansi_term::ANSIString;\nuse itertools::Itertools;\nuse syntect::easy::HighlightLines;\nuse syntect::highlighting::Style as SyntectStyle;\nuse syntect::parsing::{SyntaxReference, SyntaxSet};\n\nuse crate::config::{self, delta_unreachable, Config};\nuse crate::delta::{DiffType, InMergeConflict, MergeParents, State};\nuse crate::features::hyperlinks;\nuse crate::features::line_numbers::{self, LineNumbersData};\nuse crate::features::side_by_side::ansifill;\nuse crate::features::side_by_side::{self, PanelSide};\nuse crate::handlers::merge_conflict;\nuse crate::minusplus::*;\nuse crate::paint::superimpose_style_sections::superimpose_style_sections;\nuse crate::style::Style;\nuse crate::{ansi, style};\nuse crate::{edits, utils, utils::tabs};\n\npub type LineSections<'a, S> = Vec<(S, &'a str)>;\n\npub struct Painter<'p> {\n    pub minus_lines: Vec<(String, State)>,\n    pub plus_lines: Vec<(String, State)>,\n    pub writer: &'p mut dyn Write,\n    pub syntax: &'p SyntaxReference,\n    pub highlighter: Option<HighlightLines<'p>>,\n    pub config: &'p config::Config,\n    pub output_buffer: String,\n    // If config.line_numbers is true, then the following is always Some().\n    // In side-by-side mode it is always Some (but possibly an empty one), even\n    // if config.line_numbers is false. See `UseFullPanelWidth` as well.\n    pub line_numbers_data: Option<line_numbers::LineNumbersData<'p>>,\n    pub merge_conflict_lines: merge_conflict::MergeConflictLines,\n    pub merge_conflict_commit_names: merge_conflict::MergeConflictCommitNames,\n}\n\n// How the background of a line is filled up to the end\n#[derive(Debug, PartialEq, Eq, Clone, Copy)]\npub enum BgFillMethod {\n    // Fill the background with ANSI spaces if possible,\n    // but might fallback to Spaces (e.g. in the left side-by-side panel),\n    // also see `UseFullPanelWidth`\n    TryAnsiSequence,\n    Spaces,\n}\n\n// If the background of a line extends to the end, and if configured to do so, how.\n#[derive(Debug, PartialEq, Eq, Clone, Copy)]\npub enum BgShouldFill {\n    With(BgFillMethod),\n    No,\n}\n\nimpl Default for BgShouldFill {\n    fn default() -> Self {\n        BgShouldFill::With(BgFillMethod::TryAnsiSequence)\n    }\n}\n\n#[derive(PartialEq, Debug)]\npub enum StyleSectionSpecifier<'l> {\n    Style(Style),\n    StyleSections(LineSections<'l, Style>),\n}\n\nimpl<'p> Painter<'p> {\n    pub fn new(writer: &'p mut dyn Write, config: &'p config::Config) -> Self {\n        let default_syntax = Self::get_syntax(&config.syntax_set, None, &config.default_language);\n        let panel_width_fix = ansifill::UseFullPanelWidth::new(config);\n\n        let line_numbers_data = if config.line_numbers {\n            Some(line_numbers::LineNumbersData::from_format_strings(\n                &config.line_numbers_format,\n                panel_width_fix,\n            ))\n        } else if config.side_by_side {\n            // If line numbers are disabled in side-by-side then the data is still used\n            // for width calculation and to pad odd width to even, see `UseFullPanelWidth`\n            // for details.\n            Some(line_numbers::LineNumbersData::empty_for_sbs(\n                panel_width_fix,\n            ))\n        } else {\n            None\n        };\n        Self {\n            minus_lines: Vec::new(),\n            plus_lines: Vec::new(),\n            output_buffer: String::new(),\n            syntax: default_syntax,\n            highlighter: None,\n            writer,\n            config,\n            line_numbers_data,\n            merge_conflict_lines: merge_conflict::MergeConflictLines::new(),\n            merge_conflict_commit_names: merge_conflict::MergeConflictCommitNames::new(),\n        }\n    }\n\n    pub fn set_syntax(&mut self, filename: Option<&str>) {\n        self.syntax = Painter::get_syntax(\n            &self.config.syntax_set,\n            filename,\n            &self.config.default_language,\n        );\n    }\n\n    fn get_syntax<'a>(\n        syntax_set: &'a SyntaxSet,\n        filename: Option<&str>,\n        fallback: &str,\n    ) -> &'a SyntaxReference {\n        if let Some(filename) = filename {\n            let path = std::path::Path::new(filename);\n            let file_name = path.file_name().and_then(|n| n.to_str()).unwrap_or(\"\");\n            let extension = path.extension().and_then(|x| x.to_str()).unwrap_or(\"\");\n\n            // Like syntect's `find_syntax_for_file`, without inspecting the file content, plus:\n            // If the file has NO extension then look up the whole filename as a\n            // syntax definition (if it is longer than 4 bytes).\n            // This means file formats like Makefile/Dockerfile/Rakefile etc. will get highlighted,\n            // but 1-4 short filenames will not -- even if they, as a whole, match an extension:\n            // 'rs' will not get highlighted, while 'x.rs' will.\n            if !extension.is_empty() || file_name.len() > 4 {\n                if let Some(syntax) = syntax_set\n                    .find_syntax_by_extension(file_name)\n                    .or_else(|| syntax_set.find_syntax_by_extension(extension))\n                {\n                    return syntax;\n                }\n            }\n        }\n\n        // Nothing found, try the user provided fallback, or the internal fallback.\n        if let Some(syntax) = syntax_set.find_syntax_for_file(fallback).unwrap_or(None) {\n            syntax\n        } else {\n            syntax_set\n                .find_syntax_by_extension(config::SYNTAX_FALLBACK_LANG)\n                .unwrap_or_else(|| {\n                    delta_unreachable(\"Failed to find any language syntax definitions.\")\n                })\n        }\n    }\n\n    pub fn set_highlighter(&mut self) {\n        if let Some(ref syntax_theme) = self.config.syntax_theme {\n            self.highlighter = Some(HighlightLines::new(self.syntax, syntax_theme))\n        };\n    }\n\n    pub fn paint_buffered_minus_and_plus_lines(&mut self) {\n        if self.minus_lines.is_empty() && self.plus_lines.is_empty() {\n            return;\n        }\n        paint_minus_and_plus_lines(\n            MinusPlus::new(&self.minus_lines, &self.plus_lines),\n            &mut self.line_numbers_data,\n            &mut self.highlighter,\n            &mut self.output_buffer,\n            self.config,\n        );\n        self.minus_lines.clear();\n        self.plus_lines.clear();\n    }\n\n    pub fn paint_zero_line(&mut self, line: &str, state: State) {\n        let lines = &[(line.to_string(), state.clone())];\n        let syntax_style_sections =\n            get_syntax_style_sections_for_lines(lines, self.highlighter.as_mut(), self.config);\n        let mut diff_style_sections = vec![vec![(self.config.zero_style, lines[0].0.as_str())]]; // TODO: compute style from state\n        Painter::update_diff_style_sections(\n            lines,\n            &mut diff_style_sections,\n            None,\n            None,\n            &[false],\n            self.config,\n        );\n        if self.config.side_by_side {\n            // `lines[0].0` so the line has the '\\n' already added (as in the +- case)\n            side_by_side::paint_zero_lines_side_by_side(\n                &lines[0].0,\n                syntax_style_sections,\n                diff_style_sections,\n                &mut self.output_buffer,\n                self.config,\n                &mut self.line_numbers_data.as_mut(),\n                painted_prefix(state, self.config),\n                BgShouldFill::With(BgFillMethod::Spaces),\n            );\n        } else {\n            Painter::paint_lines(\n                lines,\n                &syntax_style_sections,\n                diff_style_sections.as_slice(),\n                &[false],\n                &mut self.output_buffer,\n                self.config,\n                &mut self.line_numbers_data.as_mut(),\n                None,\n                BgShouldFill::default(),\n            );\n        }\n    }\n\n    /// Superimpose background styles and foreground syntax\n    /// highlighting styles, and write colored lines to output buffer.\n    #[allow(clippy::too_many_arguments)]\n    pub fn paint_lines<'a>(\n        lines: &'a [(String, State)],\n        syntax_style_sections: &[LineSections<'a, SyntectStyle>],\n        diff_style_sections: &[LineSections<'a, Style>],\n        lines_have_homolog: &[bool],\n        output_buffer: &mut String,\n        config: &config::Config,\n        line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n        empty_line_style: Option<Style>, // a style with background color to highlight an empty line\n        background_color_extends_to_terminal_width: BgShouldFill,\n    ) {\n        // There's some unfortunate hackery going on here for two reasons:\n        //\n        // 1. The prefix needs to be injected into the output stream.\n        //\n        // 2. We must ensure that we fill rightwards with the appropriate\n        //    non-emph background color. In that case we don't use the last\n        //    style of the line, because this might be emph.\n        for ((((_, state), syntax_sections), diff_sections), &line_has_homolog) in lines\n            .iter()\n            .zip_eq(syntax_style_sections)\n            .zip_eq(diff_style_sections)\n            .zip_eq(lines_have_homolog)\n        {\n            let (mut line, line_is_empty) = Painter::paint_line(\n                syntax_sections,\n                diff_sections,\n                state,\n                line_numbers_data,\n                None,\n                painted_prefix(state.clone(), config),\n                config,\n            );\n            let (bg_fill_mode, fill_style) =\n                Painter::get_should_right_fill_background_color_and_fill_style(\n                    diff_sections,\n                    Some(line_has_homolog),\n                    state,\n                    background_color_extends_to_terminal_width,\n                    config,\n                );\n\n            if let Some(BgFillMethod::TryAnsiSequence) = bg_fill_mode {\n                Painter::right_fill_background_color(&mut line, fill_style);\n            } else if let Some(BgFillMethod::Spaces) = bg_fill_mode {\n                let text_width = ansi::measure_text_width(&line);\n                line.push_str(\n                    #[allow(clippy::unnecessary_to_owned)]\n                    &fill_style\n                        .paint(\" \".repeat(config.available_terminal_width - text_width))\n                        .to_string(),\n                );\n            } else if line_is_empty {\n                if let Some(empty_line_style) = empty_line_style {\n                    Painter::mark_empty_line(\n                        &empty_line_style,\n                        &mut line,\n                        if config.line_numbers { Some(\" \") } else { None },\n                    );\n                }\n            };\n\n            output_buffer.push_str(&line);\n            output_buffer.push('\\n');\n        }\n    }\n\n    /// Write painted line to the output buffer, with syntax-highlighting and `style` superimposed.\n    // Note that, if passing `style_sections` as\n    // `StyleSectionSpecifier::StyleSections`, then tabs must already have been\n    // expanded in the text.\n    pub fn syntax_highlight_and_paint_line(\n        &mut self,\n        line: &str,\n        style_sections: StyleSectionSpecifier,\n        state: State,\n        background_color_extends_to_terminal_width: BgShouldFill,\n    ) {\n        let lines = vec![(tabs::expand(line, &self.config.tab_cfg), state)];\n        let syntax_style_sections =\n            get_syntax_style_sections_for_lines(&lines, self.highlighter.as_mut(), self.config);\n        let diff_style_sections = match style_sections {\n            StyleSectionSpecifier::Style(style) => vec![vec![(style, lines[0].0.as_str())]],\n            StyleSectionSpecifier::StyleSections(style_sections) => vec![style_sections],\n        };\n        Painter::paint_lines(\n            &lines,\n            &syntax_style_sections,\n            &diff_style_sections,\n            &[false],\n            &mut self.output_buffer,\n            self.config,\n            &mut None,\n            None,\n            background_color_extends_to_terminal_width,\n        );\n    }\n\n    /// Determine whether the terminal should fill the line rightwards with a background color, and\n    /// the style for doing so.\n    pub fn get_should_right_fill_background_color_and_fill_style(\n        diff_sections: &[(Style, &str)],\n        line_has_homolog: Option<bool>,\n        state: &State,\n        background_color_extends_to_terminal_width: BgShouldFill,\n        config: &config::Config,\n    ) -> (Option<BgFillMethod>, Style) {\n        let fill_style = match state {\n            State::HunkMinus(_, None) | State::HunkMinusWrapped => {\n                if let Some(true) = line_has_homolog {\n                    config.minus_non_emph_style\n                } else {\n                    config.minus_style\n                }\n            }\n            State::HunkZero(_, None) | State::HunkZeroWrapped => config.zero_style,\n            State::HunkPlus(_, None) | State::HunkPlusWrapped => {\n                if let Some(true) = line_has_homolog {\n                    config.plus_non_emph_style\n                } else {\n                    config.plus_style\n                }\n            }\n            State::HunkMinus(_, Some(_))\n            | State::HunkZero(_, Some(_))\n            | State::HunkPlus(_, Some(_)) => {\n                // Consider the following raw line, from git colorMoved:\n                // ␛[1;36m+␛[m␛[1;36mclass·X:·pass␛[m␊ The last style section returned by\n                // parse_style_sections will be a default style associated with the terminal newline\n                // character; we want the last \"real\" style.\n                diff_sections\n                    .iter()\n                    .rev()\n                    .filter(|(_, s)| s != &\"\\n\")\n                    .map(|(style, _)| *style)\n                    .next()\n                    .unwrap_or(config.null_style)\n            }\n            State::Blame(_) => diff_sections[0].0,\n            _ => config.null_style,\n        };\n\n        match (\n            fill_style.get_background_color().is_some(),\n            background_color_extends_to_terminal_width,\n        ) {\n            (false, _) | (_, BgShouldFill::No) => (None, fill_style),\n            (_, BgShouldFill::With(bgmode)) => {\n                if config.background_color_extends_to_terminal_width {\n                    (Some(bgmode), fill_style)\n                } else {\n                    (None, fill_style)\n                }\n            }\n        }\n    }\n\n    /// Emit line with ANSI sequences that extend the background color to the terminal width.\n    pub fn right_fill_background_color(line: &mut String, fill_style: Style) {\n        // HACK: How to properly incorporate the ANSI_CSI_CLEAR_TO_EOL into ansi_strings?\n        line.push_str(&ansi_term::ANSIStrings(&[fill_style.paint(\"\")]).to_string());\n        if line\n            .to_lowercase()\n            .ends_with(&ansi::ANSI_SGR_RESET.to_lowercase())\n        {\n            line.truncate(line.len() - ansi::ANSI_SGR_RESET.len());\n        }\n        line.push_str(ansi::ANSI_CSI_CLEAR_TO_EOL);\n        line.push_str(ansi::ANSI_SGR_RESET);\n    }\n\n    /// Use ANSI sequences to visually mark the current line as empty. If `marker` is None then the\n    /// line is marked using terminal emulator colors only, i.e. without appending any marker text\n    /// to the line. This is typically appropriate only when the `line` buffer is empty, since\n    /// otherwise the ANSI_CSI_CLEAR_TO_BOL instruction would overwrite the text to the left of the\n    /// current buffer position.\n    pub fn mark_empty_line(empty_line_style: &Style, line: &mut String, marker: Option<&str>) {\n        line.push_str(\n            #[allow(clippy::unnecessary_to_owned)]\n            &empty_line_style\n                .paint(marker.unwrap_or(ansi::ANSI_CSI_CLEAR_TO_BOL))\n                .to_string(),\n        );\n    }\n\n    /// Return painted line (maybe prefixed with line numbers field) and an is_empty? boolean.\n    pub fn paint_line(\n        syntax_sections: &[(SyntectStyle, &str)],\n        diff_sections: &[(Style, &str)],\n        state: &State,\n        line_numbers_data: &mut Option<&mut line_numbers::LineNumbersData>,\n        side_by_side_panel: Option<PanelSide>,\n        mut painted_prefix: Option<ansi_term::ANSIString>,\n        config: &config::Config,\n    ) -> (String, bool) {\n        let mut ansi_strings = Vec::new();\n\n        let output_line_numbers = line_numbers_data.is_some();\n        if output_line_numbers {\n            // Unified diff lines are printed in one go, but side-by-side lines\n            // are printed in two parts, so do not increment line numbers when the\n            // first (left) part is printed.\n            let increment = !matches!(side_by_side_panel, Some(side_by_side::Left));\n            if let Some((line_numbers, styles)) = line_numbers::linenumbers_and_styles(\n                line_numbers_data.as_mut().unwrap(),\n                state,\n                config,\n                increment,\n            ) {\n                ansi_strings.extend(line_numbers::format_and_paint_line_numbers(\n                    line_numbers_data.as_ref().unwrap(),\n                    side_by_side_panel,\n                    styles,\n                    line_numbers,\n                    config,\n                ))\n            }\n        }\n        let superimposed = superimpose_style_sections(\n            syntax_sections,\n            diff_sections,\n            config.true_color,\n            config.null_syntect_style,\n        );\n\n        let mut handled_prefix = false;\n        for (section_style, text) in &superimposed {\n            // If requested re-insert the +/- prefix with proper styling.\n            if !handled_prefix {\n                if let Some(painted_prefix) = painted_prefix.take() {\n                    ansi_strings.push(painted_prefix)\n                }\n            }\n\n            if !text.is_empty() {\n                ansi_strings.push(section_style.paint(text.as_str()));\n            }\n            handled_prefix = true;\n        }\n\n        // Only if syntax is empty (implies diff empty) can a line actually be empty.\n        let is_empty = syntax_sections.is_empty();\n        (ansi_term::ANSIStrings(&ansi_strings).to_string(), is_empty)\n    }\n\n    /// Write output buffer to output stream, and clear the buffer.\n    pub fn emit(&mut self) -> std::io::Result<()> {\n        write!(self.writer, \"{}\", self.output_buffer)?;\n        self.output_buffer.clear();\n        Ok(())\n    }\n\n    pub fn should_compute_syntax_highlighting(state: &State, config: &config::Config) -> bool {\n        if config.syntax_theme.is_none() {\n            return false;\n        }\n        match state {\n            State::HunkMinus(_, None) => {\n                config.minus_style.is_syntax_highlighted\n                    || config.minus_emph_style.is_syntax_highlighted\n                    || config.minus_non_emph_style.is_syntax_highlighted\n            }\n            State::HunkZero(_, None) => config.zero_style.is_syntax_highlighted,\n            State::HunkPlus(_, None) => {\n                config.plus_style.is_syntax_highlighted\n                    || config.plus_emph_style.is_syntax_highlighted\n                    || config.plus_non_emph_style.is_syntax_highlighted\n            }\n            State::HunkHeader(_, _, _, _) => true,\n            State::HunkMinus(_, Some(_raw_line))\n            | State::HunkZero(_, Some(_raw_line))\n            | State::HunkPlus(_, Some(_raw_line)) => {\n                // It is possible that the captured raw line contains an ANSI\n                // style that has been mapped (via map-styles) to a delta Style\n                // with syntax-highlighting.\n                true\n            }\n            State::Blame(_) => true,\n            State::GitShowFile => true,\n            State::Grep(_, _, _, _) => true,\n            State::Unknown\n            | State::CommitMeta\n            | State::DiffHeader(_)\n            | State::HunkMinusWrapped\n            | State::HunkZeroWrapped\n            | State::HunkPlusWrapped\n            | State::MergeConflict(_, _)\n            | State::SubmoduleLog\n            | State::SubmoduleShort(_) => {\n                panic!(\n                    \"should_compute_syntax_highlighting is undefined for state {:?}\",\n                    state\n                )\n            }\n        }\n    }\n\n    /// There are some rules according to which we update line section styles that were computed\n    /// during the initial edit inference pass. This function applies those rules. The rules are\n    /// 1. If there are multiple diff styles in the line, then the line must have some\n    ///    inferred edit operations and so, if there is a special non-emph style that is\n    ///    distinct from the default style, then it should be used for the non-emph style\n    ///    sections.\n    /// 2. If the line constitutes a whitespace error, then the whitespace error style\n    ///    should be applied to the added material.\n    /// 3. If delta recognized the raw line as one containing ANSI colors that\n    ///    are going to be preserved in the output, then replace delta's\n    ///    computed diff styles with these styles from the raw line. (This is\n    ///    how support for git's --color-moved is implemented.)\n    fn update_diff_style_sections<'a>(\n        lines: &'a [(String, State)],\n        diff_style_sections: &mut Vec<LineSections<'a, Style>>,\n        whitespace_error_style: Option<Style>,\n        non_emph_style: Option<Style>,\n        lines_have_homolog: &[bool],\n        config: &config::Config,\n    ) {\n        for (((_, state), style_sections), line_has_homolog) in lines\n            .iter()\n            .zip_eq(diff_style_sections)\n            .zip_eq(lines_have_homolog)\n        {\n            if let State::HunkMinus(_, Some(raw_line))\n            | State::HunkZero(_, Some(raw_line))\n            | State::HunkPlus(_, Some(raw_line)) = state\n            {\n                // raw_line is captured in handle_hunk_line under certain conditions. If we have\n                // done so, then overwrite the style sections with styles parsed directly from the\n                // raw line. Currently the only reason this is done is to handle a diff.colorMoved\n                // line.\n                *style_sections = parse_style_sections(raw_line, config);\n                continue;\n            }\n            let line_has_emph_and_non_emph_sections =\n                style_sections_contain_more_than_one_style(style_sections);\n            let should_update_non_emph_styles = non_emph_style.is_some() && *line_has_homolog;\n\n            // TODO: Git recognizes blank lines at end of file (blank-at-eof)\n            // as a whitespace error but delta does not yet.\n            // https://git-scm.com/docs/git-config#Documentation/git-config.txt-corewhitespace\n            let mut is_whitespace_error = whitespace_error_style.is_some();\n            for (style, s) in style_sections.iter_mut().rev() {\n                if is_whitespace_error && !s.trim().is_empty() {\n                    is_whitespace_error = false;\n                }\n                // If the line as a whole constitutes a whitespace error then highlight this\n                // section if either (a) it is an emph section, or (b) the line lacks any\n                // emph/non-emph distinction.\n\n                // TODO: is this logic correct now, after introducing\n                // line_has_homolog for non_emph style?\n                if is_whitespace_error && (style.is_emph || !line_has_emph_and_non_emph_sections) {\n                    *style = whitespace_error_style.unwrap();\n                }\n                // Otherwise, update the style if this is a non-emph section that needs updating.\n                else if should_update_non_emph_styles && !style.is_emph {\n                    *style = non_emph_style.unwrap();\n                    if is_whitespace_error {\n                        *style = whitespace_error_style.unwrap();\n                    }\n                }\n            }\n        }\n    }\n}\n\n/// Remove initial -/+ character, expand tabs as spaces, and terminate with newline.\n// Terminating with newline character is necessary for many of the sublime syntax definitions to\n// highlight correctly.\n// See https://docs.rs/syntect/3.2.0/syntect/parsing/struct.SyntaxSetBuilder.html#method.add_from_folder\npub fn prepare(line: &str, prefix_length: usize, config: &config::Config) -> String {\n    if !line.is_empty() {\n        // The prefix contains -/+/space characters, added by git. We removes them now so they\n        // are not present during syntax highlighting or wrapping. If --keep-plus-minus-markers\n        // is in effect the prefix is re-inserted in Painter::paint_line.\n        let mut line = tabs::remove_prefix_and_expand(prefix_length, line, &config.tab_cfg);\n        line.push('\\n');\n        line\n    } else {\n        \"\\n\".to_string()\n    }\n}\n\n// Remove initial -/+ characters, expand tabs as spaces, retaining ANSI sequences. Terminate with\n// newline character.\npub fn prepare_raw_line(raw_line: &str, prefix_length: usize, config: &config::Config) -> String {\n    let mut line = tabs::expand(raw_line, &config.tab_cfg);\n    line.push('\\n');\n    ansi::ansi_preserving_slice(&line, prefix_length)\n}\n\npub fn paint_minus_and_plus_lines(\n    lines: MinusPlus<&Vec<(String, State)>>,\n    line_numbers_data: &mut Option<LineNumbersData>,\n    highlighter: &mut Option<HighlightLines>,\n    output_buffer: &mut String,\n    config: &config::Config,\n) {\n    let syntax_style_sections = MinusPlus::new(\n        get_syntax_style_sections_for_lines(lines[Minus], highlighter.as_mut(), config),\n        get_syntax_style_sections_for_lines(lines[Plus], highlighter.as_mut(), config),\n    );\n    let (mut diff_style_sections, line_alignment) = get_diff_style_sections(&lines, config);\n    let lines_have_homolog = edits::make_lines_have_homolog(&line_alignment);\n    Painter::update_diff_style_sections(\n        lines[Minus],\n        &mut diff_style_sections[Minus],\n        None,\n        if config.minus_non_emph_style != config.minus_emph_style {\n            Some(config.minus_non_emph_style)\n        } else {\n            None\n        },\n        &lines_have_homolog[Minus],\n        config,\n    );\n    Painter::update_diff_style_sections(\n        lines[Plus],\n        &mut diff_style_sections[Plus],\n        Some(config.whitespace_error_style),\n        if config.plus_non_emph_style != config.plus_emph_style {\n            Some(config.plus_non_emph_style)\n        } else {\n            None\n        },\n        &lines_have_homolog[Plus],\n        config,\n    );\n    if config.side_by_side {\n        side_by_side::paint_minus_and_plus_lines_side_by_side(\n            lines,\n            syntax_style_sections,\n            diff_style_sections,\n            lines_have_homolog,\n            line_alignment,\n            line_numbers_data,\n            output_buffer,\n            config,\n        )\n    } else {\n        // Unified diff mode:\n        if !lines[Minus].is_empty() {\n            Painter::paint_lines(\n                lines[Minus],\n                &syntax_style_sections[Minus],\n                &diff_style_sections[Minus],\n                &lines_have_homolog[Minus],\n                output_buffer,\n                config,\n                &mut line_numbers_data.as_mut(),\n                Some(config.minus_empty_line_marker_style),\n                BgShouldFill::default(),\n            );\n        }\n        if !lines[Plus].is_empty() {\n            Painter::paint_lines(\n                lines[Plus],\n                &syntax_style_sections[Plus],\n                &diff_style_sections[Plus],\n                &lines_have_homolog[Plus],\n                output_buffer,\n                config,\n                &mut line_numbers_data.as_mut(),\n                Some(config.plus_empty_line_marker_style),\n                BgShouldFill::default(),\n            );\n        }\n    }\n}\n\npub fn get_syntax_style_sections_for_lines<'a>(\n    lines: &'a [(String, State)],\n    highlighter: Option<&mut HighlightLines>,\n    config: &config::Config,\n) -> Vec<LineSections<'a, SyntectStyle>> {\n    let mut line_sections = Vec::new();\n    match (\n        highlighter,\n        lines\n            .iter()\n            .any(|(_, state)| Painter::should_compute_syntax_highlighting(state, config)),\n    ) {\n        (Some(highlighter), true) => {\n            for (line, _) in lines.iter() {\n                // Fast but simple length comparison. Overcounts non-printable ansi\n                // characters or wider UTF-8, but `truncate_str_short` in the\n                // else branch corrects that.\n                if line.len() < config.max_syntax_length || config.max_syntax_length == 0 {\n                    line_sections.push(\n                        highlighter\n                            .highlight_line(line, &config.syntax_set)\n                            .unwrap(),\n                    );\n                } else {\n                    let line_syntax = ansi::truncate_str_short(line, config.max_syntax_length);\n                    // Re-split to get references into `line` with correct lifetimes.\n                    // SAFETY: slicing the string is safe because `truncate_str_short` always\n                    // returns a prefix of the input and only cuts at grapheme borders.\n                    let (with_syntax, plain) = line.split_at(line_syntax.len());\n                    // Note: splitting a line and only feeding one half to the highlighter may\n                    // result in wrong highlighting until it is reset the next hunk.\n                    //\n                    // Also, as lines are no longer newline terminated they might not be\n                    // highlighted correctly, and because of lifetimes inserting '\\n' here is not\n                    // possible, also see `prepare()`.\n                    line_sections.push(\n                        highlighter\n                            .highlight_line(with_syntax, &config.syntax_set)\n                            .unwrap(),\n                    );\n\n                    if !plain.is_empty() {\n                        line_sections\n                            .last_mut()\n                            .unwrap()\n                            .push((config.null_syntect_style, plain));\n                    }\n                }\n            }\n        }\n        _ => {\n            for (line, _) in lines.iter() {\n                line_sections.push(vec![(config.null_syntect_style, line.as_str())])\n            }\n        }\n    }\n    line_sections\n}\n\n/// Get background styles to represent diff for minus and plus lines in buffer.\n#[allow(clippy::type_complexity)]\nfn get_diff_style_sections<'a>(\n    lines: &MinusPlus<&'a Vec<(String, State)>>,\n    config: &config::Config,\n) -> (\n    MinusPlus<Vec<LineSections<'a, Style>>>,\n    Vec<(Option<usize>, Option<usize>)>,\n) {\n    let (minus_lines, minus_styles): (Vec<&str>, Vec<Style>) = lines[Minus]\n        .iter()\n        .map(|(s, state)| (s.as_str(), *config.get_style(state)))\n        .unzip();\n    let (plus_lines, plus_styles): (Vec<&str>, Vec<Style>) = lines[Plus]\n        .iter()\n        .map(|(s, state)| (s.as_str(), *config.get_style(state)))\n        .unzip();\n    let (minus_line_diff_style_sections, plus_line_diff_style_sections, line_alignment) =\n        edits::infer_edits(\n            minus_lines,\n            plus_lines,\n            minus_styles,\n            config.minus_emph_style, // FIXME\n            plus_styles,\n            config.plus_emph_style, // FIXME\n            &config.tokenization_regex,\n            config.max_line_distance,\n            config.max_line_distance_for_naively_paired_lines,\n        );\n    let diff_sections = MinusPlus::new(\n        minus_line_diff_style_sections,\n        plus_line_diff_style_sections,\n    );\n    (diff_sections, line_alignment)\n}\n\nfn painted_prefix(state: State, config: &config::Config) -> Option<ANSIString<'_>> {\n    use DiffType::*;\n    use State::*;\n    match (state, config.keep_plus_minus_markers) {\n        // For a combined diff, unless we are in a merge conflict, we do not honor\n        // keep_plus_minus_markers -- i.e. we always emit the prefix -- because there is currently\n        // no way to distinguish, say, a '+ ' line from a ' +' line, by styles alone. In a merge\n        // conflict we do honor the setting because the way merge conflicts are displayed indicates\n        // from which commit the lines derive.\n        (HunkMinus(Combined(MergeParents::Prefix(prefix), InMergeConflict::No), _), _) => {\n            Some(config.minus_style.paint(prefix))\n        }\n        (HunkZero(Combined(MergeParents::Prefix(prefix), InMergeConflict::No), _), _) => {\n            Some(config.zero_style.paint(prefix))\n        }\n        (HunkPlus(Combined(MergeParents::Prefix(prefix), InMergeConflict::No), _), _) => {\n            Some(config.plus_style.paint(prefix))\n        }\n        // But otherwise we honor keep_plus_minus_markers\n        (HunkMinus(_, _), true) => Some(config.minus_style.paint(\"-\".to_string())),\n        (HunkZero(_, _), true) => Some(config.zero_style.paint(\" \".to_string())),\n        (HunkPlus(_, _), true) => Some(config.plus_style.paint(\"+\".to_string())),\n        _ => None,\n    }\n}\n\n// Parse ANSI styles encountered in `raw_line` and apply `styles_map`.\npub fn parse_style_sections<'a>(\n    raw_line: &'a str,\n    config: &config::Config,\n) -> LineSections<'a, Style> {\n    let empty_map = HashMap::new();\n    let styles_map = config.styles_map.as_ref().unwrap_or(&empty_map);\n    ansi::parse_style_sections(raw_line)\n        .iter()\n        .map(|(original_style, s)| {\n            match styles_map.get(&style::ansi_term_style_equality_key(*original_style)) {\n                Some(mapped_style) => (*mapped_style, *s),\n                None => (\n                    Style {\n                        ansi_term_style: *original_style,\n                        ..Style::default()\n                    },\n                    *s,\n                ),\n            }\n        })\n        .collect()\n}\n\n#[allow(clippy::too_many_arguments)]\npub fn paint_file_path_with_line_number(\n    line_number: Option<usize>,\n    file_path: &str,\n    pad_line_number: bool,\n    separator: &str,\n    terminate_with_separator: bool,\n    file_style: Option<Style>,        // None means do not include file path\n    line_number_style: Option<Style>, // None means do not include line number\n    config: &Config,\n) -> String {\n    let mut file_with_line_number = Vec::new();\n    if let Some(file_style) = file_style {\n        let file_path = if let Some(regex_replacement) = &config.file_regex_replacement {\n            regex_replacement.execute(file_path)\n        } else {\n            Cow::from(file_path)\n        };\n        file_with_line_number.push(file_style.paint(file_path))\n    };\n    if let Some(line_number) = line_number {\n        if let Some(line_number_style) = line_number_style {\n            if !file_with_line_number.is_empty() {\n                file_with_line_number.push(ansi_term::ANSIString::from(separator));\n            }\n            file_with_line_number.push(line_number_style.paint(format!(\"{line_number}\")))\n        }\n    }\n    if terminate_with_separator {\n        file_with_line_number.push(ansi_term::ANSIGenericString::from(separator));\n    }\n    if pad_line_number {\n        // If requested we pad line numbers to a width of at least\n        // 3, so that we do not see any misalignment up to line\n        // number 999. However, see\n        // https://github.com/BurntSushi/ripgrep/issues/795 for\n        // discussion about aligning grep output.\n        match line_number {\n            Some(n) if n < 10 => {\n                file_with_line_number.push(ansi_term::ANSIGenericString::from(\"  \"))\n            }\n            Some(n) if n < 100 => {\n                file_with_line_number.push(ansi_term::ANSIGenericString::from(\" \"))\n            }\n            _ => {}\n        }\n    }\n    let file_with_line_number = ansi_term::ANSIStrings(&file_with_line_number).to_string();\n    match if config.hyperlinks && !file_with_line_number.is_empty() {\n        utils::path::absolute_path(file_path, config)\n    } else {\n        None\n    } {\n        Some(absolute_path) => hyperlinks::format_osc8_file_hyperlink(\n            absolute_path,\n            line_number,\n            &file_with_line_number,\n            config,\n        )\n        .into(),\n        _ => file_with_line_number,\n    }\n}\n\n// edits::annotate doesn't return \"coalesced\" annotations (see comment there), so we can't assume\n// that `sections.len() > 1 <=> (multiple styles)`.\nfn style_sections_contain_more_than_one_style(sections: &[(Style, &str)]) -> bool {\n    if sections.len() > 1 {\n        let (first_style, _) = sections[0];\n        sections.iter().any(|(style, _)| *style != first_style)\n    } else {\n        false\n    }\n}\n\nmod superimpose_style_sections {\n    use syntect::highlighting::Style as SyntectStyle;\n\n    use crate::style::Style;\n    use crate::utils::bat::terminal::to_ansi_color;\n\n    // We have two different annotations of the same line:\n    // `syntax_style_sections` contains foreground styles computed by syntect,\n    // and `diff_style_sections` contains styles computed by delta reflecting\n    // within-line edits. The delta styles may assign a foreground color, or\n    // they may indicate that the foreground color comes from syntax\n    // highlighting (the is_syntax_highlighting attribute on style::Style). This\n    // function takes in the two input streams and outputs one stream with a\n    // single style assigned to each character.\n    pub fn superimpose_style_sections(\n        syntax_style_sections: &[(SyntectStyle, &str)],\n        diff_style_sections: &[(Style, &str)],\n        true_color: bool,\n        null_syntect_style: SyntectStyle,\n    ) -> Vec<(Style, String)> {\n        coalesce(\n            superimpose(\n                explode(syntax_style_sections)\n                    .iter()\n                    .zip(explode(diff_style_sections))\n                    .collect::<Vec<(&(SyntectStyle, char), (Style, char))>>(),\n            ),\n            true_color,\n            null_syntect_style,\n        )\n    }\n\n    fn explode<T>(style_sections: &[(T, &str)]) -> Vec<(T, char)>\n    where\n        T: Copy,\n    {\n        let mut exploded: Vec<(T, char)> = Vec::new();\n        for (style, s) in style_sections {\n            for c in s.chars() {\n                exploded.push((*style, c));\n            }\n        }\n        exploded\n    }\n\n    #[allow(clippy::type_complexity)]\n    fn superimpose(\n        style_section_pairs: Vec<(&(SyntectStyle, char), (Style, char))>,\n    ) -> Vec<((SyntectStyle, Style), char)> {\n        let mut superimposed: Vec<((SyntectStyle, Style), char)> = Vec::new();\n        for ((syntax_style, char_1), (style, char_2)) in style_section_pairs {\n            if *char_1 != char_2 {\n                panic!(\n                    \"String mismatch encountered while superimposing style sections: '{}' vs '{}'\",\n                    *char_1, char_2\n                )\n            }\n            superimposed.push(((*syntax_style, style), *char_1));\n        }\n        superimposed\n    }\n\n    fn coalesce(\n        style_sections: Vec<((SyntectStyle, Style), char)>,\n        true_color: bool,\n        null_syntect_style: SyntectStyle,\n    ) -> Vec<(Style, String)> {\n        let make_superimposed_style = |(syntect_style, style): (SyntectStyle, Style)| {\n            if style.is_syntax_highlighted && syntect_style != null_syntect_style {\n                Style {\n                    ansi_term_style: ansi_term::Style {\n                        foreground: to_ansi_color(syntect_style.foreground, true_color),\n                        ..style.ansi_term_style\n                    },\n                    ..style\n                }\n            } else {\n                style\n            }\n        };\n        let mut coalesced: Vec<(Style, String)> = Vec::new();\n        let mut style_sections = style_sections.iter();\n        if let Some((style_pair, c)) = style_sections.next() {\n            let mut current_string = c.to_string();\n            let mut current_style_pair = style_pair;\n            for (style_pair, c) in style_sections {\n                if style_pair != current_style_pair {\n                    let style = make_superimposed_style(*current_style_pair);\n                    coalesced.push((style, current_string));\n                    current_string = String::new();\n                    current_style_pair = style_pair;\n                }\n                current_string.push(*c);\n            }\n\n            // TODO: This is not the ideal location for the following code.\n            if current_string.ends_with('\\n') {\n                // Remove the terminating newline whose presence was necessary for the syntax\n                // highlighter to work correctly.\n                current_string.truncate(current_string.len() - 1);\n            }\n            let style = make_superimposed_style(*current_style_pair);\n            coalesced.push((style, current_string));\n        }\n        coalesced\n    }\n\n    #[cfg(test)]\n    mod tests {\n        use lazy_static::lazy_static;\n\n        use super::*;\n        use ansi_term::{self, Color};\n        use syntect::highlighting::Color as SyntectColor;\n        use syntect::highlighting::FontStyle as SyntectFontStyle;\n        use syntect::highlighting::Style as SyntectStyle;\n\n        use crate::style::{DecorationStyle, Style};\n\n        lazy_static! {\n            static ref SYNTAX_STYLE: SyntectStyle = SyntectStyle {\n                foreground: SyntectColor::BLACK,\n                background: SyntectColor::BLACK,\n                font_style: SyntectFontStyle::BOLD,\n            };\n        }\n        lazy_static! {\n            static ref SYNTAX_HIGHLIGHTED_STYLE: Style = Style {\n                ansi_term_style: ansi_term::Style {\n                    foreground: Some(Color::White),\n                    background: Some(Color::White),\n                    is_underline: true,\n                    ..ansi_term::Style::new()\n                },\n                is_emph: false,\n                is_omitted: false,\n                is_raw: false,\n                is_syntax_highlighted: true,\n                decoration_style: DecorationStyle::NoDecoration,\n            };\n        }\n        lazy_static! {\n            static ref NON_SYNTAX_HIGHLIGHTED_STYLE: Style = Style {\n                ansi_term_style: ansi_term::Style {\n                    foreground: Some(Color::White),\n                    background: Some(Color::White),\n                    is_underline: true,\n                    ..ansi_term::Style::new()\n                },\n                is_emph: false,\n                is_omitted: false,\n                is_raw: false,\n                is_syntax_highlighted: false,\n                decoration_style: DecorationStyle::NoDecoration,\n            };\n        }\n        lazy_static! {\n            static ref SUPERIMPOSED_STYLE: Style = Style {\n                ansi_term_style: ansi_term::Style {\n                    foreground: to_ansi_color(SyntectColor::BLACK, true),\n                    background: Some(Color::White),\n                    is_underline: true,\n                    ..ansi_term::Style::new()\n                },\n                is_emph: false,\n                is_omitted: false,\n                is_raw: false,\n                is_syntax_highlighted: true,\n                decoration_style: DecorationStyle::NoDecoration,\n            };\n        }\n\n        #[test]\n        fn test_superimpose_style_sections_1() {\n            let sections_1 = vec![(*SYNTAX_STYLE, \"ab\")];\n            let sections_2 = vec![(*SYNTAX_HIGHLIGHTED_STYLE, \"ab\")];\n            let superimposed = vec![(*SUPERIMPOSED_STYLE, \"ab\".to_string())];\n            assert_eq!(\n                superimpose_style_sections(&sections_1, &sections_2, true, SyntectStyle::default()),\n                superimposed\n            );\n        }\n\n        #[test]\n        fn test_superimpose_style_sections_2() {\n            let sections_1 = vec![(*SYNTAX_STYLE, \"ab\")];\n            let sections_2 = vec![\n                (*SYNTAX_HIGHLIGHTED_STYLE, \"a\"),\n                (*SYNTAX_HIGHLIGHTED_STYLE, \"b\"),\n            ];\n            let superimposed = vec![(*SUPERIMPOSED_STYLE, String::from(\"ab\"))];\n            assert_eq!(\n                superimpose_style_sections(&sections_1, &sections_2, true, SyntectStyle::default()),\n                superimposed\n            );\n        }\n\n        #[test]\n        fn test_superimpose_style_sections_3() {\n            let sections_1 = vec![(*SYNTAX_STYLE, \"ab\")];\n            let sections_2 = vec![(*NON_SYNTAX_HIGHLIGHTED_STYLE, \"ab\")];\n            let superimposed = vec![(*NON_SYNTAX_HIGHLIGHTED_STYLE, \"ab\".to_string())];\n            assert_eq!(\n                superimpose_style_sections(&sections_1, &sections_2, true, SyntectStyle::default()),\n                superimposed\n            );\n        }\n\n        #[test]\n        fn test_explode() {\n            let arbitrary = 0;\n            assert_eq!(\n                explode(&[(arbitrary, \"ab\")]),\n                vec![(arbitrary, 'a'), (arbitrary, 'b')]\n            )\n        }\n\n        #[test]\n        fn test_superimpose() {\n            let x = (*SYNTAX_STYLE, 'a');\n            let pairs = vec![(&x, (*SYNTAX_HIGHLIGHTED_STYLE, 'a'))];\n            assert_eq!(\n                superimpose(pairs),\n                vec![((*SYNTAX_STYLE, *SYNTAX_HIGHLIGHTED_STYLE), 'a')]\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "src/parse_style.rs",
    "content": "use bitflags::bitflags;\n\nuse crate::color;\nuse crate::config::delta_unreachable;\nuse crate::fatal;\nuse crate::git_config::GitConfig;\nuse crate::style::{DecorationStyle, Style};\n\nimpl Style {\n    /// Construct Style from style and decoration-style strings supplied on command line, together\n    /// with defaults. A style string is a space-separated string containing 0, 1, or 2 colors\n    /// (foreground and then background) and an arbitrary number of style attributes. See `delta\n    /// --help` for more precise spec.\n    pub fn from_str(\n        style_string: &str,\n        default: Option<Self>,\n        decoration_style_string: Option<&str>,\n        true_color: bool,\n        git_config: Option<&GitConfig>,\n    ) -> Self {\n        let (ansi_term_style, is_omitted, is_raw, is_syntax_highlighted) =\n            parse_ansi_term_style(style_string, default, true_color, git_config);\n        let decoration_style = DecorationStyle::from_str(\n            decoration_style_string.unwrap_or(\"\"),\n            true_color,\n            git_config,\n        );\n        Self {\n            ansi_term_style,\n            is_emph: false,\n            is_omitted,\n            is_raw,\n            is_syntax_highlighted,\n            decoration_style,\n        }\n    }\n\n    pub fn from_git_str(git_style_string: &str) -> Self {\n        Self::from_str(git_style_string, None, None, true, None)\n    }\n\n    /// Construct Style but interpreting 'ul', 'box', etc as applying to the decoration style.\n    pub fn from_str_with_handling_of_special_decoration_attributes(\n        style_string: &str,\n        default: Option<Self>,\n        decoration_style_string: Option<&str>,\n        true_color: bool,\n        git_config: Option<&GitConfig>,\n    ) -> Self {\n        let (special_attributes_from_style_string, style_string) =\n            extract_special_decoration_attributes_from_non_decoration_style_string(style_string);\n        let mut style = Style::from_str(\n            &style_string,\n            default,\n            decoration_style_string,\n            true_color,\n            git_config,\n        );\n        // TODO: box in this context resulted in box-with-underline for commit and file\n        style.decoration_style = DecorationStyle::apply_special_decoration_attributes(\n            &mut style,\n            special_attributes_from_style_string,\n        );\n        style\n    }\n}\n\nbitflags! {\n    #[derive(Clone, Copy, Debug, PartialEq)]\n    struct DecorationAttributes: u8 {\n        const EMPTY = 0b00000000;\n        const BOX = 0b00000001;\n        const OVERLINE = 0b00000010;\n        const UNDERLINE = 0b00000100;\n    }\n}\n\nimpl DecorationStyle {\n    pub fn from_str(style_string: &str, true_color: bool, git_config: Option<&GitConfig>) -> Self {\n        let (special_attributes, style_string) =\n            extract_special_decoration_attributes(style_string);\n        let (style, is_omitted, is_raw, is_syntax_highlighted) =\n            parse_ansi_term_style(&style_string, None, true_color, git_config);\n        if is_raw {\n            fatal(\"'raw' may not be used in a decoration style.\");\n        };\n        if is_syntax_highlighted {\n            fatal(\"'syntax' may not be used in a decoration style.\");\n        };\n        #[allow(non_snake_case)]\n        let (BOX, UL, OL, EMPTY) = (\n            DecorationAttributes::BOX,\n            DecorationAttributes::UNDERLINE,\n            DecorationAttributes::OVERLINE,\n            DecorationAttributes::EMPTY,\n        );\n        match special_attributes {\n            bits if bits == EMPTY => DecorationStyle::NoDecoration,\n            bits if bits == BOX => DecorationStyle::Box(style),\n            bits if bits == UL => DecorationStyle::Underline(style),\n            bits if bits == OL => DecorationStyle::Overline(style),\n            bits if bits == UL | OL => DecorationStyle::UnderOverline(style),\n            bits if bits == BOX | UL => DecorationStyle::BoxWithUnderline(style),\n            bits if bits == BOX | OL => DecorationStyle::BoxWithOverline(style),\n            bits if bits == BOX | UL | OL => DecorationStyle::BoxWithUnderOverline(style),\n            _ if is_omitted => DecorationStyle::NoDecoration,\n            _ => delta_unreachable(\"Unreachable code path reached in parse_decoration_style.\"),\n        }\n    }\n\n    fn apply_special_decoration_attributes(\n        style: &mut Style,\n        special_attributes: DecorationAttributes,\n    ) -> DecorationStyle {\n        let ansi_term_style = match style.decoration_style {\n            DecorationStyle::Box(ansi_term_style) => ansi_term_style,\n            DecorationStyle::Underline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::Overline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::UnderOverline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::BoxWithUnderline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::BoxWithOverline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::BoxWithUnderOverline(ansi_term_style) => ansi_term_style,\n            DecorationStyle::NoDecoration => ansi_term::Style::new(),\n        };\n        #[allow(non_snake_case)]\n        let (BOX, UL, OL, EMPTY) = (\n            DecorationAttributes::BOX,\n            DecorationAttributes::UNDERLINE,\n            DecorationAttributes::OVERLINE,\n            DecorationAttributes::EMPTY,\n        );\n        match special_attributes {\n            bits if bits == EMPTY => style.decoration_style,\n            bits if bits == BOX => DecorationStyle::Box(ansi_term_style),\n            bits if bits == UL => DecorationStyle::Underline(ansi_term_style),\n            bits if bits == OL => DecorationStyle::Overline(ansi_term_style),\n            bits if bits == UL | OL => DecorationStyle::UnderOverline(ansi_term_style),\n            bits if bits == BOX | UL => DecorationStyle::BoxWithUnderline(ansi_term_style),\n            bits if bits == BOX | OL => DecorationStyle::BoxWithOverline(ansi_term_style),\n            bits if bits == BOX | UL | OL => DecorationStyle::BoxWithUnderOverline(ansi_term_style),\n            _ => DecorationStyle::NoDecoration,\n        }\n    }\n}\n\nfn parse_ansi_term_style(\n    s: &str,\n    default: Option<Style>,\n    true_color: bool,\n    git_config: Option<&GitConfig>,\n) -> (ansi_term::Style, bool, bool, bool) {\n    let mut style = ansi_term::Style::new();\n    let mut seen_foreground = false;\n    let mut seen_background = false;\n    let mut foreground_is_auto = false;\n    let mut background_is_auto = false;\n    let mut is_omitted = false;\n    let mut is_raw = false;\n    let mut seen_omit = false;\n    let mut seen_raw = false;\n    let mut is_syntax_highlighted = false;\n    for word in s\n        .to_lowercase()\n        .split_whitespace()\n        .map(|word| word.trim_matches(|c| c == '\"' || c == '\\''))\n    {\n        if word == \"blink\" {\n            style.is_blink = true;\n        } else if word == \"bold\" {\n            style.is_bold = true;\n        } else if word == \"dim\" {\n            style.is_dimmed = true;\n        } else if word == \"hidden\" {\n            style.is_hidden = true;\n        } else if word == \"italic\" {\n            style.is_italic = true;\n        } else if word == \"omit\" {\n            seen_omit = true;\n            is_omitted = true;\n        } else if word == \"reverse\" {\n            style.is_reverse = true;\n        } else if word == \"raw\" {\n            seen_raw = true;\n            is_raw = true;\n        } else if word == \"strike\" {\n            style.is_strikethrough = true;\n        } else if word == \"ul\" || word == \"underline\" {\n            style.is_underline = true;\n        } else if word == \"line-number\" || word == \"file\" || word == \"omit-code-fragment\" {\n            // Allow: these are meaningful in hunk-header-style.\n        } else if !seen_foreground {\n            if word == \"syntax\" {\n                is_syntax_highlighted = true;\n            } else if word == \"auto\" {\n                foreground_is_auto = true;\n                style.foreground = default.and_then(|s| s.ansi_term_style.foreground);\n                is_syntax_highlighted = default.map(|s| s.is_syntax_highlighted).unwrap_or(false);\n            } else {\n                style.foreground = color::parse_color(word, true_color, git_config);\n            }\n            seen_foreground = true;\n        } else if !seen_background {\n            if word == \"syntax\" {\n                fatal(\n                    \"You have used the special color 'syntax' as a background color \\\n                       (second color in a style string). It may only be used as a foreground \\\n                       color (first color in a style string).\",\n                );\n            } else if word == \"auto\" {\n                background_is_auto = true;\n                style.background = default.and_then(|s| s.ansi_term_style.background);\n            } else {\n                style.background = color::parse_color(word, true_color, git_config);\n            }\n            seen_background = true;\n        } else {\n            fatal(format!(\n                \"Invalid style string: {s}. See the STYLES section of delta --help.\",\n            ));\n        }\n    }\n    if foreground_is_auto && background_is_auto {\n        if !seen_omit {\n            is_omitted = default.map(|s| s.is_omitted).unwrap_or(false);\n        }\n        if !seen_raw {\n            is_raw = default.map(|s| s.is_raw).unwrap_or(false);\n        }\n    }\n    (style, is_omitted, is_raw, is_syntax_highlighted)\n}\n\n/// Extract set of 'special decoration attributes' and return it along with modified style string.\nfn extract_special_decoration_attributes(style_string: &str) -> (DecorationAttributes, String) {\n    _extract_special_decoration_attributes(style_string, true)\n}\n\nfn extract_special_decoration_attributes_from_non_decoration_style_string(\n    style_string: &str,\n) -> (DecorationAttributes, String) {\n    _extract_special_decoration_attributes(style_string, false)\n}\n\n// If this is being called in the context of processing a decoration style string then we treat\n// ul/ol as a request for an underline/overline decoration respectively. Otherwise they are\n// conventional character style attributes.\nfn _extract_special_decoration_attributes(\n    style_string: &str,\n    is_decoration_style_string: bool,\n) -> (DecorationAttributes, String) {\n    let mut attributes = DecorationAttributes::EMPTY;\n    let mut new_style_string = Vec::new();\n    let style_string = style_string.to_lowercase();\n    for token in style_string\n        .split_whitespace()\n        .map(|word| word.trim_matches(|c| c == '\"' || c == '\\''))\n    {\n        match token {\n            \"box\" => attributes |= DecorationAttributes::BOX,\n            token if token == \"overline\" || is_decoration_style_string && token == \"ol\" => {\n                attributes |= DecorationAttributes::OVERLINE\n            }\n            token if token == \"underline\" || is_decoration_style_string && token == \"ul\" => {\n                attributes |= DecorationAttributes::UNDERLINE\n            }\n            token if token == \"none\" || token == \"plain\" => {}\n            _ => new_style_string.push(token),\n        }\n    }\n    (attributes, new_style_string.join(\" \"))\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn test_parse_ansi_term_style() {\n        assert_eq!(\n            parse_ansi_term_style(\"\", None, false, None),\n            (ansi_term::Style::new(), false, false, false)\n        );\n        assert_eq!(\n            parse_ansi_term_style(\"red\", None, false, None),\n            (\n                ansi_term::Style {\n                    foreground: Some(ansi_term::Color::Red),\n                    ..ansi_term::Style::new()\n                },\n                false,\n                false,\n                false\n            )\n        );\n        assert_eq!(\n            parse_ansi_term_style(\"red green\", None, false, None),\n            (\n                ansi_term::Style {\n                    foreground: Some(ansi_term::Color::Red),\n                    background: Some(ansi_term::Color::Green),\n                    ..ansi_term::Style::new()\n                },\n                false,\n                false,\n                false\n            )\n        );\n        assert_eq!(\n            parse_ansi_term_style(\"bold red underline green blink\", None, false, None),\n            (\n                ansi_term::Style {\n                    foreground: Some(ansi_term::Color::Red),\n                    background: Some(ansi_term::Color::Green),\n                    is_blink: true,\n                    is_bold: true,\n                    is_underline: true,\n                    ..ansi_term::Style::new()\n                },\n                false,\n                false,\n                false\n            )\n        );\n    }\n\n    #[test]\n    fn test_parse_ansi_term_style_with_special_syntax_color() {\n        assert_eq!(\n            parse_ansi_term_style(\"syntax\", None, false, None),\n            (ansi_term::Style::new(), false, false, true)\n        );\n        assert_eq!(\n            parse_ansi_term_style(\"syntax italic white hidden\", None, false, None),\n            (\n                ansi_term::Style {\n                    background: Some(ansi_term::Color::White),\n                    is_italic: true,\n                    is_hidden: true,\n                    ..ansi_term::Style::new()\n                },\n                false,\n                false,\n                true\n            )\n        );\n        assert_eq!(\n            parse_ansi_term_style(\"bold syntax italic white hidden\", None, false, None),\n            (\n                ansi_term::Style {\n                    background: Some(ansi_term::Color::White),\n                    is_bold: true,\n                    is_italic: true,\n                    is_hidden: true,\n                    ..ansi_term::Style::new()\n                },\n                false,\n                false,\n                true\n            )\n        );\n    }\n\n    #[test]\n    fn test_parse_ansi_term_style_with_special_omit_attribute() {\n        assert_eq!(\n            parse_ansi_term_style(\"omit\", None, false, None),\n            (ansi_term::Style::new(), true, false, false)\n        );\n        // It doesn't make sense for omit to be combined with anything else, but it is not an error.\n        assert_eq!(\n            parse_ansi_term_style(\"omit syntax italic white hidden\", None, false, None),\n            (\n                ansi_term::Style {\n                    background: Some(ansi_term::Color::White),\n                    is_italic: true,\n                    is_hidden: true,\n                    ..ansi_term::Style::new()\n                },\n                true,\n                false,\n                true\n            )\n        );\n    }\n\n    #[test]\n    fn test_parse_ansi_term_style_with_special_raw_attribute() {\n        assert_eq!(\n            parse_ansi_term_style(\"raw\", None, false, None),\n            (ansi_term::Style::new(), false, true, false)\n        );\n        // It doesn't make sense for raw to be combined with anything else, but it is not an error.\n        assert_eq!(\n            parse_ansi_term_style(\"raw syntax italic white hidden\", None, false, None),\n            (\n                ansi_term::Style {\n                    background: Some(ansi_term::Color::White),\n                    is_italic: true,\n                    is_hidden: true,\n                    ..ansi_term::Style::new()\n                },\n                false,\n                true,\n                true\n            )\n        );\n    }\n\n    #[test]\n    fn test_extract_special_decoration_attribute() {\n        #[allow(non_snake_case)]\n        let (BOX, UL, OL, EMPTY) = (\n            DecorationAttributes::BOX,\n            DecorationAttributes::UNDERLINE,\n            DecorationAttributes::OVERLINE,\n            DecorationAttributes::EMPTY,\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"\"),\n            (EMPTY, \"\".to_string(),)\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"box\"),\n            (BOX, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"ul\"),\n            (UL, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"ol\"),\n            (OL, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"box ul\"),\n            (BOX | UL, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"box ol\"),\n            (BOX | OL, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"ul box ol\"),\n            (BOX | UL | OL, \"\".to_string())\n        );\n        assert_eq!(\n            extract_special_decoration_attributes(\"ol ul\"),\n            (UL | OL, \"\".to_string())\n        );\n    }\n\n    #[test]\n    fn test_decoration_style_from_str_empty_string() {\n        assert_eq!(\n            DecorationStyle::from_str(\"\", true, None),\n            DecorationStyle::NoDecoration,\n        )\n    }\n\n    #[test]\n    fn test_decoration_style_from_str() {\n        assert_eq!(\n            DecorationStyle::from_str(\"ol red box bold green ul\", true, None),\n            DecorationStyle::BoxWithUnderOverline(ansi_term::Style {\n                foreground: Some(ansi_term::Color::Red),\n                background: Some(ansi_term::Color::Green),\n                is_bold: true,\n                ..ansi_term::Style::new()\n            })\n        )\n    }\n\n    #[test]\n    fn test_style_from_str() {\n        let actual_style = Style::from_str(\n            \"red green bold\",\n            None,\n            Some(\"ol red box bold green ul\"),\n            true,\n            None,\n        );\n        let red_green_bold = ansi_term::Style {\n            foreground: Some(ansi_term::Color::Red),\n            background: Some(ansi_term::Color::Green),\n            is_bold: true,\n            ..ansi_term::Style::new()\n        };\n        assert_eq!(\n            actual_style,\n            Style {\n                ansi_term_style: red_green_bold,\n                decoration_style: DecorationStyle::BoxWithUnderOverline(red_green_bold),\n                ..Style::new()\n            }\n        )\n    }\n\n    #[test]\n    fn test_style_from_str_raw_with_box() {\n        let actual_style = Style::from_str(\"raw\", None, Some(\"box\"), true, None);\n        let empty_ansi_term_style = ansi_term::Style::new();\n        assert_eq!(\n            actual_style,\n            Style {\n                ansi_term_style: empty_ansi_term_style,\n                decoration_style: DecorationStyle::Box(empty_ansi_term_style),\n                is_raw: true,\n                ..Style::new()\n            }\n        )\n    }\n\n    #[test]\n    fn test_style_from_str_decoration_style_only() {\n        let actual_style = Style::from_str(\"\", None, Some(\"ol red box bold green ul\"), true, None);\n        let red_green_bold = ansi_term::Style {\n            foreground: Some(ansi_term::Color::Red),\n            background: Some(ansi_term::Color::Green),\n            is_bold: true,\n            ..ansi_term::Style::new()\n        };\n        assert_eq!(\n            actual_style,\n            Style {\n                decoration_style: DecorationStyle::BoxWithUnderOverline(red_green_bold),\n                ..Style::new()\n            }\n        )\n    }\n\n    #[test]\n    fn test_style_from_str_with_handling_of_special_decoration_attributes() {\n        let actual_style = Style::from_str_with_handling_of_special_decoration_attributes(\n            \"\",\n            None,\n            Some(\"ol red box bold green ul\"),\n            true,\n            None,\n        );\n        let expected_decoration_style = DecorationStyle::BoxWithUnderOverline(ansi_term::Style {\n            foreground: Some(ansi_term::Color::Red),\n            background: Some(ansi_term::Color::Green),\n            is_bold: true,\n            ..ansi_term::Style::new()\n        });\n        assert_eq!(\n            actual_style,\n            Style {\n                decoration_style: expected_decoration_style,\n                ..Style::new()\n            }\n        )\n    }\n\n    #[test]\n    fn test_style_from_str_with_handling_of_special_decoration_attributes_raw_with_box() {\n        let actual_style = Style::from_str_with_handling_of_special_decoration_attributes(\n            \"raw\",\n            None,\n            Some(\"box\"),\n            true,\n            None,\n        );\n        let empty_ansi_term_style = ansi_term::Style::new();\n        assert_eq!(\n            actual_style,\n            Style {\n                ansi_term_style: empty_ansi_term_style,\n                decoration_style: DecorationStyle::Box(empty_ansi_term_style),\n                is_raw: true,\n                ..Style::new()\n            }\n        )\n    }\n}\n"
  },
  {
    "path": "src/parse_styles.rs",
    "content": "use std::collections::{HashMap, HashSet};\n\nuse crate::cli;\nuse crate::color;\nuse crate::fatal;\nuse crate::git_config::GitConfig;\nuse crate::style::{self, Style};\n\n#[derive(Debug, Clone)]\nenum StyleReference {\n    Style(Style),\n    Reference(String),\n}\n\nfn is_style_reference(style_string: &str) -> bool {\n    style_string.ends_with(\"-style\") && !style_string.chars().any(|c| c == ' ')\n}\n\npub fn parse_styles(opt: &cli::Opt) -> HashMap<String, Style> {\n    let mut styles: HashMap<&str, StyleReference> = HashMap::new();\n\n    make_hunk_styles(opt, &mut styles);\n    make_commit_file_hunk_header_styles(opt, &mut styles);\n    make_line_number_styles(opt, &mut styles);\n    make_blame_styles(opt, &mut styles);\n    make_grep_styles(opt, &mut styles);\n    make_merge_conflict_styles(opt, &mut styles);\n    make_misc_styles(opt, &mut styles);\n\n    let mut resolved_styles = resolve_style_references(styles, opt);\n    resolved_styles\n        .get_mut(\"minus-emph-style\")\n        .unwrap_or_else(|| panic!(\"minus-emph-style not found in resolved styles\"))\n        .is_emph = true;\n\n    resolved_styles\n        .get_mut(\"plus-emph-style\")\n        .unwrap_or_else(|| panic!(\"plus-emph-style not found in resolved styles\"))\n        .is_emph = true;\n    resolved_styles\n}\n\npub fn parse_styles_map(opt: &cli::Opt) -> Option<HashMap<style::AnsiTermStyleEqualityKey, Style>> {\n    if let Some(styles_map_str) = &opt.map_styles {\n        let mut styles_map = HashMap::new();\n        for pair_str in styles_map_str.split(',') {\n            let mut style_strs = pair_str.split(\"=>\").map(|s| s.trim());\n            if let (Some(from_str), Some(to_str)) = (style_strs.next(), style_strs.next()) {\n                let from_style = parse_as_style_or_reference_to_git_config(from_str, opt);\n                let to_style = parse_as_style_or_reference_to_git_config(to_str, opt);\n                styles_map.insert(\n                    style::ansi_term_style_equality_key(from_style.ansi_term_style),\n                    to_style,\n                );\n            }\n        }\n        Some(styles_map)\n    } else {\n        None\n    }\n}\n\nfn resolve_style_references(\n    edges: HashMap<&str, StyleReference>,\n    opt: &cli::Opt,\n) -> HashMap<String, Style> {\n    let mut resolved_styles = HashMap::new();\n\n    for starting_node in edges.keys() {\n        if resolved_styles.contains_key(*starting_node) {\n            continue;\n        }\n        let mut visited = HashSet::new();\n        let mut node = *starting_node;\n        loop {\n            if !visited.insert(node) {\n                #[cfg(not(test))]\n                fatal(format!(\"Your delta styles form a cycle! {visited:?}\"));\n                #[cfg(test)]\n                return [(\"__cycle__\", Style::default())]\n                    .iter()\n                    .map(|(a, b)| (a.to_string(), *b))\n                    .collect();\n            }\n            match &edges.get(&node) {\n                Some(StyleReference::Reference(child_node)) => node = child_node,\n                Some(StyleReference::Style(style)) => {\n                    resolved_styles.extend(visited.iter().map(|node| (node.to_string(), *style)));\n                    break;\n                }\n                None => {\n                    let style = parse_as_reference_to_git_config(node, opt);\n                    resolved_styles.extend(visited.iter().map(|node| (node.to_string(), style)));\n                }\n            }\n        }\n    }\n    resolved_styles\n}\n\nfn parse_as_style_or_reference_to_git_config(style_string: &str, opt: &cli::Opt) -> Style {\n    match style_from_str(style_string, None, None, true, opt.git_config()) {\n        StyleReference::Reference(style_ref) => parse_as_reference_to_git_config(&style_ref, opt),\n        StyleReference::Style(style) => style,\n    }\n}\n\nfn parse_as_reference_to_git_config(style_string: &str, opt: &cli::Opt) -> Style {\n    if let Some(git_config) = opt.git_config() {\n        let git_config_key = format!(\"delta.{style_string}\");\n        match git_config.get::<String>(&git_config_key) {\n            Some(s) => Style::from_git_str(&s),\n            _ => fatal(format!(\n                \"Style key not found in git config: {git_config_key}\",\n            )),\n        }\n    } else {\n        fatal(format!(\n            \"Style not found (git config unavailable): {style_string}\",\n        ));\n    }\n}\n\nfn make_hunk_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    let color_mode = opt.computed.color_mode;\n    let true_color = opt.computed.true_color;\n    let minus_style = style_from_str(\n        &opt.minus_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_minus_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let minus_emph_style = style_from_str(\n        &opt.minus_emph_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_minus_emph_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let minus_non_emph_style = style_from_str(\n        &opt.minus_non_emph_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    // The style used to highlight a removed empty line when otherwise it would be invisible due to\n    // lack of background color in minus-style.\n    let minus_empty_line_marker_style = style_from_str(\n        &opt.minus_empty_line_marker_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_minus_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let zero_style = style_from_str(&opt.zero_style, None, None, true_color, opt.git_config());\n\n    let plus_style = style_from_str(\n        &opt.plus_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_plus_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let plus_emph_style = style_from_str(\n        &opt.plus_emph_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_plus_emph_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let plus_non_emph_style = style_from_str(\n        &opt.plus_non_emph_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    // The style used to highlight an added empty line when otherwise it would be invisible due to\n    // lack of background color in plus-style.\n    let plus_empty_line_marker_style = style_from_str(\n        &opt.plus_empty_line_marker_style,\n        Some(Style::from_colors(\n            None,\n            Some(color::get_plus_background_color_default(\n                color_mode, true_color,\n            )),\n        )),\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let whitespace_error_style = style_from_str(\n        &opt.whitespace_error_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    styles.extend([\n        (\"minus-style\", minus_style),\n        (\"minus-emph-style\", minus_emph_style),\n        (\"minus-non-emph-style\", minus_non_emph_style),\n        (\n            \"minus-empty-line-marker-style\",\n            minus_empty_line_marker_style,\n        ),\n        (\"zero-style\", zero_style),\n        (\"plus-style\", plus_style),\n        (\"plus-emph-style\", plus_emph_style),\n        (\"plus-non-emph-style\", plus_non_emph_style),\n        (\"plus-empty-line-marker-style\", plus_empty_line_marker_style),\n        (\"whitespace-error-style\", whitespace_error_style),\n    ])\n}\n\nfn make_line_number_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    let true_color = opt.computed.true_color;\n    let line_numbers_left_style = style_from_str(\n        &opt.line_numbers_left_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let line_numbers_minus_style = style_from_str(\n        &opt.line_numbers_minus_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let line_numbers_zero_style = style_from_str(\n        &opt.line_numbers_zero_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let line_numbers_plus_style = style_from_str(\n        &opt.line_numbers_plus_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    let line_numbers_right_style = style_from_str(\n        &opt.line_numbers_right_style,\n        None,\n        None,\n        true_color,\n        opt.git_config(),\n    );\n\n    styles.extend([\n        (\"line-numbers-minus-style\", line_numbers_minus_style),\n        (\"line-numbers-zero-style\", line_numbers_zero_style),\n        (\"line-numbers-plus-style\", line_numbers_plus_style),\n        (\"line-numbers-left-style\", line_numbers_left_style),\n        (\"line-numbers-right-style\", line_numbers_right_style),\n    ])\n}\n\nfn make_commit_file_hunk_header_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    let true_color = opt.computed.true_color;\n    styles.extend([\n        (\n            \"commit-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                &opt.commit_style,\n                None,\n                Some(&opt.commit_decoration_style),\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"file-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                &opt.file_style,\n                None,\n                Some(&opt.file_decoration_style),\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"classic-grep-header-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                opt.hunk_header_style.as_str(),\n                None,\n                opt.grep_header_decoration_style\n                    .as_deref()\n                    .or(Some(opt.hunk_header_decoration_style.as_str())),\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"ripgrep-header-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                \"file\",\n                None,\n                opt.grep_header_decoration_style.as_deref().or(Some(\"none\")),\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"hunk-header-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                &opt.hunk_header_style,\n                None,\n                Some(&opt.hunk_header_decoration_style),\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"hunk-header-file-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                &opt.hunk_header_file_style,\n                None,\n                None,\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"classic-grep-header-file-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                opt.grep_header_file_style\n                    .as_deref()\n                    .unwrap_or(opt.hunk_header_file_style.as_str()),\n                None,\n                None,\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"ripgrep-header-file-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                opt.grep_header_file_style.as_deref().unwrap_or(\"magenta\"),\n                None,\n                None,\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"hunk-header-line-number-style\",\n            style_from_str_with_handling_of_special_decoration_attributes(\n                &opt.hunk_header_line_number_style,\n                None,\n                None,\n                true_color,\n                opt.git_config(),\n            ),\n        ),\n    ]);\n}\n\nfn make_blame_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    if let Some(style_string) = &opt.blame_code_style {\n        styles.insert(\n            \"blame-code-style\",\n            style_from_str(\n                style_string,\n                None,\n                None,\n                opt.computed.true_color,\n                opt.git_config(),\n            ),\n        );\n    };\n    if let Some(style_string) = &opt.blame_separator_style {\n        styles.insert(\n            \"blame-separator-style\",\n            style_from_str(\n                style_string,\n                None,\n                None,\n                opt.computed.true_color,\n                opt.git_config(),\n            ),\n        );\n    };\n}\n\nfn make_grep_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    styles.extend([\n        (\n            \"grep-match-line-style\",\n            if let Some(s) = &opt.grep_match_line_style {\n                style_from_str(s, None, None, opt.computed.true_color, opt.git_config())\n            } else {\n                StyleReference::Reference(\"zero-style\".to_owned())\n            },\n        ),\n        (\n            \"grep-match-word-style\",\n            if let Some(s) = &opt.grep_match_word_style {\n                style_from_str(s, None, None, opt.computed.true_color, opt.git_config())\n            } else {\n                StyleReference::Reference(\"plus-emph-style\".to_owned())\n            },\n        ),\n        (\n            \"grep-context-line-style\",\n            if let Some(s) = &opt.grep_context_line_style {\n                style_from_str(s, None, None, opt.computed.true_color, opt.git_config())\n            } else {\n                StyleReference::Reference(\"zero-style\".to_owned())\n            },\n        ),\n        (\n            \"grep-file-style\",\n            style_from_str(\n                &opt.grep_file_style,\n                None,\n                None,\n                opt.computed.true_color,\n                opt.git_config(),\n            ),\n        ),\n        (\n            \"grep-line-number-style\",\n            style_from_str(\n                &opt.grep_line_number_style,\n                None,\n                None,\n                opt.computed.true_color,\n                opt.git_config(),\n            ),\n        ),\n    ])\n}\n\nfn make_merge_conflict_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    styles.insert(\n        \"merge-conflict-ours-diff-header-style\",\n        style_from_str_with_handling_of_special_decoration_attributes(\n            &opt.merge_conflict_ours_diff_header_style,\n            None,\n            Some(&opt.merge_conflict_ours_diff_header_decoration_style),\n            opt.computed.true_color,\n            opt.git_config(),\n        ),\n    );\n    styles.insert(\n        \"merge-conflict-theirs-diff-header-style\",\n        style_from_str_with_handling_of_special_decoration_attributes(\n            &opt.merge_conflict_theirs_diff_header_style,\n            None,\n            Some(&opt.merge_conflict_theirs_diff_header_decoration_style),\n            opt.computed.true_color,\n            opt.git_config(),\n        ),\n    );\n}\n\nfn make_misc_styles(opt: &cli::Opt, styles: &mut HashMap<&str, StyleReference>) {\n    styles.insert(\n        \"inline-hint-style\",\n        style_from_str(\n            &opt.inline_hint_style,\n            None,\n            None,\n            opt.computed.true_color,\n            opt.git_config(),\n        ),\n    );\n    styles.insert(\n        \"git-minus-style\",\n        StyleReference::Style(\n            match opt\n                .git_config()\n                .and_then(|cfg| cfg.get::<String>(\"color.diff.old\"))\n            {\n                Some(s) => Style::from_git_str(&s),\n                None => *style::GIT_DEFAULT_MINUS_STYLE,\n            },\n        ),\n    );\n    styles.insert(\n        \"git-plus-style\",\n        StyleReference::Style(\n            match opt\n                .git_config()\n                .and_then(|cfg| cfg.get::<String>(\"color.diff.new\"))\n            {\n                Some(s) => Style::from_git_str(&s),\n                None => *style::GIT_DEFAULT_PLUS_STYLE,\n            },\n        ),\n    );\n}\n\nfn style_from_str(\n    style_string: &str,\n    default: Option<Style>,\n    decoration_style_string: Option<&str>,\n    true_color: bool,\n    git_config: Option<&GitConfig>,\n) -> StyleReference {\n    if is_style_reference(style_string) {\n        StyleReference::Reference(style_string.to_owned())\n    } else {\n        StyleReference::Style(Style::from_str(\n            style_string,\n            default,\n            decoration_style_string,\n            true_color,\n            git_config,\n        ))\n    }\n}\n\nfn style_from_str_with_handling_of_special_decoration_attributes(\n    style_string: &str,\n    default: Option<Style>,\n    decoration_style_string: Option<&str>,\n    true_color: bool,\n    git_config: Option<&GitConfig>,\n) -> StyleReference {\n    if is_style_reference(style_string) {\n        StyleReference::Reference(style_string.to_owned())\n    } else {\n        StyleReference::Style(\n            Style::from_str_with_handling_of_special_decoration_attributes(\n                style_string,\n                default,\n                decoration_style_string,\n                true_color,\n                git_config,\n            ),\n        )\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use crate::tests::integration_test_utils;\n\n    fn resolve_style_references(edges: HashMap<&str, StyleReference>) -> HashMap<String, Style> {\n        let opt = integration_test_utils::make_options_from_args(&[]);\n        super::resolve_style_references(edges, &opt)\n    }\n\n    #[test]\n    fn test_resolve_style_references_1() {\n        let style_1 = Style::default();\n        let style_2 = style::Style {\n            is_syntax_highlighted: !style_1.is_syntax_highlighted,\n            ..Default::default()\n        };\n\n        let edges: HashMap<&str, StyleReference> = [\n            (\"a\", StyleReference::Style(style_1)),\n            (\"b\", StyleReference::Reference(\"c\".to_string())),\n            (\"c\", StyleReference::Style(style_2)),\n        ]\n        .iter()\n        .map(|(a, b)| (*a, b.clone()))\n        .collect();\n\n        let expected = [(\"a\", style_1), (\"b\", style_2), (\"c\", style_2)]\n            .iter()\n            .map(|(a, b)| (a.to_string(), *b))\n            .collect();\n\n        assert_eq!(resolve_style_references(edges), expected);\n    }\n\n    #[test]\n    fn test_resolve_style_references_2() {\n        let style_1 = Style::default();\n        let style_2 = style::Style {\n            is_syntax_highlighted: !style_1.is_syntax_highlighted,\n            ..Default::default()\n        };\n\n        let edges: HashMap<&str, StyleReference> = [\n            (\"a\", StyleReference::Reference(\"b\".to_string())),\n            (\"b\", StyleReference::Reference(\"c\".to_string())),\n            (\"c\", StyleReference::Style(style_1)),\n            (\"d\", StyleReference::Reference(\"b\".to_string())),\n            (\"e\", StyleReference::Reference(\"a\".to_string())),\n            (\"f\", StyleReference::Style(style_2)),\n            (\"g\", StyleReference::Reference(\"f\".to_string())),\n            (\"h\", StyleReference::Reference(\"g\".to_string())),\n            (\"i\", StyleReference::Reference(\"g\".to_string())),\n        ]\n        .iter()\n        .map(|(a, b)| (*a, b.clone()))\n        .collect();\n\n        let expected = [\n            (\"a\", style_1),\n            (\"b\", style_1),\n            (\"c\", style_1),\n            (\"d\", style_1),\n            (\"e\", style_1),\n            (\"f\", style_2),\n            (\"g\", style_2),\n            (\"h\", style_2),\n            (\"i\", style_2),\n        ]\n        .iter()\n        .map(|(a, b)| (a.to_string(), *b))\n        .collect();\n\n        assert_eq!(resolve_style_references(edges), expected);\n    }\n\n    #[test]\n    fn test_resolve_style_references_cycle() {\n        let edges: HashMap<&str, StyleReference> = [\n            (\"a\", StyleReference::Reference(\"b\".to_string())),\n            (\"b\", StyleReference::Reference(\"c\".to_string())),\n            (\"c\", StyleReference::Reference(\"a\".to_string())),\n        ]\n        .iter()\n        .map(|(a, b)| (*a, b.clone()))\n        .collect();\n\n        assert_eq!(\n            resolve_style_references(edges).keys().next().unwrap(),\n            \"__cycle__\"\n        );\n    }\n}\n"
  },
  {
    "path": "src/style.rs",
    "content": "use std::borrow::Cow;\nuse std::fmt;\nuse std::hash::{Hash, Hasher};\n\nuse lazy_static::lazy_static;\n\nuse crate::ansi;\nuse crate::color;\nuse crate::git_config::GitConfig;\n\n// PERF: Avoid deriving Copy here?\n#[derive(Clone, Copy, PartialEq, Default)]\npub struct Style {\n    pub ansi_term_style: ansi_term::Style,\n    pub is_emph: bool,\n    pub is_omitted: bool,\n    pub is_raw: bool,\n    pub is_syntax_highlighted: bool,\n    pub decoration_style: DecorationStyle,\n}\n\n// More compact debug output, replace false/empty with lowercase and true with uppercase.\nimpl fmt::Debug for Style {\n    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {\n        let ansi = if self.ansi_term_style.is_plain() {\n            \"<a\".into()\n        } else {\n            format!(\"ansi_term_style: {:?}, <\", self.ansi_term_style)\n        };\n\n        let deco = if self.decoration_style == DecorationStyle::NoDecoration {\n            \"d>\".into()\n        } else {\n            format!(\">, decoration_style: {:?}\", self.decoration_style)\n        };\n\n        let is_set = |c: char, set: bool| -> String {\n            if set {\n                c.to_uppercase().to_string()\n            } else {\n                c.to_lowercase().to_string()\n            }\n        };\n\n        write!(\n            f,\n            \"Style {{ {}{}{}{}{}{} }}\",\n            ansi,\n            is_set('e', self.is_emph),\n            is_set('o', self.is_omitted),\n            is_set('r', self.is_raw),\n            is_set('s', self.is_syntax_highlighted),\n            deco\n        )\n    }\n}\n\n#[derive(Clone, Copy, Debug, PartialEq, Default)]\npub enum DecorationStyle {\n    Box(ansi_term::Style),\n    Underline(ansi_term::Style),\n    Overline(ansi_term::Style),\n    UnderOverline(ansi_term::Style),\n    BoxWithUnderline(ansi_term::Style),\n    BoxWithOverline(ansi_term::Style),\n    BoxWithUnderOverline(ansi_term::Style),\n    #[default]\n    NoDecoration,\n}\n\nimpl Style {\n    pub fn new() -> Self {\n        Self {\n            ansi_term_style: ansi_term::Style::new(),\n            is_emph: false,\n            is_omitted: false,\n            is_raw: false,\n            is_syntax_highlighted: false,\n            decoration_style: DecorationStyle::NoDecoration,\n        }\n    }\n\n    pub fn from_colors(\n        foreground: Option<ansi_term::Color>,\n        background: Option<ansi_term::Color>,\n    ) -> Self {\n        Self {\n            ansi_term_style: ansi_term::Style {\n                foreground,\n                background,\n                ..ansi_term::Style::new()\n            },\n            ..Self::new()\n        }\n    }\n\n    pub fn paint<'a, I, S: 'a + ToOwned + ?Sized>(\n        self,\n        input: I,\n    ) -> ansi_term::ANSIGenericString<'a, S>\n    where\n        I: Into<Cow<'a, S>>,\n        <S as ToOwned>::Owned: fmt::Debug,\n    {\n        self.ansi_term_style.paint(input)\n    }\n\n    pub fn get_background_color(&self) -> Option<ansi_term::Color> {\n        if self.ansi_term_style.is_reverse {\n            self.ansi_term_style.foreground\n        } else {\n            self.ansi_term_style.background\n        }\n    }\n\n    pub fn is_applied_to(&self, s: &str) -> bool {\n        match ansi::parse_first_style(s) {\n            Some(parsed_style) => ansi_term_style_equality(parsed_style, self.ansi_term_style),\n            None => false,\n        }\n    }\n\n    #[cfg(test)]\n    pub fn get_matching_substring<'a>(&self, s: &'a str) -> Option<&'a str> {\n        for (parsed_style, parsed_str) in ansi::parse_style_sections(s) {\n            if ansi_term_style_equality(parsed_style, self.ansi_term_style) {\n                return Some(parsed_str);\n            }\n        }\n        None\n    }\n\n    pub fn to_painted_string(self) -> ansi_term::ANSIGenericString<'static, str> {\n        self.paint(self.to_string())\n    }\n}\n\n/// Interpret `color_string` as a color specifier and return it painted accordingly.\npub fn paint_color_string<'a>(\n    color_string: &'a str,\n    true_color: bool,\n    git_config: Option<&GitConfig>,\n) -> ansi_term::ANSIGenericString<'a, str> {\n    if let Some(color) = color::parse_color(color_string, true_color, git_config) {\n        let style = ansi_term::Style {\n            background: Some(color),\n            ..ansi_term::Style::default()\n        };\n        style.paint(color_string)\n    } else {\n        ansi_term::ANSIGenericString::from(color_string)\n    }\n}\n\nimpl fmt::Display for Style {\n    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {\n        if self.is_raw {\n            return write!(f, \"raw\");\n        }\n        let mut words = Vec::<String>::new();\n        if self.is_omitted {\n            words.push(\"omit\".to_string());\n        }\n        if self.ansi_term_style.is_blink {\n            words.push(\"blink\".to_string());\n        }\n        if self.ansi_term_style.is_bold {\n            words.push(\"bold\".to_string());\n        }\n        if self.ansi_term_style.is_dimmed {\n            words.push(\"dim\".to_string());\n        }\n        if self.ansi_term_style.is_italic {\n            words.push(\"italic\".to_string());\n        }\n        if self.ansi_term_style.is_reverse {\n            words.push(\"reverse\".to_string());\n        }\n        if self.ansi_term_style.is_strikethrough {\n            words.push(\"strike\".to_string());\n        }\n        if self.ansi_term_style.is_underline {\n            words.push(\"ul\".to_string());\n        }\n\n        match (self.is_syntax_highlighted, self.ansi_term_style.foreground) {\n            (true, _) => words.push(\"syntax\".to_string()),\n            (false, Some(color)) => {\n                words.push(color::color_to_string(color));\n            }\n            (false, None) => words.push(\"normal\".to_string()),\n        }\n        if let Some(color) = self.ansi_term_style.background {\n            words.push(color::color_to_string(color))\n        }\n        let style_str = words.join(\" \");\n        write!(f, \"{style_str}\")\n    }\n}\n\npub fn ansi_term_style_equality(a: ansi_term::Style, b: ansi_term::Style) -> bool {\n    let a_attrs = ansi_term::Style {\n        foreground: None,\n        background: None,\n        ..a\n    };\n    let b_attrs = ansi_term::Style {\n        foreground: None,\n        background: None,\n        ..b\n    };\n    if a_attrs != b_attrs {\n        false\n    } else {\n        ansi_term_color_equality(a.foreground, b.foreground)\n            & ansi_term_color_equality(a.background, b.background)\n    }\n}\n\n// TODO: The equality methods were implemented first, and the equality_key\n// methods later. The former should be re-implemented in terms of the latter.\n// But why did the former not address equality of ansi_term::Color::RGB values?\n#[derive(Clone)]\npub struct AnsiTermStyleEqualityKey {\n    attrs_key: (bool, bool, bool, bool, bool, bool, bool, bool),\n    foreground_key: Option<(u8, u8, u8, u8)>,\n    background_key: Option<(u8, u8, u8, u8)>,\n}\n\nimpl PartialEq for AnsiTermStyleEqualityKey {\n    fn eq(&self, other: &Self) -> bool {\n        let option_eq = |opt_a, opt_b| match (opt_a, opt_b) {\n            (Some(a), Some(b)) => a == b,\n            (None, None) => true,\n            _ => false,\n        };\n\n        if self.attrs_key != other.attrs_key {\n            false\n        } else {\n            option_eq(self.foreground_key, other.foreground_key)\n                && option_eq(self.background_key, other.background_key)\n        }\n    }\n}\n\nimpl Eq for AnsiTermStyleEqualityKey {}\n\nimpl Hash for AnsiTermStyleEqualityKey {\n    fn hash<H: Hasher>(&self, state: &mut H) {\n        self.attrs_key.hash(state);\n        self.foreground_key.hash(state);\n        self.background_key.hash(state);\n    }\n}\n\npub fn ansi_term_style_equality_key(style: ansi_term::Style) -> AnsiTermStyleEqualityKey {\n    let attrs_key = (\n        style.is_bold,\n        style.is_dimmed,\n        style.is_italic,\n        style.is_underline,\n        style.is_blink,\n        style.is_reverse,\n        style.is_hidden,\n        style.is_strikethrough,\n    );\n    AnsiTermStyleEqualityKey {\n        attrs_key,\n        foreground_key: style.foreground.map(ansi_term_color_equality_key),\n        background_key: style.background.map(ansi_term_color_equality_key),\n    }\n}\n\nimpl fmt::Debug for AnsiTermStyleEqualityKey {\n    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {\n        let is_set = |c: char, set: bool| -> String {\n            if set {\n                c.to_uppercase().to_string()\n            } else {\n                c.to_lowercase().to_string()\n            }\n        };\n\n        let (bold, dimmed, italic, underline, blink, reverse, hidden, strikethrough) =\n            self.attrs_key;\n        write!(\n            f,\n            \"ansi_term::Style {{ {:?} {:?} {}{}{}{}{}{}{}{} }}\",\n            self.foreground_key,\n            self.background_key,\n            is_set('b', bold),\n            is_set('d', dimmed),\n            is_set('i', italic),\n            is_set('u', underline),\n            is_set('l', blink),\n            is_set('r', reverse),\n            is_set('h', hidden),\n            is_set('s', strikethrough),\n        )\n    }\n}\n\nfn ansi_term_color_equality(a: Option<ansi_term::Color>, b: Option<ansi_term::Color>) -> bool {\n    match a.zip(b) {\n        Some((a, b)) => {\n            a == b || ansi_term_16_color_equality(a, b) || ansi_term_16_color_equality(b, a)\n        }\n        None => a.is_none() && b.is_none(),\n    }\n}\n\nfn ansi_term_16_color_equality(a: ansi_term::Color, b: ansi_term::Color) -> bool {\n    matches!(\n        (a, b),\n        (ansi_term::Color::Fixed(0), ansi_term::Color::Black)\n            | (ansi_term::Color::Fixed(1), ansi_term::Color::Red)\n            | (ansi_term::Color::Fixed(2), ansi_term::Color::Green)\n            | (ansi_term::Color::Fixed(3), ansi_term::Color::Yellow)\n            | (ansi_term::Color::Fixed(4), ansi_term::Color::Blue)\n            | (ansi_term::Color::Fixed(5), ansi_term::Color::Purple)\n            | (ansi_term::Color::Fixed(6), ansi_term::Color::Cyan)\n            | (ansi_term::Color::Fixed(7), ansi_term::Color::White)\n    )\n}\n\nfn ansi_term_color_equality_key(color: ansi_term::Color) -> (u8, u8, u8, u8) {\n    // Same (r, g, b, a) encoding as in utils::bat::terminal::to_ansi_color.\n    // When a = 0xFF, then a 256-color number is stored in the red channel, and\n    // the green and blue channels are meaningless. But a=0 signifies an RGB\n    // color.\n    let default = 0xFF;\n    match color {\n        ansi_term::Color::Fixed(0) | ansi_term::Color::Black => (0, default, default, default),\n        ansi_term::Color::Fixed(1) | ansi_term::Color::Red => (1, default, default, default),\n        ansi_term::Color::Fixed(2) | ansi_term::Color::Green => (2, default, default, default),\n        ansi_term::Color::Fixed(3) | ansi_term::Color::Yellow => (3, default, default, default),\n        ansi_term::Color::Fixed(4) | ansi_term::Color::Blue => (4, default, default, default),\n        ansi_term::Color::Fixed(5) | ansi_term::Color::Purple => (5, default, default, default),\n        ansi_term::Color::Fixed(6) | ansi_term::Color::Cyan => (6, default, default, default),\n        ansi_term::Color::Fixed(7) | ansi_term::Color::White => (7, default, default, default),\n        ansi_term::Color::Fixed(n) => (n, default, default, default),\n        ansi_term::Color::RGB(r, g, b) => (r, g, b, 0),\n    }\n}\n\nlazy_static! {\n    pub static ref GIT_DEFAULT_MINUS_STYLE: Style = Style {\n        ansi_term_style: ansi_term::Color::Red.normal(),\n        ..Style::new()\n    };\n    pub static ref GIT_DEFAULT_PLUS_STYLE: Style = Style {\n        ansi_term_style: ansi_term::Color::Green.normal(),\n        ..Style::new()\n    };\n}\n\npub fn line_has_style_other_than(line: &str, styles: &[Style]) -> bool {\n    if !ansi::string_starts_with_ansi_style_sequence(line) {\n        return false;\n    }\n    for style in styles {\n        if style.is_applied_to(line) {\n            return false;\n        }\n    }\n    true\n}\n\n#[cfg(test)]\npub mod tests {\n\n    use super::*;\n\n    // To add to these tests:\n    // 1. Stage a file with a single line containing the string \"text\"\n    // 2. git -c 'color.diff.new = $STYLE_STRING' diff --cached  --color=always  | cat -A\n\n    lazy_static! {\n        pub static ref GIT_STYLE_STRING_EXAMPLES: Vec<(&'static str, &'static str)> = vec![\n            // <git-default>                    \"\\x1b[32m+\\x1b[m\\x1b[32mtext\\x1b[m\\n\"\n            (\"0\",                               \"\\x1b[30m+\\x1b[m\\x1b[30mtext\\x1b[m\\n\"),\n            (\"black\",                           \"\\x1b[30m+\\x1b[m\\x1b[30mtext\\x1b[m\\n\"),\n            (\"1\",                               \"\\x1b[31m+\\x1b[m\\x1b[31mtext\\x1b[m\\n\"),\n            (\"red\",                             \"\\x1b[31m+\\x1b[m\\x1b[31mtext\\x1b[m\\n\"),\n            (\"0 1\",                             \"\\x1b[30;41m+\\x1b[m\\x1b[30;41mtext\\x1b[m\\n\"),\n            (\"black red\",                       \"\\x1b[30;41m+\\x1b[m\\x1b[30;41mtext\\x1b[m\\n\"),\n            (\"19\",                              \"\\x1b[38;5;19m+\\x1b[m\\x1b[38;5;19mtext\\x1b[m\\n\"),\n            (\"black 19\",                        \"\\x1b[30;48;5;19m+\\x1b[m\\x1b[30;48;5;19mtext\\x1b[m\\n\"),\n            (\"19 black\",                        \"\\x1b[38;5;19;40m+\\x1b[m\\x1b[38;5;19;40mtext\\x1b[m\\n\"),\n            (\"19 20\",                           \"\\x1b[38;5;19;48;5;20m+\\x1b[m\\x1b[38;5;19;48;5;20mtext\\x1b[m\\n\"),\n            (\"#aabbcc\",                         \"\\x1b[38;2;170;187;204m+\\x1b[m\\x1b[38;2;170;187;204mtext\\x1b[m\\n\"),\n            (\"0 #aabbcc\",                       \"\\x1b[30;48;2;170;187;204m+\\x1b[m\\x1b[30;48;2;170;187;204mtext\\x1b[m\\n\"),\n            (\"#aabbcc 0\",                       \"\\x1b[38;2;170;187;204;40m+\\x1b[m\\x1b[38;2;170;187;204;40mtext\\x1b[m\\n\"),\n            (\"19 #aabbcc\",                      \"\\x1b[38;5;19;48;2;170;187;204m+\\x1b[m\\x1b[38;5;19;48;2;170;187;204mtext\\x1b[m\\n\"),\n            (\"#aabbcc 19\",                      \"\\x1b[38;2;170;187;204;48;5;19m+\\x1b[m\\x1b[38;2;170;187;204;48;5;19mtext\\x1b[m\\n\"),\n            (\"#aabbcc #ddeeff\" ,                \"\\x1b[38;2;170;187;204;48;2;221;238;255m+\\x1b[m\\x1b[38;2;170;187;204;48;2;221;238;255mtext\\x1b[m\\n\"),\n            (\"bold #aabbcc #ddeeff\" ,           \"\\x1b[1;38;2;170;187;204;48;2;221;238;255m+\\x1b[m\\x1b[1;38;2;170;187;204;48;2;221;238;255mtext\\x1b[m\\n\"),\n            (\"bold #aabbcc ul #ddeeff\" ,        \"\\x1b[1;4;38;2;170;187;204;48;2;221;238;255m+\\x1b[m\\x1b[1;4;38;2;170;187;204;48;2;221;238;255mtext\\x1b[m\\n\"),\n            (\"bold #aabbcc ul #ddeeff strike\" , \"\\x1b[1;4;9;38;2;170;187;204;48;2;221;238;255m+\\x1b[m\\x1b[1;4;9;38;2;170;187;204;48;2;221;238;255mtext\\x1b[m\\n\"),\n            (\"bold 0 ul 1 strike\",              \"\\x1b[1;4;9;30;41m+\\x1b[m\\x1b[1;4;9;30;41mtext\\x1b[m\\n\"),\n            (\"bold 0 ul 19 strike\",             \"\\x1b[1;4;9;30;48;5;19m+\\x1b[m\\x1b[1;4;9;30;48;5;19mtext\\x1b[m\\n\"),\n            (\"bold 19 ul 0 strike\",             \"\\x1b[1;4;9;38;5;19;40m+\\x1b[m\\x1b[1;4;9;38;5;19;40mtext\\x1b[m\\n\"),\n            (\"bold #aabbcc ul 0 strike\",        \"\\x1b[1;4;9;38;2;170;187;204;40m+\\x1b[m\\x1b[1;4;9;38;2;170;187;204;40mtext\\x1b[m\\n\"),\n            (\"bold #aabbcc ul 19 strike\" ,      \"\\x1b[1;4;9;38;2;170;187;204;48;5;19m+\\x1b[m\\x1b[1;4;9;38;2;170;187;204;48;5;19mtext\\x1b[m\\n\"),\n            (\"bold 19 ul #aabbcc strike\" ,      \"\\x1b[1;4;9;38;5;19;48;2;170;187;204m+\\x1b[m\\x1b[1;4;9;38;5;19;48;2;170;187;204mtext\\x1b[m\\n\"),\n            (\"bold 0 ul #aabbcc strike\",        \"\\x1b[1;4;9;30;48;2;170;187;204m+\\x1b[m\\x1b[1;4;9;30;48;2;170;187;204mtext\\x1b[m\\n\"),\n            (r##\"black \"#ddeeff\"\"##,            \"\\x1b[30;48;2;221;238;255m+\\x1b[m\\x1b[30;48;2;221;238;255mtext\\x1b[m\\n\"),\n            (\"brightred\",                       \"\\x1b[91m+\\x1b[m\\x1b[91mtext\\x1b[m\\n\"),\n            (\"normal\",                          \"\\x1b[mtext\\x1b[m\\n\"),\n            (\"blink\",                           \"\\x1b[5m+\\x1b[m\\x1b[5mtext\\x1b[m\\n\"),\n        ];\n    }\n\n    #[test]\n    fn test_parse_git_style_string_and_ansi_code_iterator() {\n        for (git_style_string, git_output) in &*GIT_STYLE_STRING_EXAMPLES {\n            assert!(Style::from_git_str(git_style_string).is_applied_to(git_output));\n        }\n    }\n\n    #[test]\n    fn test_is_applied_to_negative_assertion() {\n        let style_string_from_24 = \"bold #aabbcc ul 19 strike\";\n        let git_output_from_25 = \"\\x1b[1;4;9;38;5;19;48;2;170;187;204m+\\x1b[m\\x1b[1;4;9;38;5;19;48;2;170;187;204mtext\\x1b[m\\n\";\n        assert!(!Style::from_git_str(style_string_from_24).is_applied_to(git_output_from_25));\n    }\n\n    #[test]\n    fn test_git_default_styles() {\n        let minus_line_from_unconfigured_git = \"\\x1b[31m-____\\x1b[m\\n\";\n        let plus_line_from_unconfigured_git = \"\\x1b[32m+\\x1b[m\\x1b[32m____\\x1b[m\\n\";\n        assert!(GIT_DEFAULT_MINUS_STYLE.is_applied_to(minus_line_from_unconfigured_git));\n        assert!(!GIT_DEFAULT_MINUS_STYLE.is_applied_to(plus_line_from_unconfigured_git));\n\n        assert!(GIT_DEFAULT_PLUS_STYLE.is_applied_to(plus_line_from_unconfigured_git));\n        assert!(!GIT_DEFAULT_PLUS_STYLE.is_applied_to(minus_line_from_unconfigured_git));\n    }\n\n    #[test]\n    fn test_line_has_style_other_than() {\n        let minus_line_from_unconfigured_git = \"\\x1b[31m-____\\x1b[m\\n\";\n        let plus_line_from_unconfigured_git = \"\\x1b[32m+\\x1b[m\\x1b[32m____\\x1b[m\\n\";\n\n        // Unstyled lines should test negative, regardless of supplied styles.\n        assert!(!line_has_style_other_than(\"\", &[]));\n        assert!(!line_has_style_other_than(\"\", &[*GIT_DEFAULT_MINUS_STYLE]));\n\n        // Lines from git should test negative when corresponding default is supplied\n        assert!(!line_has_style_other_than(\n            minus_line_from_unconfigured_git,\n            &[*GIT_DEFAULT_MINUS_STYLE]\n        ));\n        assert!(!line_has_style_other_than(\n            plus_line_from_unconfigured_git,\n            &[*GIT_DEFAULT_PLUS_STYLE]\n        ));\n\n        // Styled lines should test positive when unless their style is supplied.\n        assert!(line_has_style_other_than(\n            minus_line_from_unconfigured_git,\n            &[*GIT_DEFAULT_PLUS_STYLE]\n        ));\n        assert!(line_has_style_other_than(\n            minus_line_from_unconfigured_git,\n            &[]\n        ));\n        assert!(line_has_style_other_than(\n            plus_line_from_unconfigured_git,\n            &[*GIT_DEFAULT_MINUS_STYLE]\n        ));\n        assert!(line_has_style_other_than(\n            plus_line_from_unconfigured_git,\n            &[]\n        ));\n    }\n\n    #[test]\n    fn test_style_compact_debug_fmt() {\n        let mut s = Style::new();\n        assert_eq!(format!(\"{s:?}\"), \"Style { <aeorsd> }\");\n        s.is_emph = true;\n        assert_eq!(format!(\"{s:?}\"), \"Style { <aEorsd> }\");\n        s.ansi_term_style = ansi_term::Style::new().bold();\n        assert_eq!(\n            format!(\"{s:?}\"),\n            \"Style { ansi_term_style: Style { bold }, <Eorsd> }\"\n        );\n        s.decoration_style = DecorationStyle::Underline(s.ansi_term_style);\n        assert_eq!(\n            format!(\"{s:?}\"),\n            \"Style { ansi_term_style: Style { bold }, <Eors>, \\\n                  decoration_style: Underline(Style { bold }) }\"\n        );\n        s.ansi_term_style = ansi_term::Style::default();\n        assert_eq!(\n            format!(\"{s:?}\"),\n            \"Style { <aEors>, decoration_style: Underline(Style { bold }) }\"\n        );\n    }\n}\n"
  },
  {
    "path": "src/subcommands/diff.rs",
    "content": "use std::path::Path;\n\nuse crate::config::{self};\n\nuse crate::utils::git::retrieve_git_version;\n\nuse crate::subcommands::{SubCmdKind, SubCommand};\nuse std::ffi::OsString;\n\n/// Build `git diff` command for the files provided on the command line. Fall back to\n/// `diff` if the supplied \"files\" use process substitution.\npub fn build_diff_cmd(\n    minus_file: &Path,\n    plus_file: &Path,\n    config: &config::Config,\n) -> Result<SubCommand, i32> {\n    // suppress `dead_code` warning, values are accessed via `get_one::<PathBuf>(\"plus/minus_file\")`\n    debug_assert!(config.minus_file.as_ref().unwrap() == minus_file);\n    debug_assert!(config.plus_file.as_ref().unwrap() == plus_file);\n\n    let mut diff_args = match shell_words::split(config.diff_args.trim()) {\n        Ok(words) => words,\n        Err(err) => {\n            eprintln!(\"Failed to parse diff args: {}: {err}\", config.diff_args);\n            return Err(config.error_exit_code);\n        }\n    };\n    // Permit e.g. -@U1\n    if diff_args\n        .first()\n        .map(|arg| !arg.is_empty() && !arg.starts_with('-'))\n        .unwrap_or(false)\n    {\n        diff_args[0] = format!(\"-{}\", diff_args[0])\n    }\n\n    let via_process_substitution =\n        |f: &Path| f.starts_with(\"/proc/self/fd/\") || f.starts_with(\"/dev/fd/\");\n\n    // https://stackoverflow.com/questions/22706714/why-does-git-diff-not-work-with-process-substitution\n    // git <2.42 does not support process substitution\n    let (differ, mut diff_cmd) = match retrieve_git_version() {\n        Some(version)\n            if version >= (2, 42)\n                || !(via_process_substitution(minus_file)\n                    || via_process_substitution(plus_file)) =>\n        {\n            (\n                SubCmdKind::GitDiff,\n                vec![\"git\", \"diff\", \"--no-index\", \"--color\"],\n            )\n        }\n        _ => (\n            SubCmdKind::Diff,\n            if diff_args_set_unified_context(&diff_args) {\n                vec![\"diff\"]\n            } else {\n                vec![\"diff\", \"-U3\"]\n            },\n        ),\n    };\n\n    diff_cmd.extend(\n        diff_args\n            .iter()\n            .filter(|s| !s.is_empty())\n            .map(String::as_str),\n    );\n    diff_cmd.push(\"--\");\n    let mut diff_cmd = diff_cmd.iter().map(OsString::from).collect::<Vec<_>>();\n    diff_cmd.push(minus_file.into());\n    diff_cmd.push(plus_file.into());\n    Ok(SubCommand::new(differ, diff_cmd))\n}\n\n/// Do the user-supplied `diff` args set the unified context?\nfn diff_args_set_unified_context<I, S>(args: I) -> bool\nwhere\n    I: IntoIterator<Item = S>,\n    S: AsRef<str>,\n{\n    // This function is applied to `diff` args; not `git diff`.\n    for arg in args {\n        let arg = arg.as_ref();\n        if arg == \"-u\" || arg == \"-U\" {\n            // diff allows a space after -U (git diff does not)\n            return true;\n        }\n        if (arg.starts_with(\"-U\") || arg.starts_with(\"-u\"))\n            && arg.split_at(2).1.parse::<u32>().is_ok()\n        {\n            return true;\n        }\n    }\n    false\n}\n\n#[cfg(test)]\nmod main_tests {\n    use std::ffi::OsString;\n    use std::io::Cursor;\n\n    use super::diff_args_set_unified_context;\n\n    use rstest::rstest;\n\n    #[rstest]\n    #[case(&[\"-u\"], true)]\n    #[case(&[\"-u7\"], true)]\n    #[case(&[\"-u77\"], true)]\n    #[case(&[\"-ux\"], false)]\n    #[case(&[\"-U\"], true)]\n    #[case(&[\"-U7\"], true)]\n    #[case(&[\"-U77\"], true)]\n    #[case(&[\"-Ux\"], false)]\n    fn test_unified_diff_arg_is_detected_in_diff_args(\n        #[case] diff_args: &[&str],\n        #[case] expected: bool,\n    ) {\n        assert_eq!(diff_args_set_unified_context(diff_args), expected)\n    }\n\n    enum ExpectDiff {\n        Yes,\n        No,\n    }\n\n    #[cfg(not(target_os = \"windows\"))]\n    #[rstest]\n    // #[case(\"/dev/null\", \"/dev/null\", ExpectDiff::No)] https://github.com/dandavison/delta/pull/546#issuecomment-835852373\n    #[case(\"/etc/group\", \"/etc/passwd\", ExpectDiff::Yes)]\n    #[case(\"/dev/null\", \"/etc/passwd\", ExpectDiff::Yes)]\n    #[case(\"/etc/passwd\", \"/etc/passwd\", ExpectDiff::No)]\n    fn test_diff_real_files(\n        #[case] file_a: &str,\n        #[case] file_b: &str,\n        #[case] expect_diff: ExpectDiff,\n        #[values(vec![], vec![\"-@''\"], vec![\"-@-u\"], vec![\"-@-U99\"], vec![\"-@-U0\"])] args: Vec<\n            &str,\n        >,\n    ) {\n        let mut writer = Cursor::new(vec![]);\n        let mut runargs = vec![OsString::from(file_a), OsString::from(file_b)];\n        runargs.extend(args.iter().map(OsString::from));\n        let exit_code = crate::run_app(runargs, Some(&mut writer));\n\n        assert_eq!(\n            exit_code.unwrap(),\n            match expect_diff {\n                ExpectDiff::Yes => 1,\n                ExpectDiff::No => 0,\n            }\n        );\n        assert_eq!(\n            std::str::from_utf8(writer.get_ref()).unwrap() != \"\",\n            match expect_diff {\n                ExpectDiff::Yes => true,\n                ExpectDiff::No => false,\n            }\n        );\n    }\n}\n"
  },
  {
    "path": "src/subcommands/external.rs",
    "content": "use crate::cli::Opt;\nuse clap::CommandFactory;\nuse clap::{ArgMatches, Error};\nuse std::ffi::{OsStr, OsString};\n\nconst RG: &str = \"rg\";\nconst GIT: &str = \"git\";\npub const SUBCOMMANDS: &[&str] = &[RG, GIT];\n\n#[derive(PartialEq)]\npub enum SubCmdKind {\n    Git(Option<String>), // Some(subcommand) if a git subcommand (git show, git log) was found\n    GitDiff,\n    Diff,\n    Rg,\n    None,\n}\n\nimpl std::fmt::Display for SubCmdKind {\n    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        use SubCmdKind::*;\n        let s = match self {\n            Git(Some(arg)) => return formatter.write_fmt(format_args!(\"git {arg}\")),\n            Git(_) => \"git\",\n            GitDiff => \"git diff\",\n            Diff => \"diff\",\n            Rg => \"rg\",\n            None => \"<none>\",\n        };\n        formatter.write_str(s)\n    }\n}\n\nimpl std::fmt::Debug for SubCmdKind {\n    fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n        let s = match self {\n            SubCmdKind::Git(Some(arg)) => {\n                return formatter.write_fmt(format_args!(\"\\\"git {}\\\"\", arg.escape_debug()))\n            }\n            _ => format!(\"{self}\"),\n        };\n        formatter.write_str(\"\\\"\")?;\n        formatter.write_str(&s)?;\n        formatter.write_str(\"\\\"\")\n    }\n}\n\n#[derive(Debug)]\npub struct SubCommand {\n    pub kind: SubCmdKind,\n    pub args: Vec<OsString>,\n}\n\nimpl SubCommand {\n    pub fn new(kind: SubCmdKind, args: Vec<OsString>) -> Self {\n        Self { kind, args }\n    }\n\n    pub fn none() -> Self {\n        Self {\n            kind: SubCmdKind::None,\n            args: vec![],\n        }\n    }\n\n    pub fn is_none(&self) -> bool {\n        matches!(self.kind, SubCmdKind::None)\n    }\n}\n\n/// Find the first arg that is a registered external subcommand and return a\n/// tuple containing:\n/// - The args prior to that point (delta can understand these)\n/// - A SubCommand representing the external subcommand and its subsequent args\npub fn extract(args: &[OsString], orig_error: Error) -> (ArgMatches, SubCommand) {\n    for (subcmd_pos, arg) in args.iter().filter_map(|a| a.to_str()).enumerate() {\n        if SUBCOMMANDS.contains(&arg) {\n            match Opt::command().try_get_matches_from(&args[..subcmd_pos]) {\n                Err(ref e) if e.kind() == clap::error::ErrorKind::DisplayVersion => {\n                    unreachable!(\"version handled by caller\");\n                }\n                Err(ref e) if e.kind() == clap::error::ErrorKind::DisplayHelp => {\n                    unreachable!(\"help handled by caller\");\n                }\n                Ok(matches) => {\n                    let (subcmd_args_index, kind, subcmd) = if arg == RG {\n                        (subcmd_pos + 1, SubCmdKind::Rg, vec![RG, \"--json\"])\n                    } else if arg == GIT {\n                        let subcmd_args_index = subcmd_pos + 1;\n                        let git_subcmd = args\n                            .get(subcmd_args_index)\n                            .and_then(|cmd| OsStr::to_str(cmd))\n                            .and_then(|cmd| {\n                                if cmd.starts_with(\"-\") {\n                                    None\n                                } else {\n                                    Some(cmd.into())\n                                }\n                            });\n                        (\n                            subcmd_args_index,\n                            SubCmdKind::Git(git_subcmd),\n                            // git does not start the pager and sees that it does not write to a\n                            // terminal, so by default it will not use colors. Override it:\n                            vec![GIT, \"-c\", \"color.ui=always\"],\n                        )\n                    } else {\n                        unreachable!(\"arg must be in SUBCOMMANDS\");\n                    };\n\n                    let subcmd = subcmd\n                        .into_iter()\n                        .map(OsString::from)\n                        .chain(args[subcmd_args_index..].iter().map(OsString::from))\n                        .collect();\n\n                    return (matches, SubCommand::new(kind, subcmd));\n                }\n                Err(_) => {\n                    // part before the subcommand failed to parse, report that error\n                    #[cfg(not(test))]\n                    orig_error.exit();\n                    #[cfg(test)]\n                    panic!(\"parse error before subcommand \");\n                }\n            }\n        }\n    }\n    // no valid subcommand found, exit with the original error\n    #[cfg(not(test))]\n    orig_error.exit();\n    #[cfg(test)]\n    {\n        let _ = orig_error;\n        panic!(\"unexpected delta argument\");\n    }\n}\n\n#[cfg(test)]\nmod test {\n    use super::RG;\n    use crate::ansi::strip_ansi_codes;\n    use std::ffi::OsString;\n    use std::io::Cursor;\n\n    #[test]\n    #[ignore] // reachable with --ignored, useful with --nocapture\n    fn test_subcmd_kind_formatter() {\n        use super::SubCmdKind::*;\n        for s in [\n            Git(Some(\"foo\".into())),\n            Git(Some(\"c\\\"'${}\".into())),\n            Git(Option::None),\n            GitDiff,\n            Diff,\n            Rg,\n            None,\n        ] {\n            eprintln!(\"{0} / {0:?} \", s);\n        }\n    }\n\n    #[test]\n    #[should_panic(expected = \"unexpected delta argument\")]\n    fn just_delta_argument_error() {\n        let mut writer = Cursor::new(vec![]);\n        let runargs = [\n            \"--Invalid_Delta_Args\",\n            \"abcdefg\",\n            \"-C1\",\n            \"--Bad_diff_Args_ignored\",\n        ]\n        .iter()\n        .map(OsString::from)\n        .collect::<Vec<_>>();\n        crate::run_app(runargs, Some(&mut writer)).unwrap();\n    }\n\n    #[test]\n    #[should_panic(expected = \"parse error before subcommand\")]\n    fn subcommand_found_but_delta_argument_error() {\n        let mut writer = Cursor::new(vec![]);\n        let runargs = [\n            \"--Invalid_Delta_Args\",\n            \"git\",\n            \"show\",\n            \"-C1\",\n            \"--Bad_diff_Args_ignored\",\n        ]\n        .iter()\n        .map(OsString::from)\n        .collect::<Vec<_>>();\n        crate::run_app(runargs, Some(&mut writer)).unwrap();\n    }\n\n    #[test]\n    fn subcommand_rg() {\n        #[cfg(windows)]\n        // `resolve_binary` only works on windows\n        if grep_cli::resolve_binary(RG).is_err() {\n            return;\n        }\n\n        #[cfg(unix)]\n        // resolve `rg` binary by walking PATH\n        if std::env::var_os(\"PATH\")\n            .filter(|p| {\n                std::env::split_paths(&p)\n                    .filter(|p| !p.as_os_str().is_empty())\n                    .filter_map(|p| p.join(RG).metadata().ok())\n                    .any(|md| !md.is_dir())\n            })\n            .is_none()\n        {\n            return;\n        }\n\n        let mut writer = Cursor::new(vec![]);\n        let needle = format!(\"{}{}\", \"Y40ii4RihK6\", \"lHiK4BDsGS\").to_string();\n        // --minus-style has no effect, just for cmdline parsing\n        let runargs = [\n            \"--minus-style\",\n            \"normal\",\n            \"rg\",\n            &needle,\n            \"src/\",\n            \"-N\",\n            \"-C\",\n            \"2\",\n            \"-C0\",\n        ]\n        .iter()\n        .map(OsString::from)\n        .collect::<Vec<_>>();\n        let exit_code = crate::run_app(runargs, Some(&mut writer)).unwrap();\n        let rg_output = std::str::from_utf8(writer.get_ref()).unwrap();\n        let mut lines = rg_output.lines();\n        // eprintln!(\"{}\", rg_output);\n        assert_eq!(\n            r#\"src/utils/process.rs \"#,\n            strip_ansi_codes(lines.next().expect(\"line 1\"))\n        );\n        let line2 = format!(r#\"            .join(\"{}x\");\"#, needle);\n        assert_eq!(line2, strip_ansi_codes(lines.next().expect(\"line 2\")));\n        assert_eq!(exit_code, 0);\n    }\n\n    #[test]\n    fn subcommand_git_cat_file() {\n        let mut writer = Cursor::new(vec![]);\n\n        // only 39 of the 40 long git hash, rev-parse doesn't look up full hashes\n        let runargs = \"git rev-parse 5a4361fa037090adf729ab3f161832d969abc57\"\n            .split(' ')\n            .map(OsString::from)\n            .collect::<Vec<_>>();\n        let exit_code = crate::run_app(runargs, Some(&mut writer)).unwrap();\n        assert!(exit_code == 0 || exit_code == 128);\n\n        // ref not found, probably a shallow git clone\n        if exit_code == 128 {\n            eprintln!(\"  Commit for test not found (shallow git clone?), skipping.\");\n            return;\n        }\n\n        assert_eq!(\n            \"5a4361fa037090adf729ab3f161832d969abc576\\n\",\n            std::str::from_utf8(writer.get_ref()).unwrap()\n        );\n\n        let mut writer = Cursor::new(vec![]);\n\n        let runargs = \"git cat-file -p 5a4361fa037090adf729ab3f161832d969abc576:src/main.rs\"\n            .split(' ')\n            .map(OsString::from)\n            .collect::<Vec<_>>();\n        let exit_code = crate::run_app(runargs, Some(&mut writer)).unwrap();\n        let hello_world = std::str::from_utf8(writer.get_ref()).unwrap();\n        assert_eq!(\n            hello_world,\n            r#\"fn main() {\n    println!(\"Hello, world!\");\n}\n\"#\n        );\n        assert_eq!(exit_code, 0);\n    }\n}\n"
  },
  {
    "path": "src/subcommands/generate_completion.rs",
    "content": "use clap::CommandFactory;\nuse clap_complete::{generate, Shell};\n\nuse crate::cli;\n\npub fn generate_completion_file(shell: Shell) -> std::io::Result<()> {\n    let mut cmd = cli::Opt::command();\n    let bin_name = cmd.get_bin_name().unwrap_or(cmd.get_name()).to_string();\n    generate(shell, &mut cmd, bin_name, &mut std::io::stdout());\n    Ok(())\n}\n"
  },
  {
    "path": "src/subcommands/list_syntax_themes.rs",
    "content": "use std::io::{self, IsTerminal, Write};\n\nuse itertools::Itertools;\n\nuse crate::{options::theme::is_light_syntax_theme, utils};\n\n#[cfg(not(tarpaulin_include))]\npub fn list_syntax_themes() -> std::io::Result<()> {\n    let stdout = io::stdout();\n    let mut stdout = stdout.lock();\n    if stdout.is_terminal() {\n        _list_syntax_themes_for_humans(&mut stdout)\n    } else {\n        _list_syntax_themes_for_machines(&mut stdout)\n    }\n}\n\npub fn _list_syntax_themes_for_humans(writer: &mut dyn Write) -> std::io::Result<()> {\n    let assets = utils::bat::assets::load_highlighting_assets();\n\n    writeln!(writer, \"Light syntax themes:\")?;\n    for theme in assets.themes().filter(|t| is_light_syntax_theme(t)) {\n        writeln!(writer, \"    {theme}\")?;\n    }\n    writeln!(writer, \"\\nDark syntax themes:\")?;\n    for theme in assets.themes().filter(|t| !is_light_syntax_theme(t)) {\n        writeln!(writer, \"    {theme}\")?;\n    }\n    writeln!(\n        writer,\n        \"\\nUse delta --show-syntax-themes to demo the themes.\"\n    )?;\n    Ok(())\n}\n\npub fn _list_syntax_themes_for_machines(writer: &mut dyn Write) -> std::io::Result<()> {\n    let assets = utils::bat::assets::load_highlighting_assets();\n    for theme in assets.themes().sorted_by_key(|t| is_light_syntax_theme(t)) {\n        writeln!(\n            writer,\n            \"{}\\t{}\",\n            if is_light_syntax_theme(theme) {\n                \"light\"\n            } else {\n                \"dark\"\n            },\n            theme\n        )?;\n    }\n    Ok(())\n}\n\n#[cfg(test)]\nmod tests {\n    use std::io::{Cursor, Read, Seek};\n\n    use super::*;\n\n    #[test]\n    fn test_list_syntax_themes_for_humans() {\n        let mut writer = Cursor::new(vec![0; 512]);\n        _list_syntax_themes_for_humans(&mut writer).unwrap();\n        let mut s = String::new();\n        writer.rewind().unwrap();\n        writer.read_to_string(&mut s).unwrap();\n        assert!(s.contains(\"Light syntax themes:\\n\"));\n        assert!(s.contains(\"    GitHub\\n\"));\n        assert!(s.contains(\"Dark syntax themes:\\n\"));\n        assert!(s.contains(\"    Dracula\\n\"));\n    }\n\n    #[test]\n    fn test_list_syntax_themes_for_machines() {\n        let mut writer = Cursor::new(vec![0; 512]);\n        _list_syntax_themes_for_machines(&mut writer).unwrap();\n        let mut s = String::new();\n        writer.rewind().unwrap();\n        writer.read_to_string(&mut s).unwrap();\n        assert!(s.contains(\"light\tGitHub\\n\"));\n        assert!(s.contains(\"dark\tDracula\\n\"));\n    }\n}\n"
  },
  {
    "path": "src/subcommands/mod.rs",
    "content": "// internal subcommands:\npub mod generate_completion;\npub mod list_syntax_themes;\npub mod parse_ansi;\nmod sample_diff;\npub mod show_colors;\npub mod show_config;\npub mod show_syntax_themes;\npub mod show_themes;\n\n// start external processes, e.g. `git diff` or `rg`, output is read by delta\npub mod diff;\nmod external;\npub(crate) use external::extract;\npub(crate) use external::SubCmdKind;\npub(crate) use external::SubCommand;\npub(crate) use external::SUBCOMMANDS;\n"
  },
  {
    "path": "src/subcommands/parse_ansi.rs",
    "content": "use std::io::{self, BufRead};\n\n#[cfg(not(tarpaulin_include))]\npub fn parse_ansi() -> std::io::Result<()> {\n    use crate::ansi;\n\n    for line in io::stdin().lock().lines() {\n        println!(\n            \"{}\",\n            ansi::explain_ansi(\n                &line.unwrap_or_else(|line| panic!(\"Invalid utf-8: {:?}\", line)),\n                true\n            )\n        );\n    }\n    Ok(())\n}\n"
  },
  {
    "path": "src/subcommands/sample_diff.rs",
    "content": "pub const DIFF: &[u8] = r#\"\ncommit 7ec4627902020cccd7b3f4fbc63e1b0d6b9798cd\nAuthor: Evan You <yyx990803@gmail.com>\nDate:   Thu Feb 21 08:52:15 2019 -0500\n\n    fix: ensure generated scoped slot code is compatible with 2.5\n    \n    fix #9545\n\ndiff --git a/src/compiler/codegen/index.js b/src/compiler/codegen/index.js\nindex a64c3421..d433f756 100644\n--- a/src/compiler/codegen/index.js\n+++ b/src/compiler/codegen/index.js\n@@ -409,9 +409,9 @@ function genScopedSlots (\n     .join(',')\n \n   return `scopedSlots:_u([${generatedSlots}]${\n-    needsForceUpdate ? `,true` : ``\n+    needsForceUpdate ? `,null,true` : ``\n   }${\n-    !needsForceUpdate && needsKey ? `,false,${hash(generatedSlots)}` : ``\n+    !needsForceUpdate && needsKey ? `,null,false,${hash(generatedSlots)}` : ``\n   })`\n }\n \ndiff --git a/src/core/instance/render-helpers/resolve-scoped-slots.js b/src/core/instance/render-helpers/resolve-scoped-slots.js\nindex 6439324b..f11ca000 100644\n--- a/src/core/instance/render-helpers/resolve-scoped-slots.js\n+++ b/src/core/instance/render-helpers/resolve-scoped-slots.js\n@@ -2,15 +2,16 @@\n \n export function resolveScopedSlots (\n   fns: ScopedSlotsData, // see flow/vnode\n-  hasDynamicKeys: boolean,\n-  contentHashKey: number,\n-  res?: Object\n+  res?: Object,\n+  // the following are added in 2.6\n+  hasDynamicKeys?: boolean,\n+  contentHashKey?: number\n ): { [key: string]: Function, $stable: boolean } {\n   res = res || { $stable: !hasDynamicKeys }\n   for (let i = 0; i < fns.length; i++) {\n     const slot = fns[i]\n     if (Array.isArray(slot)) {\n-      resolveScopedSlots(slot, hasDynamicKeys, null, res)\n+      resolveScopedSlots(slot, res, hasDynamicKeys)\n     } else if (slot) {\n       // marker for reverse proxying v-slot without scope on this.$slots\n       if (slot.proxy) {\n@@ -20,7 +21,7 @@ export function resolveScopedSlots (\n     }\n   }\n   if (contentHashKey) {\n-    res.$key = contentHashKey\n+    (res: any).$key = contentHashKey\n   }\n   return res\n }\ndiff --git a/test/unit/modules/compiler/codegen.spec.js b/test/unit/modules/compiler/codegen.spec.js\nindex 98c202dd..e56b2576 100644\n--- a/test/unit/modules/compiler/codegen.spec.js\n+++ b/test/unit/modules/compiler/codegen.spec.js\n@@ -232,25 +232,25 @@ describe('codegen', () => {\n   it('generate dynamic scoped slot', () => {\n     assertCodegen(\n       '<foo><template :slot=\"foo\" slot-scope=\"bar\">{{ bar }}</template></foo>',\n-      `with(this){return _c('foo',{scopedSlots:_u([{key:foo,fn:function(bar){return [_v(_s(bar))]}}],true)})}`\n+      `with(this){return _c('foo',{scopedSlots:_u([{key:foo,fn:function(bar){return [_v(_s(bar))]}}],null,true)})}`\n     )\n   })\n \n   it('generate scoped slot with multiline v-if', () => {\n     assertCodegen(\n       '<foo><template v-if=\"\\nshow\\n\" slot-scope=\"bar\">{{ bar }}</template></foo>',\n-      `with(this){return _c('foo',{scopedSlots:_u([{key:\"default\",fn:function(bar){return (\\nshow\\n)?[_v(_s(bar))]:undefined}}],true)})}`\n+      `with(this){return _c('foo',{scopedSlots:_u([{key:\"default\",fn:function(bar){return (\\nshow\\n)?[_v(_s(bar))]:undefined}}],null,true)})}`\n     )\n     assertCodegen(\n       '<foo><div v-if=\"\\nshow\\n\" slot=\"foo\" slot-scope=\"bar\">{{ bar }}</div></foo>',\n-      `with(this){return _c(\\'foo\\',{scopedSlots:_u([{key:\"foo\",fn:function(bar){return (\\nshow\\n)?_c(\\'div\\',{},[_v(_s(bar))]):_e()}}],true)})}`\n+      `with(this){return _c(\\'foo\\',{scopedSlots:_u([{key:\"foo\",fn:function(bar){return (\\nshow\\n)?_c(\\'div\\',{},[_v(_s(bar))]):_e()}}],null,true)})}`\n     )\n   })\n \n   it('generate scoped slot with new slot syntax', () => {\n     assertCodegen(\n       '<foo><template v-if=\"show\" #default=\"bar\">{{ bar }}</template></foo>',\n-      `with(this){return _c('foo',{scopedSlots:_u([(show)?{key:\"default\",fn:function(bar){return [_v(_s(bar))]}}:null],true)})}`\n+      `with(this){return _c('foo',{scopedSlots:_u([(show)?{key:\"default\",fn:function(bar){return [_v(_s(bar))]}}:null],null,true)})}`\n     )\n   })\n \"#.as_bytes();\n"
  },
  {
    "path": "src/subcommands/show_colors.rs",
    "content": "use crate::cli;\nuse crate::color;\nuse crate::colors;\nuse crate::config;\nuse crate::delta;\nuse crate::env::DeltaEnv;\nuse crate::paint;\nuse crate::paint::BgShouldFill;\nuse crate::style;\nuse crate::utils::bat::output::{OutputType, PagingMode};\n\n#[cfg(not(tarpaulin_include))]\npub fn show_colors() -> std::io::Result<()> {\n    use crate::{delta::DiffType, utils};\n\n    let args = std::env::args_os().collect::<Vec<_>>();\n    let env = DeltaEnv::default();\n    let assets = utils::bat::assets::load_highlighting_assets();\n\n    let opt = match cli::Opt::from_args_and_git_config(args, &env, assets) {\n        (cli::Call::Delta(_), Some(opt)) => opt,\n        _ => panic!(\"non-Delta Call variant should not occur here\"),\n    };\n\n    let config = config::Config::from(opt);\n    let pagercfg = (&config).into();\n\n    let mut output_type =\n        OutputType::from_mode(&env, PagingMode::QuitIfOneScreen, None, &pagercfg).unwrap();\n    let writer = output_type.handle().unwrap();\n\n    let mut painter = paint::Painter::new(writer, &config);\n    painter.set_syntax(Some(\"a.ts\"));\n    painter.set_highlighter();\n\n    let title_style = ansi_term::Style::new().bold();\n    let mut style = style::Style {\n        is_syntax_highlighted: true,\n        ..style::Style::default()\n    };\n    for (group, color_names) in colors::color_groups() {\n        writeln!(painter.writer, \"\\n\\n{}\\n\", title_style.paint(group))?;\n        for (color_name, hex) in color_names {\n            // Two syntax-highlighted lines without background color\n            style.ansi_term_style.background = None;\n            for line in [\n                r#\"export function color(): string {{ return \"none\" }}\"#,\n                r#\"export function hex(): string {{ return \"none\" }}\"#,\n            ] {\n                painter.syntax_highlight_and_paint_line(\n                    line,\n                    paint::StyleSectionSpecifier::Style(style),\n                    delta::State::HunkZero(DiffType::Unified, None),\n                    BgShouldFill::default(),\n                )\n            }\n            // Two syntax-highlighted lines with background color\n            let color =\n                color::parse_color(color_name, config.true_color, config.git_config()).unwrap();\n            style.ansi_term_style.background = Some(color);\n            for line in [\n                &format!(r#\"export function color(): string {{ return \"{color_name}\" }}\"#),\n                &format!(r#\"export function hex(): string {{ return \"{hex}\" }}\"#),\n            ] {\n                painter.syntax_highlight_and_paint_line(\n                    line,\n                    paint::StyleSectionSpecifier::Style(style),\n                    delta::State::HunkZero(DiffType::Unified, None),\n                    BgShouldFill::default(),\n                )\n            }\n            painter.emit()?;\n        }\n    }\n    Ok(())\n}\n"
  },
  {
    "path": "src/subcommands/show_config.rs",
    "content": "use std::io::Write;\n\nuse itertools::Itertools;\n\nuse crate::cli;\nuse crate::config;\nuse crate::features::side_by_side::{Left, Right};\nuse crate::minusplus::*;\nuse crate::paint::BgFillMethod;\nuse crate::style;\nuse crate::utils::bat::output::PagingMode;\n\npub fn show_config(config: &config::Config, writer: &mut dyn Write) -> std::io::Result<()> {\n    // styles first\n    writeln!(\n        writer,\n        \"    commit-style                  = {commit_style}\n    file-style                    = {file_style}\n    hunk-header-style             = {hunk_header_style}\n    minus-style                   = {minus_style}\n    minus-non-emph-style          = {minus_non_emph_style}\n    minus-emph-style              = {minus_emph_style}\n    minus-empty-line-marker-style = {minus_empty_line_marker_style}\n    zero-style                    = {zero_style}\n    plus-style                    = {plus_style}\n    plus-non-emph-style           = {plus_non_emph_style}\n    plus-emph-style               = {plus_emph_style}\n    plus-empty-line-marker-style  = {plus_empty_line_marker_style}\n    grep-file-style               = {grep_file_style}\n    grep-line-number-style        = {grep_line_number_style}\n    whitespace-error-style        = {whitespace_error_style}\n    blame-palette                 = {blame_palette}\",\n        blame_palette = config\n            .blame_palette\n            .iter()\n            .map(|s| style::paint_color_string(s, config.true_color, config.git_config()))\n            .join(\" \"),\n        commit_style = config.commit_style.to_painted_string(),\n        file_style = config.file_style.to_painted_string(),\n        hunk_header_style = config.hunk_header_style.to_painted_string(),\n        minus_emph_style = config.minus_emph_style.to_painted_string(),\n        minus_empty_line_marker_style = config.minus_empty_line_marker_style.to_painted_string(),\n        minus_non_emph_style = config.minus_non_emph_style.to_painted_string(),\n        minus_style = config.minus_style.to_painted_string(),\n        plus_emph_style = config.plus_emph_style.to_painted_string(),\n        plus_empty_line_marker_style = config.plus_empty_line_marker_style.to_painted_string(),\n        plus_non_emph_style = config.plus_non_emph_style.to_painted_string(),\n        plus_style = config.plus_style.to_painted_string(),\n        grep_file_style = config.grep_file_style.to_painted_string(),\n        grep_line_number_style = config.grep_line_number_style.to_painted_string(),\n        whitespace_error_style = config.whitespace_error_style.to_painted_string(),\n        zero_style = config.zero_style.to_painted_string(),\n    )?;\n    // Everything else\n    writeln!(\n        writer,\n        \"    true-color                    = {true_color}\n    file-added-label              = {file_added_label}\n    file-modified-label           = {file_modified_label}\n    file-removed-label            = {file_removed_label}\n    file-renamed-label            = {file_renamed_label}\n    right-arrow                   = {right_arrow}\",\n        true_color = config.true_color,\n        file_added_label = format_option_value(&config.file_added_label),\n        file_modified_label = format_option_value(&config.file_modified_label),\n        file_removed_label = format_option_value(&config.file_removed_label),\n        file_renamed_label = format_option_value(&config.file_renamed_label),\n        right_arrow = format_option_value(&config.right_arrow),\n    )?;\n    writeln!(\n        writer,\n        \"    hyperlinks                    = {hyperlinks}\",\n        hyperlinks = config.hyperlinks\n    )?;\n    if config.hyperlinks {\n        writeln!(\n            writer,\n            \"    hyperlinks-file-link-format   = {hyperlinks_file_link_format}\",\n            hyperlinks_file_link_format = format_option_value(&config.hyperlinks_file_link_format),\n        )?\n    }\n    writeln!(\n        writer,\n        \"    inspect-raw-lines             = {inspect_raw_lines}\n    keep-plus-minus-markers       = {keep_plus_minus_markers}\",\n        inspect_raw_lines = match config.inspect_raw_lines {\n            cli::InspectRawLines::True => \"true\",\n            cli::InspectRawLines::False => \"false\",\n        },\n        keep_plus_minus_markers = config.keep_plus_minus_markers,\n    )?;\n    writeln!(\n        writer,\n        \"    line-numbers                  = {line_numbers}\",\n        line_numbers = config.line_numbers\n    )?;\n    if config.line_numbers {\n        writeln!(\n            writer,\n            \"    line-numbers-minus-style      = {line_numbers_minus_style}\n    line-numbers-zero-style       = {line_numbers_zero_style}\n    line-numbers-plus-style       = {line_numbers_plus_style}\n    line-numbers-left-style       = {line_numbers_left_style}\n    line-numbers-right-style      = {line_numbers_right_style}\n    line-numbers-left-format      = {line_numbers_left_format}\n    line-numbers-right-format     = {line_numbers_right_format}\",\n            line_numbers_minus_style =\n                config.line_numbers_style_minusplus[Minus].to_painted_string(),\n            line_numbers_zero_style = config.line_numbers_zero_style.to_painted_string(),\n            line_numbers_plus_style = config.line_numbers_style_minusplus[Plus].to_painted_string(),\n            line_numbers_left_style = config.line_numbers_style_leftright[Left].to_painted_string(),\n            line_numbers_right_style =\n                config.line_numbers_style_leftright[Right].to_painted_string(),\n            line_numbers_left_format = format_option_value(&config.line_numbers_format[Left]),\n            line_numbers_right_format = format_option_value(&config.line_numbers_format[Right]),\n        )?\n    }\n    writeln!(\n        writer,\n        \"    max-line-distance             = {max_line_distance}\n    max-line-length               = {max_line_length}\n    diff-stat-align-width         = {diff_stat_align_width}\n    line-fill-method              = {line_fill_method}\n    navigate                      = {navigate}\n    navigate-regex                = {navigate_regex}\n    pager                         = {pager}\n    paging                        = {paging_mode}\n    side-by-side                  = {side_by_side}\n    syntax-theme                  = {syntax_theme}\n    width                         = {width}\n    tabs                          = {tab_width}\n    word-diff-regex               = {tokenization_regex}\",\n        diff_stat_align_width = config.diff_stat_align_width,\n        max_line_distance = config.max_line_distance,\n        max_line_length = config.max_line_length,\n        line_fill_method = match config.line_fill_method {\n            BgFillMethod::TryAnsiSequence => \"ansi\",\n            BgFillMethod::Spaces => \"spaces\",\n        },\n        navigate = config.navigate,\n        navigate_regex = match &config.navigate_regex {\n            None => \"\".to_string(),\n            Some(s) => format_option_value(s),\n        },\n        pager = config.pager.clone().unwrap_or_else(|| \"none\".to_string()),\n        paging_mode = match config.paging_mode {\n            PagingMode::Always => \"always\",\n            PagingMode::Never => \"never\",\n            PagingMode::QuitIfOneScreen => \"auto\",\n            PagingMode::Capture => unreachable!(\"capture can not be set\"),\n        },\n        side_by_side = config.side_by_side,\n        syntax_theme = config\n            .syntax_theme\n            .clone()\n            .map(|t| t.name.unwrap_or_else(|| \"none\".to_string()))\n            .unwrap_or_else(|| \"none\".to_string()),\n        width = match config.decorations_width {\n            cli::Width::Fixed(width) => width.to_string(),\n            cli::Width::Variable => \"variable\".to_string(),\n        },\n        tab_width = config.tab_cfg.width(),\n        tokenization_regex = format_option_value(config.tokenization_regex.to_string()),\n    )?;\n    Ok(())\n}\n\n// Heuristics determining whether to quote string option values when printing values intended for\n// git config.\nfn format_option_value<S>(s: S) -> String\nwhere\n    S: AsRef<str>,\n{\n    let s = s.as_ref();\n    if s.ends_with(' ')\n        || s.starts_with(' ')\n        || s.contains(&['\\\\', '{', '}', ':'][..])\n        || s.is_empty()\n    {\n        format!(\"'{s}'\")\n    } else {\n        s.to_string()\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use crate::tests::integration_test_utils;\n\n    use super::*;\n    use crate::ansi;\n    use std::io::{Cursor, Read, Seek};\n\n    #[test]\n    fn test_show_config() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let mut writer = Cursor::new(vec![0; 1024]);\n        show_config(&config, &mut writer).unwrap();\n        let mut s = String::new();\n        writer.rewind().unwrap();\n        writer.read_to_string(&mut s).unwrap();\n        let s = ansi::strip_ansi_codes(&s);\n        assert!(s.contains(\"    commit-style                  = raw\\n\"));\n        assert!(s.contains(r\"    word-diff-regex               = '\\w+'\"));\n    }\n}\n"
  },
  {
    "path": "src/subcommands/show_syntax_themes.rs",
    "content": "use crate::cli;\nuse crate::color::{ColorMode, ColorMode::*};\nuse crate::config;\nuse crate::delta;\nuse crate::env::DeltaEnv;\nuse crate::options::theme::color_mode_from_syntax_theme;\nuse crate::utils;\nuse crate::utils::bat::output::{OutputType, PagingMode};\nuse clap::Parser;\nuse std::io::{self, ErrorKind, IsTerminal, Read, Write};\n\n#[cfg(not(tarpaulin_include))]\npub fn show_syntax_themes() -> std::io::Result<()> {\n    let env = DeltaEnv::default();\n    let assets = utils::bat::assets::load_highlighting_assets();\n    let mut output_type = OutputType::from_mode(\n        &env,\n        PagingMode::QuitIfOneScreen,\n        None,\n        &config::Config::from(cli::Opt::parse()).into(),\n    )\n    .unwrap();\n    let mut writer = output_type.handle().unwrap();\n\n    let stdin_data = if !io::stdin().is_terminal() {\n        let mut buf = Vec::new();\n        io::stdin().lock().read_to_end(&mut buf)?;\n        if !buf.is_empty() {\n            Some(buf)\n        } else {\n            None\n        }\n    } else {\n        None\n    };\n\n    let make_opt = || {\n        let mut opt = cli::Opt::parse();\n        opt.computed.syntax_set = assets.get_syntax_set().unwrap().clone();\n        opt\n    };\n    let opt = make_opt();\n\n    if !(opt.dark || opt.light) {\n        _show_syntax_themes(opt, Dark, &mut writer, stdin_data.as_ref())?;\n        _show_syntax_themes(make_opt(), Light, &mut writer, stdin_data.as_ref())?;\n    } else if opt.light {\n        _show_syntax_themes(opt, Light, &mut writer, stdin_data.as_ref())?;\n    } else {\n        _show_syntax_themes(opt, Dark, &mut writer, stdin_data.as_ref())?\n    };\n    Ok(())\n}\n\nfn _show_syntax_themes(\n    mut opt: cli::Opt,\n    color_mode: ColorMode,\n    writer: &mut dyn Write,\n    stdin: Option<&Vec<u8>>,\n) -> std::io::Result<()> {\n    use bytelines::ByteLines;\n    use std::io::BufReader;\n    let input = match stdin {\n        Some(stdin_data) => &stdin_data[..],\n        None => {\n            b\"\\\ndiff --git a/example.rs b/example.rs\nindex f38589a..0f1bb83 100644\n--- a/example.rs\n+++ b/example.rs\n@@ -1,5 +1,5 @@\n-// Output the square of a number.\n-fn print_square(num: f64) {\n-    let result = f64::powf(num, 2.0);\n-    println!(\\\"The square of {:.2} is {:.2}.\\\", num, result);\n+// Output the cube of a number.\n+fn print_cube(num: f64) {\n+    let result = f64::powf(num, 3.0);\n+    println!(\\\"The cube of {:.2} is {:.2}.\\\", num, result);\n\"\n        }\n    };\n\n    opt.computed.color_mode = color_mode;\n    let mut config = config::Config::from(opt);\n    let title_style = ansi_term::Style::new().bold();\n    let assets = utils::bat::assets::load_highlighting_assets();\n\n    for syntax_theme in assets\n        .themes()\n        .filter(|t| color_mode_from_syntax_theme(t) == color_mode)\n    {\n        writeln!(\n            writer,\n            \"\\n\\nSyntax theme: {}\\n\",\n            title_style.paint(syntax_theme)\n        )?;\n        config.syntax_theme = Some(assets.get_theme(syntax_theme).clone());\n        if let Err(error) =\n            delta::delta(ByteLines::new(BufReader::new(&input[0..])), writer, &config)\n        {\n            match error.kind() {\n                ErrorKind::BrokenPipe => std::process::exit(0),\n                _ => eprintln!(\"{error}\"),\n            }\n        };\n    }\n    Ok(())\n}\n\n#[cfg(test)]\nmod tests {\n    use std::io::{Cursor, Seek};\n\n    use super::*;\n    use crate::ansi;\n    use crate::tests::integration_test_utils;\n\n    #[test]\n    #[ignore] // Not working (timing out) when run by tarpaulin, presumably due to stdin detection.\n    fn test_show_syntax_themes() {\n        let opt = integration_test_utils::make_options_from_args(&[]);\n\n        let mut writer = Cursor::new(vec![0; 1024]);\n        _show_syntax_themes(opt, Light, &mut writer, None).unwrap();\n        let mut s = String::new();\n        writer.rewind().unwrap();\n        writer.read_to_string(&mut s).unwrap();\n        let s = ansi::strip_ansi_codes(&s);\n        assert!(s.contains(\"\\nSyntax theme: gruvbox-light\\n\"));\n        println!(\"{s}\");\n        assert!(s.contains(\"\\nfn print_cube(num: f64) {\\n\"));\n    }\n}\n"
  },
  {
    "path": "src/subcommands/show_themes.rs",
    "content": "use std::io::{self, ErrorKind, IsTerminal, Read};\n\nuse crate::cli;\nuse crate::color::ColorMode;\nuse crate::config;\nuse crate::delta;\nuse crate::env::DeltaEnv;\nuse crate::git_config;\nuse crate::options::get::get_themes;\nuse crate::utils::bat::output::{OutputType, PagingMode};\n\npub fn show_themes(dark: bool, light: bool, color_mode: ColorMode) -> std::io::Result<()> {\n    use std::io::BufReader;\n\n    use bytelines::ByteLines;\n\n    use super::sample_diff::DIFF;\n\n    let env = DeltaEnv::default();\n    let themes = get_themes(git_config::GitConfig::try_create(&env));\n    if themes.is_empty() {\n        return Err(std::io::Error::new(\n            ErrorKind::NotFound,\n            \"No themes found. Please see https://dandavison.github.io/delta/custom-themes.html.\",\n        ));\n    }\n\n    let mut input = DIFF.to_vec();\n\n    if !io::stdin().is_terminal() {\n        let mut buf = Vec::new();\n        io::stdin().lock().read_to_end(&mut buf)?;\n        if !buf.is_empty() {\n            input = buf;\n        }\n    };\n\n    let git_config = git_config::GitConfig::try_create(&env);\n    let opt = cli::Opt::from_iter_and_git_config(\n        &env,\n        &[\"delta\", \"--navigate\", \"--show-themes\"],\n        git_config,\n    );\n    let mut output_type = OutputType::from_mode(\n        &env,\n        PagingMode::Always,\n        None,\n        &config::Config::from(opt).into(),\n    )\n    .unwrap();\n    let title_style = ansi_term::Style::new().bold();\n    let writer = output_type.handle().unwrap();\n\n    for theme in &themes {\n        let git_config = git_config::GitConfig::try_create(&env);\n        let opt =\n            cli::Opt::from_iter_and_git_config(&env, &[\"delta\", \"--features\", theme], git_config);\n        let is_dark_theme = opt.dark;\n        let is_light_theme = opt.light;\n        let config = config::Config::from(opt);\n\n        if (color_mode == ColorMode::Dark && is_dark_theme)\n            || (color_mode == ColorMode::Light && is_light_theme)\n            || (dark && light)\n        {\n            writeln!(writer, \"\\n\\nTheme: {}\\n\", title_style.paint(theme))?;\n\n            if let Err(error) =\n                delta::delta(ByteLines::new(BufReader::new(&input[0..])), writer, &config)\n            {\n                match error.kind() {\n                    ErrorKind::BrokenPipe => std::process::exit(0),\n                    _ => eprintln!(\"{error}\"),\n                }\n            }\n        }\n    }\n\n    Ok(())\n}\n"
  },
  {
    "path": "src/tests/ansi_test_utils.rs",
    "content": "#[cfg(test)]\n#[allow(clippy::module_inception)]\npub mod ansi_test_utils {\n    use ansi_term;\n\n    use crate::ansi;\n    use crate::config::Config;\n    use crate::delta::State;\n    use crate::paint;\n    use crate::style::Style;\n\n    // Check if `output[line_number]` start with `expected_prefix`\n    // Then check if the first style in the line is the `expected_style`\n    pub fn assert_line_has_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n    ) {\n        assert!(_line_has_style(\n            output,\n            line_number,\n            expected_prefix,\n            expected_style,\n            config,\n            false,\n        ));\n    }\n\n    // Check if `output[line_number]` start with `expected_prefix`\n    // Then check if it contains the `expected_substring` with the corresponding `expected_style`\n    // If the line contains multiples times the `expected_style`, will only compare with the first\n    // item found\n    pub fn assert_line_contain_substring_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_substring: &str,\n        expected_style: &str,\n        config: &Config,\n    ) {\n        assert_eq!(\n            expected_substring,\n            _line_get_substring_matching_style(\n                output,\n                line_number,\n                expected_prefix,\n                expected_style,\n                config,\n            )\n            .unwrap()\n        );\n    }\n\n    // Check if `output[line_number]` start with `expected_prefix`\n    // Then check if the line does not contains the `expected_style`\n    pub fn assert_line_does_not_contain_substring_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n    ) {\n        assert!(_line_get_substring_matching_style(\n            output,\n            line_number,\n            expected_prefix,\n            expected_style,\n            config,\n        )\n        .is_none());\n    }\n\n    pub fn assert_line_does_not_have_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n    ) {\n        assert!(!_line_has_style(\n            output,\n            line_number,\n            expected_prefix,\n            expected_style,\n            config,\n            false,\n        ));\n    }\n\n    pub fn assert_line_has_4_bit_color_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n    ) {\n        assert!(_line_has_style(\n            output,\n            line_number,\n            expected_prefix,\n            expected_style,\n            config,\n            true,\n        ));\n    }\n\n    pub fn assert_line_has_no_color(output: &str, line_number: usize, expected_prefix: &str) {\n        let line = output.lines().nth(line_number).unwrap();\n        let stripped_line = ansi::strip_ansi_codes(line);\n        assert!(stripped_line.starts_with(expected_prefix));\n        assert_eq!(line, stripped_line);\n    }\n\n    /// Assert that the specified line number of output (a) has, after stripping ANSI codes, a\n    /// substring starting at `substring_begin` equal to `expected_substring` and (b) in its raw\n    /// form contains a version of that substring syntax-highlighted according to\n    /// `language_extension`.\n    pub fn assert_line_has_syntax_highlighted_substring(\n        output: &str,\n        line_number: usize,\n        substring_begin: usize,\n        expected_substring: &str,\n        filename_for_highlighting: &str,\n        state: State,\n        config: &Config,\n    ) {\n        assert!(\n            filename_for_highlighting.contains('.'),\n            \"expecting filename, not just a file extension\"\n        );\n        let line = output.lines().nth(line_number).unwrap();\n        let substring_end = substring_begin + expected_substring.len();\n        let substring = &ansi::strip_ansi_codes(line)[substring_begin..substring_end];\n        assert_eq!(substring, expected_substring);\n        let painted_substring = paint_line(substring, filename_for_highlighting, state, config);\n        // remove trailing newline appended by paint::paint_lines.\n        assert!(line.contains(painted_substring.trim_end()));\n    }\n\n    pub fn assert_has_color_other_than_plus_color(string: &str, config: &Config) {\n        let (string_without_any_color, string_with_plus_color_only) =\n            get_color_variants(string, config);\n        assert_ne!(string, string_without_any_color);\n        assert_ne!(string, string_with_plus_color_only);\n    }\n\n    pub fn assert_has_plus_color_only(string: &str, config: &Config) {\n        let (string_without_any_color, string_with_plus_color_only) =\n            get_color_variants(string, config);\n        assert_ne!(string, string_without_any_color);\n        assert_eq!(string, string_with_plus_color_only);\n    }\n\n    pub fn get_color_variants(string: &str, config: &Config) -> (String, String) {\n        let string_without_any_color = ansi::strip_ansi_codes(string);\n        let string_with_plus_color_only = config\n            .plus_style\n            .ansi_term_style\n            .paint(&string_without_any_color);\n        (\n            string_without_any_color.to_string(),\n            string_with_plus_color_only.to_string(),\n        )\n    }\n\n    pub fn paint_line(\n        line: &str,\n        filename_for_highlighting: &str,\n        state: State,\n        config: &Config,\n    ) -> String {\n        let mut output_buffer = String::new();\n        let mut unused_writer = Vec::<u8>::new();\n        let mut painter = paint::Painter::new(&mut unused_writer, config);\n        let syntax_highlighted_style = Style {\n            is_syntax_highlighted: true,\n            ..Style::new()\n        };\n        painter.set_syntax(Some(filename_for_highlighting));\n        painter.set_highlighter();\n        let lines = vec![(line.to_string(), state)];\n        let syntax_style_sections = paint::get_syntax_style_sections_for_lines(\n            &lines,\n            painter.highlighter.as_mut(),\n            config,\n        );\n        let diff_style_sections = vec![vec![(syntax_highlighted_style, lines[0].0.as_str())]];\n        paint::Painter::paint_lines(\n            &lines,\n            &syntax_style_sections,\n            &diff_style_sections,\n            &[false],\n            &mut output_buffer,\n            config,\n            &mut None,\n            None,\n            paint::BgShouldFill::default(),\n        );\n        output_buffer\n    }\n\n    fn _line_extract<'a>(output: &'a str, line_number: usize, expected_prefix: &str) -> &'a str {\n        let line = output.lines().nth(line_number).unwrap();\n        assert!(ansi::strip_ansi_codes(line).starts_with(expected_prefix));\n        line\n    }\n\n    fn _line_get_substring_matching_style<'a>(\n        output: &'a str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n    ) -> Option<&'a str> {\n        let line = _line_extract(output, line_number, expected_prefix);\n        let style = Style::from_str(\n            expected_style,\n            None,\n            None,\n            config.true_color,\n            config.git_config.as_ref(),\n        );\n        style.get_matching_substring(line)\n    }\n\n    fn _line_has_style(\n        output: &str,\n        line_number: usize,\n        expected_prefix: &str,\n        expected_style: &str,\n        config: &Config,\n        _4_bit_color: bool,\n    ) -> bool {\n        let line = _line_extract(output, line_number, expected_prefix);\n        let mut style = Style::from_str(\n            expected_style,\n            None,\n            None,\n            config.true_color,\n            config.git_config(),\n        );\n        if _4_bit_color {\n            style.ansi_term_style.foreground = style\n                .ansi_term_style\n                .foreground\n                .map(ansi_term_fixed_foreground_to_4_bit_color);\n        }\n        style.is_applied_to(line)\n    }\n\n    fn ansi_term_fixed_foreground_to_4_bit_color(color: ansi_term::Color) -> ansi_term::Color {\n        match color {\n            ansi_term::Color::Fixed(30) => ansi_term::Color::Black,\n            ansi_term::Color::Fixed(31) => ansi_term::Color::Red,\n            ansi_term::Color::Fixed(32) => ansi_term::Color::Green,\n            ansi_term::Color::Fixed(33) => ansi_term::Color::Yellow,\n            ansi_term::Color::Fixed(34) => ansi_term::Color::Blue,\n            ansi_term::Color::Fixed(35) => ansi_term::Color::Purple,\n            ansi_term::Color::Fixed(36) => ansi_term::Color::Cyan,\n            ansi_term::Color::Fixed(37) => ansi_term::Color::White,\n            color => panic!(\n                \"Invalid 4-bit color: {:?}. \\\n                 (Add bright color entries to this map if needed for tests.\",\n                color\n            ),\n        }\n    }\n}\n"
  },
  {
    "path": "src/tests/integration_test_utils.rs",
    "content": "#![cfg(test)]\n\nuse std::borrow::Cow;\nuse std::fs::File;\nuse std::io::{BufReader, Write};\nuse std::path::Path;\n\nuse bytelines::ByteLines;\nuse itertools::Itertools;\n\nuse crate::ansi;\nuse crate::cli;\nuse crate::config;\nuse crate::delta::delta;\nuse crate::env::DeltaEnv;\nuse crate::git_config::GitConfig;\nuse crate::tests::test_utils;\nuse crate::utils::process::tests::FakeParentArgs;\n\npub fn make_options_from_args_and_git_config(\n    args: &[&str],\n    git_config_contents: Option<&[u8]>,\n    git_config_path: Option<&str>,\n) -> cli::Opt {\n    _make_options_from_args_and_git_config(\n        DeltaEnv::default(),\n        args,\n        git_config_contents,\n        git_config_path,\n        false,\n    )\n}\n\npub fn make_options_from_args_and_git_config_with_custom_env(\n    env: DeltaEnv,\n    args: &[&str],\n    git_config_contents: Option<&[u8]>,\n    git_config_path: Option<&str>,\n) -> cli::Opt {\n    _make_options_from_args_and_git_config(env, args, git_config_contents, git_config_path, false)\n}\n\npub fn make_options_from_args_and_git_config_honoring_env_var_with_custom_env(\n    env: DeltaEnv,\n    args: &[&str],\n    git_config_contents: Option<&[u8]>,\n    git_config_path: Option<&str>,\n) -> cli::Opt {\n    _make_options_from_args_and_git_config(env, args, git_config_contents, git_config_path, true)\n}\n\nfn _make_options_from_args_and_git_config(\n    env: DeltaEnv,\n    args: &[&str],\n    git_config_contents: Option<&[u8]>,\n    git_config_path: Option<&str>,\n    honor_env_var: bool,\n) -> cli::Opt {\n    let mut args: Vec<&str> = itertools::chain(&[\"/dev/null\", \"/dev/null\"], args)\n        .copied()\n        .collect();\n    let git_config = match (git_config_contents, git_config_path) {\n        (Some(contents), Some(path)) => Some(make_git_config(&env, contents, path, honor_env_var)),\n        _ => {\n            args.push(\"--no-gitconfig\");\n            None\n        }\n    };\n    cli::Opt::from_iter_and_git_config(&env, args, git_config)\n}\n\npub fn make_options_from_args(args: &[&str]) -> cli::Opt {\n    make_options_from_args_and_git_config(args, None, None)\n}\n\n#[allow(dead_code)]\npub fn make_config_from_args_and_git_config(\n    args: &[&str],\n    git_config_contents: Option<&[u8]>,\n    git_config_path: Option<&str>,\n) -> config::Config {\n    config::Config::from(make_options_from_args_and_git_config(\n        args,\n        git_config_contents,\n        git_config_path,\n    ))\n}\n\npub fn make_config_from_args(args: &[&str]) -> config::Config {\n    config::Config::from(make_options_from_args(args))\n}\n\npub fn make_git_config(\n    env: &DeltaEnv,\n    contents: &[u8],\n    path: &str,\n    honor_env_var: bool,\n) -> GitConfig {\n    let path = Path::new(path);\n    let mut file = File::create(path).unwrap();\n    file.write_all(contents).unwrap();\n    GitConfig::from_path(env, path, honor_env_var)\n}\n\npub fn get_line_of_code_from_delta(\n    input: &str,\n    line_number: usize,\n    expected_text: &str,\n    config: &config::Config,\n) -> String {\n    let output = run_delta(input, config);\n    let line_of_code = output.lines().nth(line_number).unwrap();\n    assert!(ansi::strip_ansi_codes(line_of_code) == expected_text);\n    line_of_code.to_string()\n}\n\n// Given an `expected` block as a raw string like: `r#\"\n//     #indent_mark [optional]\n//     line1\"#;`  // line 2 etc.\n// ignore the first newline and compare the following `lines()` to those produced\n// by `have`, `skip`-ping the first few. The leading spaces of the first line\n// to indicate the last line in the list). The leading spaces of the first line\n// are stripped from every following line (and verified), unless the first line\n// marks the indentation level with `#indent_mark`.\npub fn assert_lines_match_after_skip(skip: usize, expected: &str, have: &str) {\n    let mut exp = expected.lines().peekable();\n    let mut line1 = exp.next().unwrap();\n    let allow_partial = line1 == \"#partial\";\n    assert!(\n        allow_partial || line1.is_empty(),\n        \"first line must be empty or \\\"#partial\\\"\"\n    );\n    line1 = exp.peek().unwrap();\n    let indentation = line1.find(|c| c != ' ').unwrap_or(0);\n    let ignore_indent = &line1[indentation..] == \"#indent_mark\";\n    if ignore_indent {\n        let _indent_mark = exp.next();\n    }\n\n    let mut it = have.lines().skip(skip);\n\n    for (i, expected) in exp.enumerate() {\n        if !ignore_indent {\n            let next_indentation = expected.find(|c| c != ' ').unwrap_or(0);\n            assert!(\n                indentation == next_indentation,\n                \"The expected block has mixed indentation (use #indent_mark if that is on purpose)\"\n            );\n        }\n        assert_eq!(\n            &expected[indentation..],\n            it.next().unwrap(),\n            \"on line {} of input:\\n{}\",\n            i + 1,\n            delineated_string(have),\n        );\n    }\n    if !allow_partial {\n        assert_eq!(it.next(), None, \"more input than expected\");\n    }\n}\n\npub fn assert_lines_match(expected: &str, have: &str) {\n    assert_lines_match_after_skip(0, expected, have)\n}\n\npub fn delineated_string(txt: &str) -> String {\n    let top = \"▼\".repeat(100);\n    let btm = \"▲\".repeat(100);\n    let nl = \"\\n\";\n    top + nl + txt + nl + &btm\n}\n\npub struct DeltaTest<'a> {\n    config: Cow<'a, config::Config>,\n    calling_process: Option<String>,\n    explain_ansi_: bool,\n}\n\nimpl<'a> DeltaTest<'a> {\n    pub fn with_args(args: &[&str]) -> Self {\n        Self {\n            config: Cow::Owned(make_config_from_args(args)),\n            calling_process: None,\n            explain_ansi_: false,\n        }\n    }\n\n    pub fn with_config(config: &'a config::Config) -> Self {\n        Self {\n            config: Cow::Borrowed(config),\n            calling_process: None,\n            explain_ansi_: false,\n        }\n    }\n\n    pub fn set_config<F>(mut self, f: F) -> Self\n    where\n        F: Fn(&mut config::Config),\n    {\n        let mut owned_config = self.config.into_owned();\n        f(&mut owned_config);\n        self.config = Cow::Owned(owned_config);\n        self\n    }\n\n    pub fn with_calling_process(mut self, command: &str) -> Self {\n        self.calling_process = Some(command.to_string());\n        self\n    }\n\n    pub fn explain_ansi(mut self) -> Self {\n        self.explain_ansi_ = true;\n        self\n    }\n\n    pub fn with_input(&self, input: &str) -> DeltaTestOutput {\n        let _args = FakeParentArgs::for_scope(self.calling_process.as_deref().unwrap_or(\"\"));\n        let raw = run_delta(input, &self.config);\n        let cooked = if self.explain_ansi_ {\n            ansi::explain_ansi(&raw, false)\n        } else {\n            ansi::strip_ansi_codes(&raw)\n        };\n\n        DeltaTestOutput {\n            raw_output: raw,\n            output: cooked,\n        }\n    }\n}\n\npub struct DeltaTestOutput {\n    pub raw_output: String,\n    pub output: String,\n}\n\nimpl DeltaTestOutput {\n    /// Print output, either without ANSI escape sequences or, if explain_ansi() has been called,\n    /// with ASCII explanation of ANSI escape sequences.\n    #[allow(unused)]\n    pub fn inspect(self) -> Self {\n        eprintln!(\"{}\", delineated_string(&self.output));\n        self\n    }\n\n    /// Print raw output, with any ANSI escape sequences.\n    #[allow(unused)]\n    pub fn inspect_raw(self) -> Self {\n        eprintln!(\"{}\", delineated_string(&self.raw_output));\n        self\n    }\n\n    pub fn expect_after_skip(self, skip: usize, expected: &str) -> Self {\n        assert_lines_match_after_skip(skip, expected, &self.output);\n        self\n    }\n\n    pub fn expect(self, expected: &str) -> Self {\n        self.expect_after_skip(0, expected)\n    }\n\n    pub fn expect_after_header(self, expected: &str) -> Self {\n        self.expect_after_skip(crate::config::HEADER_LEN, expected)\n    }\n\n    pub fn skip_header(self) -> String {\n        self.output.lines().skip(config::HEADER_LEN).join(\"\\n\")\n    }\n\n    pub fn expect_contains(self, expected: &str) -> Self {\n        assert!(\n            self.output.contains(expected),\n            \"Output does not contain \\\"{}\\\":\\n{}\\n\",\n            expected,\n            delineated_string(&self.output)\n        );\n        self\n    }\n\n    pub fn expect_raw_contains(self, expected: &str) -> Self {\n        assert!(\n            self.raw_output.contains(expected),\n            \"Raw output does not contain \\\"{}\\\":\\n{}\\n\",\n            expected,\n            delineated_string(&self.raw_output)\n        );\n        self\n    }\n\n    pub fn expect_contains_once(self, expected: &str) -> Self {\n        assert!(\n            test_utils::contains_once(&self.output, expected),\n            \"Output does not contain \\\"{}\\\" exactly once:\\n{}\\n\",\n            expected,\n            delineated_string(&self.output)\n        );\n        self\n    }\n}\n\npub fn run_delta(input: &str, config: &config::Config) -> String {\n    let mut writer: Vec<u8> = Vec::new();\n\n    delta(\n        ByteLines::new(BufReader::new(input.as_bytes())),\n        &mut writer,\n        config,\n    )\n    .unwrap();\n    String::from_utf8(writer).unwrap()\n}\n\npub mod tests {\n    use super::*;\n\n    #[test]\n    fn test_lines_match_ok() {\n        let expected = r#\"\n        one\n        two\n        three\"#;\n        assert_lines_match(expected, \"one\\ntwo\\nthree\");\n\n        let expected = r#\"\n        #indent_mark\n        one\n          2\n        three\"#;\n        assert_lines_match(expected, \"one\\n  2\\nthree\");\n\n        let expected = r#\"\n            #indent_mark\n             1 \n              2  \n               3\"#;\n        assert_lines_match(expected, \" 1 \\n  2  \\n   3\");\n\n        let expected = r#\"\n        #indent_mark\n         1 \nignored!  2  \n           3\"#;\n        assert_lines_match(expected, \" 1 \\n  2  \\n   3\");\n        let expected = \"\\none\\ntwo\\nthree\";\n        assert_lines_match(expected, \"one\\ntwo\\nthree\");\n    }\n\n    #[test]\n    #[should_panic]\n    fn test_lines_match_no_nl() {\n        let expected = r#\"bad\n        lines\"#;\n        assert_lines_match(expected, \"bad\\nlines\");\n    }\n\n    #[test]\n    #[should_panic]\n    fn test_lines_match_iter_not_consumed() {\n        let expected = r#\"\n        one\n        two\n        three\"#;\n        assert_lines_match(expected, \"one\\ntwo\\nthree\\nFOUR\");\n    }\n\n    #[test]\n    #[should_panic]\n    fn test_lines_match_no_indent_mark_1() {\n        let expected = r#\"\n        ok\n          wrong_indent\n        \"#;\n        assert_lines_match(expected, \"ok\");\n    }\n\n    #[test]\n    #[should_panic]\n    fn test_lines_match_no_indent_mark_2() {\n        let expected = r#\"\n        ok\n       wrong_indent\n        \"#;\n        assert_lines_match(expected, \"ok\");\n    }\n\n    #[test]\n    fn test_delta_test() {\n        let input = \"@@ -1,1 +1,1 @@ fn foo() {\\n-1\\n+2\\n\";\n        DeltaTest::with_args(&[\"--raw\"])\n            .set_config(|c| c.pager = None)\n            .set_config(|c| c.line_numbers = true)\n            .with_input(input)\n            .expect(\n                r#\"\n                 #indent_mark\n                 @@ -1,1 +1,1 @@ fn foo() {\n                   1 ⋮    │-1\n                     ⋮  1 │+2\"#,\n            );\n\n        DeltaTest::with_args(&[])\n            .with_input(input)\n            .expect_after_skip(\n                4,\n                r#\"\n                1\n                2\"#,\n            );\n\n        DeltaTest::with_args(&[\"--raw\"])\n            .explain_ansi()\n            .with_input(input)\n            .expect(\n                \"\\n\\\n                (normal)@@ -1,1 +1,1 @@ fn foo() {\\n\\\n                (red)-1(normal)\\n\\\n                (green)+2(normal)\",\n            );\n    }\n}\n"
  },
  {
    "path": "src/tests/mod.rs",
    "content": "pub mod ansi_test_utils;\npub mod integration_test_utils;\npub mod test_example_diffs;\npub mod test_utils;\n\n#[cfg(not(test))]\npub const TESTING: bool = false;\n\n#[cfg(test)]\npub const TESTING: bool = true;\n\n#[test]\n#[allow(clippy::assertions_on_constants)]\nfn am_testing() {\n    assert!(TESTING);\n}\n"
  },
  {
    "path": "src/tests/test_example_diffs.rs",
    "content": "#[cfg(test)]\nmod tests {\n    use crate::ansi::{self, strip_ansi_codes};\n    use crate::cli::InspectRawLines;\n    use crate::delta::{DiffType, State};\n    use crate::handlers::hunk_header::ParsedHunkHeader;\n    use crate::style;\n    use crate::tests::ansi_test_utils::ansi_test_utils;\n    use crate::tests::integration_test_utils;\n    use crate::tests::integration_test_utils::DeltaTest;\n    use insta::assert_snapshot;\n\n    #[test]\n    fn test_added_file() {\n        DeltaTest::with_args(&[])\n            .with_input(ADDED_FILE_INPUT)\n            .expect_contains(\"\\nadded: a.py\\n\");\n    }\n\n    #[test]\n    fn test_added_empty_file() {\n        DeltaTest::with_args(&[])\n            .with_input(ADDED_EMPTY_FILE)\n            .expect_contains(\"\\nadded: file\\n\");\n    }\n\n    #[test]\n    fn test_added_file_directory_path_containing_space() {\n        DeltaTest::with_args(&[])\n            .with_input(ADDED_FILES_DIRECTORY_PATH_CONTAINING_SPACE)\n            .expect_contains(\"\\nadded: with space/file1\\n\")\n            .expect_contains(\"\\nadded: nospace/file2\\n\");\n    }\n\n    #[test]\n    fn test_renamed_file() {\n        DeltaTest::with_args(&[])\n            .with_input(RENAMED_FILE_INPUT)\n            .expect_contains_once(\"\\nrenamed: a.py ⟶   b.py\\n\");\n    }\n\n    #[test]\n    fn test_copied_file() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_WITH_COPIED_FILE)\n            .expect_contains_once(\"\\ncopied: first_file ⟶   copied_file\\n\");\n    }\n\n    #[test]\n    fn test_renamed_file_with_changes() {\n        let t = DeltaTest::with_args(&[])\n            .with_input(RENAMED_FILE_WITH_CHANGES_INPUT)\n            .expect_contains_once(\n            \"\\nrenamed: Casks/font-dejavusansmono-nerd-font.rb ⟶   Casks/font-dejavu-sans-mono-nerd-font.rb\\n\"\n            );\n        println!(\"{}\", t.output);\n    }\n\n    #[test]\n    fn test_recognized_file_type() {\n        // In addition to the background color, the code has language syntax highlighting.\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::get_line_of_code_from_delta(\n            ADDED_FILE_INPUT,\n            14,\n            \"class X:\",\n            &config,\n        );\n        ansi_test_utils::assert_has_color_other_than_plus_color(&output, &config);\n    }\n\n    #[test]\n    fn test_unrecognized_file_type_with_syntax_theme() {\n        // In addition to the background color, the code has the foreground color using the default\n        // .txt syntax under the theme.\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let input = ADDED_FILE_INPUT.replace(\"a.py\", \"a\");\n        let output =\n            integration_test_utils::get_line_of_code_from_delta(&input, 14, \"class X:\", &config);\n        ansi_test_utils::assert_has_color_other_than_plus_color(&output, &config);\n    }\n\n    #[test]\n    fn test_unrecognized_file_type_no_syntax_theme() {\n        // The code has the background color only. (Since there is no theme, the code has no\n        // foreground ansi color codes.)\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--syntax-theme\",\n            \"none\",\n            \"--width\",\n            \"variable\",\n        ]);\n        let input = ADDED_FILE_INPUT.replace(\"a.py\", \"a\");\n        let output =\n            integration_test_utils::get_line_of_code_from_delta(&input, 14, \"class X:\", &config);\n        ansi_test_utils::assert_has_plus_color_only(&output, &config);\n    }\n\n    #[test]\n    fn test_default_language_is_used_for_syntax_highlighting() {\n        // Note: default-language will be used for files with no extension, but also\n        // for files with an extension, but for which the language was not detected.\n        // Use color-only so that we can refer to the line numbers from the input diff.\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--color-only\",\n            \"--default-language\",\n            \"bash\",\n        ]);\n        let output = integration_test_utils::run_delta(MODIFIED_BASH_AND_CSHARP_FILES, &config);\n        ansi_test_utils::assert_line_has_syntax_highlighted_substring(\n            &output,\n            12,\n            1,\n            \"    rsync -avu --delete $src/ $dst\",\n            \"abc.bash\",\n            State::HunkZero(DiffType::Unified, None),\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_default_language_is_not_used_when_other_language_is_detected() {\n        // Use color-only so that we can refer to the line numbers from the input diff.\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--color-only\",\n            \"--default-language\",\n            \"bash\",\n        ]);\n        let output = integration_test_utils::run_delta(MODIFIED_BASH_AND_CSHARP_FILES, &config);\n        ansi_test_utils::assert_line_has_syntax_highlighted_substring(\n            &output,\n            19,\n            1,\n            \"        static void Main(string[] args)\",\n            \"abc.cs\",\n            State::HunkZero(DiffType::Unified, None),\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_full_filename_used_to_detect_language() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--color-only\",\n            \"--default-language\",\n            \"txt\",\n        ]);\n        let output = integration_test_utils::run_delta(MODIFIED_DOCKER_AND_RS_FILES, &config);\n        let ansi = ansi::explain_ansi(&output, false);\n\n        // Ensure presence and absence of highlighting. Do not use `assert_line_has_syntax_highlighted_substring`\n        // because it uses the same code path as the one to be tested here.\n        let expected = r\"(normal)diff --git a/Dockerfile b/Dockerfile\nindex 0123456..1234567 100644\n--- a/Dockerfile\n+++ b/Dockerfile\n@@ -0,0 +2 @@\n(normal 22)+(203)FROM(231) foo(normal)\n(normal 22)+(203)COPY(231) bar baz(normal)\ndiff --git a/rs b/rs\nindex 0123456..1234567 100644\n--- a/rs\n+++ b/rs\n@@ -0,0 +2 @@\n(normal 22)+(231)fn foobar() -> i8 {(normal)\n(normal 22)+(231)    8(normal)\n(normal 22)+(231)}(normal)\n\";\n        assert_eq!(expected, ansi);\n    }\n\n    #[test]\n    fn test_diff_unified_two_files() {\n        let config =\n            integration_test_utils::make_config_from_args(&[\"--file-modified-label\", \"comparing:\"]);\n        let output = integration_test_utils::run_delta(DIFF_UNIFIED_TWO_FILES, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines();\n\n        // Header\n        assert_eq!(lines.nth(1).unwrap(), \"comparing: one.rs ⟶   src/two.rs\");\n        // Change\n        assert_eq!(lines.nth(7).unwrap(), \"println!(\\\"Hello ruster\\\");\");\n        // Unchanged in second chunk\n        assert_eq!(lines.nth(7).unwrap(), \"Unchanged\");\n    }\n\n    #[test]\n    fn test_diff_unified_two_directories() {\n        let config =\n            integration_test_utils::make_config_from_args(&[\"--width\", \"80\", \"--navigate\"]);\n        let output = integration_test_utils::run_delta(DIFF_UNIFIED_TWO_DIRECTORIES, &config);\n        let output = strip_ansi_codes(&output);\n        let mut lines = output.lines();\n\n        // Header\n        assert_eq!(lines.nth(1).unwrap(), \"Δ a/different ⟶   b/different\");\n        // Change\n        assert_eq!(lines.nth(7).unwrap(), \"This is different from b\");\n        // File uniqueness\n        assert_eq!(lines.nth(2).unwrap(), \"Only in a/: just_a\");\n        // DiffHeader divider\n        assert!(lines.next().unwrap().starts_with(\"───────\"));\n        // Next hunk\n        assert_eq!(\n            lines.nth(4).unwrap(),\n            \"Δ a/more_difference ⟶   b/more_difference\"\n        );\n    }\n\n    #[test]\n    fn test_diff_unified_concatenated() {\n        // See #1002. Line buffers were not being flushed correctly, leading to material from first\n        // file last hunk appearing at beginning of second file first hunk.\n        DeltaTest::with_args(&[])\n            .with_input(DIFF_UNIFIED_CONCATENATED)\n            .expect_contains(\"\\nLINES.\\n\\n1/y 2022-03-06\");\n    }\n\n    #[test]\n    #[ignore] // Ideally, delta would make this test pass. See #121.\n    fn test_delta_ignores_non_diff_input() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(NOT_A_DIFF_OUTPUT, &config);\n        let output = strip_ansi_codes(&output);\n        assert_eq!(output, NOT_A_DIFF_OUTPUT.to_owned() + \"\\n\");\n    }\n\n    #[test]\n    fn test_certain_bugs_are_not_present() {\n        for input in [\n            DIFF_EXHIBITING_PARSE_FILE_NAME_BUG,\n            DIFF_EXHIBITING_STATE_MACHINE_PARSER_BUG,\n            DIFF_EXHIBITING_TRUNCATION_BUG,\n        ] {\n            let config = integration_test_utils::make_config_from_args(&[\"--raw\"]);\n            let output = integration_test_utils::run_delta(input, &config);\n            assert_eq!(strip_ansi_codes(&output), input);\n            assert_ne!(output, input);\n        }\n    }\n\n    #[test]\n    fn test_delta_paints_diff_when_there_is_unrecognized_initial_content() {\n        for input in [\n            DIFF_WITH_UNRECOGNIZED_PRECEDING_MATERIAL_1,\n            DIFF_WITH_UNRECOGNIZED_PRECEDING_MATERIAL_2,\n        ] {\n            let config = integration_test_utils::make_config_from_args(&[\"--raw\"]);\n            let output = integration_test_utils::run_delta(input, &config);\n            assert_eq!(strip_ansi_codes(&output), input);\n            assert_ne!(output, input);\n        }\n    }\n\n    #[test]\n    fn test_diff_with_merge_conflict_is_not_truncated() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_MERGE_CONFLICT, &config);\n        println!(\"{}\", strip_ansi_codes(&output));\n    }\n\n    #[test]\n    fn test_diff_with_merge_conflict_is_passed_on_unchanged_under_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\"--raw\"]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_MERGE_CONFLICT, &config);\n        assert_eq!(strip_ansi_codes(&output), DIFF_WITH_MERGE_CONFLICT);\n    }\n\n    #[test]\n    fn test_simple_dirty_submodule_diff() {\n        DeltaTest::with_args(&[\"--width\", \"30\"])\n            .with_input(SUBMODULE_DIRTY)\n            .inspect()\n            .expect_after_skip(\n                1,\n                r#\"\n            some_submodule\n            ──────────────────────────────\n            ca030fd1a022..803be42ca46a\"#,\n            );\n    }\n\n    #[test]\n    fn test_submodule_diff_log() {\n        // See etc/examples/662-submodules\n        // diff.submodule = log\n        let config = integration_test_utils::make_config_from_args(&[\"--width\", \"49\"]);\n        let output = integration_test_utils::run_delta(SUBMODULE_DIFF_LOG, &config);\n        let output = strip_ansi_codes(&output);\n        assert_eq!(output, SUBMODULE_DIFF_LOG_EXPECTED_OUTPUT);\n    }\n\n    #[test]\n    fn test_submodule_contains_untracked_content() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output =\n            integration_test_utils::run_delta(SUBMODULE_CONTAINS_UNTRACKED_CONTENT_INPUT, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"\\nSubmodule x/y/z contains untracked content\\n\"));\n    }\n\n    #[test]\n    fn test_triple_dash_at_beginning_of_line_in_code() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output =\n            integration_test_utils::run_delta(TRIPLE_DASH_AT_BEGINNING_OF_LINE_IN_CODE, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"-- instance (Category p, Category q) => Category (p ∧ q) where\\n\"));\n    }\n\n    #[test]\n    fn test_binary_files_differ() {\n        let output = DeltaTest::with_args(&[\"--file-modified-label\", \"modified:\"])\n            .with_input(BINARY_FILES_DIFFER)\n            .skip_header();\n\n        assert_snapshot!(output, @r###\"\n\n        modified: foo (binary file)\n        ───────────────────────────────────────────\n        \"###);\n    }\n\n    #[test]\n    fn test_binary_file_added() {\n        let output = DeltaTest::with_args(&[])\n            .with_input(BINARY_FILE_ADDED)\n            .skip_header();\n        assert_snapshot!(output, @r###\"\n\n        added: foo (binary file)\n        ───────────────────────────────────────────\n        \"###);\n    }\n\n    #[test]\n    fn test_binary_file_removed() {\n        let output = DeltaTest::with_args(&[])\n            .with_input(BINARY_FILE_REMOVED)\n            .skip_header();\n        assert_snapshot!(output, @r###\"\n\n        removed: foo (binary file)\n        ───────────────────────────────────────────\n        \"###);\n    }\n\n    #[test]\n    fn test_binary_files_differ_after_other() {\n        let output = DeltaTest::with_args(&[\"--file-modified-label\", \"modified:\"])\n            .with_input(BINARY_FILES_DIFFER_AFTER_OTHER)\n            .output;\n        assert_snapshot!(output, @r###\"\n\n\n        renamed: foo ⟶   bar\n        ───────────────────────────────────────────\n\n        modified: qux (binary file)\n        ───────────────────────────────────────────\n        \"###);\n    }\n\n    #[test]\n    fn test_diff_in_diff() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(DIFF_IN_DIFF, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"\\n---\\n\"));\n        assert!(output.contains(\"\\nSubject: [PATCH] Init\\n\"));\n    }\n\n    #[test]\n    fn test_standalone_diff_files_are_identical() {\n        let diff = \"Files foo and bar are identical\\n\";\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(diff, &config);\n        assert_eq!(strip_ansi_codes(&output), diff);\n    }\n\n    #[test]\n    fn test_standalone_diff_binary_files_differ() {\n        let diff = \"Binary files foo and bar differ\\n\";\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(diff, &config);\n        assert_eq!(strip_ansi_codes(&output), diff);\n    }\n\n    #[test]\n    fn test_diff_no_index_binary_files_differ() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(DIFF_NO_INDEX_BINARY_FILES_DIFFER, &config);\n        assert_eq!(\n            strip_ansi_codes(&output),\n            \"Binary files foo bar and sub dir/foo bar baz differ\\n\"\n        );\n    }\n\n    #[test]\n    fn test_commit_style_raw_no_decoration() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--commit-style\",\n            \"raw\",\n            \"--commit-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            0,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n        );\n        assert!(output.contains(\n            \"\\\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\n\"\n        ));\n    }\n\n    #[test]\n    fn test_commit_style_colored_input_color_is_stripped_under_normal() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--commit-style\",\n            \"normal\",\n            \"--commit-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            0,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n        );\n    }\n\n    #[test]\n    fn test_commit_style_colored_input_color_is_preserved_under_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--commit-style\",\n            \"raw\",\n            \"--commit-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        ansi_test_utils::assert_line_has_4_bit_color_style(\n            &output,\n            0,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n            \"bold 31\",\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_orphan_carriage_return_is_stripped() {\n        let config = integration_test_utils::make_config_from_args(&[]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_SEQUENCE_OF_CR_ESCAPE_SEQUENCES_LF,\n            &config,\n        );\n        assert!(output.bytes().all(|b: u8| b != b'\\r'));\n    }\n\n    #[test]\n    fn test_commit_decoration_style_omit() {\n        _do_test_commit_style_no_decoration(&[\n            \"--commit-style\",\n            \"blue\",\n            \"--commit-decoration-style\",\n            \"omit\",\n        ]);\n    }\n\n    #[test]\n    fn test_commit_decoration_style_empty_string() {\n        _do_test_commit_style_no_decoration(&[\n            \"--commit-style\",\n            \"blue\",\n            \"--commit-decoration-style\",\n            \"\",\n        ]);\n    }\n\n    fn _do_test_commit_style_no_decoration(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        if false {\n            // `--commit-style xxx` is not honored yet: always behaves like xxx=raw\n            ansi_test_utils::assert_line_has_style(\n                &output,\n                0,\n                \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n                \"blue\",\n                &config,\n            );\n        }\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\"));\n        assert!(!output.contains(\"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\"));\n        assert!(!output.contains(\n            \"\\\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\n───────────────────────────────────────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_commit_style_omit() {\n        let config = integration_test_utils::make_config_from_args(&[\"--commit-style\", \"omit\"]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(!output.contains(\n            \"\\\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\n\"\n        ));\n    }\n\n    #[test]\n    fn test_commit_style_box() {\n        _do_test_commit_style_box(&[\n            \"--commit-style\",\n            \"blue\",\n            \"--commit-decoration-style\",\n            \"blue box\",\n        ]);\n    }\n\n    #[test]\n    fn test_commit_style_box_ul() {\n        _do_test_commit_style_box_ul(&[\n            \"--commit-style\",\n            \"blue\",\n            \"--commit-decoration-style\",\n            \"blue box ul\",\n            \"--width=64\",\n        ]);\n    }\n\n    #[ignore]\n    #[test]\n    fn test_commit_style_box_ol() {\n        _do_test_commit_style_box_ol(&[\n            \"--commit-style\",\n            \"blue\",\n            \"--commit-decoration-style\",\n            \"blue box ol\",\n        ]);\n    }\n\n    fn _do_test_commit_style_box(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            0,\n            \"────────────────────────────────────────────────┐\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            1,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            2,\n            \"────────────────────────────────────────────────┘\",\n            \"blue\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\\\n────────────────────────────────────────────────┐\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\n────────────────────────────────────────────────┘\n\"\n        ));\n    }\n\n    fn _do_test_commit_style_box_ul(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            0,\n            \"────────────────────────────────────────────────┐\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            1,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            2,\n            \"────────────────────────────────────────────────┴─\",\n            \"blue\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\\\n────────────────────────────────────────────────┐\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\n────────────────────────────────────────────────┴─\"\n        ));\n    }\n\n    fn _do_test_commit_style_box_ol(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            0,\n            \"────────────────────────────────────────────────┬─\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            1,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\",\n            \"blue\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            2,\n            \"────────────────────────────────────────────────┘\",\n            \"blue\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\\\n────────────────────────────────────────────────┬─\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\n────────────────────────────────────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_commit_style_box_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--commit-style\",\n            \"raw\",\n            \"--commit-decoration-style\",\n            \"box ul\",\n            \"--width=64\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            1,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\",\n        );\n        assert!(output.contains(\n            \"\\\n────────────────────────────────────────────────┐\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e │\n────────────────────────────────────────────────┴─\"\n        ));\n    }\n\n    // TODO: test overline\n\n    #[test]\n    fn test_commit_style_underline() {\n        _do_test_commit_style_underline(&[\n            \"--commit-style\",\n            \"yellow\",\n            \"--commit-decoration-style\",\n            \"yellow underline\",\n        ]);\n    }\n\n    fn _do_test_commit_style_underline(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            0,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n            \"yellow\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            1,\n            \"───────────────────────────────────────────────\",\n            \"yellow\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\\\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\n───────────────────────────────────────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_file_style_raw_no_decoration() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--file-style\",\n            \"raw\",\n            \"--file-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        for (i, line) in [\n            \"diff --git a/src/align.rs b/src/align.rs\",\n            \"index 8e37a9e..6ce4863 100644\",\n            \"--- a/src/align.rs\",\n            \"+++ b/src/align.rs\",\n        ]\n        .iter()\n        .enumerate()\n        {\n            ansi_test_utils::assert_line_has_no_color(&output, 6 + i, line);\n        }\n        assert!(output.contains(\n            \"\ndiff --git a/src/align.rs b/src/align.rs\nindex 8e37a9e..6ce4863 100644\n--- a/src/align.rs\n+++ b/src/align.rs\n\"\n        ));\n    }\n\n    #[test]\n    fn test_file_style_colored_input_color_is_stripped_under_normal() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--file-style\",\n            \"normal\",\n            \"--file-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        ansi_test_utils::assert_line_has_no_color(&output, 7, \"src/align.rs\");\n    }\n\n    #[test]\n    fn test_file_style_colored_input_color_is_preserved_under_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--file-style\",\n            \"raw\",\n            \"--file-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        for (i, line) in [\n            \"diff --git a/src/align.rs b/src/align.rs\",\n            \"index 8e37a9e..6ce4863 100644\",\n            \"--- a/src/align.rs\",\n            \"+++ b/src/align.rs\",\n        ]\n        .iter()\n        .enumerate()\n        {\n            ansi_test_utils::assert_line_has_4_bit_color_style(&output, 6 + i, line, \"31\", &config)\n        }\n    }\n\n    #[test]\n    fn test_file_decoration_style_omit() {\n        _do_test_file_style_no_decoration(&[\n            \"--file-style\",\n            \"green\",\n            \"--file-decoration-style\",\n            \"omit\",\n        ]);\n    }\n\n    #[test]\n    fn test_file_decoration_style_empty_string() {\n        _do_test_file_style_no_decoration(&[\n            \"--file-style\",\n            \"green\",\n            \"--file-decoration-style\",\n            \"\",\n        ]);\n    }\n\n    fn _do_test_file_style_no_decoration(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(&output, 7, \"src/align.rs\", \"green\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"src/align.rs\"));\n        assert!(!output.contains(\"src/align.rs │\"));\n        assert!(!output.contains(\n            \"\nsrc/align.rs\n────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_file_style_omit() {\n        let config = integration_test_utils::make_config_from_args(&[\"--file-style\", \"omit\"]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        assert!(!output.contains(\"src/align.rs\"));\n    }\n\n    #[test]\n    fn test_file_style_box() {\n        _do_test_file_style_box(&[\n            \"--file-style\",\n            \"green\",\n            \"--file-decoration-style\",\n            \"green box\",\n        ]);\n    }\n\n    #[test]\n    fn test_file_style_box_ul() {\n        _do_test_file_style_box_ul(&[\n            \"--file-style\",\n            \"green\",\n            \"--file-decoration-style\",\n            \"green box ul\",\n        ]);\n    }\n\n    #[ignore]\n    #[test]\n    fn test_file_style_box_ol() {\n        _do_test_file_style_box_ol(&[\n            \"--file-style\",\n            \"green\",\n            \"--file-decoration-style\",\n            \"green box ol\",\n        ]);\n    }\n\n    fn _do_test_file_style_box(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(&output, 7, \"─────────────┐\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \"src/align.rs │\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 9, \"─────────────┘\", \"green\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n─────────────┐\nsrc/align.rs │\n─────────────┘\n\"\n        ));\n    }\n\n    fn _do_test_file_style_box_ul(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(&output, 7, \"─────────────┐\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \"src/align.rs │\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 9, \"─────────────┴─\", \"green\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n─────────────┐\nsrc/align.rs │\n─────────────┴─\"\n        ));\n    }\n\n    fn _do_test_file_style_box_ol(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(&output, 7, \"─────────────┬─\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \"src/align.rs │\", \"green\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 9, \"─────────────┘\", \"green\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n─────────────┬─\nsrc/align.rs │\n─────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_file_style_box_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--file-style\",\n            \"raw\",\n            \"--file-decoration-style\",\n            \"box ul\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(&output, 8, \"src/align.rs │\");\n        assert!(output.contains(\n            \"\n─────────────┐\nsrc/align.rs │\n─────────────┴─\"\n        ));\n    }\n\n    #[test]\n    fn test_file_style_underline() {\n        _do_test_file_style_underline(&[\n            \"--file-style\",\n            \"magenta\",\n            \"--file-decoration-style\",\n            \"magenta underline\",\n        ]);\n    }\n\n    fn _do_test_file_style_underline(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(&output, 7, \"src/align.rs\", \"magenta\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \"────────────\", \"magenta\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\nsrc/align.rs\n────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_raw_no_decoration() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"raw\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            9,\n            \"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\",\n        );\n        assert!(output.contains(\"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\"));\n    }\n\n    #[test]\n    fn test_hunk_header_style_raw_no_decoration_with_line_numbers() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"raw\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n            \"--line-numbers\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        assert!(output.contains(\n            \"\n@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\"\n        ));\n        assert!(!output.contains(\n            \"\n\n@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\"\n        ));\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            9,\n            \"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\",\n        );\n    }\n\n    #[test]\n    fn test_color_only_output_is_in_one_to_one_correspondence_with_input() {\n        let user_suppliable_configs: &[&[&str]] = &[\n            &[\"--color-only\", \"--light\"],\n            &[\"--color-only\", \"--dark\"],\n            &[\"--color-only\", \"--line-numbers\"],\n            &[\"--color-only\", \"--side-by-side\"],\n            &[\"--color-only\", \"--diff-highlight\"],\n            &[\"--color-only\", \"--diff-so-fancy\"],\n            &[\"--color-only\", \"--navigate\"],\n            &[\"--color-only\", \"--hyperlinks\"],\n            &[\"--color-only\", \"--keep-plus-minus-markers\"],\n            &[\"--color-only\", \"--raw\"],\n            &[\"--color-only\", \"--syntax-theme\", \"Monokai Extended\"],\n            &[\"--color-only\", \"--minus-style\", \"syntax bold auto\"],\n            &[\"--color-only\", \"--zero-style\", \"red strike\"],\n            &[\"--color-only\", \"--plus-style\", \"red blink\"],\n            &[\"--color-only\", \"--minus-emph-style\", \"red dim\"],\n            &[\"--color-only\", \"--minus-non-emph-style\", \"red hidden\"],\n            &[\"--color-only\", \"--plus-emph-style\", \"red reverse\"],\n            &[\"--color-only\", \"--plus-non-emph-style\", \"red bold ul\"],\n            &[\"--color-only\", \"--commit-style\", \"red bold ul\"],\n            &[\n                \"--color-only\",\n                \"--commit-decoration-style\",\n                \"bold yellow box ul\",\n            ],\n            &[\"--color-only\", \"--file-style\", \"red bold ul\"],\n            &[\n                \"--color-only\",\n                \"--file-decoration-style\",\n                \"bold yellow box ul\",\n            ],\n            &[\"--color-only\", \"--hunk-header-style\", \"red bold ul\"],\n            &[\n                \"--color-only\",\n                \"--hunk-header-decoration-style\",\n                \"bold yellow box ul\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-minus-style\",\n                \"#444444\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-zero-style\",\n                \"#444444\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-plus-style\",\n                \"#444444\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-left-format\",\n                \"{nm:>4}┊\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-right-format\",\n                \"{np:>4}│\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-left-style\",\n                \"blue\",\n            ],\n            &[\n                \"--color-only\",\n                \"--line-numbers\",\n                \"--line-numbers-right-style\",\n                \"blue\",\n            ],\n            &[\"--color-only\", \"--file-modified-label\", \"hogehoge\"],\n            &[\"--color-only\", \"--file-removed-label\", \"hogehoge\"],\n            &[\"--color-only\", \"--file-added-label\", \"hogehoge\"],\n            &[\"--color-only\", \"--file-renamed-label\", \"hogehoge\"],\n            &[\"--color-only\", \"--max-line-length\", \"1\"],\n            &[\"--color-only\", \"--width\", \"1\"],\n            &[\"--color-only\", \"--tabs\", \"10\"],\n            &[\"--color-only\", \"--true-color\", \"always\"],\n            &[\"--color-only\", \"--inspect-raw-lines\", \"false\"],\n            &[\"--color-only\", \"--whitespace-error-style\", \"22 reverse\"],\n        ];\n\n        for config in user_suppliable_configs {\n            _do_test_output_is_in_one_to_one_correspondence_with_input(config);\n        }\n    }\n\n    fn _do_test_output_is_in_one_to_one_correspondence_with_input(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        let output = strip_ansi_codes(&output);\n\n        let input_lines: Vec<&str> = GIT_DIFF_SINGLE_HUNK.lines().collect();\n        let output_lines: Vec<&str> = output.lines().collect();\n        assert_eq!(input_lines.len(), output_lines.len());\n\n        // Although git patch options only checks the line counts of input and output,\n        // we should check if they are identical as well to avoid unexpected decoration.\n        if args.contains(&\"--max-line-length\") {\n            return;\n        }\n        for (n, input_line) in input_lines.into_iter().enumerate() {\n            // If config.line_numbers is enabled,\n            // we should remove line_numbers decoration while checking.\n            let output_line = if config.line_numbers && n > 11 {\n                &output_lines[n][14..]\n            } else {\n                output_lines[n]\n            };\n            assert_eq!(input_line, output_line);\n        }\n    }\n\n    #[test]\n    fn test_file_style_with_color_only_has_style() {\n        let config =\n            integration_test_utils::make_config_from_args(&[\"--color-only\", \"--file-style\", \"red\"]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n\n        ansi_test_utils::assert_line_has_style(&output, 8, \"--- a/src/align.rs\", \"red\", &config);\n        ansi_test_utils::assert_line_has_style(&output, 9, \"+++ b/src/align.rs\", \"red\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\\\n--- a/src/align.rs\n+++ b/src/align.rs\n\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_with_color_only_has_style() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--color-only\",\n            \"--hunk-header-style\",\n            \"red\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            10,\n            \"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\",\n            \"red\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\"));\n    }\n\n    #[test]\n    fn test_hunk_header_style_with_file() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-file-style\",\n            \"yellow\",\n            \"--hunk-header-style\",\n            \"file line-number red\",\n            \"--hunk-header-decoration-style\",\n            \"box\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            11,\n            \"src/align.rs:71: impl<'a> Alignment<'a> {\",\n            \"yellow\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n──────────────────────────────────────────┐\nsrc/align.rs:71: impl<'a> Alignment<'a> { │\n──────────────────────────────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_with_file_no_frag() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-file-style\",\n            \"yellow\",\n            \"--hunk-header-style\",\n            \"file line-number red\",\n            \"--hunk-header-decoration-style\",\n            \"box\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK_NO_FRAG, &config);\n\n        ansi_test_utils::assert_line_has_style(&output, 5, \"src/delta.rs:1: \", \"yellow\", &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n────────────────┐\nsrc/delta.rs:1: │\n────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_commit_style_with_color_only_has_style() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--color-only\",\n            \"--commit-style\",\n            \"red\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            0,\n            \"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\",\n            \"red\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\"));\n    }\n\n    #[test]\n    fn test_hunk_header_omit_code_fragment() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"line-number omit-code-fragment\",\n            \"--hunk-header-decoration-style\",\n            \"none\",\n        ]);\n        let output = strip_ansi_codes(&integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK,\n            &config,\n        ));\n        assert!(output.contains(\"\\n71: \\n\"));\n    }\n\n    #[test]\n    fn test_hunk_header_style_colored_input_color_is_stripped_under_normal() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"line-number normal\",\n            \"--hunk-header-line-number-style\",\n            \"normal\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        // An additional newline is inserted under anything other than `style=raw,\n        // decoration-style=omit`, to better separate the hunks. Hence 9 + 1.\n        ansi_test_utils::assert_line_has_no_color(&output, 9 + 1, \"71: impl<'a> Alignment<'a> {\");\n    }\n\n    #[test]\n    fn test_hunk_header_style_colored_input_color_is_preserved_under_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"raw\",\n            \"--hunk-header-decoration-style\",\n            \"omit\",\n        ]);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        ansi_test_utils::assert_line_has_4_bit_color_style(\n            &output,\n            9,\n            \"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\",\n            \"bold 31\",\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_hunk_header_decoration_style_omit() {\n        _do_test_hunk_header_style_no_decoration(&[\"--hunk-header-decoration-style\", \"omit\"]);\n    }\n\n    #[test]\n    fn test_hunk_header_decoration_style_none() {\n        _do_test_hunk_header_style_no_decoration(&[\"--hunk-header-decoration-style\", \"none\"]);\n    }\n\n    #[test]\n    fn test_hunk_header_decoration_style_empty_string() {\n        _do_test_hunk_header_style_no_decoration(&[\"--hunk-header-decoration-style\", \"\"]);\n    }\n\n    fn _do_test_hunk_header_style_no_decoration(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"impl<'a> Alignment<'a> {\"));\n        assert!(!output.contains(\"impl<'a> Alignment<'a> { │\"));\n        assert!(!output.contains(\n            \"\nimpl<'a> Alignment<'a> {\n────────────────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_omit() {\n        let config =\n            integration_test_utils::make_config_from_args(&[\"--hunk-header-style\", \"omit\"]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(!output.contains(\"impl<'a> Alignment<'a> {\"));\n    }\n\n    #[test]\n    fn test_hunk_header_style_empty_string() {\n        _do_test_hunk_header_empty_style(&[\"--hunk-header-style\", \"\"]);\n    }\n\n    #[test]\n    fn test_hunk_header_style_none() {\n        _do_test_hunk_header_empty_style(&[\"--hunk-header-style\", \"None\"]);\n    }\n\n    fn _do_test_hunk_header_empty_style(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        assert!(output.contains(\"impl<'a> Alignment<'a> {\"));\n        assert!(!output.contains(\"@@\"));\n    }\n\n    #[test]\n    fn test_hunk_header_style_box() {\n        _do_test_hunk_header_style_box(&[\"--hunk-header-decoration-style\", \"white box\"]);\n    }\n\n    #[test]\n    fn test_hunk_header_style_box_line_number() {\n        _do_test_hunk_header_style_box(&[\n            \"--hunk-header-style\",\n            \"line-number\",\n            \"--hunk-header-decoration-style\",\n            \"white box\",\n        ]);\n    }\n\n    #[test]\n    fn test_hunk_header_style_box_file_line_number() {\n        _do_test_hunk_header_style_box_file_line_number(&[\n            \"--hunk-header-style\",\n            \"file line-number\",\n            \"--hunk-header-decoration-style\",\n            \"white box\",\n        ]);\n    }\n\n    #[test]\n    fn test_hunk_header_style_box_file() {\n        _do_test_hunk_header_style_box_file(&[\n            \"--hunk-header-style\",\n            \"file\",\n            \"--hunk-header-decoration-style\",\n            \"white box\",\n        ]);\n    }\n\n    fn _do_test_hunk_header_style_box(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            10,\n            \"─────────────────────────────┐\",\n            \"white\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            12,\n            \"─────────────────────────────┘\",\n            \"white\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n─────────────────────────────┐\n71: impl<'a> Alignment<'a> { │\n─────────────────────────────┘\n\"\n        ));\n    }\n\n    fn _do_test_hunk_header_style_box_file(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            10,\n            \"───────────────────────────────────────┐\",\n            \"white\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            12,\n            \"───────────────────────────────────────┘\",\n            \"white\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n───────────────────────────────────────┐\nsrc/align.rs: impl<'a> Alignment<'a> { │\n───────────────────────────────────────┘\n\"\n        ));\n    }\n\n    fn _do_test_hunk_header_style_box_file_line_number(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            10,\n            \"──────────────────────────────────────────┐\",\n            \"white\",\n            &config,\n        );\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            12,\n            \"──────────────────────────────────────────┘\",\n            \"white\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n──────────────────────────────────────────┐\nsrc/align.rs:71: impl<'a> Alignment<'a> { │\n──────────────────────────────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_box_raw() {\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"raw\",\n            \"--hunk-header-decoration-style\",\n            \"box\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(\n            &output,\n            11,\n            \"@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> { │\",\n        );\n        assert!(output.contains(\n            \"\n────────────────────────────────────────────┐\n@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> { │\n────────────────────────────────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_underline() {\n        _do_test_hunk_header_style_underline(&[\n            \"--hunk-header-decoration-style\",\n            \"black underline\",\n        ]);\n    }\n\n    fn _do_test_hunk_header_style_underline(args: &[&str]) {\n        let config = integration_test_utils::make_config_from_args(args);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_style(\n            &output,\n            11,\n            \"─────────────────────────\",\n            \"black\",\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n71: impl<'a> Alignment<'a> { \n────────────────────────────\"\n        ));\n    }\n\n    #[test]\n    fn test_hunk_header_style_box_with_syntax_highlighting() {\n        // For this test we are currently forced to disable styling of the decoration, since\n        // otherwise it will confuse assert_line_is_syntax_highlighted.\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--hunk-header-style\",\n            \"line-number syntax\",\n            \"--hunk-header-decoration-style\",\n            \"box\",\n        ]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_no_color(&output, 10, \"─────────────────────────────┐\");\n        ansi_test_utils::assert_line_has_syntax_highlighted_substring(\n            &output,\n            11,\n            4,\n            \"impl<'a> Alignment<'a> { \",\n            \"a.rs\",\n            State::HunkHeader(\n                DiffType::Unified,\n                ParsedHunkHeader::default(),\n                \"\".to_owned(),\n                \"\".to_owned(),\n            ),\n            &config,\n        );\n        ansi_test_utils::assert_line_has_no_color(&output, 12, \"─────────────────────────────┘\");\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            \"\n─────────────────────────────┐\n71: impl<'a> Alignment<'a> { │\n─────────────────────────────┘\n\"\n        ));\n    }\n\n    #[test]\n    fn test_removed_empty_line_highlight() {\n        let minus_empty_line_marker_style = \"bold yellow magenta ul\";\n        _do_test_removed_empty_line_highlight(minus_empty_line_marker_style, \"red reverse\", true);\n        _do_test_removed_empty_line_highlight(minus_empty_line_marker_style, \"normal red\", true);\n        _do_test_removed_empty_line_highlight(minus_empty_line_marker_style, \"red\", false);\n        _do_test_removed_empty_line_highlight(\n            minus_empty_line_marker_style,\n            \"normal red reverse\",\n            false,\n        );\n    }\n\n    fn _do_test_removed_empty_line_highlight(\n        empty_line_marker_style: &str,\n        base_style: &str,\n        base_style_has_background_color: bool,\n    ) {\n        _do_test_empty_line_highlight(\n            \"--minus-empty-line-marker-style\",\n            empty_line_marker_style,\n            \"--minus-style\",\n            base_style,\n            base_style_has_background_color,\n            DIFF_WITH_REMOVED_EMPTY_LINE,\n        );\n    }\n\n    #[test]\n    fn test_added_empty_line_highlight() {\n        let plus_empty_line_marker_style = \"bold yellow red ul\";\n        _do_test_added_empty_line_highlight(plus_empty_line_marker_style, \"green reverse\", true);\n        _do_test_added_empty_line_highlight(plus_empty_line_marker_style, \"normal green\", true);\n        _do_test_added_empty_line_highlight(plus_empty_line_marker_style, \"green\", false);\n        _do_test_added_empty_line_highlight(\n            plus_empty_line_marker_style,\n            \"normal green reverse\",\n            false,\n        );\n    }\n\n    fn _do_test_added_empty_line_highlight(\n        empty_line_marker_style: &str,\n        base_style: &str,\n        base_style_has_background_color: bool,\n    ) {\n        _do_test_empty_line_highlight(\n            \"--plus-empty-line-marker-style\",\n            empty_line_marker_style,\n            \"--plus-style\",\n            base_style,\n            base_style_has_background_color,\n            DIFF_WITH_ADDED_EMPTY_LINE,\n        );\n    }\n\n    fn _do_test_empty_line_highlight(\n        empty_line_marker_style_name: &str,\n        empty_line_marker_style: &str,\n        base_style_name: &str,\n        base_style: &str,\n        base_style_has_background_color: bool,\n        example_diff: &str,\n    ) {\n        let config = integration_test_utils::make_config_from_args(&[\n            base_style_name,\n            base_style,\n            empty_line_marker_style_name,\n            empty_line_marker_style,\n        ]);\n        let output = integration_test_utils::run_delta(example_diff, &config);\n        let line = output.lines().nth(8).unwrap();\n        if base_style_has_background_color {\n            let style = style::Style::from_str(base_style, None, None, true, None);\n            assert_eq!(\n                line,\n                &style\n                    .ansi_term_style\n                    .paint(ansi::ANSI_CSI_CLEAR_TO_EOL)\n                    .to_string()\n            );\n        } else {\n            assert_eq!(line, \"\");\n        }\n    }\n\n    #[test]\n    fn test_whitespace_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_WHITESPACE_ERROR, &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \" \", whitespace_error_style, &config);\n        let output = integration_test_utils::run_delta(DIFF_WITH_REMOVED_WHITESPACE_ERROR, &config);\n        ansi_test_utils::assert_line_does_not_have_style(\n            &output,\n            8,\n            \" \",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_whitespace_unrelated_edit_text_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output =\n            integration_test_utils::run_delta(DIFF_WITH_WHITESPACE_UNRELATED_EDIT_ERROR, &config);\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            9,\n            \"some new\",\n            \"    \",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_whitespace_edit_text_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_WHITESPACE_EDIT_ERROR, &config);\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            9,\n            \"same \",\n            \"    \",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_whitespace_added_empty_line_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output =\n            integration_test_utils::run_delta(DIFF_WITH_ADDED_WHITESPACE_EMPTY_LINE_ERROR, &config);\n        // TODO is this the first style ?\n        ansi_test_utils::assert_line_has_style(&output, 9, \" \", whitespace_error_style, &config);\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            9,\n            \"\",\n            \"   \",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_whitespace_after_text_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output =\n            integration_test_utils::run_delta(DIFF_WITH_WHITESPACE_AFTER_TEXT_ERROR, &config);\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            8,\n            \"foo bar\",\n            \"  \",\n            whitespace_error_style,\n            &config,\n        );\n        let output = integration_test_utils::run_delta(\n            DIFF_WITH_REMOVED_WHITESPACE_AFTER_TEXT_ERROR,\n            &config,\n        );\n        ansi_test_utils::assert_line_does_not_contain_substring_style(\n            &output,\n            8,\n            \"foo bar\",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_whitespace_complex_error() {\n        let whitespace_error_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--whitespace-error-style\",\n            whitespace_error_style,\n        ]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_WHITESPACE_COMPLEX_ERROR, &config);\n        // `minus` line should not display whitespace error\n        ansi_test_utils::assert_line_does_not_have_style(\n            &output,\n            8,\n            \"  \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_does_not_have_style(\n            &output,\n            9,\n            \"  \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_does_not_contain_substring_style(\n            &output,\n            10,\n            \"  foo0 \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_does_not_contain_substring_style(\n            &output,\n            11,\n            \"  foo1 \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_does_not_contain_substring_style(\n            &output,\n            12,\n            \"  bar  \",\n            whitespace_error_style,\n            &config,\n        );\n\n        // `plus` line should display whitespace error\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            13,\n            \" \",\n            \" \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            14,\n            \"   \",\n            \"   \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            15,\n            \"  foo0\",\n            \" \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            16,\n            \"  foo1\",\n            \"   \",\n            whitespace_error_style,\n            &config,\n        );\n        ansi_test_utils::assert_line_contain_substring_style(\n            &output,\n            17,\n            \"  bAr\",\n            \"  \",\n            whitespace_error_style,\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_added_empty_line_is_not_whitespace_error() {\n        let plus_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--light\",\n            \"--keep-plus-minus-markers\",\n            \"--plus-style\",\n            plus_style,\n        ]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_ADDED_EMPTY_LINE, &config);\n        ansi_test_utils::assert_line_has_style(&output, 8, \"\", plus_style, &config)\n    }\n\n    #[test]\n    fn test_single_character_line_is_not_whitespace_error() {\n        let plus_style = \"bold yellow red ul\";\n        let config = integration_test_utils::make_config_from_args(&[\n            \"--light\",\n            \"--keep-plus-minus-markers\",\n            \"--plus-style\",\n            plus_style,\n        ]);\n        let output = integration_test_utils::run_delta(DIFF_WITH_SINGLE_CHARACTER_LINE, &config);\n        ansi_test_utils::assert_line_has_style(&output, 14, \"+}\", plus_style, &config)\n    }\n\n    #[test]\n    fn test_color_only_mode() {\n        let config = integration_test_utils::make_config_from_args(&[\"--color-only\"]);\n        let output = integration_test_utils::run_delta(GIT_DIFF_SINGLE_HUNK, &config);\n        ansi_test_utils::assert_line_has_syntax_highlighted_substring(\n            &output,\n            12,\n            1,\n            \"        for (i, x_i) in self.x.iter().enumerate() {\",\n            \"align.rs\",\n            State::HunkZero(DiffType::Unified, None),\n            &config,\n        );\n    }\n\n    #[test]\n    fn test_git_diff_is_unchanged_under_color_only() {\n        let config = integration_test_utils::make_config_from_args(&[\"--color-only\"]);\n        let input = DIFF_WITH_TWO_ADDED_LINES;\n        let output = integration_test_utils::run_delta(input, &config);\n        let output = strip_ansi_codes(&output);\n        assert_eq!(output, input);\n    }\n\n    #[test]\n    #[allow(non_snake_case)]\n    fn test_git_diff_U0_is_unchanged_under_color_only() {\n        let config = integration_test_utils::make_config_from_args(&[\"--color-only\"]);\n        let input = DIFF_WITH_TWO_ADDED_LINES_CREATED_BY_GIT_DIFF_U0;\n        let output = integration_test_utils::run_delta(input, &config);\n        let output = strip_ansi_codes(&output);\n        assert_eq!(output, input);\n    }\n\n    #[test]\n    fn test_git_diff_binary_is_unchanged_under_color_only() {\n        let config = integration_test_utils::make_config_from_args(&[\"--color-only\"]);\n        let input = BINARY_FILES_DIFFER_BETWEEN_OTHER;\n        let output = integration_test_utils::run_delta(input, &config);\n        let output = strip_ansi_codes(&output);\n        assert_eq!(output, input);\n    }\n\n    // See https://github.com/dandavison/delta/issues/371#issuecomment-720173435\n    #[test]\n    fn test_keep_plus_minus_markers_under_inspect_raw_lines() {\n        let config = integration_test_utils::make_config_from_args(&[\"--keep-plus-minus-markers\"]);\n        assert_eq!(config.inspect_raw_lines, InspectRawLines::True);\n        let output = integration_test_utils::run_delta(\n            GIT_DIFF_UNDER_COLOR_MOVED_DIMMED_ZEBRA_WITH_ANSI_ESCAPE_SEQUENCES,\n            &config,\n        );\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\n            r#\"\n-    \"stddev\": 0.004157057519168492,\n\"#\n        ));\n    }\n\n    #[test]\n    fn test_file_mode_change_with_rename() {\n        let config = integration_test_utils::make_config_from_args(&[\"--right-arrow=->\"]);\n        let output =\n            integration_test_utils::run_delta(GIT_DIFF_FILE_MODE_CHANGE_WITH_RENAME, &config);\n        let output = strip_ansi_codes(&output);\n        assert!(output.contains(\"renamed: old-longer-name -> shorter-name (mode +x)\"));\n    }\n\n    #[test]\n    fn test_file_mode_change_gain_executable_bit() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_FILE_MODE_CHANGE_GAIN_EXECUTABLE_BIT)\n            .expect_contains(\"src/delta.rs (mode +x)\");\n    }\n\n    #[test]\n    fn test_file_mode_change_lose_executable_bit() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_FILE_MODE_CHANGE_LOSE_EXECUTABLE_BIT)\n            .expect_contains(\"src/delta.rs (mode -x)\");\n    }\n\n    #[test]\n    fn test_file_mode_change_unexpected_bits() {\n        DeltaTest::with_args(&[\"--navigate\", \"--right-arrow=->\"])\n            .with_input(GIT_DIFF_FILE_MODE_CHANGE_UNEXPECTED_BITS)\n            .expect_contains(\"Δ src/delta.rs (mode 100700 -> 100644)\");\n    }\n\n    #[test]\n    fn test_file_deleted_without_preimage() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_FILE_DELETED_WITHOUT_PREIMAGE)\n            .expect_contains(\"removed: foo.bar\");\n    }\n\n    #[test]\n    fn test_files_deleted_without_preimage() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_FILES_DELETED_WITHOUT_PREIMAGE)\n            .expect_contains(\"removed: foo\")\n            .expect_contains(\"removed: bar\");\n    }\n\n    #[test]\n    fn test_file_mode_change_with_diff() {\n        DeltaTest::with_args(&[\"--navigate\", \"--keep-plus-minus-markers\"])\n            .with_input(GIT_DIFF_FILE_MODE_CHANGE_WITH_DIFF)\n            .expect_contains(\"Δ src/script (mode +x)\")\n            .expect_after_skip(\n                5,\n                \"\n                ─────┐\n                • 1: │\n                ─────┘\n                -#!/bin/sh\n                +#!/bin/bash\",\n            );\n    }\n\n    #[test]\n    fn test_hyperlinks_commit_link_format() {\n        // If commit-style is not set then the commit line is handled in raw\n        // mode, in which case we only format hyperlinks if output is a tty;\n        // this causes the test to fail on GitHub Actions, but pass locally\n        // if output is left going to the screen.\n        DeltaTest::with_args(&[\n                \"--commit-style\",\n                \"blue\",\n                \"--hyperlinks\",\n                \"--hyperlinks-commit-link-format\",\n                \"https://invent.kde.org/utilities/konsole/-/commit/{commit}\",\n            ])\n            .with_input(GIT_DIFF_SINGLE_HUNK)\n            .expect_raw_contains(\n                r\"https://invent.kde.org/utilities/konsole/-/commit/94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\"\n                );\n    }\n\n    #[test]\n    fn test_filenames_with_spaces() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_DIFF_NO_INDEX_FILENAMES_WITH_SPACES)\n            .expect_contains(\"a b ⟶   c d\\n\");\n    }\n\n    #[test]\n    fn test_file_removal_in_log_output() {\n        DeltaTest::with_args(&[])\n            .with_input(GIT_LOG_FILE_REMOVAL_IN_FIRST_COMMIT)\n            .expect_after_header(\"#partial\\n\\nremoved: a\");\n    }\n\n    #[test]\n    fn test_lines_with_syntax_width_limit() {\n        let result = DeltaTest::with_args(&[\n            \"--max-line-length=42\",\n            \"--max-syntax-highlighting-length=18\",\n        ])\n        .explain_ansi()\n        .with_input(GIT_DIFF_SINGLE_HUNK);\n        assert_snapshot!(result.output, @r###\"\n        (normal)commit 94907c0f136f46dc46ffae2dc92dca9af7(reverse normal)→(normal)\n        Author: Dan Davison <dandavison7@gmail.co(reverse normal)→(normal)\n        Date:   Thu May 14 11:13:17 2020 -0400\n\n            rustfmt\n\n\n        (blue)src/align.rs(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)─────────────────────────────(blue)┐(normal)\n        (blue)71(normal):(231) (81)impl(231)<(203)'a(231)> (149)Alignmen(normal)t<'a> { (blue)│(normal)\n        (blue)─────────────────────────────(blue)┘(normal)\n\n        (231)        (203)for(231) (i, x_(normal)i) in self.x.iter().en→\n        (231)            (203)for(231) (j(normal), y_j) in self.y.iter(→\n        (normal 52)                let (left, diag, up) =(normal 124) ((normal)\n        (normal 52)                    self.index(i, j + 1(normal 124)),(normal)\n        (normal 52)                    self.index(i, j),(normal)\n        (normal 52)                    self.index(i + 1, j),(normal)\n        (normal 52)                );(normal)\n        (231 22)                le(normal 22)t (left, diag, up) =(normal)\n        (231 22)                  (normal 22)  (normal 28)((normal 22)self.index(i, j + 1(normal 28)→(normal)\n        (231)                le(normal)t candidates = [\n        (231)                  (normal)  Cell {\n        (231)                  (normal)      parent: left,\n        \"###);\n    }\n\n    #[test]\n    fn test_lines_with_syntax_width_limit_wrapping() {\n        let result = DeltaTest::with_args(&[\n            \"--side-by-side\",\n            \"--width=55\",\n            \"--wrap-max-lines=1\",\n            \"--max-line-length=10\", // this gets ignored!\n            \"--max-syntax-highlighting-length=22\",\n        ])\n        .explain_ansi()\n        .with_input(GIT_DIFF_SINGLE_HUNK);\n\n        // eprintln!(\"{}\", result.raw_output);\n        assert_snapshot!(result.output, @r###\"\n        (normal)commit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\n        Author: Dan Davison <dandavison7@gmail.com>\n        Date:   Thu May 14 11:13:17 2020 -0400\n\n            rustfmt\n\n\n        (blue)src/align.rs(normal)\n        (blue)───────────────────────────────────────────────────────(normal)\n\n        (blue)─────────────────────────────(blue)┐(normal)\n        (blue)71(normal):(231) (81)impl(231)<(203)'a(231)> (149)Alignment(231)<(203)'a(normal)> { (blue)│(normal)\n        (blue)─────────────────────────────(blue)┘(normal)\n\n        (blue)│(238) 71 (blue)│(231)        (203)for(231) (i, x_i)(blue)↵(blue) │(238) 71 (blue)│(231)        (203)for(231) (i, x_i)(blue)↵(normal)\n        (blue)│(238)    (blue)│(231) i(normal)n self.x.iter().en(reverse normal)→(blue) │(238)    (blue)│(231) i(normal)n self.x.iter().en(reverse normal)→(normal)\n        (blue)│(238) 72 (blue)│(231)            (203)for(231) (j, (blue)↵(blue) │(238) 72 (blue)│(231)            (203)for(231) (j, (blue)↵(normal)\n        (blue)│(238)    (blue)│(231)y_(normal)j) in self.y.iter((reverse normal)→(blue) │(238)    (blue)│(231)y_(normal)j) in self.y.iter((reverse normal)→(normal)\n        (blue)│(88) 73 (blue)│(231 52)                (81)let(231) (blue)↵(blue) │(28) 73 (blue)│(231 22)                (81)let(231) (blue)↵(normal)\n        (blue)│(88)    (blue)│(231 52)(l(normal 52)eft, diag, up) =(normal 124) ((normal 52) (blue) │(28)    (blue)│(231 22)(l(normal 22)eft, diag, up) =(normal)\n        (blue)│(88) 74 (blue)│(231 52)                    (blue)↵(blue) │(28) 74 (blue)│(231 22)                    (blue)↵(normal)\n        (blue)│(88)    (blue)│(231 52)se(normal 52)lf.index(i, j + 1),(blue) │(28)    (blue)│(231 28)((normal 22)s(normal 22)elf.index(i, j + 1(reverse normal)→(normal)\n        (blue)│(88) 75 (blue)│(231 52)                    (blue)↵(blue) │(28)    (blue)│(normal)\n        (blue)│(88)    (blue)│(231 52)se(normal 52)lf.index(i, j),(normal 52)    (blue) │(28)    (blue)│(normal)\n        (blue)│(88) 76 (blue)│(231 52)                    (blue)↵(blue) │(28)    (blue)│(normal)\n        (blue)│(88)    (blue)│(231 52)se(normal 52)lf.index(i + 1, j),(blue) │(28)    (blue)│(normal)\n        (blue)│(88) 77 (blue)│(231 52)                );(normal 52)   (blue) │(28)    (blue)│(normal)\n        (blue)│(238) 78 (blue)│(231)                (81)let(231) (blue)↵(blue) │(238) 75 (blue)│(231)                (81)let(231) (blue)↵(normal)\n        (blue)│(238)    (blue)│(231)ca(normal)ndidates = [       (blue) │(238)    (blue)│(231)ca(normal)ndidates = [\n        (blue)│(238) 79 (blue)│(231)                    (blue)↵(blue) │(238) 76 (blue)│(231)                    (blue)↵(normal)\n        (blue)│(238)    (blue)│(231)Ce(normal)ll {               (blue) │(238)    (blue)│(231)Ce(normal)ll {\n        (blue)│(238) 80 (blue)│(231)                    (blue)↵(blue) │(238) 77 (blue)│(231)                    (blue)↵(normal)\n        (blue)│(238)    (blue)│(231)  (normal)  parent: left,    (blue) │(238)    (blue)│(231)  (normal)  parent: left,\n        \"###);\n    }\n\n    #[test]\n    fn test_lines_with_syntax_width_unicode() {\n        let result = DeltaTest::with_args(&[\"--max-syntax-highlighting-length=11\"])\n            .explain_ansi()\n            .with_input(GIT_DIFF_ALL_UNICODE_W_FULLWIDTH);\n\n        assert_snapshot!(result.output, @r###\"\n        (normal)\n\n        (blue)src/a(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (231)一æäöø€ÆÄÖ(normal)〇Øß一\n        (231)一æäöø€ÆÄÖ(normal)〇Øß一\n        (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß二(normal)\n        (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß二(normal)\n        (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß二(normal)\n        (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß二(normal)\n        (231)三æäöø€ÆÄÖ(normal)〇Øß三\n        (231)三æäöø€ÆÄÖ(normal)〇Øß三\n        (231)¶(normal)\n        \"###);\n\n        let result = DeltaTest::with_args(&[\n            \"--max-syntax-highlighting-length=10\",\n            \"--max-line-length=16\",\n        ])\n        .explain_ansi()\n        .with_input(GIT_DIFF_ALL_UNICODE_W_FULLWIDTH);\n\n        // eprintln!(\"{}\", result.raw_output);\n        assert_snapshot!(result.output, @r###\"\n        (normal)\n\n        (blue)src/a(normal)\n        (blue)───────────────────────────────────────────(normal)\n\n        (blue)───(blue)┐(normal)\n        (blue)1(normal): (blue)│(normal)\n        (blue)───(blue)┘(normal)\n        (231)一æäöø€ÆÄÖ(normal)〇Øß→\n        (231)一æäöø€ÆÄÖ(normal)〇Øß→\n        (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß→(normal)\n        (normal 52)二æäöø(normal 124)¢(normal 52)ÆÄÖ〇Øß→(normal)\n        (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß→(normal)\n        (231 22)二æäöø(normal 28)€(normal 22)ÆÄÖ(normal 22)〇Øß→(normal)\n        (231)三æäöø€ÆÄÖ(normal)〇Øß→\n        (231)三æäöø€ÆÄÖ(normal)〇Øß→\n        (231)¶(normal)\n        \"###);\n    }\n\n    #[test]\n    fn test_color_only_diff_filter_zero_style_bg() {\n        let result =\n            DeltaTest::with_args(&[\"--color-only\", r##\"--zero-style='syntax \"#1d1f21\" dim'\"##])\n                .set_config(|c| c.available_terminal_width = 80)\n                .explain_ansi()\n                .with_input(GIT_DIFF_OF_WIDTH_81);\n\n        assert_snapshot!(result.output, @r###\"\n        (normal)\n        --- a.rs\n        +++ b.rs\n        @@ -1,3 +1,3 @@\n        (normal 22)+(231)  (203)if(231) (81)let(231) (149)Ok(231)(foo) { (242)//    Works fine with plus hunk lines which are longer     81(normal)\n        (normal 52)-//                            and it works fine with minus lines, however     81(normal)\n        (dim normal 234) (242)//         styled(!) zero lines can only be as long as the width fallback of 80(normal)\n        (dim normal 234) (231)panic!(); (242)/*     if no tty can be queried, and delta crashes on longer lines: 81(normal)\n        \"###);\n    }\n\n    const GIT_DIFF_OF_WIDTH_81: &str = r#\"\n--- a.rs\n+++ b.rs\n@@ -1,3 +1,3 @@\n+  if let Ok(foo) { //    Works fine with plus hunk lines which are longer     81\n-//                            and it works fine with minus lines, however     81\n //         styled(!) zero lines can only be as long as the width fallback of 80\n panic!(); /*     if no tty can be queried, and delta crashes on longer lines: 81\n\"#;\n\n    const GIT_DIFF_SINGLE_HUNK: &str = \"\\\ncommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Thu May 14 11:13:17 2020 -0400\n\n    rustfmt\n\ndiff --git a/src/align.rs b/src/align.rs\nindex 8e37a9e..6ce4863 100644\n--- a/src/align.rs\n+++ b/src/align.rs\n@@ -71,11 +71,8 @@ impl<'a> Alignment<'a> {\n\n         for (i, x_i) in self.x.iter().enumerate() {\n             for (j, y_j) in self.y.iter().enumerate() {\n-                let (left, diag, up) = (\n-                    self.index(i, j + 1),\n-                    self.index(i, j),\n-                    self.index(i + 1, j),\n-                );\n+                let (left, diag, up) =\n+                    (self.index(i, j + 1), self.index(i, j), self.index(i + 1, j));\n                 let candidates = [\n                     Cell {\n                         parent: left,\n\";\n\n    const GIT_DIFF_SINGLE_HUNK_NO_FRAG: &str = \"\\\ndiff --git a/src/delta.rs b/src/delta.rs\nindex e401e269..e5304e01 100644\n--- a/src/delta.rs\n+++ b/src/delta.rs\n@@ -1,4 +1,3 @@\n-use std::borrow::Cow;\n use std::fmt::Write as FmtWrite;\n use std::io::BufRead;\n use std::io::Write;\n\";\n\n    const GIT_DIFF_SINGLE_HUNK_WITH_ANSI_ESCAPE_SEQUENCES: &str = \"\\\n\u001b[1;31mcommit 94907c0f136f46dc46ffae2dc92dca9af7eb7c2e\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Thu May 14 11:13:17 2020 -0400\n\n    rustfmt\n\n\u001b[31mdiff --git a/src/align.rs b/src/align.rs\u001b[m\n\u001b[31mindex 8e37a9e..6ce4863 100644\u001b[m\n\u001b[31m--- a/src/align.rs\u001b[m\n\u001b[31m+++ b/src/align.rs\u001b[m\n\u001b[1;31m@@ -71,11 +71,8 @@\u001b[m \u001b[mimpl<'a> Alignment<'a> {\u001b[m\n \u001b[m\n         for (i, x_i) in self.x.iter().enumerate() {\u001b[m\n             for (j, y_j) in self.y.iter().enumerate() {\u001b[m\n\u001b[1;31m-                let (left, diag, up) = (\u001b[m\n\u001b[1;31m-                    self.index(i, j + 1),\u001b[m\n\u001b[1;31m-                    self.index(i, j),\u001b[m\n\u001b[1;31m-                    self.index(i + 1, j),\u001b[m\n\u001b[1;31m-                );\u001b[m\n\u001b[1;32m+\u001b[m\u001b[1;32m                let (left, diag, up) =\u001b[m\n\u001b[1;32m+\u001b[m\u001b[1;32m                    (self.index(i, j + 1), self.index(i, j), self.index(i + 1, j));\u001b[m\n                 let candidates = [\u001b[m\n                     Cell {\u001b[m\n                         parent: left,\u001b[m\n\u001b[31mdiff --git a/src/bat/mod.rs b/src/bat/mod.rs\u001b[m\n\u001b[31mindex 362ba77..7812e7c 100644\u001b[m\n\u001b[31m--- a/src/bat/mod.rs\u001b[m\n\u001b[31m+++ b/src/bat/mod.rs\u001b[m\n\u001b[1;31m@@ -1,5 +1,5 @@\u001b[m\n pub mod assets;\u001b[m\n pub mod dirs;\u001b[m\n\u001b[1;32m+\u001b[m\u001b[1;32mmod less;\u001b[m\n pub mod output;\u001b[m\n pub mod terminal;\u001b[m\n\u001b[1;31m-mod less;\u001b[m\n\u001b[31mdiff --git a/src/bat/output.rs b/src/bat/output.rs\u001b[m\n\u001b[31mindex d23f5e8..e4ed702 100644\u001b[m\n\u001b[31m--- a/src/bat/output.rs\u001b[m\n\u001b[31m+++ b/src/bat/output.rs\u001b[m\n\u001b[1;31m@@ -8,8 +8,8 @@\u001b[m \u001b[muse std::process::{Child, Command, Stdio};\u001b[m\n \u001b[m\n use shell_words;\u001b[m\n \u001b[m\n\u001b[1;31m-use crate::env;\u001b[m\n use super::less::retrieve_less_version;\u001b[m\n\u001b[1;32m+\u001b[m\u001b[1;32muse crate::env;\u001b[m\n \u001b[m\n #[derive(Debug, Clone, Copy, PartialEq)]\u001b[m\n #[allow(dead_code)]\u001b[m\n\";\n\n    const GIT_DIFF_SINGLE_HUNK_WITH_SEQUENCE_OF_CR_ESCAPE_SEQUENCES_LF: &str = \"\\\n\u001b[1mdiff --git a/src/main.rs b/src/main.rs\u001b[m\n\u001b[1mindex f346a8c..e443b63 100644\u001b[m\n\u001b[1m--- a/src/main.rs\u001b[m\n\u001b[1m+++ b/src/main.rs\u001b[m\n\u001b[36m@@ -1,5 +1,4 @@\u001b[m\n\u001b[31m-deleted line\u001b[m\\r\n\u001b[31m-\u001b[m\\r\n fn main() {\u001b[m\\r\n     println!(\\\"existing line\\\");\u001b[m\\r\n\u001b[32m+\u001b[m\u001b[32m    println!(\\\"added line\\\");\u001b[m\u001b[41m\\r\u001b[m\n }\u001b[m\\r\n\";\n\n    const DIFF_IN_DIFF: &str = \"\\\ndiff --git a/0001-Init.patch b/0001-Init.patch\ndeleted file mode 100644\nindex 5e35a67..0000000\n--- a/0001-Init.patch\n+++ /dev/null\n@@ -1,22 +0,0 @@\n-From d3a8fe3e62be67484729c19e9d8db071f8b1d60c Mon Sep 17 00:00:00 2001\n-From: Maximilian Bosch <maximilian@mbosch.me>\n-Date: Sat, 28 Dec 2019 15:51:48 +0100\n-Subject: [PATCH] Init\n-\n----\n- README.md | 3 +++\n- 1 file changed, 3 insertions(+)\n- create mode 100644 README.md\n-\n-diff --git a/README.md b/README.md\n-new file mode 100644\n-index 0000000..2e6ca05\n---- /dev/null\n-+++ b/README.md\n-@@ -0,0 +1,3 @@\n-+# Test\n-+\n-+abc\n---\n-2.23.1\n-\ndiff --git a/README.md b/README.md\nindex 2e6ca05..8ae0569 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,3 +1 @@\n # Test\n-\n-abc\n\";\n\n    const ADDED_FILE_INPUT: &str = \"\\\ncommit d28dc1ac57e53432567ec5bf19ad49ff90f0f7a5\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Thu Jul 11 10:41:11 2019 -0400\n\n    .\n\ndiff --git a/a.py b/a.py\nnew file mode 100644\nindex 0000000..8c55b7d\n--- /dev/null\n+++ b/a.py\n@@ -0,0 +1,3 @@\n+# hello\n+class X:\n+    pass\";\n\n    const ADDED_EMPTY_FILE: &str = \"\ncommit c0a18433cb6e0ca8f796bfae9e31d95b06b91597 (HEAD -> master)\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sun Apr 26 16:32:58 2020 -0400\n\n    Initial commit\n\ndiff --git a/file b/file\nnew file mode 100644\nindex 0000000..e69de29\n\";\n\n    const ADDED_FILES_DIRECTORY_PATH_CONTAINING_SPACE: &str = \"\ncommit 654e180c8d5329904d584c44b661149f68bd2911 (HEAD -> master)\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sun Apr 26 16:30:58 2020 -0400\n\n    Initial commit\n\ndiff --git a/nospace/file2 b/nospace/file2\nnew file mode 100644\nindex 0000000..af1b8ae\n--- /dev/null\n+++ b/nospace/file2\n@@ -0,0 +1 @@\n+file2 contents\ndiff --git a/with space/file1 b/with space/file1\nnew file mode 100644\nindex 0000000..84d55c5\n--- /dev/null\n+++ b/with space/file1\n@@ -0,0 +1 @@\n+file1 contents\n\";\n\n    const MODIFIED_BASH_AND_CSHARP_FILES: &str = \"\\\ndiff --git a/a b/a\nindex 8c4ae06..0a37de7 100644\n--- a/a\n+++ b/a\n@@ -9,7 +9,7 @@ foobar()\n     dst=$(winpath $2)\n \n     # List the directory.\n-    ls -l $src\n+    ls -la $src\n \n     echo $src '->' $dst\n     rsync -avu --delete $src/ $dst\ndiff --git a/b.cs b/b.cs\nindex 2e73468..8d8b89d 100644\n--- a/b.cs\n+++ b/b.cs\n@@ -6,7 +6,7 @@ class Program\n     {\n         static void Main(string[] args)\n         {\n-            int message = 123;\n+            int message = 456;\n \n             Console.WriteLine(message);\n         }\n\";\n\n    const MODIFIED_DOCKER_AND_RS_FILES: &str = \"\\\ndiff --git a/Dockerfile b/Dockerfile\nindex 0123456..1234567 100644\n--- a/Dockerfile\n+++ b/Dockerfile\n@@ -0,0 +2 @@\n+FROM foo\n+COPY bar baz\ndiff --git a/rs b/rs\nindex 0123456..1234567 100644\n--- a/rs\n+++ b/rs\n@@ -0,0 +2 @@\n+fn foobar() -> i8 {\n+    8\n+}\n\";\n\n    const RENAMED_FILE_INPUT: &str = \"\\\ncommit 1281650789680f1009dfff2497d5ccfbe7b96526\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Wed Jul 17 20:40:23 2019 -0400\n\n    rename\n\ndiff --git a/a.py b/b.py\nsimilarity index 100%\nrename from a.py\nrename to b.py\n\";\n\n    const RENAMED_FILE_WITH_CHANGES_INPUT: &str = \"\\\ncommit 5a6dd572797813525199c32e26471e88732cae1f\nAuthor: Waldir Pimenta <waldyrious@gmail.com>\nDate:   Sat Jul 11 19:14:43 2020 +0100\n\n    Rename font-dejavusansmono-nerd-font→font-dejavu-sans-mono-nerd-font\n    \n    This makes the filename more readable, and is consistent with `font-dejavu-sans-mono-for-powerline`.\n\ndiff --git a/Casks/font-dejavusansmono-nerd-font.rb b/Casks/font-dejavu-sans-mono-nerd-font.rb\nsimilarity index 95%\nrename from Casks/font-dejavusansmono-nerd-font.rb\nrename to Casks/font-dejavu-sans-mono-nerd-font.rb\nindex 2c8b440f..d1c1b0f3 100644\n--- a/Casks/font-dejavusansmono-nerd-font.rb\n+++ b/Casks/font-dejavu-sans-mono-nerd-font.rb\n@@ -1,4 +1,4 @@\n-cask 'font-dejavusansmono-nerd-font' do\n+cask 'font-dejavu-sans-mono-nerd-font' do\n   version '2.1.0'\n   sha256 '3fbcc4904c88f68d24c8b479784a1aba37f2d78b1162d21f6fc85a58ffcc0e0f'\n \n\";\n\n    const DIFF_UNIFIED_TWO_FILES: &str = \"\\\n--- one.rs\t2019-11-20 06:16:08.000000000 +0100\n+++ src/two.rs\t2019-11-18 18:41:16.000000000 +0100\n@@ -5,3 +5,3 @@\n println!(\\\"Hello world\\\");\n-println!(\\\"Hello rust\\\");\n+println!(\\\"Hello ruster\\\");\n\n@@ -43,6 +43,6 @@\n // Some more changes\n-Change one\n Unchanged\n+Change two\n Unchanged\n-Change three\n+Change four\n Unchanged\n\";\n\n    const DIFF_UNIFIED_TWO_DIRECTORIES: &str = \"\\\ndiff -u a/different b/different\n--- a/different\t2019-11-20 06:47:56.000000000 +0100\n+++ b/different\t2019-11-20 06:47:56.000000000 +0100\n@@ -1,3 +1,3 @@\n A simple file for testing\n the diff command in unified mode\n-This is different from b\n+This is different from a\nOnly in a/: just_a\nOnly in b/: just_b\n--- a/more_difference\t2019-11-20 06:47:56.000000000 +0100\n+++ b/more_difference\t2019-11-20 06:47:56.000000000 +0100\n@@ -1,3 +1,3 @@\n Another different file\n with a name that start with 'm' making it come after the 'Only in'\n-This is different from b\n+This is different from a\n\";\n\n    const DIFF_UNIFIED_CONCATENATED: &str = \"\\\n--- 1/x 2022-03-06 11:16:06.313403500 -0800\n+++ 2/x 2022-03-06 11:18:14.083403500 -0800\n@@ -1,5 +1,5 @@\n This\n-is\n+IS\n a\n few\n-lines.\n+LINES.\n--- 1/y 2022-03-06 11:16:44.483403500 -0800\n+++ 2/y 2022-03-06 11:16:55.213403500 -0800\n@@ -1,4 +1,4 @@\n This\n is\n-another\n+ANOTHER\n test.\n\";\n\n    const NOT_A_DIFF_OUTPUT: &str = \"\\\nHello world\nThis is a regular file that contains:\n--- some/file/here 06:47:56.000000000 +0100\n+++ some/file/there 06:47:56.000000000 +0100\n Some text here\n-Some text with a minus\n+Some text with a plus\n\";\n\n    const SUBMODULE_DIRTY: &str = \"\\\ndiff --git a/some_submodule b/some_submodule\nindex ca030fd1a0..803be42ca4 160000\n--- a/some_submodule\n+++ b/some_submodule\n@@ -1 +1 @@\n-Subproject commit ca030fd1a02225a6fc1a834c480276d9c97a8c6f\n+Subproject commit 803be42ca46af0fbc65b54a9abfb499389516939-dirty\n\";\n\n    // See etc/examples/662-submodules\n    // diff.submodule = log\n    const SUBMODULE_DIFF_LOG: &str = \"\\\ncommit ccb444baa861fdcb14d411b471a74614ed28776d\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sat Aug 21 18:56:34 2021 -0700\n\n    Update all submodules\n\nSubmodule submoduleA f4f55af..310b551 (rewind):\n  < Submodule A extra change 2\n  < Submodule A extra change 1\n  < Submodule A initial commit 4\n  < Submodule A initial commit 3\nSubmodule submoduleB 0ffa700..0c8b00d:\n  > Submodule B stage change 3\n  > Submodule B stage change 2\n  > Submodule B stage change 1\nSubmodule submoduleC 9f3b744...e04f848:\n  > Submodule C stage change 3\n  > Submodule C stage change 2\n  < Submodule C extra change 2\n  > Submodule C stage change 1\n  < Submodule C extra change 1\n\";\n\n    const SUBMODULE_DIFF_LOG_EXPECTED_OUTPUT: &str = \"\\\ncommit ccb444baa861fdcb14d411b471a74614ed28776d\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sat Aug 21 18:56:34 2021 -0700\n\n    Update all submodules\n\n\nSubmodule submoduleA f4f55af..310b551 (rewind):\n─────────────────────────────────────────────────\n  < Submodule A extra change 2\n  < Submodule A extra change 1\n  < Submodule A initial commit 4\n  < Submodule A initial commit 3\n\nSubmodule submoduleB 0ffa700..0c8b00d:\n─────────────────────────────────────────────────\n  > Submodule B stage change 3\n  > Submodule B stage change 2\n  > Submodule B stage change 1\n\nSubmodule submoduleC 9f3b744...e04f848:\n─────────────────────────────────────────────────\n  > Submodule C stage change 3\n  > Submodule C stage change 2\n  < Submodule C extra change 2\n  > Submodule C stage change 1\n  < Submodule C extra change 1\n\";\n\n    const SUBMODULE_CONTAINS_UNTRACKED_CONTENT_INPUT: &str = \"\\\n--- a\n+++ b\n@@ -2,3 +2,4 @@\n x\n y\n z\n-a\n+b\n z\n y\n x\nSubmodule x/y/z contains untracked content\n\";\n\n    const TRIPLE_DASH_AT_BEGINNING_OF_LINE_IN_CODE: &str = \"\\\ncommit d481eaa8a249c6daecb05a97e8af1b926b0c02be\nAuthor: FirstName LastName <me@gmail.com>\nDate:   Thu Feb 6 14:02:49 2020 -0500\n\n    Reorganize\n\ndiff --git a/src/Category/Coproduct.hs b/src/Category/Coproduct.hs\ndeleted file mode 100644\nindex ba28bfd..0000000\n--- a/src/Category/Coproduct.hs\n+++ /dev/null\n@@ -1,18 +0,0 @@\n-{-# LANGUAGE InstanceSigs #-}\n-module Category.Coproduct where\n-\n-import Prelude hiding ((.), id)\n-\n-import Control.Category\n-\n-import Category.Hacks\n-\n--- data (p ∨ q) (a :: (k, k)) (b :: (k, k)) where\n---   (:<:) :: p a b -> (∨) p q '(a, c) '(b, d)\n---   (:>:) :: q c d -> (∨) p q '(a, c) '(b, d)\n---\n--- instance (Category p, Category q) => Category (p ∧ q) where\n---   (p1 :×: q1) . (p2 :×: q2) = (p1 . p2) :×: (q1 . q2)\n---\n---   id :: forall a. (p ∧ q) a a\n---   id | IsTup <- isTup @a  = id :×: id\n\";\n\n    const BINARY_FILES_DIFFER: &str = \"\ncommit 7d58b736b09788d65392cef1bf3dcc647165f7e7 (HEAD -> main)\nAuthor: Sondeyy <nils.boettcher@posteo.de>\nDate:   Sat Aug 5 16:22:38 2023 +0200\n\n    modified bin file\n\ndiff --git a/foo b/foo\nindex c9bbb35..5fc172d 100644\nBinary files a/foo and b/foo differ\n\";\n\n    const BINARY_FILE_ADDED: &str = \"\ncommit 7d58b736b09788d65392cef1bf3dcc647165f7e7 (HEAD -> main)\nAuthor: Sondeyy <nils.boettcher@posteo.de>\nDate:   Sat Aug 5 16:22:38 2023 +0200\n\n    added binary file\n\ndiff --git a/foo b/foo\nnew file mode 100644\nindex c9bbb35..5fc172d 100644\nBinary files /dev/null and b/foo differ\n\";\n\n    const BINARY_FILE_REMOVED: &str = \"\ncommit 7d58b736b09788d65392cef1bf3dcc647165f7e7 (HEAD -> main)\nAuthor: Sondeyy <nils.boettcher@posteo.de>\nDate:   Sat Aug 5 16:22:38 2023 +0200\n\n    removed binary file\n\ndiff --git a/foo b/foo\ndeleted file mode 100644\nindex c9bbb35..5fc172d 100644\nBinary files a/foo and /dev/null differ\n\";\n\n    const BINARY_FILES_DIFFER_AFTER_OTHER: &str = \"\ndiff --git a/foo b/bar\nsimilarity index 100%\nrename from foo\nrename to bar\ndiff --git a/qux b/qux\nindex 00de669..d47cd84 100644\nBinary files a/qux and b/qux differ\n\";\n\n    const BINARY_FILES_DIFFER_BETWEEN_OTHER: &str = \"\\\ndiff --git a/foo b/foo\nindex 7b57bd29ea8a..4d3b8c11a4a2 100644\n--- a/foo\n+++ b/foo\n@@ -1 +1 @@\n-abc\n+def\ndiff --git a/qux b/qux\nindex 00de669..d47cd84 100644\nBinary files a/qux and b/qux differ\ndiff --git a/bar b/bar\nindex 7b57bd29ea8a..4d3b8c11a4a2 100644\n--- a/bar\n+++ b/bar\n@@ -1 +1 @@\n-123\n+456\n\";\n\n    const DIFF_NO_INDEX_BINARY_FILES_DIFFER: &str = \"\\\ndiff --git foo bar sub dir/foo bar baz\nindex 329fbf5..481817c 100644\nBinary files foo bar and sub dir/foo bar baz differ\n\";\n\n    const GIT_DIFF_WITH_COPIED_FILE: &str = \"\ncommit f600ed5ced4d98295ffa97571ed240cd86c34ac6 (HEAD -> master)\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Fri Nov 20 20:18:30 2020 -0500\n\n    copy\n\ndiff --git a/first_file b/copied_file\nsimilarity index 100%\ncopy from first_file\ncopy to copied_file\n\";\n\n    // git --no-pager show -p --cc --format=  --numstat --stat\n    // #121\n    const DIFF_WITH_UNRECOGNIZED_PRECEDING_MATERIAL_1: &str = \"\n1\t5\tsrc/delta.rs\n src/delta.rs | 6 +-----\n 1 file changed, 1 insertion(+), 5 deletions(-)\n\ndiff --git a/src/delta.rs b/src/delta.rs\nindex da10d2b..39cff42 100644\n--- a/src/delta.rs\n+++ b/src/delta.rs\n@@ -67,11 +67,6 @@ where\n     let source = detect_source(&mut lines_peekable);\n\n     for raw_line in lines_peekable {\n-        if source == Source::Unknown {\n-            writeln!(painter.writer, \\\"{}\\\", raw_line)?;\n-            continue;\n-        }\n-\n         let line = strip_ansi_codes(&raw_line).to_string();\n         if line.starts_with(\\\"commit \\\") {\n             painter.paint_buffered_lines();\n@@ -674,6 +669,7 @@ mod tests {\n     }\n\n     #[test]\n+    #[ignore] // Ideally, delta would make this test pass.\n     fn test_delta_ignores_non_diff_input() {\n         let options = get_command_line_options();\n         let output = strip_ansi_codes(&run_delta(NOT_A_DIFF_OUTPUT, &options)).to_string();\n\";\n\n    // git stash show --stat --patch\n    // #100\n    const DIFF_WITH_UNRECOGNIZED_PRECEDING_MATERIAL_2: &str = \"\n src/cli.rs    | 2 ++\n src/config.rs | 4 +++-\n 2 files changed, 5 insertions(+), 1 deletion(-)\n\ndiff --git a/src/cli.rs b/src/cli.rs\nindex bd5f1d5..55ba315 100644\n--- a/src/cli.rs\n+++ b/src/cli.rs\n@@ -286,6 +286,8 @@ pub fn process_command_line_arguments<'a>(\n         }\n     };\n\n+    println!(\\\"true_color is {}\\\", true_color);\n+\n     config::get_config(\n         opt,\n         &assets.syntax_set,\ndiff --git a/src/config.rs b/src/config.rs\nindex cba6064..ba1a4de 100644\n--- a/src/config.rs\n+++ b/src/config.rs\n@@ -181,7 +181,9 @@ fn color_from_rgb_or_ansi_code(s: &str) -> Color {\n         process::exit(1);\n     };\n     if s.starts_with(\\\"#\\\") {\n-        Color::from_str(s).unwrap_or_else(|_| die())\n+        let col = Color::from_str(s).unwrap_or_else(|_| die());\n+        println!(\\\"{} => {} {} {} {}\\\", s, col.r, col.g, col.b, col.a);\n+        col\n     } else {\n         s.parse::<u8>()\n             .ok()\n\";\n\n    const DIFF_WITH_MERGE_CONFLICT: &str = r#\"\ndiff --cc Makefile\nindex 759070d,3daf9eb..0000000\n--- a/Makefile\n+++ b/Makefile\n@@@ -4,13 -4,16 +4,37 @@@ build\n  lint:\n  \tcargo clippy\n\n++<<<<<<< Updated upstream\n +test: unit-test end-to-end-test\n +\n +unit-test:\n +\tcargo test\n +\n +end-to-end-test: build\n +\tbash -c \"diff -u <(git log -p) <(git log -p | target/release/delta --color-only | perl -pe 's/\\e\\[[0-9;]*m//g')\"\n++||||||| constructed merge base\n++test:\n++\tcargo test\n++\tbash -c \"diff -u <(git log -p) \\\n++                     <(git log -p | delta --width variable \\\n++                                          --tabs 0 \\\n++\t                                      --retain-plus-minus-markers \\\n++                                          --commit-style plain \\\n++                                          --file-style plain \\\n++                                          --hunk-style plain \\\n++                                  | ansifilter)\"\n++=======\n+ test:\n+ \tcargo test --release\n+ \tbash -c \"diff -u <(git log -p) \\\n+                      <(git log -p | target/release/delta --width variable \\\n+                                           --tabs 0 \\\n+ \t                                      --retain-plus-minus-markers \\\n+                                           --commit-style plain \\\n+                                           --file-style plain \\\n+                                           --hunk-style plain \\\n+                                   | ansifilter)\" > /dev/null\n++>>>>>>> Stashed changes\n\n  release:\n  \t@make -f release.Makefile release\n\"#;\n\n    // A bug appeared with the change to the tokenization regex in\n    // b5d87819a1f76de9ef8f16f1bfb413468af50b62. The bug was triggered by this diff.\n    const DIFF_EXHIBITING_TRUNCATION_BUG: &str = r#\"\ndiff --git a/a.rs b/b.rs\nindex cba6064..ba1a4de 100644\n--- a/a.rs\n+++ b/b.rs\n@@ -1,1 +1,1 @@\n- Co\n+ let col = Co\n\"#;\n\n    // A bug appeared with the change to the state machine parser in\n    // 5adc445ec38142046fc4cc4518e7019fe54f2e35. The bug was triggered by this diff. The bug was\n    // present prior to that commit.\n    const DIFF_EXHIBITING_STATE_MACHINE_PARSER_BUG: &str = r\"\ndiff --git a/src/delta.rs b/src/delta.rs\nindex 20aef29..20416c0 100644\n--- a/src/delta.rs\n+++ b/src/delta.rs\n@@ -994,0 +1014,2 @@ index cba6064..ba1a4de 100644\n+++ a\n+++ b\n\";\n\n    const DIFF_EXHIBITING_PARSE_FILE_NAME_BUG: &str = r\"\ndiff --git c/a i/a\nnew file mode 100644\nindex 0000000..eea55b6\n--- /dev/null\n+++ i/a\n@@ -0,0 +1 @@\n+++ a\n\";\n\n    const DIFF_WITH_REMOVED_EMPTY_LINE: &str = r\"\ndiff --git i/a w/a\nindex 8b13789..e69de29 100644\n--- i/a\n+++ w/a\n@@ -1 +0,0 @@\n-\n\";\n\n    const DIFF_WITH_ADDED_EMPTY_LINE: &str = r\"\ndiff --git i/a w/a\nindex e69de29..8b13789 100644\n--- i/a\n+++ w/a\n@@ -0,0 +1 @@\n+\n\";\n\n    const DIFF_WITH_SINGLE_CHARACTER_LINE: &str = r\"\ndiff --git a/Person.java b/Person.java\nnew file mode 100644\nindex 0000000..c6c830c\n--- /dev/null\n+++ b/Person.java\n@@ -0,0 +1,7 @@\n+import lombok.Data;\n+\n+@Data\n+public class Person {\n+  private Long id;\n+  private String name;\n+}\n\";\n\n    const DIFF_WITH_WHITESPACE_ERROR: &str = r\"\ndiff --git c/a i/a\nnew file mode 100644\nindex 0000000..8d1c8b6\n--- /dev/null\n+++ i/a\n@@ -0,0 +1 @@\n+ \n\";\n\n    const DIFF_WITH_REMOVED_WHITESPACE_ERROR: &str = r\"\ndiff --git i/a w/a\nindex 8d1c8b6..8b13789 100644\n--- i/a\n+++ w/a\n@@ -1 +1 @@\n- \n+\n\";\n\n    const DIFF_WITH_WHITESPACE_UNRELATED_EDIT_ERROR: &str = r\"\ndiff --git a/foo b/foo\nindex 8d1c8b6..8b13789 100644\n--- a/foo\n+++ b/foo\n@@ -1 +1 @@\n-some line with trailing spaces    \n+some new line with trailing spaces    \n\";\n\n    const DIFF_WITH_WHITESPACE_EDIT_ERROR: &str = r\"\ndiff --git a/foo b/foo\nindex 8d1c8b6..8b13789 100644\n--- a/foo\n+++ b/foo\n@@ -1 +1 @@\n-same line with different number of trailing spaces   \n+same line with different number of trailing spaces    \n\";\n\n    const DIFF_WITH_WHITESPACE_AFTER_TEXT_ERROR: &str = r\"\ndiff --git c/a i/a\nnew file mode 100644\nindex 0000000..8d1c8b6\n--- /dev/null\n+++ i/a\n@@ -0,0 +1 @@\n+foo bar  \n\";\n\n    const DIFF_WITH_REMOVED_WHITESPACE_AFTER_TEXT_ERROR: &str = r\"\ndiff --git i/a w/a\nindex 8d1c8b6..8b13789 100644\n--- i/a\n+++ w/a\n@@ -1 +0,0 @@\n-foo bar  \n\";\n    const DIFF_WITH_ADDED_WHITESPACE_EMPTY_LINE_ERROR: &str = r\"\ndiff --git a/a b/a\nindex 0ec702f..8c75341 100644\n--- a/a\n+++ b/a\n@@ -1,0 +1,0 @@\n-  \n+   \n\";\n\n    // Delta handling is different for each of theses cases:\n    //      * Only space in the line is added or partially removed\n    //      * Space after text added or partially removed\n    //      * Space in a unmodified part of the line\n    // This test regroup theses 5 cases.\n    const DIFF_WITH_WHITESPACE_COMPLEX_ERROR: &str = r\"\ndiff --git a/a b/a\nindex 0ec702f..8c75341 100644\n--- a/a\n+++ b/a\n@@ -1,5 +1,5 @@\n-  \n-  \n-  foo0  \n-  foo1  \n-  bar  \n+ \n+   \n+  foo0 \n+  foo1   \n+  bAr  \n\";\n\n    const DIFF_WITH_TWO_ADDED_LINES: &str = r#\"\ndiff --git a/example.c b/example.c\nindex 386f291a..22666f79 100644\n--- a/example.c\n+++ b/example.c\n@@ -1,6 +1,8 @@\n int other_routine() {\n+    return 0;\n }\n \n int main() {\n     puts(\"Hello, world!\");\n+    return 0;\n }\n\"#;\n\n    const DIFF_WITH_TWO_ADDED_LINES_CREATED_BY_GIT_DIFF_U0: &str = r#\"\ndiff --git a/example.c b/example.c\nindex 386f291a..22666f79 100644\n--- a/example.c\n+++ b/example.c\n@@ -1,0 +2 @@ int other_routine() {\n+    return 0;\n@@ -5,0 +7 @@ int main() {\n+    return 0;\n\"#;\n\n    const GIT_DIFF_UNDER_COLOR_MOVED_DIMMED_ZEBRA_WITH_ANSI_ESCAPE_SEQUENCES: &str = r#\"\n\u001b[33mcommit 8406b1996daa176ca677ac33b18f071b766c87a5\u001b[m\nAuthor: Dan Davison <dandavison7@gmail.com>\nDate:   Sun Nov 1 15:28:53 2020 -0500\n\n    A change to investigate color-moved behavior, see #371\n\n\u001b[1mdiff --git a/etc/performance/all-benchmarks.json b/etc/performance/all-benchmarks.json\u001b[m\n\u001b[1mindex f86240e7..f707e5fd 100644\u001b[m\n\u001b[1m--- a/etc/performance/all-benchmarks.json\u001b[m\n\u001b[1m+++ b/etc/performance/all-benchmarks.json\u001b[m\n\u001b[31m@@ -7,9 +7,9 @@\u001b[m\n     \"median\": 0.004928057465000001,\u001b[m\n     \"message\": \"cargo new delta\\n\",\u001b[m\n     \"min\": 0.003220796465,\u001b[m\n\u001b[2m-    \"stddev\": 0.004157057519168492,\u001b[m\n     \"system\": 0.0016010150000000001,\u001b[m\n     \"time\": 0.013288195465,\u001b[m\n\u001b[2m+\u001b[m\u001b[2m    \"stddev\": 0.004157057519168492,\u001b[m\n     \"user\": 0.0013687749999999996\u001b[m\n   },\u001b[m\n   {\u001b[m\n\u001b[31m@@ -26649,4 +26649,4 @@\u001b[m\n     \"time\": 1.8524859272050003,\u001b[m\n     \"user\": 1.8240279649999998\u001b[m\n   }\u001b[m\n\u001b[31m-]\u001b[m\n\\ No newline at end of file\u001b[m\n\u001b[32m+\u001b[m\u001b[32m]\u001b[m\n\"#;\n\n    const GIT_DIFF_FILE_MODE_CHANGE_WITH_RENAME: &str = \"\ndiff --git a/old-longer-name b/shorter-name\nold mode 100644\nnew mode 100755\nsimilarity index 100%\nrename from old-longer-name\nrename to shorter-name\n\";\n\n    const GIT_DIFF_FILE_MODE_CHANGE_GAIN_EXECUTABLE_BIT: &str = \"\ndiff --git a/src/delta.rs b/src/delta.rs\nold mode 100644\nnew mode 100755\n\";\n\n    const GIT_DIFF_FILE_MODE_CHANGE_LOSE_EXECUTABLE_BIT: &str = \"\ndiff --git a/src/delta.rs b/src/delta.rs\nold mode 100755\nnew mode 100644\n\";\n\n    const GIT_DIFF_FILE_MODE_CHANGE_UNEXPECTED_BITS: &str = \"\ndiff --git a/src/delta.rs b/src/delta.rs\nold mode 100700\nnew mode 100644\n\";\n\n    // This output can be generated with `git diff -D`\n    const GIT_DIFF_FILE_DELETED_WITHOUT_PREIMAGE: &str = \"\ndiff --git a/foo.bar b/foo.bar\ndeleted file mode 100644\nindex e019be0..0000000\n\";\n\n    // This output can be generated with `git diff -D`\n    const GIT_DIFF_FILES_DELETED_WITHOUT_PREIMAGE: &str = \"\ndiff --git a/foo b/foo\ndeleted file mode 100644\nindex e019be0..0000000\ndiff --git a/bar b/bar\ndeleted file mode 100644\nindex e019be0..0000000\n\";\n\n    const GIT_DIFF_FILE_MODE_CHANGE_WITH_DIFF: &str = \"\ndiff --git a/src/script b/src/script\nold mode 100644\nnew mode 100755\nindex d00491f..0cfbf08 100644\n--- a/src/script\n+++ b/src/script\n@@ -1 +1 @@\n-#!/bin/sh\n+#!/bin/bash\n\";\n\n    const GIT_DIFF_NO_INDEX_FILENAMES_WITH_SPACES: &str = \"\ndiff --git a/a b b/c d\nindex d00491f..0cfbf08 100644\n--- a/a b\t\n+++ b/c d\t\n@@ -1 +1 @@\n-1\n+2\n\";\n\n    const GIT_LOG_FILE_REMOVAL_IN_FIRST_COMMIT: &str = \"\ncommit 4117f616160180c0c57ea64840eadd08b7fa32a4\nAuthor: Björn Steinbrink <bsteinbr@gmail.com>\nDate:   Tue Jun 21 14:51:59 2022 +0200\n\n    remove file\n\ndiff --git a a\ndeleted file mode 100644\nindex e69de29..0000000\n\ncommit 190cce5dffeb9050fd6a27780f16d84b19c07dc0\nAuthor: Björn Steinbrink <bsteinbr@gmail.com>\nDate:   Tue Jun 21 14:48:20 2022 +0200\n\n    add file\n\ndiff --git a a\nnew file mode 100644\nindex 0000000..e69de29\n\";\n\n    const GIT_DIFF_ALL_UNICODE_W_FULLWIDTH: &str = \"\ndiff --git a/src/a b/src/a\nindex 53f98b6..14d6caa 100644\n--- a/src/a\n+++ b/src/a\n@@ -1,7 +1,7 @@\n 一æäöø€ÆÄÖ〇Øß一\n 一æäöø€ÆÄÖ〇Øß一\n-二æäöø¢ÆÄÖ〇Øß二\n-二æäöø¢ÆÄÖ〇Øß二\n+二æäöø€ÆÄÖ〇Øß二\n+二æäöø€ÆÄÖ〇Øß二\n 三æäöø€ÆÄÖ〇Øß三\n 三æäöø€ÆÄÖ〇Øß三\n ¶\n\";\n}\n"
  },
  {
    "path": "src/tests/test_utils.rs",
    "content": "#![cfg(test)]\n/// Return true iff `s` contains exactly one occurrence of substring `t`.\npub fn contains_once(s: &str, t: &str) -> bool {\n    match (s.find(t), s.rfind(t)) {\n        (Some(i), Some(j)) => i == j,\n        _ => false,\n    }\n}\n\n#[allow(dead_code)]\npub fn print_with_line_numbers(s: &str) {\n    for (i, t) in s.lines().enumerate() {\n        println!(\"{:>2}│ {}\", i + 1, t);\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use crate::tests::test_utils::*;\n\n    #[test]\n    fn test_contains_once_1() {\n        assert!(contains_once(\"\", \"\"));\n    }\n\n    #[test]\n    fn test_contains_once_2() {\n        assert!(contains_once(\"a\", \"a\"));\n    }\n\n    #[test]\n    fn test_contains_once_3() {\n        assert!(!contains_once(\"\", \"a\"));\n    }\n\n    #[test]\n    fn test_contains_once_4() {\n        assert!(!contains_once(\"a\", \"b\"));\n    }\n\n    #[test]\n    fn test_contains_once_5() {\n        assert!(!contains_once(\"a a\", \"a\"));\n    }\n\n    #[test]\n    fn test_contains_once_6() {\n        assert!(contains_once(\"a b\", \"b\"));\n    }\n}\n"
  },
  {
    "path": "src/utils/bat/LICENSE",
    "content": "Files under this directory (i.e. src/bat_utils/) originated as copies of\nfiles from the `bat` project (https://github.com/sharkdp/bat), with\nsubsequent modifications, as recorded in git history. The `bat`\nlicense is reproduced below.\n\n-----------------------------------------------------------------------------\n\nCopyright (c) 2018 bat-developers (https://github.com/sharkdp/bat).\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "src/utils/bat/assets.rs",
    "content": "// Based on code from https://github.com/sharkdp/bat a1b9334a44a2c652f52dddaa83dbacba57372468\n// See src/utils/bat/LICENSE\n\nuse std::io::{self, Write};\n\nuse ansi_term::Colour::Green;\nuse ansi_term::Style;\nuse bat;\n\nuse crate::utils;\n\npub fn load_highlighting_assets() -> bat::assets::HighlightingAssets {\n    bat::assets::HighlightingAssets::from_cache(utils::bat::dirs::PROJECT_DIRS.cache_dir())\n        .unwrap_or_else(|_| bat::assets::HighlightingAssets::from_binary())\n}\n\npub fn list_languages() -> std::io::Result<()> {\n    let assets = utils::bat::assets::load_highlighting_assets();\n    let mut languages = assets\n        .get_syntaxes()\n        .unwrap()\n        .iter()\n        .filter(|syntax| !syntax.hidden && !syntax.file_extensions.is_empty())\n        .collect::<Vec<_>>();\n    languages.sort_by_key(|lang| lang.name.to_uppercase());\n\n    let loop_through = false;\n    let colored_output = true;\n\n    let stdout = io::stdout();\n    let mut stdout = stdout.lock();\n\n    if loop_through {\n        for lang in languages {\n            writeln!(stdout, \"{}:{}\", lang.name, lang.file_extensions.join(\",\"))?;\n        }\n    } else {\n        let longest = languages\n            .iter()\n            .map(|syntax| syntax.name.len())\n            .max()\n            .unwrap_or(32); // Fallback width if they have no language definitions.\n\n        let comma_separator = \", \";\n        let separator = \" \";\n        // Line-wrapping for the possible file extension overflow.\n        let desired_width = 100;\n\n        let style = if colored_output {\n            Green.normal()\n        } else {\n            Style::default()\n        };\n\n        for lang in languages {\n            write!(stdout, \"{:width$}{}\", lang.name, separator, width = longest)?;\n\n            // Number of characters on this line so far, wrap before `desired_width`\n            let mut num_chars = 0;\n\n            let mut extension = lang.file_extensions.iter().peekable();\n            while let Some(word) = extension.next() {\n                // If we can't fit this word in, then create a line break and align it in.\n                let new_chars = word.len() + comma_separator.len();\n                if num_chars + new_chars >= desired_width {\n                    num_chars = 0;\n                    write!(stdout, \"\\n{:width$}{}\", \"\", separator, width = longest)?;\n                }\n\n                num_chars += new_chars;\n                write!(stdout, \"{}\", style.paint(&word[..]))?;\n                if extension.peek().is_some() {\n                    write!(stdout, \"{comma_separator}\")?;\n                }\n            }\n            writeln!(stdout)?;\n        }\n    }\n\n    Ok(())\n}\n"
  },
  {
    "path": "src/utils/bat/dirs.rs",
    "content": "// Based on code from https://github.com/sharkdp/bat e981e974076a926a38f124b7d8746de2ca5f0a28\n// See src/utils/bat/LICENSE\n\nuse lazy_static::lazy_static;\nuse std::path::{Path, PathBuf};\n\n#[cfg(target_os = \"macos\")]\nuse std::env;\n\n/// Wrapper for 'dirs' that treats MacOS more like Linux, by following the XDG specification.\n/// This means that the `XDG_CACHE_HOME` and `XDG_CONFIG_HOME` environment variables are\n/// checked first. The fallback directories are `~/.cache/bat` and `~/.config/bat`, respectively.\npub struct BatProjectDirs {\n    cache_dir: PathBuf,\n}\n\nimpl BatProjectDirs {\n    fn new() -> Option<BatProjectDirs> {\n        #[cfg(target_os = \"macos\")]\n        let cache_dir_op = env::var_os(\"XDG_CACHE_HOME\")\n            .map(PathBuf::from)\n            .filter(|p| p.is_absolute())\n            .or_else(|| dirs::home_dir().map(|d| d.join(\".cache\")));\n\n        #[cfg(not(target_os = \"macos\"))]\n        let cache_dir_op = dirs::cache_dir();\n\n        let cache_dir = cache_dir_op.map(|d| d.join(\"bat\"))?;\n\n        Some(BatProjectDirs { cache_dir })\n    }\n\n    pub fn cache_dir(&self) -> &Path {\n        &self.cache_dir\n    }\n}\n\nlazy_static! {\n    pub static ref PROJECT_DIRS: BatProjectDirs =\n        BatProjectDirs::new().unwrap_or_else(|| panic!(\"Could not get home directory\"));\n}\n"
  },
  {
    "path": "src/utils/bat/less.rs",
    "content": "use std::path::PathBuf;\nuse std::process::Command;\n\npub fn retrieve_less_version(less_path: PathBuf) -> Option<usize> {\n    let cmd = Command::new(less_path).arg(\"--version\").output().ok()?;\n    parse_less_version(&cmd.stdout)\n}\n\nfn parse_less_version(output: &[u8]) -> Option<usize> {\n    if output.starts_with(b\"less \") {\n        let version = std::str::from_utf8(&output[5..]).ok()?;\n        let end = version.find(|c: char| !c.is_ascii_digit())?;\n        version[..end].parse::<usize>().ok()\n    } else {\n        None\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::parse_less_version;\n\n    #[test]\n    fn test_parse_less_version_487() {\n        let output = b\"less 487 (GNU regular expressions)\nCopyright (C) 1984-2016  Mark Nudelman\n\nless comes with NO WARRANTY, to the extent permitted by law.\nFor information about the terms of redistribution,\nsee the file named README in the less distribution.\nHomepage: http://www.greenwoodsoftware.com/less\";\n\n        assert_eq!(Some(487), parse_less_version(output));\n    }\n\n    #[test]\n    fn test_parse_less_version_529() {\n        let output = b\"less 529 (Spencer V8 regular expressions)\nCopyright (C) 1984-2017  Mark Nudelman\n\nless comes with NO WARRANTY, to the extent permitted by law.\nFor information about the terms of redistribution,\nsee the file named README in the less distribution.\nHomepage: http://www.greenwoodsoftware.com/less\";\n\n        assert_eq!(Some(529), parse_less_version(output));\n    }\n\n    #[test]\n    fn test_parse_less_version_551() {\n        let output = b\"less 551 (PCRE regular expressions)\nCopyright (C) 1984-2019  Mark Nudelman\n\nless comes with NO WARRANTY, to the extent permitted by law.\nFor information about the terms of redistribution,\nsee the file named README in the less distribution.\nHome page: http://www.greenwoodsoftware.com/less\";\n\n        assert_eq!(Some(551), parse_less_version(output));\n    }\n\n    #[test]\n    fn test_parse_less_version_wrong_program() {\n        let output = b\"more from util-linux 2.34\";\n\n        assert_eq!(None, parse_less_version(output));\n    }\n}\n"
  },
  {
    "path": "src/utils/bat/mod.rs",
    "content": "pub mod assets;\npub mod dirs;\nmod less;\npub mod output;\npub mod terminal;\n"
  },
  {
    "path": "src/utils/bat/output.rs",
    "content": "// https://github.com/sharkdp/bat a1b9334a44a2c652f52dddaa83dbacba57372468\n// src/output.rs\n// See src/utils/bat/LICENSE\nuse std::ffi::OsString;\nuse std::io::{self, Write};\nuse std::path::PathBuf;\nuse std::process::{Child, Command, Stdio};\n\nuse super::less::retrieve_less_version;\n\nuse crate::config;\nuse crate::env::DeltaEnv;\nuse crate::fatal;\nuse crate::features::navigate;\n\n#[derive(Debug, Default)]\npub struct PagerCfg {\n    pub navigate: bool,\n    pub show_themes: bool,\n    pub navigate_regex: Option<String>,\n}\n\nimpl From<&config::Config> for PagerCfg {\n    fn from(cfg: &config::Config) -> Self {\n        PagerCfg {\n            navigate: cfg.navigate,\n            show_themes: cfg.show_themes,\n            navigate_regex: cfg.navigate_regex.clone(),\n        }\n    }\n}\nimpl From<config::Config> for PagerCfg {\n    fn from(cfg: config::Config) -> Self {\n        (&cfg).into()\n    }\n}\n\n#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]\n#[allow(dead_code)]\npub enum PagingMode {\n    Always,\n    QuitIfOneScreen,\n    #[default]\n    Never,\n    Capture,\n}\nconst LESSUTFCHARDEF: &str = \"LESSUTFCHARDEF\";\nuse crate::errors::*;\n\npub enum OutputType {\n    Pager(Child),\n    Stdout(io::Stdout),\n    Capture,\n}\n\nimpl Drop for OutputType {\n    fn drop(&mut self) {\n        if let OutputType::Pager(ref mut command) = *self {\n            let _ = command.wait();\n        }\n    }\n}\n\nimpl OutputType {\n    /// Create a pager and write all data into it. Waits until the pager exits.\n    /// The expectation is that the program will exit afterwards.\n    pub fn oneshot_write(data: String) -> io::Result<()> {\n        let mut output_type = OutputType::from_mode(\n            &DeltaEnv::init(),\n            PagingMode::QuitIfOneScreen,\n            None,\n            &PagerCfg::default(),\n        )\n        .unwrap();\n        let mut writer = output_type.handle().unwrap();\n        write!(&mut writer, \"{data}\")\n    }\n\n    pub fn from_mode(\n        env: &DeltaEnv,\n        mode: PagingMode,\n        pager: Option<String>,\n        config: &PagerCfg,\n    ) -> Result<Self> {\n        use self::PagingMode::*;\n        Ok(match mode {\n            Always => OutputType::try_pager(env, false, pager, config)?,\n            QuitIfOneScreen => OutputType::try_pager(env, true, pager, config)?,\n            Capture => OutputType::Capture,\n            _ => OutputType::stdout(),\n        })\n    }\n\n    /// Try to launch the pager. Fall back to stdout in case of errors.\n    fn try_pager(\n        env: &DeltaEnv,\n        quit_if_one_screen: bool,\n        pager_from_config: Option<String>,\n        config: &PagerCfg,\n    ) -> Result<Self> {\n        let mut replace_arguments_to_less = false;\n\n        let pager_from_env = match env.pagers.clone() {\n            (Some(delta_pager), _) => Some(delta_pager),\n            (_, Some(pager)) => {\n                // less needs to be called with the '-R' option in order to properly interpret ANSI\n                // color sequences. If someone has set PAGER=\"less -F\", we therefore need to\n                // overwrite the arguments and add '-R'.\n                // We only do this for PAGER, since it is used in other contexts.\n                replace_arguments_to_less = true;\n                Some(pager)\n            }\n            _ => None,\n        };\n\n        if pager_from_config.is_some() {\n            replace_arguments_to_less = false;\n        }\n\n        let pager_cmd = shell_words::split(\n            &pager_from_config\n                .or(pager_from_env)\n                .unwrap_or_else(|| String::from(\"less\")),\n        )\n        .context(\"Could not parse pager command.\")?;\n\n        Ok(match pager_cmd.split_first() {\n            Some((pager_path, args)) => {\n                let pager_path = PathBuf::from(pager_path);\n\n                let is_less = pager_path.file_stem() == Some(&OsString::from(\"less\"));\n\n                let process = if is_less {\n                    _make_process_from_less_path(\n                        pager_path,\n                        args,\n                        replace_arguments_to_less,\n                        quit_if_one_screen,\n                        config,\n                    )\n                } else {\n                    _make_process_from_pager_path(pager_path, args)\n                };\n                if let Some(mut process) = process {\n                    process\n                        .stdin(Stdio::piped())\n                        .spawn()\n                        .map(OutputType::Pager)\n                        .unwrap_or_else(|_| OutputType::stdout())\n                } else {\n                    OutputType::stdout()\n                }\n            }\n            None => OutputType::stdout(),\n        })\n    }\n\n    fn stdout() -> Self {\n        OutputType::Stdout(io::stdout())\n    }\n\n    pub fn handle(&mut self) -> Result<&mut dyn Write> {\n        Ok(match *self {\n            OutputType::Pager(ref mut command) => command\n                .stdin\n                .as_mut()\n                .context(\"Could not open stdin for pager\")?,\n            OutputType::Stdout(ref mut handle) => handle,\n            OutputType::Capture => unreachable!(\"capture can not be set\"),\n        })\n    }\n}\n\nfn _make_process_from_less_path(\n    less_path: PathBuf,\n    args: &[String],\n    replace_arguments_to_less: bool,\n    quit_if_one_screen: bool,\n    config: &PagerCfg,\n) -> Option<Command> {\n    if let Ok(less_path) = grep_cli::resolve_binary(less_path) {\n        let mut p = Command::new(less_path.clone());\n        if args.is_empty() || replace_arguments_to_less {\n            p.args(vec![\"--RAW-CONTROL-CHARS\"]);\n\n            // Passing '--no-init' fixes a bug with '--quit-if-one-screen' in older\n            // versions of 'less'. Unfortunately, it also breaks mouse-wheel support.\n            //\n            // See: http://www.greenwoodsoftware.com/less/news.530.html\n            //\n            // For newer versions (530 or 558 on Windows), we omit '--no-init' as it\n            // is not needed anymore.\n            match retrieve_less_version(less_path) {\n                None => {\n                    p.arg(\"--no-init\");\n                }\n                Some(version) if (version < 530 || (cfg!(windows) && version < 558)) => {\n                    p.arg(\"--no-init\");\n                }\n                _ => {}\n            }\n\n            if quit_if_one_screen {\n                p.arg(\"--quit-if-one-screen\");\n            }\n        } else {\n            p.args(args);\n        }\n\n        // less >= 633 (from May 2023) prints any characters from the Private Use Area of Unicode\n        // as control characters (e.g. <U+E012> instead of hoping that the terminal can render it).\n        // This means any Nerd Fonts will not be displayed properly. Previous versions of less just\n        // passed these characters through, and terminals usually fall back to a less obtrusive\n        // box. Use this new env var less introduced to restore the previous behavior. This sets all\n        // chars to single width (':p', see less manual). If a user provided env var is present,\n        // use do not override it.\n        // Also see delta issue 1616 and nerd-fonts/issues/1337\n        if std::env::var(LESSUTFCHARDEF).is_err() {\n            p.env(LESSUTFCHARDEF, \"E000-F8FF:p,F0000-FFFFD:p,100000-10FFFD:p\");\n        }\n\n        p.env(\"LESSCHARSET\", \"UTF-8\");\n        p.env(\"LESSANSIENDCHARS\", \"mK\");\n\n        if config.navigate {\n            if let Ok(hist_file) = navigate::copy_less_hist_file_and_append_navigate_regex(config) {\n                p.env(\"LESSHISTFILE\", hist_file);\n                if config.show_themes {\n                    p.arg(\"+n\");\n                }\n            }\n        }\n        Some(p)\n    } else {\n        None\n    }\n}\n\nfn _make_process_from_pager_path(pager_path: PathBuf, args: &[String]) -> Option<Command> {\n    if pager_path.file_stem() == Some(&OsString::from(\"delta\")) {\n        fatal(\n            \"\\\nIt looks like you have set delta as the value of $PAGER. \\\nThis would result in a non-terminating recursion. \\\ndelta is not an appropriate value for $PAGER \\\n(but it is an appropriate value for $GIT_PAGER).\",\n        );\n    }\n    if let Ok(pager_path) = grep_cli::resolve_binary(pager_path) {\n        let mut p = Command::new(pager_path);\n        p.args(args);\n        Some(p)\n    } else {\n        None\n    }\n}\n"
  },
  {
    "path": "src/utils/bat/terminal.rs",
    "content": "use ansi_term::Color::{self, Fixed, RGB};\nuse ansi_term::{self, Style};\n\nuse syntect::highlighting::{self, FontStyle};\n\npub fn to_ansi_color(color: highlighting::Color, true_color: bool) -> Option<ansi_term::Color> {\n    if color.a == 0 {\n        // Themes can specify one of the user-configurable terminal colors by\n        // encoding them as #RRGGBBAA with AA set to 00 (transparent) and RR set\n        // to the 8-bit color palette number. The built-in themes ansi, base16,\n        // and base16-256 use this.\n        Some(match color.r {\n            // For the first 8 colors, use the Color enum to produce ANSI escape\n            // sequences using codes 30-37 (foreground) and 40-47 (background).\n            // For example, red foreground is \\x1b[31m. This works on terminals\n            // without 256-color support.\n            0x00 => Color::Black,\n            0x01 => Color::Red,\n            0x02 => Color::Green,\n            0x03 => Color::Yellow,\n            0x04 => Color::Blue,\n            0x05 => Color::Purple,\n            0x06 => Color::Cyan,\n            0x07 => Color::White,\n            // For all other colors, use Fixed to produce escape sequences using\n            // codes 38;5 (foreground) and 48;5 (background). For example,\n            // bright red foreground is \\x1b[38;5;9m. This only works on\n            // terminals with 256-color support.\n            //\n            // TODO: When ansi_term adds support for bright variants using codes\n            // 90-97 (foreground) and 100-107 (background), we should use those\n            // for values 0x08 to 0x0f and only use Fixed for 0x10 to 0xff.\n            n => Fixed(n),\n        })\n    } else if color.a == 1 {\n        // Themes can specify the terminal's default foreground/background color\n        // (i.e. no escape sequence) using the encoding #RRGGBBAA with AA set to\n        // 01. The built-in theme ansi uses this.\n        None\n    } else if true_color {\n        Some(RGB(color.r, color.g, color.b))\n    } else {\n        Some(Fixed(ansi_colours::ansi256_from_rgb((\n            color.r, color.g, color.b,\n        ))))\n    }\n}\n\n#[allow(dead_code)]\npub fn as_terminal_escaped(\n    style: highlighting::Style,\n    text: &str,\n    true_color: bool,\n    colored: bool,\n    italics: bool,\n    background_color: Option<highlighting::Color>,\n) -> String {\n    if text.is_empty() {\n        return text.to_string();\n    }\n\n    let mut style = if !colored {\n        Style::default()\n    } else {\n        let mut color = Style {\n            foreground: to_ansi_color(style.foreground, true_color),\n            ..Style::default()\n        };\n        if style.font_style.contains(FontStyle::BOLD) {\n            color = color.bold();\n        }\n        if style.font_style.contains(FontStyle::UNDERLINE) {\n            color = color.underline();\n        }\n        if italics && style.font_style.contains(FontStyle::ITALIC) {\n            color = color.italic();\n        }\n        color\n    };\n\n    style.background = background_color.and_then(|c| to_ansi_color(c, true_color));\n    style.paint(text).to_string()\n}\n"
  },
  {
    "path": "src/utils/git.rs",
    "content": "use std::process::Command;\n\npub fn retrieve_git_version() -> Option<(usize, usize)> {\n    if let Ok(git_path) = grep_cli::resolve_binary(\"git\") {\n        let cmd = Command::new(git_path).arg(\"--version\").output().ok()?;\n        parse_git_version(&cmd.stdout)\n    } else {\n        None\n    }\n}\n\nfn parse_git_version(output: &[u8]) -> Option<(usize, usize)> {\n    let mut parts = output.strip_prefix(b\"git version \")?.split(|&b| b == b'.');\n    let major = std::str::from_utf8(parts.next()?).ok()?.parse().ok()?;\n    let minor = std::str::from_utf8(parts.next()?).ok()?.parse().ok()?;\n    Some((major, minor))\n}\n\n#[cfg(test)]\nmod tests {\n    use super::parse_git_version;\n    use rstest::rstest;\n\n    #[rstest]\n    #[case(b\"git version 2.46.0\", Some((2, 46)))]\n    #[case(b\"git version 2.39.3 (Apple Git-146)\", Some((2, 39)))]\n    #[case(b\"\", None)]\n    fn test_parse_git_version(#[case] input: &[u8], #[case] expected: Option<(usize, usize)>) {\n        assert_eq!(parse_git_version(input), expected);\n    }\n}\n"
  },
  {
    "path": "src/utils/helpwrap.rs",
    "content": "#![allow(clippy::comparison_to_empty)] // no_indent != \"\", instead of !no_indent.is_empty()\n\nuse crate::ansi::measure_text_width;\n\n/// Wrap `text` at spaces ('` `') to fit into `width`. If `indent_with` is non-empty, indent\n/// each line with this string. If a line from `text` starts with `no_indent`, do not indent.\n/// If a line starts with `no_wrap`, do not wrap (empty `no_indent`/`no_wrap` have no effect).\n/// If both \"magic prefix\" markers are used, `no_indent` must be first.\n/// Takes unicode and ANSI into account when calculating width, but won't wrap ANSI correctly.\n/// Removes trailing spaces. Leading spaces or enumerations with '- ' continue the indentation on\n/// the wrapped line.\n/// Example:\n/// ```\n/// let wrapped = wrap(\"ab cd ef\\n!NI!123\\n|AB CD EF GH\\n!NI!|123 456 789\", 7, \"_\", \"!NI!\", \"|\");\n/// assert_eq!(wrapped, \"\\\n///     _ab cd\\n\\\n///     _ef\\n\\\n///     123\\n\\\n///     _AB CD EF GH\\n\\\n///     123 456 789\\n\\\n///     \");\n/// ```\npub fn wrap(text: &str, width: usize, indent_with: &str, no_indent: &str, no_wrap: &str) -> String {\n    let mut result = String::with_capacity(text.len());\n    let indent_len = measure_text_width(indent_with);\n\n    for line in text.lines() {\n        let line = line.trim_end_matches(' ');\n\n        let (line, indent) =\n            if let (Some(line), true) = (line.strip_prefix(no_indent), no_indent != \"\") {\n                (line, \"\")\n            } else {\n                result.push_str(indent_with);\n                (line, indent_with)\n            };\n\n        if let (Some(line), true) = (line.strip_prefix(no_wrap), no_wrap != \"\") {\n            result.push_str(line);\n        } else {\n            // `\"foo bar   end\".split_inclusive(' ')` => `[\"foo \", \"bar \", \" \", \" \", \"end\"]`\n            let mut wordit = line.split_inclusive(' ');\n            let mut curr_len = indent_len;\n\n            if let Some(word) = wordit.next() {\n                result.push_str(word);\n                curr_len += measure_text_width(word);\n            }\n\n            while let Some(mut word) = wordit.next() {\n                let word_len = measure_text_width(word);\n                if curr_len + word_len == width + 1 && word.ends_with(' ') {\n                    // If just ' ' is over the limit, let the next word trigger the overflow.\n                } else if curr_len + word_len > width {\n                    // Remove any trailing whitespace:\n                    let pos = result.trim_end_matches(' ').len();\n                    result.truncate(pos);\n\n                    result.push('\\n');\n\n                    // Do not count spaces, skip until next proper word is found.\n                    if word == \" \" {\n                        for nextword in wordit.by_ref() {\n                            word = nextword;\n                            if word != \" \" {\n                                break;\n                            }\n                        }\n                    }\n\n                    // Re-calculates indent for each wrapped line. Could be done only once, maybe\n                    // after an early return which just uses .len() (works for fullwidth chars).\n\n                    // If line started with spaces, indent by that much again.\n                    let (indent, space_pos) =\n                        if let Some(space_prefix_len) = line.find(|c: char| c != ' ') {\n                            (\n                                format!(\"{}{}\", indent, \" \".repeat(space_prefix_len)),\n                                space_prefix_len,\n                            )\n                        } else {\n                            debug_assert!(false, \"line.trim_end_matches() missing?\");\n                            (indent.to_string(), 0)\n                        };\n\n                    // If line started with '- ', treat it as a bullet point and increase indentation\n                    let indent = if line[space_pos..].starts_with(\"- \") {\n                        format!(\"{}{}\", indent, \"  \")\n                    } else {\n                        indent\n                    };\n\n                    result.push_str(&indent);\n                    curr_len = measure_text_width(&indent);\n                }\n                curr_len += word_len;\n                result.push_str(word);\n            }\n        }\n        let pos = result.trim_end_matches(' ').len();\n        result.truncate(pos);\n        result.push('\\n');\n    }\n\n    #[cfg(test)]\n    if !result.contains(\"no-sanity\") {\n        // sanity check\n        let stripped_input = text\n            .replace(\" \", \"\")\n            .replace(\"\\n\", \"\")\n            .replace(no_wrap, \"\")\n            .replace(no_indent, \"\");\n        let stripped_output = result\n            .replace(\" \", \"\")\n            .replace(\"\\n\", \"\")\n            .replace(indent_with, \"\");\n        assert_eq!(stripped_input, stripped_output);\n    }\n\n    result\n}\n\n#[cfg(test)]\nmod test {\n    use super::*;\n    use insta::assert_snapshot;\n\n    #[test]\n    fn simple_ascii_can_not_split() {\n        let input = \"000 123456789 abcdefghijklmnopqrstuvwxyz ok\";\n        let result = wrap(input, 5, \"\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        000\n        123456789\n        abcdefghijklmnopqrstuvwxyz\n        ok\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_just_whitespace() {\n        let input = \"               \\n   \\n           \\n  \\n \\n     \\n\";\n        let result = wrap(input, 3, \"__\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        __\n        __\n        __\n        __\n        __\n        __\n        \"###);\n        let result = wrap(input, 3, \"\", \"\", \"\");\n        assert_eq!(result, \"\\n\\n\\n\\n\\n\\n\");\n    }\n\n    #[test]\n    fn simple_ascii_can_not_split_plus_whitespace() {\n        let input = \"000        123456789          abcdefghijklmnopqrstuvwxyz          ok\";\n        let result = wrap(input, 5, \"\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        000\n        123456789\n        abcdefghijklmnopqrstuvwxyz\n        ok\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_keep_leading_input_indent() {\n        let input = \"abc\\n  Def ghi jkl mno pqr stuv xyz\\n    Abc def ghijklm\\nok\";\n        let result = wrap(input, 10, \"_\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        _abc\n        _  Def ghi\n        _  jkl mno\n        _  pqr\n        _  stuv\n        _  xyz\n        _    Abc\n        _    def\n        _    ghijklm\n        _ok\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_indent_and_bullet_points() {\n        let input = \"- ABC ABC abc\\n   def ghi - jkl\\n  - 1 22 3 4 55 6 7 8 9\\n    - 1 22 3 4 55 6 7 8 9\\n!- 0 0 0 0 0 0 0 \\n\";\n        let result = wrap(input, 10, \"\", \"!\", \"\");\n        assert_snapshot!(result, @r###\"\n        - ABC ABC\n          abc\n           def ghi\n           - jkl\n          - 1 22 3\n            4 55 6\n            7 8 9\n            - 1 22\n              3 4\n              55 6\n              7 8\n              9\n        - 0 0 0 0\n          0 0 0\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_all_overlong_after_indent() {\n        let input = \"0000 1111 2222\";\n        let result = wrap(input, 5, \"__\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        __0000\n        __1111\n        __2222\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_one_line() {\n        let input = \"123 456 789 abc def ghi jkl mno pqr stu vwx yz\";\n        let result = wrap(input, 10, \"__\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        __123 456\n        __789 abc\n        __def ghi\n        __jkl mno\n        __pqr stu\n        __vwx yz\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_trailing_space() {\n        let input = \"123  \\n\\n   \\n  456   \\n     a  b \\n\\n\";\n        let result = wrap(input, 10, \"    \", \"\", \"\");\n        assert_eq!(result, \"    123\\n\\n\\n      456\\n         a\\n         b\\n\\n\");\n    }\n\n    #[test]\n    fn simple_ascii_two_lines() {\n        let input = \"123 456 789 abc def\\nghi jkl mno pqr stu vwx yz\\n1234 567 89 876 54321\\n\";\n        let result = wrap(input, 10, \"__\", \"\", \"\");\n        assert_snapshot!(result, @r###\"\n        __123 456\n        __789 abc\n        __def\n        __ghi jkl\n        __mno pqr\n        __stu vwx\n        __yz\n        __1234 567\n        __89 876\n        __54321\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_no_indent() {\n        let input = \"123 456 789\\n!!abc def ghi jkl mno pqr\\nstu vwx yz\\n\\n\";\n        let result = wrap(input, 10, \"__\", \"!!\", \"\");\n        assert_snapshot!(result, @r###\"\n        __123 456\n        __789\n        abc def\n        ghi jkl\n        mno pqr\n        __stu vwx\n        __yz\n        __\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_no_wrap() {\n        let input = \"123 456 789\\n|abc def ghi jkl mno pqr\\nstu vwx yz\\n|W\\nA B C D E F G H I\\n\";\n        let result = wrap(input, 10, \"__\", \"!!\", \"|\");\n        assert_snapshot!(result, @r###\"\n        __123 456\n        __789\n        __abc def ghi jkl mno pqr\n        __stu vwx\n        __yz\n        __W\n        __A B C D\n        __E F G H\n        __I\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_no_both() {\n        let input = \"123 456 789\\n!!|abc def ghi jkl mno pqr\\nstu vwx yz\\n|W\\nA B C D E F G H I\\n\";\n        let result = wrap(input, 10, \"__\", \"!!\", \"|\");\n        assert_snapshot!(result, @r###\"\n        __123 456\n        __789\n        abc def ghi jkl mno pqr\n        __stu vwx\n        __yz\n        __W\n        __A B C D\n        __E F G H\n        __I\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_no_both_wrong_order() {\n        let input = \"!!|abc def ghi jkl\\n|!!ABC DEF GHI JKL + no-sanity\\n\";\n        let result = wrap(input, 7, \"__\", \"!!\", \"|\");\n        assert_snapshot!(result, @r###\"\n        abc def ghi jkl\n        __!!ABC DEF GHI JKL + no-sanity\n        \"###);\n        let wrapped = wrap(\n            \"ab cd ef\\n!NI!123\\n|AB CD EF GH\\n!NI!|123 456 789\",\n            6,\n            \"_\",\n            \"!NI!\",\n            \"|\",\n        );\n        assert_snapshot!(wrapped, @r###\"\n        _ab cd\n        _ef\n        123\n        _AB CD EF GH\n        123 456 789\n        \"###);\n    }\n\n    #[test]\n    fn simple_ascii_much_whitespace() {\n        let input = \"123       456       789\\nabc   def  ghi    jkl   mno  pqr    \\nstu   vwx yz\";\n        let result = wrap(input, 10, \"__\", \"!!\", \"|\");\n        assert_snapshot!(result, @r###\"\n        __123\n        __456\n        __789\n        __abc\n        __def  ghi\n        __jkl   mno\n        __pqr\n        __stu\n        __vwx yz\n        \"###);\n    }\n}\n"
  },
  {
    "path": "src/utils/mod.rs",
    "content": "#[cfg(not(tarpaulin_include))]\npub mod bat;\npub mod git;\npub mod helpwrap;\npub mod path;\npub mod process;\npub mod regex_replacement;\npub mod round_char_boundary;\npub mod syntect;\npub mod tabs;\npub mod workarounds;\n\n// Use the most (even overly) strict ordering. Atomics are not used in hot loops so\n// a one-size-fits-all approach which is never incorrect is okay.\npub const DELTA_ATOMIC_ORDERING: std::sync::atomic::Ordering = std::sync::atomic::Ordering::SeqCst;\n"
  },
  {
    "path": "src/utils/path.rs",
    "content": "use std::path::{Component, Path, PathBuf};\n\nuse crate::config::Config;\n\nuse super::process::calling_process;\n\n// Infer absolute path to `relative_path`.\npub fn absolute_path(relative_path: &str, config: &Config) -> Option<PathBuf> {\n    match (\n        &config.cwd_of_delta_process,\n        &config.cwd_of_user_shell_process,\n        calling_process().paths_in_input_are_relative_to_cwd() || config.relative_paths,\n    ) {\n        // Note that if we were invoked by git then cwd_of_delta_process == repo_root\n        (Some(cwd_of_delta_process), _, false) => Some(cwd_of_delta_process.join(relative_path)),\n        (_, Some(cwd_of_user_shell_process), true) => {\n            Some(cwd_of_user_shell_process.join(relative_path))\n        }\n        (Some(cwd_of_delta_process), None, true) => {\n            // This might occur when piping from git to delta?\n            Some(cwd_of_delta_process.join(relative_path))\n        }\n        _ => None,\n    }\n    .map(normalize_path)\n}\n\n#[allow(clippy::needless_borrows_for_generic_args)] // Lint has known problems, &path != path\n/// Relativize `path` if delta `config` demands that and paths are not already relativized by git.\npub fn relativize_path_maybe(path: &mut String, config: &Config) {\n    let mut inner_relativize = || -> Option<()> {\n        let base = config.cwd_relative_to_repo_root.as_deref()?;\n        let relative_path = pathdiff::diff_paths(&path, base)?;\n        if relative_path.is_relative() {\n            #[cfg(target_os = \"windows\")]\n            // '/dev/null' is converted to '\\dev\\null' and considered relative. Work\n            // around that by leaving all paths like that untouched:\n            if relative_path.starts_with(Path::new(r\"\\\")) {\n                return None;\n            }\n            *path = relative_path.to_string_lossy().into_owned();\n        }\n        Some(())\n    };\n    if config.relative_paths && !calling_process().paths_in_input_are_relative_to_cwd() {\n        let _ = inner_relativize();\n    }\n}\n\n/// Return current working directory of the user's shell process. I.e. the directory which they are\n/// in when delta exits. This is the directory relative to which the file paths in delta output are\n/// constructed if they are using either (a) delta's relative-paths option or (b) git's --relative\n/// flag.\npub fn cwd_of_user_shell_process(\n    cwd_of_delta_process: Option<&PathBuf>,\n    cwd_relative_to_repo_root: Option<&str>,\n) -> Option<PathBuf> {\n    match (cwd_of_delta_process, cwd_relative_to_repo_root) {\n        (Some(cwd), None) => {\n            // We are not a child process of git\n            Some(PathBuf::from(cwd))\n        }\n        (Some(repo_root), Some(cwd_relative_to_repo_root)) => {\n            // We are a child process of git; git spawned us from repo_root and preserved the user's\n            // original cwd in the GIT_PREFIX env var (available as config.cwd_relative_to_repo_root)\n            Some(PathBuf::from(repo_root).join(cwd_relative_to_repo_root))\n        }\n        (None, _) => {\n            // Unexpected\n            None\n        }\n    }\n}\n\n// Copied from\n// https://github.com/rust-lang/cargo/blob/c6745a3d7fcea3a949c3e13e682b8ddcbd213add/crates/cargo-util/src/paths.rs#L73-L106\n// as suggested by matklad: https://www.reddit.com/r/rust/comments/hkkquy/comment/fwtw53s/?utm_source=share&utm_medium=web2x&context=3\nfn normalize_path<P>(path: P) -> PathBuf\nwhere\n    P: AsRef<Path>,\n{\n    let mut components = path.as_ref().components().peekable();\n    let mut ret = if let Some(c @ Component::Prefix(..)) = components.peek().cloned() {\n        components.next();\n        PathBuf::from(c.as_os_str())\n    } else {\n        PathBuf::new()\n    };\n\n    for component in components {\n        match component {\n            Component::Prefix(..) => unreachable!(),\n            Component::RootDir => {\n                ret.push(component.as_os_str());\n            }\n            Component::CurDir => {}\n            Component::ParentDir => {\n                ret.pop();\n            }\n            Component::Normal(c) => {\n                ret.push(c);\n            }\n        }\n    }\n    ret\n}\n\n#[cfg(test)]\npub fn fake_delta_cwd_for_tests() -> PathBuf {\n    #[cfg(not(target_os = \"windows\"))]\n    {\n        PathBuf::from(\"/fake/delta/cwd\")\n    }\n    #[cfg(target_os = \"windows\")]\n    {\n        PathBuf::from(r\"C:\\fake\\delta\\cwd\")\n    }\n}\n"
  },
  {
    "path": "src/utils/process.rs",
    "content": "use std::collections::{HashMap, HashSet};\nuse std::path::Path;\nuse std::sync::atomic::AtomicUsize;\nuse std::sync::{Arc, Condvar, Mutex, MutexGuard};\n\nuse lazy_static::lazy_static;\nuse sysinfo::{Pid, PidExt, Process, ProcessExt, ProcessRefreshKind, SystemExt};\n\nuse crate::utils::DELTA_ATOMIC_ORDERING;\n\npub type DeltaPid = u32;\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub enum CallingProcess {\n    GitDiff(CommandLine),\n    GitShow(CommandLine, Option<String>), // element 2 is filename\n    GitLog(CommandLine),\n    GitReflog(CommandLine),\n    GitBlame(CommandLine),\n    GitGrep(CommandLine),\n    OtherGrep, // rg, grep, ag, ack, etc\n    None,      // no matching process could be found\n    Pending,   // calling process is currently being determined\n}\n\n// The information where the calling process info comes from *should* be inside\n// `CallingProcess`, but that is handed out (within a MutexGuard) to callers.\n// To keep the interface simple, store it here:\nstatic CALLER_INFO_SOURCE: AtomicUsize = AtomicUsize::new(CALLER_GUESSED);\nconst CALLER_GUESSED: usize = 1;\nconst CALLER_KNOWN: usize = 2;\n\nimpl CallingProcess {\n    pub fn paths_in_input_are_relative_to_cwd(&self) -> bool {\n        match self {\n            CallingProcess::GitDiff(cmd) if cmd.long_options.contains(\"--relative\") => true,\n            CallingProcess::GitShow(cmd, _) if cmd.long_options.contains(\"--relative\") => true,\n            CallingProcess::GitLog(cmd) if cmd.long_options.contains(\"--relative\") => true,\n            CallingProcess::GitBlame(_)\n            | CallingProcess::GitGrep(_)\n            | CallingProcess::OtherGrep => true,\n            _ => false,\n        }\n    }\n}\n\n#[derive(Clone, Debug, PartialEq, Eq)]\npub struct CommandLine {\n    pub long_options: HashSet<String>,\n    pub short_options: HashSet<String>,\n    pub last_arg: Option<String>,\n}\n\nlazy_static! {\n    static ref CALLER: Arc<(Mutex<CallingProcess>, Condvar)> =\n        Arc::new((Mutex::new(CallingProcess::Pending), Condvar::new()));\n}\n\n// delta was called by this process (or called by something which called delta and it),\n// try looking up this information in the process tree.\npub fn start_determining_calling_process_in_thread() {\n    // The handle is neither kept nor returned nor joined but dropped, so the main\n    // thread can exit early if it does not need to know its parent process.\n    std::thread::Builder::new()\n        .name(\"find_calling_process\".into())\n        .spawn(move || {\n            let calling_process = determine_calling_process();\n\n            let (caller_mutex, determine_done) = &**CALLER;\n\n            let mut caller = caller_mutex.lock().unwrap();\n\n            if CALLER_INFO_SOURCE.load(DELTA_ATOMIC_ORDERING) <= CALLER_GUESSED {\n                *caller = calling_process;\n            }\n\n            determine_done.notify_all();\n        })\n        .unwrap();\n}\n\n// delta starts the process, so it is known.\npub fn set_calling_process(args: &[String]) {\n    if let ProcessArgs::Args(result) = describe_calling_process(args) {\n        let (caller_mutex, determine_done) = &**CALLER;\n\n        let mut caller = caller_mutex.lock().unwrap();\n        *caller = result;\n        CALLER_INFO_SOURCE.store(CALLER_KNOWN, DELTA_ATOMIC_ORDERING);\n        determine_done.notify_all();\n    }\n}\n\n#[cfg(not(test))]\npub fn calling_process() -> MutexGuard<'static, CallingProcess> {\n    let (caller_mutex, determine_done) = &**CALLER;\n\n    determine_done\n        .wait_while(caller_mutex.lock().unwrap(), |caller| {\n            *caller == CallingProcess::Pending\n        })\n        .unwrap()\n}\n\n// The return value is duck-typed to work in place of a MutexGuard when testing.\n#[cfg(test)]\npub fn calling_process() -> Box<CallingProcess> {\n    type _UnusedImport = MutexGuard<'static, i8>;\n\n    if crate::utils::process::tests::FakeParentArgs::are_set() {\n        // If the (thread-local) FakeParentArgs are set, then the following command returns\n        // these, so the cached global real ones can not be used.\n        Box::new(determine_calling_process())\n    } else {\n        let (caller_mutex, _) = &**CALLER;\n\n        let mut caller = caller_mutex.lock().unwrap();\n        if *caller == CallingProcess::Pending {\n            *caller = determine_calling_process();\n        }\n\n        Box::new(caller.clone())\n    }\n}\n\nfn determine_calling_process() -> CallingProcess {\n    calling_process_cmdline(ProcInfo::new(), describe_calling_process)\n        .unwrap_or(CallingProcess::None)\n}\n\n// Return value of `extract_args(args: &[String]) -> ProcessArgs<T>` function which is\n// passed to `calling_process_cmdline()`.\n#[derive(Debug, PartialEq, Eq)]\npub enum ProcessArgs<T> {\n    // A result has been successfully extracted from args.\n    Args(T),\n    // The extraction has failed.\n    ArgError,\n    // The process does not match, others may be inspected.\n    OtherProcess,\n}\n\npub fn describe_calling_process(args: &[String]) -> ProcessArgs<CallingProcess> {\n    let mut args = args.iter().map(|s| s.as_str());\n\n    fn is_any_of<'a, I>(cmd: Option<&str>, others: I) -> bool\n    where\n        I: IntoIterator<Item = &'a str>,\n    {\n        cmd.map(|cmd| others.into_iter().any(|o| o.eq_ignore_ascii_case(cmd)))\n            .unwrap_or(false)\n    }\n\n    match args.next() {\n        Some(command) => match Path::new(command).file_stem() {\n            Some(s) if s.to_str().map(is_git_binary).unwrap_or(false) => {\n                let mut args = args.skip_while(|s| {\n                    *s != \"diff\"\n                        && *s != \"show\"\n                        && *s != \"log\"\n                        && *s != \"reflog\"\n                        && *s != \"grep\"\n                        && *s != \"blame\"\n                });\n                match args.next() {\n                    Some(\"diff\") => {\n                        ProcessArgs::Args(CallingProcess::GitDiff(parse_command_line(args)))\n                    }\n                    Some(\"show\") => {\n                        let command_line = parse_command_line(args);\n                        let filename = if let Some(last_arg) = &command_line.last_arg {\n                            match last_arg.split_once(':') {\n                                Some((_, filename)) => Path::new(filename)\n                                    .file_name()\n                                    .map(|f| f.to_string_lossy().to_string()),\n                                None => None,\n                            }\n                        } else {\n                            None\n                        };\n                        ProcessArgs::Args(CallingProcess::GitShow(command_line, filename))\n                    }\n                    Some(\"log\") => {\n                        ProcessArgs::Args(CallingProcess::GitLog(parse_command_line(args)))\n                    }\n                    Some(\"reflog\") => {\n                        ProcessArgs::Args(CallingProcess::GitReflog(parse_command_line(args)))\n                    }\n                    Some(\"grep\") => {\n                        ProcessArgs::Args(CallingProcess::GitGrep(parse_command_line(args)))\n                    }\n                    Some(\"blame\") => {\n                        ProcessArgs::Args(CallingProcess::GitBlame(parse_command_line(args)))\n                    }\n                    _ => {\n                        // It's git, but not a subcommand that we parse. Don't\n                        // look at any more processes.\n                        ProcessArgs::ArgError\n                    }\n                }\n            }\n            // TODO: parse_style_sections is failing to parse ANSI escape sequences emitted by\n            // grep (BSD and GNU), ag, pt. See #794\n            Some(s) if is_any_of(s.to_str(), [\"rg\", \"ack\", \"sift\"]) => {\n                ProcessArgs::Args(CallingProcess::OtherGrep)\n            }\n            Some(_) => {\n                // It's not git, and it's not another grep tool. Keep\n                // looking at other processes.\n                ProcessArgs::OtherProcess\n            }\n            _ => {\n                // Could not parse file stem (not expected); keep looking at\n                // other processes.\n                ProcessArgs::OtherProcess\n            }\n        },\n        _ => {\n            // Empty arguments (not expected); keep looking.\n            ProcessArgs::OtherProcess\n        }\n    }\n}\n\nfn is_git_binary(git: &str) -> bool {\n    // Ignore case, for e.g. NTFS or APFS file systems\n    Path::new(git)\n        .file_stem()\n        .and_then(|os_str| os_str.to_str())\n        .map(|s| s.eq_ignore_ascii_case(\"git\"))\n        .unwrap_or(false)\n}\n\n// Given `--aa val -bc -d val e f -- ...` return\n// ({\"--aa\"}, {\"-b\", \"-c\", \"-d\"})\nfn parse_command_line<'a>(args: impl Iterator<Item = &'a str>) -> CommandLine {\n    let mut long_options = HashSet::new();\n    let mut short_options = HashSet::new();\n    let mut last_arg = None;\n    let mut after_double_dash = false;\n\n    for s in args {\n        if after_double_dash {\n            last_arg = Some(s);\n        } else if s == \"--\" {\n            after_double_dash = true;\n        } else if s.starts_with(\"--\") {\n            long_options.insert(s.split('=').next().unwrap().to_owned());\n        } else if let Some(suffix) = s.strip_prefix('-') {\n            short_options.extend(suffix.chars().map(|c| format!(\"-{c}\")));\n        } else {\n            last_arg = Some(s);\n        }\n    }\n\n    CommandLine {\n        long_options,\n        short_options,\n        last_arg: last_arg.map(|s| s.to_string()),\n    }\n}\n\nstruct ProcInfo {\n    info: sysinfo::System,\n}\nimpl ProcInfo {\n    fn new() -> Self {\n        // On Linux sysinfo optimizes for repeated process queries and keeps per-process\n        // /proc file descriptors open. This caching is not needed here, so\n        // set this to zero (this does nothing on other platforms).\n        // Also, there is currently a kernel bug which slows down syscalls when threads are\n        // involved (here: the ctrlc handler) and a lot of files are kept open.\n        sysinfo::set_open_files_limit(0);\n\n        ProcInfo {\n            info: sysinfo::System::new(),\n        }\n    }\n}\n\ntrait ProcActions {\n    fn cmd(&self) -> &[String];\n    fn parent(&self) -> Option<DeltaPid>;\n    fn pid(&self) -> DeltaPid;\n    fn start_time(&self) -> u64;\n}\n\nimpl<T> ProcActions for T\nwhere\n    T: ProcessExt,\n{\n    fn cmd(&self) -> &[String] {\n        ProcessExt::cmd(self)\n    }\n    fn parent(&self) -> Option<DeltaPid> {\n        ProcessExt::parent(self).map(|p| p.as_u32())\n    }\n    fn pid(&self) -> DeltaPid {\n        ProcessExt::pid(self).as_u32()\n    }\n    fn start_time(&self) -> u64 {\n        ProcessExt::start_time(self)\n    }\n}\n\ntrait ProcessInterface {\n    type Out: ProcActions;\n\n    fn my_pid(&self) -> DeltaPid;\n\n    fn process(&self, pid: DeltaPid) -> Option<&Self::Out>;\n    fn processes(&self) -> &HashMap<Pid, Self::Out>;\n\n    fn refresh_process(&mut self, pid: DeltaPid) -> bool;\n    fn refresh_processes(&mut self);\n\n    fn parent_process(&mut self, pid: DeltaPid) -> Option<&Self::Out> {\n        self.refresh_process(pid).then_some(())?;\n        let parent_pid = self.process(pid)?.parent()?;\n        self.refresh_process(parent_pid).then_some(())?;\n        self.process(parent_pid)\n    }\n    fn naive_sibling_process(&mut self, pid: DeltaPid) -> Option<&Self::Out> {\n        let sibling_pid = pid - 1;\n        self.refresh_process(sibling_pid).then_some(())?;\n        self.process(sibling_pid)\n    }\n    fn find_sibling_in_refreshed_processes<F, T>(\n        &mut self,\n        pid: DeltaPid,\n        extract_args: &F,\n    ) -> Option<T>\n    where\n        F: Fn(&[String]) -> ProcessArgs<T>,\n        Self: Sized,\n    {\n        /*\n\n        $ start_blame_of.sh src/main.rs | delta\n\n        \\_ /usr/bin/some-terminal-emulator\n        |   \\_ common_git_and_delta_ancestor\n        |       \\_ /bin/sh /opt/git/start_blame_of.sh src/main.rs\n        |       |   \\_ /bin/sh /opt/some/wrapper git blame src/main.rs\n        |       |       \\_ /usr/bin/git blame src/main.rs\n        |       \\_ /bin/sh /opt/some/wrapper delta\n        |           \\_ delta\n\n        Walk up the process tree of delta and of every matching other process, counting the steps\n        along the way.\n        Find the common ancestor processes, calculate the distance, and select the one with the shortest.\n\n        */\n\n        let this_start_time = self.process(pid)?.start_time();\n\n        let mut pid_distances = HashMap::<DeltaPid, usize>::new();\n        let mut collect_parent_pids = |pid, distance| {\n            pid_distances.insert(pid, distance);\n        };\n\n        iter_parents(self, pid, &mut collect_parent_pids);\n\n        let process_start_time_difference_less_than_3s = |a, b| (a as i64 - b as i64).abs() < 3;\n\n        let cmdline_of_closest_matching_process = self\n            .processes()\n            .iter()\n            .filter(|(_, proc)| {\n                process_start_time_difference_less_than_3s(this_start_time, proc.start_time())\n            })\n            .filter_map(|(&pid, proc)| match extract_args(proc.cmd()) {\n                ProcessArgs::Args(args) => {\n                    let mut length_of_process_chain = usize::MAX;\n\n                    let mut sum_distance = |pid, distance| {\n                        if length_of_process_chain == usize::MAX {\n                            if let Some(distance_to_first_common_parent) = pid_distances.get(&pid) {\n                                length_of_process_chain =\n                                    distance_to_first_common_parent + distance;\n                            }\n                        }\n                    };\n                    iter_parents(self, pid.as_u32(), &mut sum_distance);\n\n                    if length_of_process_chain == usize::MAX {\n                        None\n                    } else {\n                        Some((length_of_process_chain, args))\n                    }\n                }\n                _ => None,\n            })\n            .min_by_key(|(distance, _)| *distance)\n            .map(|(_, result)| result);\n\n        cmdline_of_closest_matching_process\n    }\n}\n\nimpl ProcessInterface for ProcInfo {\n    type Out = Process;\n\n    fn my_pid(&self) -> DeltaPid {\n        std::process::id()\n    }\n    fn refresh_process(&mut self, pid: DeltaPid) -> bool {\n        self.info\n            .refresh_process_specifics(Pid::from_u32(pid), ProcessRefreshKind::new())\n    }\n    fn process(&self, pid: DeltaPid) -> Option<&Self::Out> {\n        self.info.process(Pid::from_u32(pid))\n    }\n    fn processes(&self) -> &HashMap<Pid, Self::Out> {\n        self.info.processes()\n    }\n    fn refresh_processes(&mut self) {\n        self.info\n            .refresh_processes_specifics(ProcessRefreshKind::new())\n    }\n}\n\nfn calling_process_cmdline<P, F, T>(mut info: P, extract_args: F) -> Option<T>\nwhere\n    P: ProcessInterface,\n    F: Fn(&[String]) -> ProcessArgs<T>,\n{\n    #[cfg(test)]\n    {\n        if let Some(args) = tests::FakeParentArgs::get() {\n            match extract_args(&args) {\n                ProcessArgs::Args(result) => return Some(result),\n                _ => return None,\n            }\n        }\n    }\n\n    let my_pid = info.my_pid();\n\n    // 1) Try the parent process(es). If delta is set as the pager in git, then git is the parent process.\n    // If delta is started by a script check the parent's parent as well.\n    let mut current_pid = my_pid;\n    'parent_iter: for depth in [1, 2, 3] {\n        let parent = match info.parent_process(current_pid) {\n            None => {\n                break 'parent_iter;\n            }\n            Some(parent) => parent,\n        };\n        let parent_pid = parent.pid();\n\n        match extract_args(parent.cmd()) {\n            ProcessArgs::Args(result) => return Some(result),\n            ProcessArgs::ArgError => return None,\n\n            // 2) The 1st parent process was something else, this can happen if git output is piped into delta, e.g.\n            // `git blame foo.txt | delta`. When the shell sets up the pipe it creates the two processes, the pids\n            // are usually consecutive, so naively check if the process with `my_pid - 1` matches.\n            ProcessArgs::OtherProcess if depth == 1 => {\n                let sibling = info.naive_sibling_process(current_pid);\n                if let Some(proc) = sibling {\n                    if let ProcessArgs::Args(result) = extract_args(proc.cmd()) {\n                        return Some(result);\n                    }\n                }\n            }\n            // This check is not done for the parent's parent etc.\n            ProcessArgs::OtherProcess => {}\n        }\n        current_pid = parent_pid;\n    }\n\n    /*\n    3) Neither parent(s) nor the direct sibling were a match.\n    The most likely case is that the input program of the pipe wrote all its data and exited before delta\n    started, so no command line can be parsed. Same if the data was piped from an input file.\n\n    There might also be intermediary scripts in between or piped input with a gap in pids or (rarely)\n    randomized pids, so check processes for the closest match in the process tree.\n    The size of this process tree can be reduced by only refreshing selected processes.\n\n    100 /usr/bin/some-terminal-emulator\n    124  \\_ -shell\n    301  |   \\_ /usr/bin/git blame src/main.rs\n    302  |       \\_ wraps_delta.sh\n    303  |           \\_ delta\n    304  |               \\_ less --RAW-CONTROL-CHARS --quit-if-one-screen\n    125  \\_ -shell\n    800  |   \\_ /usr/bin/git blame src/main.rs\n    200  |   \\_ delta\n    400  |       \\_ less --RAW-CONTROL-CHARS --quit-if-one-screen\n    126  \\_ -shell\n    501  |   \\_ /bin/sh /wrapper/for/git blame src/main.rs\n    555  |   |   \\_ /usr/bin/git blame src/main.rs\n    502  |   \\_ delta\n    567  |       \\_ less --RAW-CONTROL-CHARS --quit-if-one-screen\n\n    */\n\n    // Also `add` because `A_has_pid101 | delta_has_pid102`, but if A is a wrapper which then calls\n    // git (no `exec`), then the final pid of the git process might be 103 or greater.\n    let pid_range = my_pid.saturating_sub(10)..my_pid.saturating_add(10);\n    for p in pid_range {\n        // Processes which were not refreshed do not exist for sysinfo, so by selectively\n        // letting it know about processes the `find_sibling..` function will only\n        // consider these.\n        if info.process(p).is_none() {\n            info.refresh_process(p);\n        }\n    }\n\n    match info.find_sibling_in_refreshed_processes(my_pid, &extract_args) {\n        None => {\n            #[cfg(not(target_os = \"linux\"))]\n            let full_scan = true;\n\n            // The full scan is expensive on Linux and rarely successful, so disable it by default.\n            #[cfg(target_os = \"linux\")]\n            let full_scan = std::env::var(\"DELTA_CALLING_PROCESS_QUERY_ALL\")\n                .is_ok_and(|v| ![\"0\", \"false\", \"no\"].iter().any(|&n| n == v));\n\n            if full_scan {\n                info.refresh_processes();\n                info.find_sibling_in_refreshed_processes(my_pid, &extract_args)\n            } else {\n                None\n            }\n        }\n        some => some,\n    }\n}\n\n// Walk up the process tree, calling `f` with the pid and the distance to `starting_pid`.\n// Prerequisite: `info.refresh_processes()` has been called.\nfn iter_parents<P, F>(info: &P, starting_pid: DeltaPid, f: F)\nwhere\n    P: ProcessInterface,\n    F: FnMut(DeltaPid, usize),\n{\n    fn inner_iter_parents<P, F>(info: &P, pid: DeltaPid, mut f: F, distance: usize)\n    where\n        P: ProcessInterface,\n        F: FnMut(u32, usize),\n    {\n        // Probably bad input, not a tree:\n        if distance > 2000 {\n            return;\n        }\n        if let Some(proc) = info.process(pid) {\n            if let Some(pid) = proc.parent() {\n                f(pid, distance);\n                inner_iter_parents(info, pid, f, distance + 1)\n            }\n        }\n    }\n    inner_iter_parents(info, starting_pid, f, 1)\n}\n\n#[cfg(test)]\npub mod tests {\n\n    use super::*;\n\n    use itertools::Itertools;\n    use std::cell::RefCell;\n    use std::rc::Rc;\n\n    thread_local! {\n        static FAKE_ARGS: RefCell<TlsState<Vec<String>>> = const { RefCell::new(TlsState::None) };\n    }\n\n    #[derive(Debug, PartialEq)]\n    enum TlsState<T> {\n        Once(T),\n        Scope(T),\n        With(usize, Rc<Vec<T>>),\n        None,\n        Invalid,\n        ErrorAlreadyHandled,\n    }\n\n    // When calling `FakeParentArgs::get()`, it can return `Some(values)` which were set earlier\n    // during in the #[test]. Otherwise returns None.\n    // This value can be valid once: `FakeParentArgs::once(val)`, for the entire scope:\n    // `FakeParentArgs::for_scope(val)`, or can be different values every time `get()` is called:\n    // `FakeParentArgs::with([val1, val2, val3])`.\n    // It is an error if `once` or `with` values remain unused, or are overused.\n    // Note: The values are stored per-thread, so the expectation is that no thread boundaries are\n    // crossed.\n    pub struct FakeParentArgs {}\n    impl FakeParentArgs {\n        pub fn once(args: &str) -> Self {\n            Self::new(args, TlsState::Once, \"once\")\n        }\n        pub fn for_scope(args: &str) -> Self {\n            Self::new(args, TlsState::Scope, \"for_scope\")\n        }\n        fn new<F>(args: &str, initial: F, from_: &str) -> Self\n        where\n            F: Fn(Vec<String>) -> TlsState<Vec<String>>,\n        {\n            let string_vec = args.split(' ').map(str::to_owned).collect();\n            if FAKE_ARGS.with(|a| a.replace(initial(string_vec))) != TlsState::None {\n                Self::error(from_);\n            }\n            FakeParentArgs {}\n        }\n        pub fn with(args: &[&str]) -> Self {\n            let with = TlsState::With(\n                0,\n                Rc::new(\n                    args.iter()\n                        .map(|a| a.split(' ').map(str::to_owned).collect())\n                        .collect(),\n                ),\n            );\n            if FAKE_ARGS.with(|a| a.replace(with)) != TlsState::None || args.is_empty() {\n                Self::error(\"with creation\");\n            }\n            FakeParentArgs {}\n        }\n        pub fn get() -> Option<Vec<String>> {\n            FAKE_ARGS.with(|a| {\n                let old_value = a.replace_with(|old_value| match old_value {\n                    TlsState::Once(_) => TlsState::Invalid,\n                    TlsState::Scope(args) => TlsState::Scope(args.clone()),\n                    TlsState::With(n, args) => TlsState::With(*n + 1, Rc::clone(args)),\n                    TlsState::None => TlsState::None,\n                    TlsState::Invalid => TlsState::Invalid,\n                    TlsState::ErrorAlreadyHandled => TlsState::ErrorAlreadyHandled,\n                });\n\n                match old_value {\n                    TlsState::Once(args) | TlsState::Scope(args) => Some(args),\n                    TlsState::With(n, args) if n < args.len() => Some(args[n].clone()),\n                    TlsState::None => None,\n                    TlsState::Invalid | TlsState::With(_, _) | TlsState::ErrorAlreadyHandled => {\n                        Self::error(\"get\");\n                        None\n                    }\n                }\n            })\n        }\n        pub fn are_set() -> bool {\n            FAKE_ARGS.with(|a| {\n                *a.borrow() != TlsState::None && *a.borrow() != TlsState::ErrorAlreadyHandled\n            })\n        }\n        fn error(where_: &str) {\n            FAKE_ARGS.with(|a| {\n                let old_value = a.replace(TlsState::ErrorAlreadyHandled);\n\n                match old_value {\n                    TlsState::ErrorAlreadyHandled => (),\n                    _ => {\n                        panic!(\n                            \"test logic error (in {}): wrong FakeParentArgs scope?\",\n                            where_\n                        );\n                    }\n                }\n            });\n        }\n    }\n    impl Drop for FakeParentArgs {\n        fn drop(&mut self) {\n            // Clears an Invalid state and tests if a Once or With value has been used.\n            FAKE_ARGS.with(|a| {\n                let old_value = a.replace(TlsState::None);\n                match old_value {\n                    TlsState::With(n, args) => {\n                        if n != args.len() {\n                            Self::error(\"drop with\")\n                        }\n                    }\n                    TlsState::Once(_) | TlsState::None => Self::error(\"drop\"),\n                    TlsState::Scope(_) | TlsState::Invalid | TlsState::ErrorAlreadyHandled => {}\n                }\n            });\n        }\n    }\n\n    #[derive(Debug, Default)]\n    struct FakeProc {\n        #[allow(dead_code)]\n        pid: DeltaPid,\n        start_time: u64,\n        cmd: Vec<String>,\n        ppid: Option<DeltaPid>,\n    }\n    impl FakeProc {\n        fn new(pid: DeltaPid, start_time: u64, cmd: Vec<String>, ppid: Option<DeltaPid>) -> Self {\n            FakeProc {\n                pid,\n                start_time,\n                cmd,\n                ppid,\n            }\n        }\n    }\n\n    impl ProcActions for FakeProc {\n        fn cmd(&self) -> &[String] {\n            &self.cmd\n        }\n        fn parent(&self) -> Option<DeltaPid> {\n            self.ppid\n        }\n        fn pid(&self) -> DeltaPid {\n            self.pid\n        }\n        fn start_time(&self) -> u64 {\n            self.start_time\n        }\n    }\n\n    #[derive(Debug, Default)]\n    struct MockProcInfo {\n        delta_pid: DeltaPid,\n        info: HashMap<Pid, FakeProc>,\n    }\n    impl MockProcInfo {\n        fn with(processes: &[(DeltaPid, u64, &str, Option<DeltaPid>)]) -> Self {\n            MockProcInfo {\n                delta_pid: processes.last().map(|p| p.0).unwrap_or(1),\n                info: processes\n                    .iter()\n                    .map(|(pid, start_time, cmd, ppid)| {\n                        let cmd_vec = cmd.split(' ').map(str::to_owned).collect();\n                        (\n                            Pid::from_u32(*pid),\n                            FakeProc::new(*pid, *start_time, cmd_vec, *ppid),\n                        )\n                    })\n                    .collect(),\n            }\n        }\n    }\n\n    impl ProcessInterface for MockProcInfo {\n        type Out = FakeProc;\n\n        fn my_pid(&self) -> DeltaPid {\n            self.delta_pid\n        }\n        fn process(&self, pid: DeltaPid) -> Option<&Self::Out> {\n            self.info.get(&Pid::from_u32(pid))\n        }\n        fn processes(&self) -> &HashMap<Pid, Self::Out> {\n            &self.info\n        }\n        fn refresh_processes(&mut self) {}\n        fn refresh_process(&mut self, _pid: DeltaPid) -> bool {\n            true\n        }\n    }\n\n    fn set(arg1: &[&str]) -> HashSet<String> {\n        arg1.iter().map(|&s| s.to_owned()).collect()\n    }\n\n    #[test]\n    fn test_process_testing() {\n        {\n            let _args = FakeParentArgs::once(\"git blame hello\");\n            assert_eq!(\n                calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n                Some(CallingProcess::GitBlame(CommandLine {\n                    long_options: [].into(),\n                    short_options: [].into(),\n                    last_arg: Some(\"hello\".into())\n                }))\n            );\n        }\n        {\n            let _args = FakeParentArgs::once(\"git blame world.txt\");\n            assert_eq!(\n                calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n                Some(CallingProcess::GitBlame(CommandLine {\n                    long_options: [].into(),\n                    short_options: [].into(),\n                    last_arg: Some(\"world.txt\".into())\n                }))\n            );\n        }\n        {\n            let _args = FakeParentArgs::for_scope(\"git blame hello world.txt\");\n            assert_eq!(\n                calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n                Some(CallingProcess::GitBlame(CommandLine {\n                    long_options: [].into(),\n                    short_options: [].into(),\n                    last_arg: Some(\"world.txt\".into())\n                }))\n            );\n        }\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in get): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_assert() {\n        let _args = FakeParentArgs::once(\"git blame do.not.panic\");\n        assert_eq!(\n            calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"do.not.panic\".into())\n            }))\n        );\n        calling_process_cmdline(ProcInfo::new(), describe_calling_process);\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in drop): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_assert_once_never_used() {\n        let _args = FakeParentArgs::once(\"never used\");\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in once): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_assert_for_scope_never_used() {\n        let _args = FakeParentArgs::for_scope(&\"never used\");\n        let _args = FakeParentArgs::once(&\"never used\");\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in for_scope): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_assert_once_never_used2() {\n        let _args = FakeParentArgs::once(&\"never used\");\n        let _args = FakeParentArgs::for_scope(&\"never used\");\n    }\n\n    #[test]\n    fn test_process_testing_scope_can_remain_unused() {\n        let _args = FakeParentArgs::for_scope(\"never used\");\n    }\n\n    #[test]\n    fn test_process_testing_n_times() {\n        let _args = FakeParentArgs::with(&[\"git blame once\", \"git blame twice\"]);\n        assert_eq!(\n            calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"once\".into())\n            }))\n        );\n\n        assert_eq!(\n            calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"twice\".into())\n            }))\n        );\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in drop with): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_n_times_unused() {\n        let _args = FakeParentArgs::with(&[\"git blame once\", \"git blame twice\"]);\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in drop with): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_n_times_underused() {\n        let _args = FakeParentArgs::with(&[\"git blame once\", \"git blame twice\"]);\n        assert_eq!(\n            calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"once\".into())\n            }))\n        );\n    }\n\n    #[test]\n    #[should_panic(expected = \"test logic error (in get): wrong FakeParentArgs scope?\")]\n    fn test_process_testing_n_times_overused() {\n        let _args = FakeParentArgs::with(&[\"git blame once\"]);\n        assert_eq!(\n            calling_process_cmdline(ProcInfo::new(), describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"once\".into())\n            }))\n        );\n        calling_process_cmdline(ProcInfo::new(), describe_calling_process);\n    }\n\n    #[test]\n    fn test_describe_calling_process_blame() {\n        let no_processes = MockProcInfo::with(&[]);\n        assert_eq!(\n            calling_process_cmdline(no_processes, describe_calling_process),\n            None\n        );\n\n        let two_trees = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame src/main.rs\", Some(2)),\n            (4, 100, \"call_delta.sh\", None),\n            (5, 100, \"delta\", Some(4)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(two_trees, describe_calling_process),\n            None\n        );\n\n        let no_options_command_line = CommandLine {\n            long_options: [].into(),\n            short_options: [].into(),\n            last_arg: Some(\"hello.txt\".to_string()),\n        };\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame hello.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(no_options_command_line.clone()))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame -- hello.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(no_options_command_line.clone()))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame -- --not.an.argument\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"--not.an.argument\".to_string()),\n            }))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame --help.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [\"--help.txt\".into()].into(),\n                short_options: [].into(),\n                last_arg: None,\n            }))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git blame --\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: None,\n            }))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"Git.exe blame hello.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitBlame(no_options_command_line.clone()))\n        );\n\n        let git_blame_command =\n            \"git -c a=b blame -fnb --incremental -t --color-by-age -M --since=3.weeks --contents annotation.txt -C -C2 hello.txt\";\n\n        // here -C2 is parsed as -C and -2. It doesn't really matters because we only use last_arg from options\n        // to determine the file type.\n        let expected_result = Some(CallingProcess::GitBlame(CommandLine {\n            long_options: set(&[\"--incremental\", \"--color-by-age\", \"--since\", \"--contents\"]),\n            short_options: set(&[\"-f\", \"-n\", \"-b\", \"-t\", \"-M\", \"-C\", \"-2\"]),\n            last_arg: Some(\"hello.txt\".to_string()),\n        }));\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, git_blame_command, Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            expected_result\n        );\n\n        let grandparent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, git_blame_command, Some(2)),\n            (4, 100, \"call_delta.sh\", Some(3)),\n            (5, 100, \"delta\", Some(4)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(grandparent, describe_calling_process),\n            expected_result\n        );\n\n        let sibling = MockProcInfo::with(&[\n            (2, 100, \"-xterm\", None),\n            (3, 100, \"-shell\", Some(2)),\n            (4, 100, \"git blame src/main.rs\", Some(3)),\n            (5, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(sibling, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"src/main.rs\".into())\n            }))\n        );\n\n        let indirect_sibling = MockProcInfo::with(&[\n            (2, 100, \"-xterm\", None),\n            (3, 100, \"-shell\", Some(2)),\n            (4, 100, \"Git.exe blame --correct src/main.abc\", Some(3)),\n            (\n                10,\n                100,\n                \"Git.exe blame --ignored-child src/main.def\",\n                Some(4),\n            ),\n            (5, 100, \"delta.sh\", Some(3)),\n            (20, 100, \"delta\", Some(5)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(indirect_sibling, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: set(&[\"--correct\"]),\n                short_options: [].into(),\n                last_arg: Some(\"src/main.abc\".into())\n            }))\n        );\n\n        let indirect_sibling2 = MockProcInfo::with(&[\n            (2, 100, \"-xterm\", None),\n            (3, 100, \"-shell\", Some(2)),\n            (4, 100, \"git wrap src/main.abc\", Some(3)),\n            (10, 100, \"git blame src/main.def\", Some(4)),\n            (5, 100, \"delta.sh\", Some(3)),\n            (20, 100, \"delta\", Some(5)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(indirect_sibling2, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"src/main.def\".into())\n            }))\n        );\n\n        // 3 blame processes, 2 with matching start times, pick the one with lower\n        // distance but larger start time difference.\n        let indirect_sibling_start_times = MockProcInfo::with(&[\n            (2, 100, \"-xterm\", None),\n            (3, 100, \"-shell\", Some(2)),\n            (4, 109, \"git wrap src/main.abc\", Some(3)),\n            (10, 109, \"git blame src/main.def\", Some(4)),\n            (20, 100, \"git wrap1 src/main.abc\", Some(3)),\n            (21, 100, \"git wrap2 src/main.def\", Some(20)),\n            (22, 101, \"git blame src/main.not\", Some(21)),\n            (23, 102, \"git blame src/main.this\", Some(20)),\n            (5, 100, \"delta.sh\", Some(3)),\n            (20, 100, \"delta\", Some(5)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(indirect_sibling_start_times, describe_calling_process),\n            Some(CallingProcess::GitBlame(CommandLine {\n                long_options: [].into(),\n                short_options: [].into(),\n                last_arg: Some(\"src/main.this\".into())\n            }))\n        );\n    }\n\n    #[test]\n    fn test_describe_calling_process_grep() {\n        let no_processes = MockProcInfo::with(&[]);\n        assert_eq!(\n            calling_process_cmdline(no_processes, describe_calling_process),\n            None\n        );\n\n        let empty_command_line = CommandLine {\n            long_options: [].into(),\n            short_options: [].into(),\n            last_arg: Some(\"hello.txt\".to_string()),\n        };\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"git grep pattern hello.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitGrep(empty_command_line.clone()))\n        );\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, \"Git.exe grep pattern hello.txt\", Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            Some(CallingProcess::GitGrep(empty_command_line))\n        );\n\n        for grep_command in &[\n            \"/usr/local/bin/rg pattern hello.txt\",\n            \"RG.exe pattern hello.txt\",\n            \"/usr/local/bin/ack pattern hello.txt\",\n            \"ack.exe pattern hello.txt\",\n        ] {\n            let parent = MockProcInfo::with(&[\n                (2, 100, \"-shell\", None),\n                (3, 100, grep_command, Some(2)),\n                (4, 100, \"delta\", Some(3)),\n            ]);\n            assert_eq!(\n                calling_process_cmdline(parent, describe_calling_process),\n                Some(CallingProcess::OtherGrep)\n            );\n        }\n\n        let git_grep_command =\n            \"git grep -ab --function-context -n --show-function -W --foo=val pattern hello.txt\";\n\n        let expected_result = Some(CallingProcess::GitGrep(CommandLine {\n            long_options: set(&[\"--function-context\", \"--show-function\", \"--foo\"]),\n            short_options: set(&[\"-a\", \"-b\", \"-n\", \"-W\"]),\n            last_arg: Some(\"hello.txt\".to_string()),\n        }));\n\n        let parent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, git_grep_command, Some(2)),\n            (4, 100, \"delta\", Some(3)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(parent, describe_calling_process),\n            expected_result\n        );\n\n        let grandparent = MockProcInfo::with(&[\n            (2, 100, \"-shell\", None),\n            (3, 100, git_grep_command, Some(2)),\n            (4, 100, \"call_delta.sh\", Some(3)),\n            (5, 100, \"delta\", Some(4)),\n        ]);\n        assert_eq!(\n            calling_process_cmdline(grandparent, describe_calling_process),\n            expected_result\n        );\n    }\n\n    #[test]\n    fn test_describe_calling_process_git_show() {\n        for (command, expected_extension) in [\n            (\n                \"/usr/local/bin/git show --abbrev-commit -w 775c3b84:./src/hello.rs\",\n                \"hello.rs\",\n            ),\n            (\n                \"/usr/local/bin/git show --abbrev-commit -w HEAD~1:Makefile\",\n                \"Makefile\",\n            ),\n            (\n                \"git -c x.y=z show --abbrev-commit -w 775c3b84:./src/hello.bye.R\",\n                \"hello.bye.R\",\n            ),\n        ] {\n            let parent = MockProcInfo::with(&[\n                (2, 100, \"-shell\", None),\n                (3, 100, command, Some(2)),\n                (4, 100, \"delta\", Some(3)),\n            ]);\n            if let Some(CallingProcess::GitShow(cmd_line, filename)) =\n                calling_process_cmdline(parent, describe_calling_process)\n            {\n                assert_eq!(cmd_line.long_options, set(&[\"--abbrev-commit\"]));\n                assert_eq!(cmd_line.short_options, set(&[\"-w\"]));\n                assert_eq!(filename, Some(expected_extension.to_string()));\n            } else {\n                unreachable!();\n            }\n        }\n    }\n\n    #[test]\n    fn test_process_calling_cmdline() {\n        // GitHub runs CI tests for arm under qemu where sysinfo can not find the parent process.\n        if std::env::vars().any(|(key, _)| key == \"CROSS_RUNNER\" || key == \"QEMU_LD_PREFIX\") {\n            return;\n        }\n\n        let mut info = ProcInfo::new();\n        info.refresh_processes();\n        let mut ppid_distance = Vec::new();\n\n        iter_parents(&info, std::process::id(), |pid, distance| {\n            ppid_distance.push(pid as i32);\n            ppid_distance.push(distance as i32)\n        });\n\n        assert!(ppid_distance[1] == 1);\n\n        fn find_calling_process(args: &[String], want: &[&str]) -> ProcessArgs<()> {\n            if args.iter().any(|have| want.iter().any(|want| want == have)) {\n                ProcessArgs::Args(())\n            } else {\n                ProcessArgs::ArgError\n            }\n        }\n\n        // Tests that caller is something like \"cargo test\" or \"cargo tarpaulin\"\n        let find_test = |args: &[String]| find_calling_process(args, &[\"t\", \"test\", \"tarpaulin\"]);\n        assert_eq!(calling_process_cmdline(info, find_test), Some(()));\n\n        let nonsense = ppid_distance\n            .iter()\n            .map(|i| i.to_string())\n            .join(\"Y40ii4RihK6lHiK4BDsGSx\");\n\n        let find_nothing = |args: &[String]| find_calling_process(args, &[&nonsense]);\n        assert_eq!(calling_process_cmdline(ProcInfo::new(), find_nothing), None);\n    }\n}\n"
  },
  {
    "path": "src/utils/regex_replacement.rs",
    "content": "use std::borrow::Cow;\n\nuse regex::{Regex, RegexBuilder};\n\n#[derive(Clone, Debug)]\npub struct RegexReplacement {\n    regex: Regex,\n    replacement: String,\n    replace_all: bool,\n}\n\nimpl RegexReplacement {\n    pub fn from_sed_command(sed_command: &str) -> Option<Self> {\n        let sep = sed_command.chars().nth(1)?;\n        let mut parts = sed_command[2..].split(sep);\n        let regex = parts.next()?;\n        let replacement = parts.next()?.to_string();\n        let flags = parts.next()?;\n        let mut re_builder = RegexBuilder::new(regex);\n        let mut replace_all = false;\n        for flag in flags.chars() {\n            match flag {\n                'g' => {\n                    replace_all = true;\n                }\n                'i' => {\n                    re_builder.case_insensitive(true);\n                }\n                'm' => {\n                    re_builder.multi_line(true);\n                }\n                's' => {\n                    re_builder.dot_matches_new_line(true);\n                }\n                'U' => {\n                    re_builder.swap_greed(true);\n                }\n                'x' => {\n                    re_builder.ignore_whitespace(true);\n                }\n                _ => {}\n            }\n        }\n        let regex = re_builder.build().ok()?;\n        Some(RegexReplacement {\n            regex,\n            replacement,\n            replace_all,\n        })\n    }\n\n    pub fn execute<'t>(&self, s: &'t str) -> Cow<'t, str> {\n        if self.replace_all {\n            self.regex.replace_all(s, &self.replacement)\n        } else {\n            self.regex.replace(s, &self.replacement)\n        }\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n\n    #[test]\n    fn test_sed_command() {\n        let command = \"s,foo,bar,\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.regex.as_str(), \"foo\");\n        assert_eq!(rr.replacement, \"bar\");\n        assert!(!rr.replace_all);\n        assert_eq!(rr.execute(\"foo\"), \"bar\");\n    }\n\n    #[test]\n    fn test_sed_command_i_flag() {\n        let command = \"s,FOO,bar,\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.execute(\"foo\"), \"foo\");\n        let command = \"s,FOO,bar,i\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.execute(\"foo\"), \"bar\");\n    }\n\n    #[test]\n    fn test_sed_command_g_flag() {\n        let command = \"s,foo,bar,\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.execute(\"foofoo\"), \"barfoo\");\n        let command = \"s,foo,bar,g\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.execute(\"foofoo\"), \"barbar\");\n    }\n\n    #[test]\n    fn test_sed_command_with_named_captures() {\n        let command = r\"s/(?P<last>[^,\\s]+),\\s+(?P<first>\\S+)/$first $last/\";\n        let rr = RegexReplacement::from_sed_command(command).unwrap();\n        assert_eq!(rr.execute(\"Springsteen, Bruce\"), \"Bruce Springsteen\");\n    }\n\n    #[test]\n    fn test_sed_command_invalid() {\n        assert!(RegexReplacement::from_sed_command(\"\").is_none());\n        assert!(RegexReplacement::from_sed_command(\"s\").is_none());\n        assert!(RegexReplacement::from_sed_command(\"s,\").is_none());\n        assert!(RegexReplacement::from_sed_command(\"s,,\").is_none());\n        assert!(RegexReplacement::from_sed_command(\"s,,i\").is_none());\n        assert!(RegexReplacement::from_sed_command(\"s,,,\").is_some());\n        assert!(RegexReplacement::from_sed_command(\"s,,,i\").is_some());\n    }\n}\n"
  },
  {
    "path": "src/utils/round_char_boundary.rs",
    "content": "// Taken from https://github.com/rust-lang/rust/pull/86497\n// TODO: Remove when this is in the version of the Rust standard library that delta is building\n// against.\n\n#[inline]\nconst fn is_utf8_char_boundary(b: u8) -> bool {\n    // This is bit magic equivalent to: b < 128 || b >= 192\n    (b as i8) >= -0x40\n}\n\n#[inline]\npub fn floor_char_boundary(s: &str, index: usize) -> usize {\n    if index >= s.len() {\n        s.len()\n    } else {\n        let lower_bound = index.saturating_sub(3);\n        let new_index = s.as_bytes()[lower_bound..=index]\n            .iter()\n            .rposition(|b| is_utf8_char_boundary(*b));\n\n        // SAFETY: we know that the character boundary will be within four bytes\n        unsafe { lower_bound + new_index.unwrap_unchecked() }\n    }\n}\n"
  },
  {
    "path": "src/utils/syntect.rs",
    "content": "use std::str::FromStr;\n\nuse syntect::highlighting::{Color, FontStyle, Style};\n\nuse crate::color;\nuse crate::style as delta_style;\n\npub fn syntect_color_from_ansi_name(name: &str) -> Option<Color> {\n    color::ansi_16_color_name_to_number(name).and_then(syntect_color_from_ansi_number)\n}\n\npub fn syntect_color_from_name(name: &str) -> Option<Color> {\n    palette::named::from_str(name).map(|color| Color {\n        r: color.red,\n        g: color.green,\n        b: color.blue,\n        a: 0xFF,\n    })\n}\n\n/// Convert 8-bit ANSI code to #RGBA string with ANSI code in red channel and 0 in alpha channel.\n// See https://github.com/sharkdp/bat/pull/543\npub fn syntect_color_from_ansi_number(n: u8) -> Option<Color> {\n    Color::from_str(&format!(\"#{n:02x}000000\")).ok()\n}\n\npub trait FromAnsiTermStyle {\n    fn from_ansi_term_style(ansi_term_style: ansi_term::Style) -> Self;\n}\n\nimpl FromAnsiTermStyle for Style {\n    fn from_ansi_term_style(ansi_term_style: ansi_term::Style) -> Self {\n        let default = Self::default();\n        Self {\n            foreground: if let Some(color) = ansi_term_style.foreground {\n                Color::from_ansi_term_color(color)\n            } else {\n                default.foreground\n            },\n            background: if let Some(color) = ansi_term_style.background {\n                Color::from_ansi_term_color(color)\n            } else {\n                default.background\n            },\n            font_style: FontStyle::from_ansi_term_style(ansi_term_style),\n        }\n    }\n}\n\nimpl FromAnsiTermStyle for FontStyle {\n    fn from_ansi_term_style(ansi_term_style: ansi_term::Style) -> Self {\n        let mut font_style = FontStyle::empty();\n        if ansi_term_style.is_bold {\n            font_style |= FontStyle::BOLD\n        }\n        if ansi_term_style.is_italic {\n            font_style |= FontStyle::ITALIC\n        }\n        if ansi_term_style.is_underline {\n            font_style |= FontStyle::UNDERLINE\n        }\n        font_style\n    }\n}\n\npub trait FromAnsiTermColor {\n    fn from_ansi_term_color(ansi_term_color: ansi_term::Color) -> Self;\n}\n\nimpl FromAnsiTermColor for Color {\n    fn from_ansi_term_color(ansi_term_color: ansi_term::Color) -> Self {\n        match ansi_term_color {\n            ansi_term::Color::Black => syntect_color_from_ansi_number(0).unwrap(),\n            ansi_term::Color::Red => syntect_color_from_ansi_number(1).unwrap(),\n            ansi_term::Color::Green => syntect_color_from_ansi_number(2).unwrap(),\n            ansi_term::Color::Yellow => syntect_color_from_ansi_number(3).unwrap(),\n            ansi_term::Color::Blue => syntect_color_from_ansi_number(4).unwrap(),\n            ansi_term::Color::Purple => syntect_color_from_ansi_number(5).unwrap(),\n            ansi_term::Color::Cyan => syntect_color_from_ansi_number(6).unwrap(),\n            ansi_term::Color::White => syntect_color_from_ansi_number(7).unwrap(),\n            ansi_term::Color::Fixed(n) => syntect_color_from_ansi_number(n).unwrap(),\n            ansi_term::Color::RGB(r, g, b) => Self { r, g, b, a: 0xFF },\n        }\n    }\n}\n\npub trait FromDeltaStyle {\n    fn from_delta_style(delta_style: delta_style::Style) -> Self;\n}\n\nimpl FromDeltaStyle for Style {\n    fn from_delta_style(delta_style: delta_style::Style) -> Self {\n        Self::from_ansi_term_style(delta_style.ansi_term_style)\n    }\n}\n"
  },
  {
    "path": "src/utils/tabs.rs",
    "content": "use unicode_segmentation::UnicodeSegmentation;\n\n#[derive(Debug, Clone)]\npub struct TabCfg {\n    replacement: String,\n}\n\nimpl TabCfg {\n    pub fn new(width: usize) -> Self {\n        TabCfg {\n            replacement: \" \".repeat(width),\n        }\n    }\n    pub fn width(&self) -> usize {\n        self.replacement.len()\n    }\n    pub fn replace(&self) -> bool {\n        !self.replacement.is_empty()\n    }\n}\n\n/// Expand tabs as spaces.\npub fn expand(line: &str, tab_cfg: &TabCfg) -> String {\n    if tab_cfg.replace() && line.as_bytes().contains(&b'\\t') {\n        itertools::join(line.split('\\t'), &tab_cfg.replacement)\n    } else {\n        line.to_string()\n    }\n}\n\n/// Remove `prefix` chars from `line`, then call `tabs::expand()`.\npub fn remove_prefix_and_expand(prefix: usize, line: &str, tab_cfg: &TabCfg) -> String {\n    let line_bytes = line.as_bytes();\n    // The to-be-removed prefixes are almost always ascii +/- (or ++/ +/.. for merges) for\n    // which grapheme clusters are not required.\n    if line_bytes.len() >= prefix && line_bytes[..prefix].is_ascii() {\n        // Safety: slicing into the utf-8 line-str is ok, upto `prefix` only ascii was present.\n        expand(&line[prefix..], tab_cfg)\n    } else {\n        let cut_line = line.graphemes(true).skip(prefix).collect::<String>();\n        expand(&cut_line, tab_cfg)\n    }\n}\n\n#[cfg(test)]\npub mod tests {\n    use super::*;\n\n    #[test]\n    fn test_remove_prefix_and_expand() {\n        let line = \"+-foo\\tbar\";\n        let result = remove_prefix_and_expand(2, line, &TabCfg::new(3));\n        assert_eq!(result, \"foo   bar\");\n        let result = remove_prefix_and_expand(2, line, &TabCfg::new(0));\n        assert_eq!(result, \"foo\\tbar\");\n\n        let utf8_prefix = \"-│-foo\\tbar\";\n        let n = 3;\n        let result = remove_prefix_and_expand(n, utf8_prefix, &TabCfg::new(1));\n        assert_eq!(result, \"foo bar\");\n        // ensure non-ascii chars were removed:\n        assert!(utf8_prefix.len() - result.len() > n);\n    }\n}\n"
  },
  {
    "path": "src/utils/workarounds.rs",
    "content": "// env var which should disable workarounds\nconst NO_WORKAROUNDS: &str = \"DELTA_NO_WORKAROUNDS\";\n\n// Work around a bug in the 'console' crate (inherited from 'terminal-size', #25): On Windows\n// it can not determine the width of an MSYS2 / MINGW64 terminal (e.g. from Git-Bash) correctly.\n// Instead use the usually included stty util from the MSYS2 distribution.\n#[cfg(target_os = \"windows\")]\npub fn windows_msys2_width_fix(height_width: (u16, u16), term_stdout: &console::Term) -> usize {\n    fn guess_real_width(current_width: u16, term_stdout: &console::Term) -> Option<u16> {\n        use std::process::{Command, Stdio};\n\n        let term_var = std::env::var(\"TERM\").ok()?;\n        // More checks before actually calling stty.\n        if term_var.starts_with(\"xterm\")\n            && term_stdout.is_term()\n            && term_stdout.features().is_msys_tty()\n        {\n            if std::env::var(NO_WORKAROUNDS).is_ok() {\n                return Some(current_width);\n            }\n\n            // stderr/2 is passed to the Command below.\n            let pseudo_term = \"/dev/fd/2\";\n\n            // Read width via stty helper program (e.g. \"C:\\Program Files\\Git\\usr\\bin\\stty.exe\")\n            // which gets both the MSYS2 and cmd.exe width right.\n            let result = Command::new(\"stty\")\n                .stderr(Stdio::inherit())\n                .arg(\"-F\")\n                .arg(pseudo_term)\n                .arg(\"size\")\n                .output()\n                .ok()?;\n\n            if result.status.success() {\n                let size = std::str::from_utf8(&result.stdout).ok()?;\n                let mut it = size.split_whitespace();\n                let _height = it.next()?;\n                return it.next().map(|width| width.parse().ok())?;\n            }\n        }\n        None\n    }\n\n    // Calling an external binary is slow, so make sure this is actually necessary.\n    // The fallback values of 25 lines by 80 columns (sometimes zero indexed) are a good\n    // indicator.\n    let (height, width) = height_width;\n    match (height, width) {\n        (24..=25, 79..=80) => guess_real_width(width, term_stdout).unwrap_or(width),\n        _ => width,\n    }\n    .into()\n}\n\n#[cfg(not(target_os = \"windows\"))]\npub fn windows_msys2_width_fix(height_width: (u16, u16), _: &console::Term) -> usize {\n    let _ = NO_WORKAROUNDS;\n    height_width.1.into()\n}\n"
  },
  {
    "path": "src/wrapping.rs",
    "content": "use syntect::highlighting::Style as SyntectStyle;\nuse unicode_segmentation::UnicodeSegmentation;\nuse unicode_width::UnicodeWidthStr;\n\nuse crate::cli;\nuse crate::config::INLINE_SYMBOL_WIDTH_1;\nuse crate::fatal;\n\nuse crate::config::Config;\nuse crate::delta::DiffType;\nuse crate::delta::State;\nuse crate::features::line_numbers::{self, SideBySideLineWidth};\nuse crate::features::side_by_side::{available_line_width, line_is_too_long, Left, Right};\nuse crate::minusplus::*;\nuse crate::paint::LineSections;\nuse crate::style::Style;\nuse crate::utils::syntect::FromDeltaStyle;\n\n/// See [`wrap_line`] for documentation.\n#[derive(Clone, Debug)]\npub struct WrapConfig {\n    pub left_symbol: String,\n    pub right_symbol: String,\n    pub right_prefix_symbol: String,\n    // In fractions of 1000 so that a >100 wide panel can\n    // still be configured down to a single character.\n    pub use_wrap_right_permille: usize,\n    // This value is --wrap-max-lines + 1, and unlimited is 0, see\n    // adapt_wrap_max_lines_argument()\n    pub max_lines: usize,\n    pub inline_hint_syntect_style: SyntectStyle,\n}\n\nimpl WrapConfig {\n    pub fn from_opt(opt: &cli::Opt, inline_hint_style: Style) -> Self {\n        Self {\n            left_symbol: ensure_display_width_1(\"wrap-left-symbol\", opt.wrap_left_symbol.clone()),\n            right_symbol: ensure_display_width_1(\n                \"wrap-right-symbol\",\n                opt.wrap_right_symbol.clone(),\n            ),\n            right_prefix_symbol: ensure_display_width_1(\n                \"wrap-right-prefix-symbol\",\n                opt.wrap_right_prefix_symbol.clone(),\n            ),\n            use_wrap_right_permille: {\n                let arg = &opt.wrap_right_percent;\n                let percent = remove_percent_suffix(arg)\n                    .parse::<f64>()\n                    .unwrap_or_else(|err| {\n                        fatal(format!(\n                            \"Could not parse wrap-right-percent argument {}: {}.\",\n                            &arg, err\n                        ))\n                    });\n                if percent.is_finite() && percent > 0.0 && percent < 100.0 {\n                    (percent * 10.0).round() as usize\n                } else {\n                    fatal(\"Invalid value for wrap-right-percent, not between 0 and 100.\")\n                }\n            },\n            max_lines: adapt_wrap_max_lines_argument(opt.wrap_max_lines.clone()),\n            inline_hint_syntect_style: SyntectStyle::from_delta_style(inline_hint_style),\n        }\n    }\n\n    // Compute value of `max_line_length` field in the main `Config` struct.\n    pub fn config_max_line_length(\n        &self,\n        max_line_length: usize,\n        available_terminal_width: usize,\n    ) -> usize {\n        match self.max_lines {\n            1 => max_line_length,\n            // Ensure there is enough text to wrap, either don't truncate the input at all (0)\n            // or ensure there is enough for the requested number of lines.\n            // The input can contain ANSI sequences, so round up a bit. This is enough for\n            // normal `git diff`, but might not be with ANSI heavy input.\n            0 => 0,\n            wrap_max_lines => {\n                let single_pane_width = available_terminal_width / 2;\n                let add_25_percent_or_term_width =\n                    |x| x + std::cmp::max((x * 250) / 1000, single_pane_width);\n                std::cmp::max(\n                    max_line_length,\n                    add_25_percent_or_term_width(single_pane_width * wrap_max_lines),\n                )\n            }\n        }\n    }\n}\n\nfn remove_percent_suffix(arg: &str) -> &str {\n    match &arg.strip_suffix('%') {\n        Some(s) => s,\n        None => arg,\n    }\n}\n\nfn ensure_display_width_1(what: &str, arg: String) -> String {\n    match arg.grapheme_indices(true).count() {\n        INLINE_SYMBOL_WIDTH_1 => arg,\n        width => fatal(format!(\n            \"Invalid value for {what}, display width of \\\"{arg}\\\" must be {INLINE_SYMBOL_WIDTH_1} but is {width}\",\n        )),\n    }\n}\n\nfn adapt_wrap_max_lines_argument(arg: String) -> usize {\n    if arg == \"∞\" || arg == \"unlimited\" || arg.starts_with(\"inf\") {\n        0\n    } else {\n        arg.parse::<usize>()\n            .unwrap_or_else(|err| fatal(format!(\"Invalid wrap-max-lines argument: {err}\")))\n            + 1\n    }\n}\n\n#[derive(PartialEq)]\nenum Stop {\n    StackEmpty,\n    LineLimit,\n}\n\n/// Wrap the given `line` if it is longer than `line_width`. Wrap to at most\n/// [Config::WrapConfig::max_lines](WrapConfig::max_lines) lines,\n/// then truncate again - but never truncate if it is `0`. Place\n/// [left_symbol](WrapConfig::left_symbol) at the end of wrapped lines.\n/// If wrapping results in only *one* extra line and if the width of the wrapped\n/// line is less than [use_wrap_right_permille](WrapConfig::use_wrap_right_permille)\n/// then right-align the second line and use the symbols\n/// [right_symbol](WrapConfig::right_symbol) and\n/// on the next line [right_prefix_symbol](WrapConfig::right_prefix_symbol).\n/// The inserted characters will follow the\n/// [inline_hint_syntect_style](WrapConfig::inline_hint_syntect_style).\npub fn wrap_line<'a, I, S>(\n    config: &'a Config,\n    line: I,\n    line_width: usize,\n    fill_style: &S,\n    inline_hint_style: &Option<S>,\n) -> Vec<LineSections<'a, S>>\nwhere\n    I: IntoIterator<Item = (S, &'a str)> + std::fmt::Debug,\n    <I as IntoIterator>::IntoIter: DoubleEndedIterator,\n    S: Copy + Default + std::fmt::Debug,\n{\n    let mut result = Vec::new();\n\n    let wrap_config = &config.wrap_config;\n\n    // The current line being assembled from the input to fit exactly into the given width.\n    // A somewhat leaky abstraction as the fields are also accessed directly.\n    struct CurrLine<'a, S: Default> {\n        line_segments: LineSections<'a, S>,\n        len: usize,\n    }\n    impl<'a, S: Default> CurrLine<'a, S> {\n        fn reset() -> Self {\n            CurrLine {\n                line_segments: Vec::new(),\n                len: 0,\n            }\n        }\n        fn push_and_set_len(&mut self, text: (S, &'a str), len: usize) {\n            self.line_segments.push(text);\n            self.len = len;\n        }\n        fn has_text(&self) -> bool {\n            self.len > 0\n        }\n        fn text_len(&self) -> usize {\n            self.len\n        }\n    }\n\n    let mut curr_line = CurrLine::reset();\n\n    // Determine the background (diff) and color (syntax) of an inserted symbol.\n    let symbol_style = match inline_hint_style {\n        Some(style) => *style,\n        None => *fill_style,\n    };\n\n    let mut stack = line.into_iter().rev().collect::<Vec<_>>();\n\n    // If only the wrap symbol and no extra text fits, then wrapping is not possible.\n    let max_lines = if line_width <= INLINE_SYMBOL_WIDTH_1 {\n        1\n    } else {\n        wrap_config.max_lines\n    };\n\n    let line_limit_reached = |result: &Vec<_>| max_lines > 0 && result.len() + 1 >= max_lines;\n\n    let stop = loop {\n        if stack.is_empty() {\n            break Stop::StackEmpty;\n        } else if line_limit_reached(&result) {\n            break Stop::LineLimit;\n        }\n\n        let (style, text, graphemes) = stack\n            .pop()\n            .map(|(style, text)| {\n                (\n                    style,\n                    text,\n                    text.graphemes(true)\n                        .map(|item| (item.len(), item.width()))\n                        .collect::<Vec<_>>(),\n                )\n            })\n            .unwrap();\n\n        let graphemes_width: usize = graphemes.iter().map(|(_, w)| w).sum();\n        let new_len = curr_line.len + graphemes_width;\n\n        #[allow(clippy::comparison_chain)]\n        let must_split = if new_len < line_width {\n            curr_line.push_and_set_len((style, text), new_len);\n            false\n        } else if new_len == line_width {\n            match stack.last() {\n                // Perfect fit, no need to make space for a `wrap_symbol`.\n                None => {\n                    curr_line.push_and_set_len((style, text), new_len);\n                    false\n                }\n                #[allow(clippy::identity_op)]\n                // A single '\\n' left on the stack can be pushed onto the current line.\n                Some((next_style, nl)) if stack.len() == 1 && *nl == \"\\n\" => {\n                    curr_line.push_and_set_len((style, text), new_len);\n                    // Do not count the '\\n': + 0\n                    curr_line.push_and_set_len((*next_style, *nl), new_len + 0);\n                    stack.pop();\n                    false\n                }\n                _ => true,\n            }\n        } else {\n            true\n        };\n\n        // Text must be split, one part (or just `wrap_symbol`) is added to the\n        // current line, the other is pushed onto the stack.\n        if must_split {\n            let mut width_left = graphemes_width\n                .saturating_sub(new_len - line_width)\n                .saturating_sub(wrap_config.left_symbol.width());\n\n            // The length does not matter anymore and `curr_line` will be reset\n            // at the end, so move the line segments out.\n            let mut line_segments = curr_line.line_segments;\n\n            let next_line = if width_left == 0 {\n                text\n            } else {\n                let mut byte_split_pos = 0;\n                // After loop byte_split_pos may still equal to 0. If width_left\n                // is less than the width of first character, We can't display it.\n                for &(item_len, item_width) in graphemes.iter() {\n                    if width_left >= item_width {\n                        byte_split_pos += item_len;\n                        width_left -= item_width;\n                    } else {\n                        break;\n                    }\n                }\n\n                let this_line = &text[..byte_split_pos];\n                line_segments.push((style, this_line));\n                &text[byte_split_pos..]\n            };\n            stack.push((style, next_line));\n\n            line_segments.push((symbol_style, &wrap_config.left_symbol));\n            result.push(line_segments);\n\n            curr_line = CurrLine::reset();\n        }\n    };\n\n    // Right-align wrapped line:\n    // Done if wrapping adds exactly one line and this line is less than the given\n    // permille wide. Also change the wrap symbol at the end of the previous (first) line.\n    if result.len() == 1 && curr_line.has_text() {\n        let current_permille = (curr_line.text_len() * 1000) / line_width;\n\n        // pad line will add a wrap_config.right_prefix_symbol\n        let pad_len = line_width\n            .saturating_sub(curr_line.text_len() + wrap_config.right_prefix_symbol.width());\n\n        if wrap_config.use_wrap_right_permille > current_permille && pad_len > 0 {\n            // The inserted spaces, which align a line to the right, point into this string.\n            const SPACES: &str = \"                                                                \";\n\n            match result.last_mut() {\n                Some(ref mut vec) if !vec.is_empty() => {\n                    vec.last_mut().unwrap().1 = &wrap_config.right_symbol\n                }\n                _ => unreachable!(\"wrap result must not be empty\"),\n            }\n\n            let mut right_aligned_line = Vec::new();\n\n            for _ in 0..(pad_len / SPACES.len()) {\n                right_aligned_line.push((*fill_style, SPACES));\n            }\n\n            match pad_len % SPACES.len() {\n                0 => (),\n                n => right_aligned_line.push((*fill_style, &SPACES[0..n])),\n            }\n\n            right_aligned_line.push((symbol_style, &wrap_config.right_prefix_symbol));\n\n            right_aligned_line.extend(curr_line.line_segments);\n\n            curr_line.line_segments = right_aligned_line;\n\n            // curr_line.len not updated, as only 0 / >0 for `has_text()` is required.\n        }\n    }\n\n    if curr_line.has_text() {\n        result.push(curr_line.line_segments);\n    }\n\n    if stop == Stop::LineLimit && result.len() != max_lines {\n        result.push(Vec::new());\n    }\n\n    // Anything that is left will be added to the (last) line. If this is too long it will\n    // be truncated later.\n    if !stack.is_empty() {\n        if result.is_empty() {\n            result.push(Vec::new());\n        }\n\n        // unwrap: previous `if` ensures result can not be empty\n        result.last_mut().unwrap().extend(stack.into_iter().rev());\n    }\n\n    result\n}\n\nfn wrap_if_too_long<'a, S>(\n    config: &'a Config,\n    wrapped: &mut Vec<LineSections<'a, S>>,\n    input_vec: LineSections<'a, S>,\n    must_wrap: bool,\n    line_width: usize,\n    fill_style: &S,\n    inline_hint_style: &Option<S>,\n) -> (usize, usize)\nwhere\n    S: Copy + Default + std::fmt::Debug,\n{\n    let size_prev = wrapped.len();\n\n    if must_wrap {\n        wrapped.append(&mut wrap_line(\n            config,\n            input_vec,\n            line_width,\n            fill_style,\n            inline_hint_style,\n        ));\n    } else {\n        wrapped.push(input_vec.to_vec());\n    }\n\n    (size_prev, wrapped.len())\n}\n\n/// Call [`wrap_line`] for the `syntax` and the `diff` lines if `wrapinfo` says\n/// a specific line was longer than `line_width`. Return an adjusted `alignment`\n/// with regard to the added wrapped lines.\n#[allow(clippy::comparison_chain, clippy::type_complexity)]\npub fn wrap_minusplus_block<'c: 'a, 'a>(\n    config: &'c Config,\n    syntax: MinusPlus<Vec<LineSections<'a, SyntectStyle>>>,\n    diff: MinusPlus<Vec<LineSections<'a, Style>>>,\n    alignment: &[(Option<usize>, Option<usize>)],\n    line_width: &SideBySideLineWidth,\n    wrapinfo: &'a MinusPlus<Vec<bool>>,\n) -> (\n    Vec<(Option<usize>, Option<usize>)>,\n    MinusPlus<Vec<State>>,\n    MinusPlus<Vec<LineSections<'a, SyntectStyle>>>,\n    MinusPlus<Vec<LineSections<'a, Style>>>,\n) {\n    let mut new_alignment = Vec::new();\n    let mut new_states = MinusPlus::<Vec<State>>::default();\n    let mut new_wrapped_syntax = MinusPlus::default();\n    let mut new_wrapped_diff = MinusPlus::default();\n\n    // Turn all these into pairs of iterators so they can be advanced according\n    // to the alignment and independently.\n    let mut syntax = MinusPlus::new(syntax.minus.into_iter(), syntax.plus.into_iter());\n    let mut diff = MinusPlus::new(diff.minus.into_iter(), diff.plus.into_iter());\n    let mut wrapinfo = MinusPlus::new(wrapinfo[Left].iter(), wrapinfo[Right].iter());\n\n    let fill_style = MinusPlus::new(&config.minus_style, &config.plus_style);\n\n    // Internal helper function to perform wrapping for both the syntax and the\n    // diff highlighting (SyntectStyle and Style).\n    #[allow(clippy::too_many_arguments)]\n    pub fn wrap_syntax_and_diff<'a, ItSyn, ItDiff, ItWrap>(\n        config: &'a Config,\n        wrapped_syntax: &mut Vec<LineSections<'a, SyntectStyle>>,\n        wrapped_diff: &mut Vec<LineSections<'a, Style>>,\n        syntax_iter: &mut ItSyn,\n        diff_iter: &mut ItDiff,\n        wrapinfo_iter: &mut ItWrap,\n        line_width: usize,\n        fill_style: &Style,\n        errhint: &'a str,\n    ) -> (usize, usize)\n    where\n        ItSyn: Iterator<Item = LineSections<'a, SyntectStyle>>,\n        ItDiff: Iterator<Item = LineSections<'a, Style>>,\n        ItWrap: Iterator<Item = &'a bool>,\n    {\n        let must_wrap = *wrapinfo_iter\n            .next()\n            .unwrap_or_else(|| panic!(\"bad wrap info {}\", errhint));\n\n        let (start, extended_to) = wrap_if_too_long(\n            config,\n            wrapped_syntax,\n            syntax_iter\n                .next()\n                .unwrap_or_else(|| panic!(\"bad syntax alignment {}\", errhint)),\n            must_wrap,\n            line_width,\n            &config.null_syntect_style,\n            &Some(config.wrap_config.inline_hint_syntect_style),\n        );\n\n        // TODO: Why is the background color set to white when\n        // ansi_term_style.background is None?\n        let inline_hint_style = if config\n            .inline_hint_style\n            .ansi_term_style\n            .background\n            .is_some()\n        {\n            Some(config.inline_hint_style)\n        } else {\n            None\n        };\n\n        let (start2, extended_to2) = wrap_if_too_long(\n            config,\n            wrapped_diff,\n            diff_iter\n                .next()\n                .unwrap_or_else(|| panic!(\"bad diff alignment {}\", errhint)),\n            must_wrap,\n            line_width,\n            fill_style,\n            &inline_hint_style,\n        );\n\n        // The underlying text is the same for the style and diff, so\n        // the length of the wrapping should be identical:\n        assert_eq!(\n            (start, extended_to),\n            (start2, extended_to2),\n            \"syntax and diff wrapping differs {errhint}\",\n        );\n\n        (start, extended_to)\n    }\n\n    // This macro avoids having the same code block 4x in the alignment processing\n    macro_rules! wrap_and_assert {\n        ($side:tt, $errhint:tt, $have:tt, $expected:tt) => {{\n            assert_eq!(*$have, $expected, \"bad alignment index {}\", $errhint);\n            $expected += 1;\n\n            wrap_syntax_and_diff(\n                &config,\n                &mut new_wrapped_syntax[$side],\n                &mut new_wrapped_diff[$side],\n                &mut syntax[$side],\n                &mut diff[$side],\n                &mut wrapinfo[$side],\n                line_width[$side],\n                &fill_style[$side],\n                $errhint,\n            )\n        }};\n    }\n\n    let mut m_expected = 0;\n    let mut p_expected = 0;\n\n    // Process blocks according to the alignment and build a new alignment.\n    // If lines get added via wrapping these are assigned the state HunkMinusWrapped/HunkPlusWrapped.\n    for (minus, plus) in alignment {\n        let (minus_extended, plus_extended) = match (minus, plus) {\n            (Some(m), None) => {\n                let (minus_start, extended_to) = wrap_and_assert!(Left, \"[*l*] (-)\", m, m_expected);\n\n                for i in minus_start..extended_to {\n                    new_alignment.push((Some(i), None));\n                }\n\n                (extended_to - minus_start, 0)\n            }\n            (None, Some(p)) => {\n                let (plus_start, extended_to) = wrap_and_assert!(Right, \"(-) [*r*]\", p, p_expected);\n\n                for i in plus_start..extended_to {\n                    new_alignment.push((None, Some(i)));\n                }\n\n                (0, extended_to - plus_start)\n            }\n            (Some(m), Some(p)) => {\n                let (minus_start, m_extended_to) =\n                    wrap_and_assert!(Left, \"[*l*] (r)\", m, m_expected);\n                let (plus_start, p_extended_to) =\n                    wrap_and_assert!(Right, \"(l) [*r*]\", p, p_expected);\n\n                for (new_m, new_p) in (minus_start..m_extended_to).zip(plus_start..p_extended_to) {\n                    new_alignment.push((Some(new_m), Some(new_p)));\n                }\n\n                // This Some(m):Some(p) alignment might have become uneven, so fill\n                // up the shorter side with None.\n\n                let minus_extended = m_extended_to - minus_start;\n                let plus_extended = p_extended_to - plus_start;\n\n                let plus_minus = (minus_extended as isize) - (plus_extended as isize);\n\n                if plus_minus > 0 {\n                    for m in (m_extended_to as isize - plus_minus) as usize..m_extended_to {\n                        new_alignment.push((Some(m), None));\n                    }\n                } else if plus_minus < 0 {\n                    for p in (p_extended_to as isize + plus_minus) as usize..p_extended_to {\n                        new_alignment.push((None, Some(p)));\n                    }\n                }\n\n                (minus_extended, plus_extended)\n            }\n            _ => unreachable!(\"None-None alignment\"),\n        };\n\n        if minus_extended > 0 {\n            new_states[Left].push(State::HunkMinus(DiffType::Unified, None));\n            for _ in 1..minus_extended {\n                new_states[Left].push(State::HunkMinusWrapped);\n            }\n        }\n        if plus_extended > 0 {\n            new_states[Right].push(State::HunkPlus(DiffType::Unified, None));\n            for _ in 1..plus_extended {\n                new_states[Right].push(State::HunkPlusWrapped);\n            }\n        }\n    }\n\n    (\n        new_alignment,\n        new_states,\n        new_wrapped_syntax,\n        new_wrapped_diff,\n    )\n}\n\n#[allow(clippy::comparison_chain, clippy::type_complexity)]\npub fn wrap_zero_block<'c: 'a, 'a>(\n    config: &'c Config,\n    line: &str,\n    mut states: Vec<State>,\n    syntax_style_sections: Vec<LineSections<'a, SyntectStyle>>,\n    diff_style_sections: Vec<LineSections<'a, Style>>,\n    line_numbers_data: &Option<&mut line_numbers::LineNumbersData>,\n) -> (\n    Vec<State>,\n    Vec<LineSections<'a, SyntectStyle>>,\n    Vec<LineSections<'a, Style>>,\n) {\n    // The width is the minimum of the left/right side. The panels should be equally sized,\n    // but in rare cases the remaining panel width might differ due to the space the line\n    // numbers take up.\n    let line_width = if let Some(line_numbers_data) = line_numbers_data {\n        let width = available_line_width(config, line_numbers_data);\n        std::cmp::min(width[Left], width[Right])\n    } else {\n        std::cmp::min(\n            config.side_by_side_data[Left].width,\n            config.side_by_side_data[Right].width,\n        )\n    };\n\n    // Called with a single line, so no need to use the 1-sized bool vector.\n    // If that changes the wrapping logic should be updated as well.\n    debug_assert_eq!(diff_style_sections.len(), 1);\n\n    let should_wrap = line_is_too_long(line, line_width);\n\n    if should_wrap {\n        let syntax_style = wrap_line(\n            config,\n            syntax_style_sections.into_iter().flatten(),\n            line_width,\n            &SyntectStyle::default(),\n            &Some(config.wrap_config.inline_hint_syntect_style),\n        );\n\n        // TODO: Why is the background color set to white when\n        // ansi_term_style.background is None?\n        let inline_hint_style = if config\n            .inline_hint_style\n            .ansi_term_style\n            .background\n            .is_some()\n        {\n            Some(config.inline_hint_style)\n        } else {\n            None\n        };\n        let diff_style = wrap_line(\n            config,\n            diff_style_sections.into_iter().flatten(),\n            line_width,\n            // To actually highlight inline hint characters:\n            &Style {\n                is_syntax_highlighted: true,\n                ..config.null_style\n            },\n            &inline_hint_style,\n        );\n\n        states.resize_with(syntax_style.len(), || State::HunkZeroWrapped);\n\n        (states, syntax_style, diff_style)\n    } else {\n        (states, syntax_style_sections, diff_style_sections)\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use lazy_static::lazy_static;\n    use syntect::highlighting::Style as SyntectStyle;\n\n    use super::wrap_line;\n    use super::WrapConfig;\n    use crate::config::Config;\n    use crate::paint::LineSections;\n    use crate::style::Style;\n    use crate::tests::integration_test_utils::{make_config_from_args, DeltaTest};\n\n    lazy_static! {\n        static ref S1: Style = Style {\n            is_syntax_highlighted: true,\n            ..Default::default()\n        };\n    }\n    lazy_static! {\n        static ref S2: Style = Style {\n            is_emph: true,\n            ..Default::default()\n        };\n    }\n    lazy_static! {\n        static ref SY: SyntectStyle = SyntectStyle::default();\n    }\n    lazy_static! {\n        static ref SD: Style = Style::default();\n    }\n\n    const W: &str = \"+\"; // wrap\n    const WR: &str = \"<\"; // wrap-right\n    const RA: &str = \">\"; // right-align\n\n    lazy_static! {\n        static ref WRAP_DEFAULT_ARGS: Vec<&'static str> = vec![\n            \"--wrap-left-symbol\",\n            W,\n            \"--wrap-right-symbol\",\n            WR,\n            \"--wrap-right-prefix-symbol\",\n            RA,\n            \"--wrap-max-lines\",\n            \"4\",\n            \"--wrap-right-percent\",\n            \"37.0%\",\n        ];\n    }\n\n    lazy_static! {\n        static ref TEST_WRAP_CFG: WrapConfig =\n            make_config_from_args(&WRAP_DEFAULT_ARGS).wrap_config;\n    }\n\n    fn default_wrap_cfg_plus<'a>(args: &[&'a str]) -> Vec<&'a str> {\n        let mut result = WRAP_DEFAULT_ARGS.clone();\n        result.extend_from_slice(args);\n        result\n    }\n\n    fn mk_wrap_cfg(wrap_cfg: &WrapConfig) -> Config {\n        let mut cfg: Config = make_config_from_args(&[]);\n        cfg.wrap_config = wrap_cfg.clone();\n        cfg\n    }\n\n    fn wrap_test<'a, I, S>(cfg: &'a Config, line: I, line_width: usize) -> Vec<LineSections<'a, S>>\n    where\n        I: IntoIterator<Item = (S, &'a str)> + std::fmt::Debug,\n        <I as IntoIterator>::IntoIter: DoubleEndedIterator,\n        S: Copy + Default + std::fmt::Debug,\n    {\n        wrap_line(cfg, line, line_width, &S::default(), &None)\n    }\n\n    #[test]\n    fn test_wrap_line_single() {\n        let cfg = mk_wrap_cfg(&TEST_WRAP_CFG);\n\n        {\n            let line = vec![(*SY, \"0\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*SY, \"0\")]]);\n        }\n        {\n            let line = vec![(*S1, \"012\"), (*S2, \"34\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*S1, \"012\"), (*S2, \"34\")]]);\n        }\n        {\n            let line = vec![(*S1, \"012\"), (*S2, \"345\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*S1, \"012\"), (*S2, \"345\")]]);\n        }\n        {\n            // Empty input usually does not happen\n            let line = vec![(*S1, \"\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert!(lines.is_empty());\n        }\n        {\n            // Partially empty should not happen either\n            let line = vec![(*S1, \"\"), (*S2, \"0\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*S1, \"\"), (*S2, \"0\")]]);\n        }\n        {\n            let line = vec![(*S1, \"0\"), (*S2, \"\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*S1, \"0\"), (*S2, \"\")]]);\n        }\n        {\n            let line = vec![\n                (*S1, \"0\"),\n                (*S2, \"\"),\n                (*S1, \"\"),\n                (*S2, \"\"),\n                (*S1, \"\"),\n                (*S2, \"\"),\n                (*S1, \"\"),\n                (*S2, \"\"),\n                (*S1, \"\"),\n                (*S2, \"\"),\n            ];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(\n                lines,\n                vec![vec![\n                    (*S1, \"0\"),\n                    (*S2, \"\"),\n                    (*S1, \"\"),\n                    (*S2, \"\"),\n                    (*S1, \"\"),\n                    (*S2, \"\"),\n                    (*S1, \"\"),\n                    (*S2, \"\"),\n                    (*S1, \"\"),\n                    (*S2, \"\")\n                ]]\n            );\n        }\n    }\n\n    #[test]\n    fn test_wrap_line_align_right_1() {\n        let cfg = mk_wrap_cfg(&TEST_WRAP_CFG);\n\n        let line = vec![(*S1, \"0123456789ab\")];\n        let lines = wrap_test(&cfg, line, 11);\n        assert_eq!(lines.len(), 2);\n        assert_eq!(lines[0].last().unwrap().1, WR);\n        assert_eq!(lines[1], [(*SD, \"        \"), (*SD, \">\"), (*S1, \"ab\")]);\n    }\n\n    #[test]\n    fn test_wrap_line_align_right_2() {\n        let line = vec![(*S1, \"012\"), (*S2, \"3456\")];\n\n        {\n            // Right align lines on the second line\n            let cfg = mk_wrap_cfg(&TEST_WRAP_CFG);\n\n            let lines = wrap_test(&cfg, line.clone(), 6);\n            assert_eq!(\n                lines,\n                vec![\n                    vec![(*S1, \"012\"), (*S2, \"34\"), (*SD, WR)],\n                    vec![(*SD, \"   \"), (*SD, RA), (*S2, \"56\")]\n                ]\n            );\n        }\n\n        {\n            // Set right align percentage lower, normal wrapping\n            let mut no_align_right = TEST_WRAP_CFG.clone();\n            no_align_right.use_wrap_right_permille = 1; // 0.1%\n            let cfg_no_align_right = mk_wrap_cfg(&no_align_right);\n\n            let lines = wrap_test(&cfg_no_align_right, line, 6);\n            assert_eq!(\n                lines,\n                vec![vec![(*S1, \"012\"), (*S2, \"34\"), (*SD, W)], vec![(*S2, \"56\")]]\n            );\n        }\n    }\n\n    #[test]\n    fn test_wrap_line_newlines() {\n        fn mk_input(len: usize) -> LineSections<'static, Style> {\n            const IN: &str = \"0123456789abcdefZ\";\n            let v = &[*S1, *S2];\n            let s1s2 = v.iter().cycle();\n            let text: Vec<_> = IN.matches(|_| true).take(len + 1).collect();\n            s1s2.zip(text.iter())\n                .map(|(style, text)| (*style, *text))\n                .collect()\n        }\n        fn mk_input_nl(len: usize) -> LineSections<'static, Style> {\n            const NL: &str = \"\\n\";\n            let mut line = mk_input(len);\n            line.push((*S2, NL));\n            line\n        }\n        fn mk_expected<'a>(\n            vec: &LineSections<'a, Style>,\n            from: usize,\n            to: usize,\n            append: Option<(Style, &'a str)>,\n        ) -> LineSections<'a, Style> {\n            let mut result: Vec<_> = vec[from..to].to_vec();\n            if let Some(val) = append {\n                result.push(val);\n            }\n            result\n        }\n\n        let cfg = mk_wrap_cfg(&TEST_WRAP_CFG);\n\n        {\n            let line = vec![(*S1, \"012\"), (*S2, \"345\\n\")];\n            let lines = wrap_test(&cfg, line, 6);\n            assert_eq!(lines, vec![vec![(*S1, \"012\"), (*S2, \"345\\n\")]]);\n        }\n\n        {\n            for i in 0..=5 {\n                let line = mk_input(i);\n                let lines = wrap_test(&cfg, line, 6);\n                assert_eq!(lines, vec![mk_input(i)]);\n\n                let line = mk_input_nl(i);\n                let lines = wrap_test(&cfg, line, 6);\n                assert_eq!(lines, vec![mk_input_nl(i)]);\n            }\n        }\n\n        {\n            let line = mk_input_nl(9);\n            let lines = wrap_test(&cfg, line, 3);\n            let expected = mk_input_nl(9);\n            let line1 = mk_expected(&expected, 0, 2, Some((*SD, W)));\n            let line2 = mk_expected(&expected, 2, 4, Some((*SD, W)));\n            let line3 = mk_expected(&expected, 4, 6, Some((*SD, W)));\n            let line4 = mk_expected(&expected, 6, 8, Some((*SD, W)));\n            let line5 = mk_expected(&expected, 8, 11, None);\n            assert_eq!(lines, vec![line1, line2, line3, line4, line5]);\n        }\n\n        {\n            let line = mk_input_nl(10);\n            let lines = wrap_test(&cfg, line, 3);\n            let expected = mk_input_nl(10);\n            let line1 = mk_expected(&expected, 0, 2, Some((*SD, W)));\n            let line2 = mk_expected(&expected, 2, 4, Some((*SD, W)));\n            let line3 = mk_expected(&expected, 4, 6, Some((*SD, W)));\n            let line4 = mk_expected(&expected, 6, 8, Some((*SD, W)));\n            let line5 = mk_expected(&expected, 8, 11, Some((*S2, \"\\n\")));\n            assert_eq!(lines, vec![line1, line2, line3, line4, line5]);\n        }\n\n        {\n            let line = vec![(*S1, \"abc\"), (*S2, \"01230123012301230123\"), (*S1, \"ZZZZZ\")];\n\n            let wcfg1 = mk_wrap_cfg(&WrapConfig {\n                max_lines: 1,\n                ..TEST_WRAP_CFG.clone()\n            });\n            let wcfg2 = mk_wrap_cfg(&WrapConfig {\n                max_lines: 2,\n                ..TEST_WRAP_CFG.clone()\n            });\n            let wcfg3 = mk_wrap_cfg(&WrapConfig {\n                max_lines: 3,\n                ..TEST_WRAP_CFG.clone()\n            });\n\n            let lines = wrap_line(&wcfg1, line.clone(), 4, &Style::default(), &None);\n            assert_eq!(lines.len(), 1);\n            assert_eq!(lines.last().unwrap().last().unwrap().1, \"ZZZZZ\");\n            let lines = wrap_line(&wcfg2, line.clone(), 4, &Style::default(), &None);\n            assert_eq!(lines.len(), 2);\n            assert_eq!(lines.last().unwrap().last().unwrap().1, \"ZZZZZ\");\n            let lines = wrap_line(&wcfg3, line.clone(), 4, &Style::default(), &None);\n            assert_eq!(lines.len(), 3);\n            assert_eq!(lines.last().unwrap().last().unwrap().1, \"ZZZZZ\");\n        }\n    }\n\n    #[test]\n    fn test_wrap_line_unicode() {\n        let cfg = mk_wrap_cfg(&TEST_WRAP_CFG);\n\n        // from UnicodeSegmentation documentation and the linked\n        // Unicode Standard Annex #29\n        let line = vec![(*S1, \"abc\"), (*S2, \"mnö̲\"), (*S1, \"xyz\")];\n        let lines = wrap_test(&cfg, line, 4);\n        assert_eq!(\n            lines,\n            vec![\n                vec![(*S1, \"abc\"), (*SD, W)],\n                vec![(*S2, \"mnö̲\"), (*SD, W)],\n                vec![(*S1, \"xyz\")]\n            ]\n        );\n\n        // Not working: Tailored grapheme clusters: क्षि  = क् + षि\n        //\n        // Difference compare to previous example (even they may look like the\n        // same width in text editor.) :\n        //\n        // width நி: 2\n        // width ö̲: 1\n        let line = vec![(*S1, \"abc\"), (*S2, \"dநி\"), (*S1, \"ghij\")];\n        let lines = wrap_test(&cfg, line, 4);\n        assert_eq!(\n            lines,\n            vec![\n                vec![(*S1, \"abc\"), (*SD, W)],\n                vec![(*S2, \"dநி\"), (*SD, W)],\n                vec![(*S1, \"ghij\")]\n            ]\n        );\n    }\n\n    const HUNK_ZERO_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..e69de29 100644\n--- i/a.py\n+++ w/a.py\n@@ -4,3 +15,3 @@\n abcdefghijklmnopqrstuvwxzy 0123456789 0123456789 0123456789 0123456789 0123456789\n-a = 1\n+a = 2\n\";\n\n    const HUNK_ZERO_LARGE_LINENUMBERS_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..e69de29 100644\n--- i/a.py\n+++ w/a.py\n@@ -10,3 +101999,3 @@\n abcdefghijklmnopqrstuvwxzy 0123456789 0123456789 0123456789 0123456789 0123456789\n-a = 1\n+a = 2\n\";\n\n    const HUNK_MP_DIFF: &str = \"\\\ndiff --git i/a.py w/a.py\nindex 223ca50..e69de29 100644\n--- i/a.py\n+++ w/a.py\n@@ -4,3 +15,3 @@\n abcdefghijklmnopqrstuvwxzy 0123456789 0123456789 0123456789 0123456789 0123456789\n-a = 0123456789 0123456789 0123456789 0123456789 0123456789\n+b = 0123456789 0123456789 0123456789 0123456789 0123456789\n\";\n\n    const HUNK_ALIGN_DIFF_HEADER: &str = \"--- a\\n+++ b\\n@@ -1,1 +1,1 @@\\n\";\n    const HUNK_ALIGN_DIFF_SHORT: &str = \".........1.........2....\\n\";\n    const HUNK_ALIGN_DIFF_LONG: &str =\n        \".........1.........2.........3.........4.........5.........6\\n\";\n\n    #[test]\n    fn test_wrap_with_unequal_hunk_zero_width() {\n        DeltaTest::with_args(&default_wrap_cfg_plus(&[\n            \"--side-by-side\",\n            \"--line-numbers-left-format\",\n            \"│L│\",\n            \"--line-numbers-right-format\",\n            \"│RRRR│\",\n            \"--width\",\n            \"40\",\n            \"--line-fill-method\",\n            \"spaces\",\n        ]))\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(HUNK_ZERO_DIFF)\n        .expect_after_header(\n            r#\"\n            │L│abcdefghijklm+   │RRRR│abcdefghijklm+\n            │L│nopqrstuvwxzy+   │RRRR│nopqrstuvwxzy+\n            │L│ 0123456789 0+   │RRRR│ 0123456789 0+\n            │L│123456789 012+   │RRRR│123456789 012+\n            │L│3456789 01234567>│RRRR│3456789 01234>\n            │L│a = 1            │RRRR│a = 2         \"#,\n        );\n    }\n\n    #[test]\n    fn test_wrap_with_large_hunk_zero_line_numbers() {\n        DeltaTest::with_args(&default_wrap_cfg_plus(&[\n            \"--side-by-side\",\n            \"--line-numbers-left-format\",\n            \"│LLL│\",\n            \"--line-numbers-right-format\",\n            \"│WW {nm} +- {np:2} WW│\",\n            \"--width\",\n            \"60\",\n            \"--line-fill-method\",\n            \"ansi\",\n        ]))\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(HUNK_ZERO_LARGE_LINENUMBERS_DIFF)\n        .expect_after_header(\n            r#\"\n            │LLL│abcde+                   │WW   10   +- 101999 WW│abcde+\n            │LLL│fghij+                   │WW        +-        WW│fghij+\n            │LLL│klmno+                   │WW        +-        WW│klmno+\n            │LLL│pqrst+                   │WW        +-        WW│pqrst+\n            │LLL│uvwxzy 0123456789 012345>│WW        +-        WW│uvwxz>\n            │LLL│a = 1                    │WW        +- 102000 WW│a = 2\"#,\n        );\n    }\n\n    #[test]\n    fn test_wrap_with_keep_markers() {\n        use crate::features::side_by_side::ansifill::ODD_PAD_CHAR;\n        let t = DeltaTest::with_args(&default_wrap_cfg_plus(&[\n            \"--side-by-side\",\n            \"--keep-plus-minus-markers\",\n            \"--width\",\n            \"45\",\n        ]))\n        .set_config(|cfg| cfg.truncation_symbol = \">\".into())\n        .with_input(HUNK_MP_DIFF)\n        .expect_after_header(\n            r#\"\n            │  4 │ abcdefghijklmn+ │ 15 │ abcdefghijklmn+\n            │    │ opqrstuvwxzy 0+ │    │ opqrstuvwxzy 0+\n            │    │ 123456789 0123+ │    │ 123456789 0123+\n            │    │ 456789 0123456+ │    │ 456789 0123456+\n            │    │ 789 0123456789> │    │ 789 0123456789>\n            │  5 │-a = 0123456789+ │ 16 │+b = 0123456789+\n            │    │  0123456789 01+ │    │  0123456789 01+\n            │    │ 23456789 01234+ │    │ 23456789 01234+\n            │    │ 56789 01234567+ │    │ 56789 01234567+\n            │    │ 89              │    │ 89\"#,\n            // this column here is^ where ODD_PAD_CHAR is inserted due to the odd 45 width\n        );\n\n        assert!(!t.output.is_empty());\n\n        for line in t.output.lines().skip(crate::config::HEADER_LEN) {\n            assert_eq!(line.chars().nth(22), Some(ODD_PAD_CHAR));\n        }\n    }\n\n    #[test]\n    fn test_alignment_2_lines_vs_3_lines() {\n        let config =\n            make_config_from_args(&default_wrap_cfg_plus(&[\"--side-by-side\", \"--width\", \"55\"]));\n\n        {\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_SHORT}+{HUNK_ALIGN_DIFF_LONG}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2< │  1 │.........1.........2+\n                    │    │                >.... │    │.........3.........4+\n                    │    │                      │    │.........5.........6\"#,\n                );\n            // the place where ODD_PAD_CHAR^ is inserted due to the odd 55 width\n        }\n\n        {\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_LONG}+{HUNK_ALIGN_DIFF_SHORT}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2+ │  1 │.........1.........2<\n                    │    │.........3.........4+ │    │                >....\n                    │    │.........5.........6  │    │\"#,\n                );\n        }\n    }\n\n    #[test]\n    fn test_alignment_1_line_vs_3_lines() {\n        let config = make_config_from_args(&default_wrap_cfg_plus(&[\n            \"--side-by-side\",\n            \"--width\",\n            \"61\",\n            \"--line-fill-method\",\n            \"spaces\",\n        ]));\n\n        {\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_SHORT}+{HUNK_ALIGN_DIFF_LONG}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2....│  1 │.........1.........2...+\n                    │    │                        │    │......3.........4......+\n                    │    │                        │    │...5.........6          \"#,\n                );\n        }\n\n        {\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_LONG}+{HUNK_ALIGN_DIFF_SHORT}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2...+│  1 │.........1.........2....\n                    │    │......3.........4......+│    │\n                    │    │...5.........6          │    │\"#,\n                );\n        }\n    }\n\n    #[test]\n    fn test_wrap_max_lines_2() {\n        // TODO overriding is not possible, need to change config directly\n        let mut config = make_config_from_args(&default_wrap_cfg_plus(&[\n            // \"--wrap-max-lines\",\n            // \"2\",\n            \"--side-by-side\",\n            \"--width\",\n            \"72\",\n            \"--line-fill-method\",\n            \"spaces\",\n        ]));\n        config.truncation_symbol = \">\".into();\n\n        {\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_SHORT}+{HUNK_ALIGN_DIFF_LONG}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2....      │  1 │.........1.........2.........+\n                    │    │                              │    │3.........4.........5........+\n                    │    │                              │    │.6                            \"#,\n                );\n        }\n\n        {\n            config.wrap_config.max_lines = 2;\n            DeltaTest::with_config(&config)\n                .with_input(&format!(\n                    \"{HUNK_ALIGN_DIFF_HEADER}-{HUNK_ALIGN_DIFF_SHORT}+{HUNK_ALIGN_DIFF_LONG}\",\n                ))\n                .expect_after_header(\n                    r#\"\n                    │  1 │.........1.........2....      │  1 │.........1.........2.........+\n                    │    │                              │    │3.........4.........5........>\"#,\n                );\n        }\n    }\n}\n"
  },
  {
    "path": "tests/test_deprecated_options",
    "content": "#!/bin/bash\n\n# if first arg provided, use it, otherwise default to release\nDELTA_BIN=${1:-./target/release/delta}\nDELTA=\"$DELTA_BIN --no-gitconfig\"\n\nforeground_color=red\nfor decoration_attr in box underline plain; do\n    git show | $DELTA --commit-style $decoration_attr\n    git show | $DELTA --file-style $decoration_attr\ndone\n"
  },
  {
    "path": "tests/test_navigate_less_history_file",
    "content": "#!/bin/bash\n\nset -e\n\ncleanup() {\n    rm -r \"$TEMPDIR\"\n}\n\ndie() {\n    echo \"$1\" 1>&2\n    cleanup\n    exit 1\n}\n\nDELTA=\"${1:-./target/release/delta} --no-gitconfig --navigate\"\n\n# Trick delta into thinking that its pager is less, when really it is cat.\nunset DELTA_PAGER\nTEMPDIR=\"$(mktemp -d)\"\nexport PAGER=\"$TEMPDIR/less\"\ncat >\"$PAGER\" <<-EOF\n\t#!/bin/sh\n\tcat\nEOF\nchmod 755 $PAGER\n\ntest_delta_less_hist_file_created () {\n    DELTA_HIST_FILE=\"${XDG_DATA_HOME:-$HOME/.local/share}/delta/lesshst\"\n    rm -f ~/.lesshst \"$DELTA_HIST_FILE\"\n    [ -e \"$DELTA_HIST_FILE\" ] && die \"Expected \\\"$DELTA_HIST_FILE\\\" not to exist\"\n    if [[ \"$OSTYPE\" = darwin* ]]; then\n        # Trick git and delta into invoking their pager child processes, despite\n        # output not being a tty.\n        script -q /dev/null git -c pager.log=\"$DELTA\" log -p HEAD~2...HEAD > /dev/null\n    else\n        git -c pager.log=\"$DELTA\" log -p HEAD~2...HEAD\n    fi\n    [ -e \"$DELTA_HIST_FILE\" ] || die \"Expected \\\"$DELTA_HIST_FILE\\\" to exist\"\n}\n\n# Basic test\ntest_delta_less_hist_file_created\n\n# Test it works with a custom LESSHISTFILE\nexport LESSHISTFILE=$TEMPDIR/delta.lesshst\ntest_delta_less_hist_file_created\n\n# Test histfile sections other than `.search` at the end of the file (#1)\ncat >$LESSHISTFILE <<-EOF\n\t.shell\n\t\"pwd\n\t\"ls -Al ../data/\nEOF\ntest_delta_less_hist_file_created\n\n# Test histfile sections other than `.search` at the end of the file (#2)\ncat >>$LESSHISTFILE <<-EOF\n\t.mark\n\tm a 1 7740 /etc/gitconfig\n\tm b 1 4221 /etc/profile\nEOF\ntest_delta_less_hist_file_created\n\n# Cleanup\ncleanup\n"
  },
  {
    "path": "tests/test_raw_output_matches_git_on_full_repo_history",
    "content": "#!/bin/bash\n\n# if first arg provided, use it, otherwise default to release\nDELTA_BIN=${1:-./target/release/delta}\nDELTA=\"$DELTA_BIN --no-gitconfig --raw --max-line-length 0\"\n\nANSIFILTER=\"./etc/bin/ansifilter\"\nGIT_ARGS=\"log --patch --stat --numstat\"\ndiff -u <(git $GIT_ARGS | $ANSIFILTER) <(git $GIT_ARGS | DELTA_FEATURES= $DELTA | $ANSIFILTER)\n"
  },
  {
    "path": "themes.gitconfig",
    "content": "# To use these themes, first include this file in your own gitconfig file:\n#\n# [include]\n#     path = PATH/TO/delta/themes.gitconfig\n#\n# Then, in your own gitconfig file, activate the chosen theme, e.g.\n#\n# [delta]\n#    features = kingfisher\n#\n# Please add your own themes to this file, and open a PR.\n#\n# Instructions:\n#\n# 1. The name of the theme must be the name of some sort of wild organism:\n#    mammal, bird, plant, mollusk -- whatever. It can be in any language.\n#\n# 2. Use `delta --show-config` to list all the style settings that are active in\n#    your current delta environment, but only include settings in your theme\n#    that are essential to its appearance.\n#\n# 3. Include either `dark = true` or `light = true` according to whether it is\n#    designed for a light or dark terminal background. (This marks a feature as\n#    a \"theme\", causing it to be picked up by `delta --show-themes`).\n#\n# 4. Feel free to include a comment line indicating who is the author of the\n#    theme. E.g. a link to your github user page.\n\n[delta \"colibri\"]\n    # author: https://github.com/pablospe\n    # Based on woolly-mammoth: https://github.com/Kr1ss-XD.\n    commit-decoration-style = 130 box\n    dark = true\n    file-decoration-style = \"#606018\" overline\n    file-added-label = [●]\n    file-copied-label = [C]\n    file-modified-label = [+]\n    file-removed-label = [⛌]\n    file-renamed-label = [→]\n    file-style = 232 bold 184\n    hunk-header-style = syntax bold italic 237\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>1}┊\"\n    line-numbers-left-style = red\n    line-numbers-minus-style = red bold\n    line-numbers-plus-style = green bold\n    line-numbers-right-format = \" {np:>1}┊\"\n    line-numbers-right-style = green\n    line-numbers-zero-style = \"#545474\" italic\n    minus-emph-style = normal \"#80002a\"\n    minus-style = normal \"#5e0000\"\n    plus-emph-style = syntax bold \"#007e5e\"\n    plus-style = syntax \"#003500\"\n    syntax-theme = OneHalfDark\n    whitespace-error-style = \"#80002a\" reverse\n    zero-style = syntax\n    blame-format = \"{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ \"\n\n[delta \"collared-trogon\"]\n    # author: https://github.com/clnoll\n    commit-decoration-style = bold box ul\n    dark = true\n    file-decoration-style = none\n    file-style = omit\n    hunk-header-decoration-style = \"#022b45\" box ul\n    hunk-header-file-style = \"#999999\"\n    hunk-header-line-number-style = bold \"#003300\"\n    hunk-header-style = file line-number syntax\n    line-numbers = true\n    line-numbers-left-style = \"#022b45\"\n    line-numbers-minus-style = \"#80002a\"\n    line-numbers-plus-style = \"#003300\"\n    line-numbers-right-style = \"#022b45\"\n    line-numbers-zero-style = \"#999999\"\n    minus-emph-style = normal \"#80002a\"\n    minus-style = normal \"#330011\"\n    plus-emph-style = syntax \"#003300\"\n    plus-style = syntax \"#001a00\"\n    syntax-theme = Nord\n\n[delta \"coracias-caudatus\"]\n    # author: https://github.com/clnoll\n    commit-decoration-style = ol \"#7536ff\"\n    commit-style = \"#200078\"\n    file-decoration-style = none\n    file-style = omit\n    hunk-header-decoration-style = \"#cfd6ff\" ul\n    hunk-header-file-style = \"#858dff\"\n    hunk-header-line-number-style = \"#7536ff\"\n    hunk-header-style = file line-number syntax\n    light = true\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>4} .\"\n    line-numbers-left-style = \"#e3ab02\"\n    line-numbers-minus-style = \"#ff38b6\"\n    line-numbers-plus-style = \"#00e0c2\"\n    line-numbers-right-format = \"{np:>4}  \"\n    line-numbers-right-style = white\n    line-numbers-zero-style = \"#cccccc\"\n    minus-emph-style = bold \"#ff3838\" \"#ffe3f7\"\n    minus-style = \"#ff0080\"\n    plus-emph-style = \"#008a81\" bold \"#00ffbf\"\n    plus-style = syntax \"#cffff3\"\n    syntax-theme = GitHub\n\n[delta \"hoopoe\"]\n    # author: https://github.com/dandavison\n    light = true\n    pink = \"#ffe0e0\"\n    dark-pink = \"#ffc0c0\"\n    green = \"#d0ffd0\"\n    dark-green = \"#a0efa0\"\n    dark-green-2 = \"#067a00\"\n    minus-style = normal hoopoe.pink\n    minus-emph-style = normal hoopoe.dark-pink\n    minus-non-emph-style = minus-style\n    plus-style = syntax hoopoe.green\n    plus-emph-style = syntax hoopoe.dark-green\n    plus-non-emph-style = plus-style\n    minus-empty-line-marker-style = minus-style\n    plus-empty-line-marker-style = plus-style\n    commit-decoration-style = blue ol\n    commit-style = raw\n    file-style = omit\n    hunk-header-decoration-style = blue box\n    hunk-header-file-style = red\n    hunk-header-line-number-style = hoopoe.dark-green-2\n    hunk-header-style = file line-number syntax\n    syntax-theme = GitHub\n    zero-style = syntax\n\n[delta \"tangara-chilensis\"]\n    # author: https://github.com/clnoll\n    commit-decoration-style = bold box ul \"#34fd50\"\n    dark = true\n    file-decoration-style = none\n    file-style = omit\n    hunk-header-decoration-style = \"#00b494\" box ul\n    hunk-header-file-style = \"#999999\"\n    hunk-header-line-number-style = bold \"#03a4ff\"\n    hunk-header-style = file line-number syntax\n    line-numbers = true\n    line-numbers-left-style = black\n    line-numbers-minus-style = \"#B10036\"\n    line-numbers-plus-style = \"#03a4ff\"\n    line-numbers-right-style = black\n    line-numbers-zero-style = \"#999999\"\n    minus-emph-style = normal \"#de004e\"\n    minus-style = normal \"#990017\"\n    plus-emph-style = syntax \"#03a4ff\"\n    plus-style = syntax \"#450eff\"\n    side-by-side = true\n    syntax-theme = Vibrant Sunburst\n\n[delta \"villsau\"]\n    # author: https://github.com/torarnv\n    dark = true\n    file-style = omit\n    hunk-header-decoration-style = omit\n    hunk-header-file-style = magenta\n    hunk-header-line-number-style = dim magenta\n    hunk-header-style = file line-number syntax\n    line-numbers = false\n    minus-emph-style = bold red 52\n    minus-empty-line-marker-style = normal \"#3f0001\"\n    minus-non-emph-style = dim red\n    minus-style = bold red\n    plus-emph-style = bold green 22\n    plus-empty-line-marker-style = normal \"#002800\"\n    plus-non-emph-style = dim green\n    plus-style = bold green\n    syntax-theme = OneHalfDark\n    whitespace-error-style = reverse red\n    zero-style = dim syntax\n\n[delta \"woolly-mammoth\"]\n    # author: https://github.com/Kr1ss-XD\n    commit-decoration-style = 232 130 box\n    commit-style = 232 bold italic 130\n    dark = true\n    file-added-label = [+]\n    file-copied-label = [C]\n    file-decoration-style = \"#606018\" overline\n    file-modified-label = [M]\n    file-removed-label = [-]\n    file-renamed-label = [R]\n    file-style = 232 bold 184\n    hunk-header-decoration-style = none\n    hunk-header-style = syntax bold italic 237\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>1}┊\"\n    line-numbers-left-style = red\n    line-numbers-minus-style = red italic black\n    line-numbers-plus-style = green italic black\n    line-numbers-right-format = \"{np:>1}┊\"\n    line-numbers-right-style = green\n    line-numbers-zero-style = \"#545474\" italic\n    minus-emph-style = syntax bold \"#780000\"\n    minus-style = syntax \"#400000\"\n    plus-emph-style = syntax bold \"#007800\"\n    plus-style = syntax \"#004000\"\n    syntax-theme = Vibrant Sunburst\n    whitespace-error-style = \"#280050\" reverse\n    zero-style = syntax\n    blame-format = \"{author:<18} ({commit:>7}) ┊{timestamp:^16}┊ \"\n    blame-palette = \"#101010 #200020 #002800 #000028 #202000 #280000 #002020 #002800 #202020\"\n\n[delta \"calochortus-lyallii\"]\n    # author: https://github.com/manojkarthick\n    commit-decoration-style = none\n    dark = true\n    file-added-label = [+]\n    file-copied-label = [C]\n    file-decoration-style = none\n    file-modified-label = [M]\n    file-removed-label = [-]\n    file-renamed-label = [R]\n    file-style = 232 bold 184\n    hunk-header-decoration-style = none\n    hunk-header-file-style = \"#999999\"\n    hunk-header-line-number-style = bold \"#03a4ff\"\n    hunk-header-style = file line-number syntax\n    line-numbers = true\n    line-numbers-left-style = black\n    line-numbers-minus-style = \"#B10036\"\n    line-numbers-plus-style = \"#03a4ff\"\n    line-numbers-right-style = black\n    line-numbers-zero-style = \"#999999\"\n    minus-emph-style = syntax bold \"#780000\"\n    minus-style = syntax \"#400000\"\n    plus-emph-style = syntax bold \"#007800\"\n    plus-style = syntax \"#004000\"\n    whitespace-error-style = \"#280050\" reverse\n    zero-style = syntax\n    syntax-theme = Nord\n\n[delta \"mantis-shrimp\"]\n    #author: https://github.com/2kabhishek\n    dark = true\n    side-by-side = true\n    keep-plus-minus-markers = true\n    hyperlinks = true\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    file-style = omit\n    zero-style = syntax\n    syntax-theme = Monokai Extended\n    commit-decoration-style =\"#11ce16\" box\n    commit-style = \"#ffd21a\" bold italic\n    hunk-header-decoration-style = \"#1688f0\" box ul\n    hunk-header-file-style = \"#c63bee\" ul bold\n    hunk-header-line-number-style = \"#ffd21a\" box bold\n    hunk-header-style = file line-number syntax bold italic\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>1}|\"\n    line-numbers-left-style = \"#1688f0\"\n    line-numbers-minus-style = \"#ff0051\" bold\n    line-numbers-plus-style = \"#03e57f\" bold\n    line-numbers-right-format = \"{np:>1}|\"\n    line-numbers-right-style = \"#1688f0\"\n    line-numbers-zero-style = \"#aaaaaa\" italic\n    minus-emph-style = syntax bold \"#b80000\"\n    minus-style = syntax \"#5d001e\"\n    plus-emph-style = syntax bold \"#007800\"\n    plus-style = syntax \"#004433\"\n    whitespace-error-style = \"#280050\"\n\n[delta \"mantis-shrimp-lite\"]\n    #author: https://github.com/2kabhishek\n    dark = true\n    side-by-side = true\n    keep-plus-minus-markers = true\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    file-style = omit\n    zero-style = syntax\n    syntax-theme = Monokai Extended\n    commit-decoration-style = green box\n    commit-style = yellow bold italic\n    hunk-header-decoration-style = blue box ul\n    hunk-header-file-style = purple ul bold\n    hunk-header-line-number-style = yellow box bold\n    hunk-header-style = file line-number syntax bold italic\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>1}|\"\n    line-numbers-left-style = blue\n    line-numbers-minus-style = red bold\n    line-numbers-plus-style = green bold\n    line-numbers-right-format = \"{np:>1}|\"\n    line-numbers-right-style = blue\n    line-numbers-zero-style = white italic\n    minus-emph-style = syntax bold red\n    plus-emph-style = syntax bold green\n    whitespace-error-style = purple bold\n\n[delta \"zebra-dark\"]\n    minus-style = syntax \"#330f0f\"\n    minus-emph-style = syntax \"#4f1917\"\n    plus-style = syntax \"#0e2f19\"\n    plus-emph-style = syntax \"#174525\"\n    map-styles = \\\n       bold purple => syntax \"#330f29\", \\\n       bold blue => syntax \"#271344\", \\\n       bold cyan => syntax \"#0d3531\", \\\n       bold yellow => syntax \"#222f14\"\n    zero-style = syntax\n    whitespace-error-style = \"#aaaaaa\"\n\n[delta \"zebra-light\"]\n    minus-style = syntax \"#fbdada\"\n    minus-emph-style = syntax \"#f6b6b6\"\n    plus-style = syntax \"#d6ffd6\"\n    plus-emph-style = syntax \"#adffad\"\n    map-styles = \\\n       bold purple => syntax \"#feecf7\", \\\n       bold blue => syntax \"#e5dff6\", \\\n       bold cyan => syntax \"#d8fdf6\", \\\n       bold yellow => syntax \"#f4ffe0\"\n    zero-style = syntax\n    whitespace-error-style = \"#aaaaaa\"\n\n[delta \"chameleon\"]\n    #author: https://github.com/AirOnSkin\n    dark = true\n    line-numbers = true\n    side-by-side = true\n    keep-plus-minus-markers = false\n    syntax-theme = Nord\n    file-style = \"#434C5E\" bold\n    file-decoration-style = \"#434C5E\" ul\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    hunk-header-style = omit\n    line-numbers-left-format = \" {nm:>3} │\"\n    line-numbers-left-style = red\n    line-numbers-right-format = \" {np:>3} │\"\n    line-numbers-right-style = green\n    line-numbers-minus-style = red italic black\n    line-numbers-plus-style = green italic black\n    line-numbers-zero-style = \"#434C5E\" italic\n    minus-style = bold red\n    minus-emph-style = bold \"#202020\" \"#FF5555\"\n    minus-non-emph-style = bold\n    plus-style = bold green\n    plus-emph-style = bold \"#202020\" \"#50FA7B\"\n    plus-non-emph-style = bold\n    zero-style = syntax\n    blame-code-style = syntax\n    blame-format = \"{author:<18} ({commit:>9}) {timestamp:^16}\"\n    blame-palette = \"#2E3440\" \"#3B4252\" \"#434C5E\" \"#4C566A\"\n    merge-conflict-begin-symbol = ~\n    merge-conflict-end-symbol = ~\n    merge-conflict-ours-diff-header-style = \"#F1FA8C\" bold\n    merge-conflict-ours-diff-header-decoration-style = \"#434C5E\" box\n    merge-conflict-theirs-diff-header-style = \"#F1FA8C\" bold\n    merge-conflict-theirs-diff-header-decoration-style = \"#434C5E\" box\n\n[delta \"gruvmax-fang\"]\n    # author: https://github.com/maxfangx\n    # General appearance\n    dark = true\n    syntax-theme = gruvbox-dark\n    # File\n    file-style = \"#FFFFFF\" bold\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    file-decoration-style = \"#434C5E\" ul\n    file-decoration-style = \"#84786A\" ul\n    # No hunk headers\n    hunk-header-style = omit\n    # Line numbers\n    line-numbers = true\n    line-numbers-left-style = \"#84786A\"\n    line-numbers-right-style = \"#84786A\"\n    line-numbers-minus-style = \"#A02A11\"\n    line-numbers-plus-style = \"#479B36\"\n    line-numbers-zero-style = \"#84786A\"\n    line-numbers-left-format = \" {nm:>3} │\"\n    line-numbers-right-format = \" {np:>3} │\"\n    # Diff contents\n    inline-hint-style = syntax\n    minus-style = syntax \"#330011\"\n    minus-emph-style = syntax \"#80002a\"\n    minus-non-emph-style = syntax auto\n    plus-style = syntax \"#001a00\"\n    plus-emph-style = syntax \"#003300\"\n    plus-non-emph-style = syntax auto\n    whitespace-error-style = \"#FB4934\" reverse\n    # Commit hash\n    commit-decoration-style = normal box\n    commit-style = \"#ffffff\" bold\n    # Blame\n    blame-code-style = syntax\n    blame-format = \"{author:>18} ({commit:>8}) {timestamp:<13} \"\n    blame-palette = \"#000000\" \"#1d2021\" \"#282828\" \"#3c3836\"\n    # Merge conflicts\n    merge-conflict-begin-symbol = ⌃\n    merge-conflict-end-symbol = ⌄\n    merge-conflict-ours-diff-header-style = \"#FABD2F\" bold\n    merge-conflict-theirs-diff-header-style = \"#FABD2F\" bold overline\n    merge-conflict-ours-diff-header-decoration-style = ''\n    merge-conflict-theirs-diff-header-decoration-style = ''\n\n[delta \"discord\"]\n    commit-style                  = omit\n    file-style                    = 34 ul\n    file-decoration-style         = none\n    hunk-header-style             = omit\n    minus-style                   = 31\n    minus-non-emph-style          = 31\n    minus-emph-style              = 40\n    minus-empty-line-marker-style = 31\n    zero-style                    = 30\n    plus-style                    = 32\n    plus-non-emph-style           = 32\n    plus-emph-style               = 40\n    grep-file-style               = 34\n    grep-line-number-style        = 34\n    whitespace-error-style        = 41\n    blame-code-style              = omit\n    true-color                    = never\n    file-modified-label           = changed:\n    right-arrow                   = >\n    hyperlinks                    = false\n    keep-plus-minus-markers       = true\n    diff-stat-align-width         = 10\n    syntax-theme                  = none\n    width                         = variable\n\n[delta \"mellow-barbet\"]\n    # author: https://github.com/kvrohit\n    # To configure terminal colors see https://github.com/kvrohit/mellow.nvim#terminals\n    dark = true\n    syntax-theme = base16\n    line-numbers = true\n    side-by-side = true\n    file-style = brightwhite\n    file-decoration-style = none\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    hunk-header-decoration-style = \"#3e3e43\" box ul\n    plus-style = brightgreen black\n    plus-emph-style = black green\n    minus-style = brightred black\n    minus-emph-style = black red\n    line-numbers-minus-style = brightred\n    line-numbers-plus-style = brightgreen\n    line-numbers-left-style = \"#3e3e43\"\n    line-numbers-right-style = \"#3e3e43\"\n    line-numbers-zero-style = \"#57575f\"\n    zero-style = syntax\n    whitespace-error-style = black bold\n    blame-code-style = syntax\n    blame-palette = \"#161617\" \"#1b1b1d\" \"#2a2a2d\" \"#3e3e43\"\n    merge-conflict-begin-symbol = ~\n    merge-conflict-end-symbol = ~\n    merge-conflict-ours-diff-header-style = yellow bold\n    merge-conflict-ours-diff-header-decoration-style = \"#3e3e43\" box\n    merge-conflict-theirs-diff-header-style = yellow bold\n    merge-conflict-theirs-diff-header-decoration-style = \"#3e3e43\" box\n\n[delta \"arctic-fox\"]\n    # author: https://github.com/anthony-halim\n    dark = true\n    syntax-theme = Nord\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [*]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    file-style = omit\n    hunk-header-decoration-style = \"#5E81AC\" ul\n    hunk-header-file-style = blue ul bold\n    hunk-header-line-number-style = yellow box bold\n    hunk-header-style = file line-number syntax bold italic\n    plus-style = brightgreen\n    plus-emph-style = black green\n    minus-style = brightred\n    minus-emph-style = black red\n    line-numbers = true\n    line-numbers-minus-style = brightred\n    line-numbers-plus-style = brightgreen\n    line-numbers-left-style = \"#5E81AC\"\n    line-numbers-right-style = \"#5E81AC\"\n    line-numbers-zero-style = \"#4C566A\"\n    zero-style = syntax\n    whitespace-error-style = black bold\n    blame-code-style = syntax\n    blame-format = \"{author:<18} {commit:<6} {timestamp:<15}\"\n    blame-palette = \"#2E3440\" \"#3B4252\" \"#434C5E\"\n    merge-conflict-begin-symbol = ~\n    merge-conflict-end-symbol = ~\n    merge-conflict-ours-diff-header-style = yellow bold\n    merge-conflict-ours-diff-header-decoration-style = \"#5E81AC\" box\n    merge-conflict-theirs-diff-header-style = yellow bold\n    merge-conflict-theirs-diff-header-decoration-style = \"#5E81AC\" box\n\n[delta \"corvus\"]\n    # author: https://github.com/evilwaveforms\n    dark = true\n    commit-style = \"#949494\"\n    file-style = omit\n    syntax-theme = none\n    hunk-header-decoration-style = \"#949494\" ul\n    hunk-header-file-style = \"#949494\"\n    hunk-header-style = \"#949494\"\n    line-numbers = true\n    line-numbers-left-style = \"#949494\"\n    line-numbers-right-style = \"#949494\"\n    line-numbers-left-format = \"{nm:>2}|\"\n    line-numbers-right-format = \"{np:>3} \"\n    line-numbers-plus-style = \"#54c047\"\n    line-numbers-minus-style = bold \"#591102\"\n    plus-style = \"#54c047\"\n    plus-emph-style = bold \"#54c047\"\n    plus-non-emph-style = dim \"#54c047\"\n    minus-style = normal \"#591102\"\n    minus-emph-style = normal \"#591102\"\n    minus-non-emph-style = bold \"#591102\"\n    blame-code-style = omit\n    blame-format = \"{author:<18} {commit:<6} {timestamp:<15}\"\n    blame-palette = \"#000000\" \"#343434\"\n    zero-style = dim\n\n[delta \"platypus\"]\n    # Author: https://github.com/sarpuser\n    dark = true\n    side-by-side = true\n    true-color = always\n    file-added-label = [+]\n    file-copied-label = [==]\n    file-modified-label = [M]\n    file-removed-label = [-]\n    file-renamed-label = [->]\n    file-style = \"#ff9b00\" ul bold\n    file-decoration-style = \"#ea00ff\" box ul\n    zero-style = syntax\n    syntax-theme = Solarized (dark)\n    commit-decoration-style =\"#ea00ff\" ul\n    hunk-header-decoration-style = omit\n    hunk-header-file-style = \"#ff9b00\" ul bold\n    hunk-header-line-number-style = \"#ffd21a\" bold\n    hunk-header-style = line-number syntax bold italic\n    line-numbers = true\n    line-numbers-left-format = \"{nm:>1}|\"\n    line-numbers-left-style = \"#ea00ff\"\n    line-numbers-minus-style = \"#ff0051\" bold\n    line-numbers-plus-style = \"#1ac71e\" bold\n    line-numbers-right-format = \"{np:>1}|\"\n    line-numbers-right-style = \"#ea00ff\"\n    line-numbers-zero-style = \"#aaaaaa\" italic\n    minus-emph-style = syntax bold \"#b80000\"\n    minus-style = syntax \"#5d001e\"\n    plus-emph-style = syntax bold \"#1a861a\"\n    plus-style = syntax \"#2a5e37\"\n    whitespace-error-style = \"#280050\"\n    wrap-max-lines = unlimited\n    wrap-right-percent = 1\n\n[delta \"weeping-willow\"]\n    # See 'mirthful-willow' for light mode version.\n    # Heavily inspired by the themes above. Thank you. <3\n    # author: https://github.com/lvdh\n    # colors: `pastel list`\n    dark = true\n    right-arrow = >\n    syntax-theme = Coldark-Dark\n    # -- git\n    blame-format = \" ({commit:>7}) {author:<18} {timestamp:^13} \"\n    blame-palette = \"normal midnightblue indigo navy darkblue darkslateblue purple rebeccapurple darkviolet\"\n    commit-decoration-style = none\n    commit-style = bold black orange\n    # -- grep\n    grep-file-style = olive\n    grep-line-number-style = olive\n    # -- diff\n    keep-plus-minus-markers = true\n    line-numbers = true\n    line-numbers-minus-style = red\n    line-numbers-plus-style = green\n    line-numbers-left-style = gray\n    line-numbers-left-format = \"{nm:>1}┊\"\n    line-numbers-right-style = gray\n    line-numbers-right-format = \"{np:>1}┊\"\n    line-numbers-zero-style = gray\n    minus-emph-style = ghostwhite crimson underline\n    minus-empty-line-marker-style = syntax maroon\n    minus-style = syntax darkred\n    plus-emph-style = ghostwhite olivedrab underline\n    plus-empty-line-marker-style = syntax seagreen\n    plus-style = syntax darkgreen\n    whitespace-error-style = black ghostwhite\n    zero-style = syntax\n    # -- decorations\n    file-decoration-style = olive overline\n    file-added-label = [+]\n    file-copied-label = [*]\n    file-modified-label = [~]\n    file-removed-label = [-]\n    file-renamed-label = [>]\n    file-style = orange bold\n    hunk-header-decoration-style = none\n    hunk-header-file-style = olive\n    hunk-header-line-number-style = orange\n    hunk-header-style = file line-number orchid\n\n[delta \"mirthful-willow\"]\n    # See 'weeping-willow' for dark mode version.\n    # Heavily inspired by the themes above. Thank you. <3\n    # author: https://github.com/lvdh\n    # colors: `pastel list`\n    light = true\n    right-arrow = >\n    syntax-theme = Coldark-Cold\n    # -- git\n    blame-format = \" ({commit:>7}) {author:<18} {timestamp:^13} \"\n    blame-palette = \"powderblue papayawhip thistle skyblue lavender plum paleturquoise lightcyan violet\"\n    commit-decoration-style = none\n    commit-style = bold black orange\n    # -- grep\n    grep-file-style = darkgoldenrod\n    grep-line-number-style = darkgoldenrod\n    # -- diff\n    keep-plus-minus-markers = true\n    line-numbers = true\n    line-numbers-minus-style = red\n    line-numbers-plus-style = green\n    line-numbers-left-style = gray\n    line-numbers-left-format = \"{nm:>1}┊\"\n    line-numbers-right-style = gray\n    line-numbers-right-format = \"{np:>1}┊\"\n    line-numbers-zero-style = gray\n    minus-emph-style = ghostwhite tomato underline\n    minus-empty-line-marker-style = syntax orangered\n    minus-style = syntax lightpink\n    plus-emph-style = ghostwhite limegreen underline\n    plus-empty-line-marker-style = syntax forestgreen\n    plus-style = syntax lightgreen\n    whitespace-error-style = black ghostwhite\n    zero-style = syntax\n    # -- decorations\n    file-decoration-style = darkgoldenrod overline\n    file-added-label = [+]\n    file-copied-label = [*]\n    file-modified-label = [~]\n    file-removed-label = [-]\n    file-renamed-label = [>]\n    file-style = orange bold\n    hunk-header-decoration-style = none\n    hunk-header-file-style = darkgoldenrod\n    hunk-header-line-number-style = orange\n    hunk-header-style = file line-number darkviolet\n"
  }
]