Benchmarking preprocessing with parallelization and serialization#

In this example, we compare the execution time and memory requirements of preprocessing data with the parallelization and serialization functionalities available in braindecode.preprocessing.preprocess().

We compare 4 cases:

  1. Sequential, no serialization

  2. Sequential, with serialization

  3. Parallel, no serialization

  4. Parallel, with serialization

Case 1 is the simplest approach, in which all recordings in a braindecode.datasets.BaseConcatDataset are preprocessed one after the other. In this scenario, braindecode.preprocessing.preprocess() acts inplace, which means memory usage will likely stay stable (depending on the preprocessing operations) if recordings have been preloaded. However, two potential issues arise when working with large datasets: (1) if recordings have not been preloaded before preprocessing, preprocess() will need to load them and keep them in memory, in which case memory can become a bottleneck, and (2) sequential preprocessing can take a considerable amount of time to run when working with many recordings.

A solution to the first issue (memory usage) is to save the preprocessed data to a file so it can be cleared from memory before moving on to the next recording (case 2). The recordings can then be reloaded with preload=False once they have all been saved to disk. This enables using the lazy loading capabilities of braindecode.datasets.BaseConcatDataset and avoids potential memory bottlenecks. The downside is that the writing to disk can take some time and of course requires disk space.

A solution to the second issue (slow preprocessing) is to parallelize the preprocessing over multiple cores whenever possible (case 3). This can speed up preprocessing significantly. However, this approach will increase memory usage because of the way parallelization is implemented internally (with joblib, copies of (part of) the data must be made when sending arguments to parallel processes).

Finally, case 4 (combining parallelization and serialization) is likely to be both fast and memory efficient. As shown in this example, this remains a tradeoff though, and the selected configuration should depend on the size of the dataset and the specific operations applied to the recordings.

# Authors: Hubert Banville <hubert.jbanville@gmail.com>
#
# License: BSD (3-clause)

import time
import tempfile
from itertools import product

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import scale
from memory_profiler import memory_usage

from braindecode.datasets import SleepPhysionet
from braindecode.preprocessing import (
    preprocess,
    Preprocessor,
    create_fixed_length_windows,
)

We create a function that goes through the usual three steps of data preparation: (1) data loading, (2) continuous data preprocessing, (3) windowing and (4) windowed data preprocessing. We use the braindecode.datasets.SleepPhysionet dataset for testing purposes.

def prepare_data(n_recs, save, preload, n_jobs):
    if save:
        tmp_dir = tempfile.TemporaryDirectory()
        save_dir = tmp_dir.name
    else:
        save_dir = None

    # (1) Load the data
    concat_ds = SleepPhysionet(
        subject_ids=range(n_recs), recording_ids=[1], crop_wake_mins=30, preload=preload
    )
    sfreq = concat_ds.datasets[0].raw.info["sfreq"]

    # (2) Preprocess the continuous data
    preprocessors = [
        Preprocessor("crop", tmin=10),
        Preprocessor("filter", l_freq=None, h_freq=30),
    ]
    preprocess(
        concat_ds, preprocessors, save_dir=save_dir, overwrite=True, n_jobs=n_jobs
    )

    # (3) Window the data
    windows_ds = create_fixed_length_windows(
        concat_ds,
        0,
        None,
        int(30 * sfreq),
        int(30 * sfreq),
        True,
        preload=preload,
        n_jobs=n_jobs,
    )

    # Preprocess the windowed data
    preprocessors = [Preprocessor(scale, channel_wise=True)]
    preprocess(
        windows_ds, preprocessors, save_dir=save_dir, overwrite=True, n_jobs=n_jobs
    )

Next, we can run our function and measure its run time and peak memory usage for each one of our 4 cases above. We call the function multiple times with each configuration to get better estimates.

Note

To better characterize the run time vs. memory usage tradeoff for your specific configuration (as this will differ based on available hardware, data size and preprocessing operations), we recommend adapting this example to your use case and running it on your machine.

n_repets = 2  # Number of repetitions
all_n_recs = 2  # Number of recordings to load and preprocess
all_n_jobs = [1, 2]  # Number of parallel processes

results = list()
for _, n_recs, save, n_jobs in product(
    range(n_repets), [all_n_recs], [True, False], all_n_jobs
):
    start = time.time()
    mem = max(memory_usage(proc=(prepare_data, [n_recs, save, False, n_jobs], {})))
    time_taken = time.time() - start

    results.append(
        {
            "n_recs": n_recs,
            "max_mem": mem,
            "save": save,
            "n_jobs": n_jobs,
            "time": time_taken,
        }
    )
  0%|                                              | 0.00/48.3M [00:00<?, ?B/s]
  0%|                                      | 65.5k/48.3M [00:00<01:20, 603kB/s]
  0%|                                       | 147k/48.3M [00:00<01:12, 668kB/s]
  0%|▏                                      | 215k/48.3M [00:00<01:13, 657kB/s]
  1%|▏                                      | 295k/48.3M [00:00<01:11, 671kB/s]
  1%|▎                                      | 377k/48.3M [00:00<01:10, 678kB/s]
  1%|▎                                      | 459k/48.3M [00:00<01:09, 693kB/s]
  1%|▍                                      | 541k/48.3M [00:00<01:07, 710kB/s]
  1%|▌                                      | 639k/48.3M [00:00<01:04, 740kB/s]
  1%|▌                                      | 721k/48.3M [00:01<01:04, 736kB/s]
  2%|▋                                      | 803k/48.3M [00:01<01:06, 719kB/s]
  2%|▋                                      | 885k/48.3M [00:01<01:06, 717kB/s]
  2%|▊                                      | 956k/48.3M [00:01<01:08, 694kB/s]
  2%|▊                                     | 1.05M/48.3M [00:01<01:05, 724kB/s]
  2%|▉                                     | 1.13M/48.3M [00:01<01:04, 733kB/s]
  3%|▉                                     | 1.21M/48.3M [00:01<01:03, 744kB/s]
  3%|█                                     | 1.29M/48.3M [00:01<01:04, 727kB/s]
  3%|█                                     | 1.38M/48.3M [00:01<01:04, 726kB/s]
  3%|█▏                                    | 1.45M/48.3M [00:02<01:07, 694kB/s]
  3%|█▏                                    | 1.52M/48.3M [00:02<01:08, 681kB/s]
  3%|█▎                                    | 1.61M/48.3M [00:02<01:06, 705kB/s]
  3%|█▎                                    | 1.69M/48.3M [00:02<01:05, 709kB/s]
  4%|█▍                                    | 1.77M/48.3M [00:02<01:05, 714kB/s]
  4%|█▍                                    | 1.85M/48.3M [00:02<01:04, 724kB/s]
  4%|█▌                                    | 1.92M/48.3M [00:02<01:04, 723kB/s]
  4%|█▌                                    | 2.00M/48.3M [00:02<01:06, 692kB/s]
  4%|█▋                                    | 2.08M/48.3M [00:02<01:05, 712kB/s]
  4%|█▋                                    | 2.16M/48.3M [00:03<01:05, 705kB/s]
  5%|█▊                                    | 2.24M/48.3M [00:03<01:06, 693kB/s]
  5%|█▊                                    | 2.33M/48.3M [00:03<01:07, 683kB/s]
  5%|█▉                                    | 2.41M/48.3M [00:03<01:08, 675kB/s]
  5%|█▉                                    | 2.49M/48.3M [00:03<01:07, 681kB/s]
  5%|██                                    | 2.57M/48.3M [00:03<01:07, 680kB/s]
  5%|██                                    | 2.65M/48.3M [00:03<01:05, 694kB/s]
  6%|██▏                                   | 2.74M/48.3M [00:03<01:05, 700kB/s]
  6%|██▏                                   | 2.82M/48.3M [00:04<01:06, 687kB/s]
  6%|██▎                                   | 2.90M/48.3M [00:04<01:05, 696kB/s]
  6%|██▎                                   | 2.98M/48.3M [00:04<01:04, 708kB/s]
  6%|██▍                                   | 3.06M/48.3M [00:04<01:06, 680kB/s]
  7%|██▍                                   | 3.16M/48.3M [00:04<01:02, 720kB/s]
  7%|██▌                                   | 3.24M/48.3M [00:04<01:04, 700kB/s]
  7%|██▌                                   | 3.33M/48.3M [00:04<01:04, 700kB/s]
  7%|██▋                                   | 3.40M/48.3M [00:04<01:06, 680kB/s]
  7%|██▋                                   | 3.47M/48.3M [00:04<01:04, 695kB/s]
  7%|██▊                                   | 3.56M/48.3M [00:05<01:05, 684kB/s]
  8%|██▊                                   | 3.64M/48.3M [00:05<01:04, 693kB/s]
  8%|██▉                                   | 3.71M/48.3M [00:05<01:08, 650kB/s]
  8%|██▉                                   | 3.80M/48.3M [00:05<01:03, 704kB/s]
  8%|███                                   | 3.88M/48.3M [00:05<01:03, 703kB/s]
  8%|███                                   | 3.96M/48.3M [00:05<01:03, 696kB/s]
  8%|███▏                                  | 4.04M/48.3M [00:05<01:04, 690kB/s]
  9%|███▏                                  | 4.11M/48.3M [00:05<01:04, 683kB/s]
  9%|███▎                                  | 4.18M/48.3M [00:05<01:04, 680kB/s]
  9%|███▎                                  | 4.26M/48.3M [00:06<01:03, 695kB/s]
  9%|███▍                                  | 4.34M/48.3M [00:06<01:01, 714kB/s]
  9%|███▍                                  | 4.44M/48.3M [00:06<00:58, 751kB/s]
  9%|███▌                                  | 4.52M/48.3M [00:06<00:57, 758kB/s]
 10%|███▌                                  | 4.60M/48.3M [00:06<00:58, 743kB/s]
 10%|███▋                                  | 4.69M/48.3M [00:06<01:00, 720kB/s]
 10%|███▋                                  | 4.77M/48.3M [00:06<01:01, 714kB/s]
 10%|███▊                                  | 4.85M/48.3M [00:06<01:01, 707kB/s]
 10%|███▉                                  | 4.93M/48.3M [00:07<01:03, 686kB/s]
 10%|███▉                                  | 5.01M/48.3M [00:07<01:01, 705kB/s]
 11%|████                                  | 5.09M/48.3M [00:07<00:59, 727kB/s]
 11%|████                                  | 5.17M/48.3M [00:07<01:01, 697kB/s]
 11%|████                                  | 5.24M/48.3M [00:07<01:01, 697kB/s]
 11%|████▏                                 | 5.32M/48.3M [00:07<01:01, 704kB/s]
 11%|████▎                                 | 5.41M/48.3M [00:07<01:01, 703kB/s]
 11%|████▎                                 | 5.49M/48.3M [00:07<01:01, 693kB/s]
 11%|████▎                                 | 5.56M/48.3M [00:07<01:01, 691kB/s]
 12%|████▍                                 | 5.64M/48.3M [00:08<01:02, 679kB/s]
 12%|████▍                                 | 5.72M/48.3M [00:08<01:01, 693kB/s]
 12%|████▌                                 | 5.80M/48.3M [00:08<01:01, 689kB/s]
 12%|████▌                                 | 5.88M/48.3M [00:08<00:59, 712kB/s]
 12%|████▋                                 | 5.96M/48.3M [00:08<00:59, 713kB/s]
 13%|████▊                                 | 6.05M/48.3M [00:08<01:00, 700kB/s]
 13%|████▊                                 | 6.13M/48.3M [00:08<01:01, 687kB/s]
 13%|████▉                                 | 6.21M/48.3M [00:08<01:01, 690kB/s]
 13%|████▉                                 | 6.29M/48.3M [00:08<00:59, 705kB/s]
 13%|█████                                 | 6.37M/48.3M [00:09<01:01, 686kB/s]
 13%|█████                                 | 6.46M/48.3M [00:09<01:01, 676kB/s]
 13%|█████▏                                | 6.52M/48.3M [00:09<01:04, 652kB/s]
 14%|█████▏                                | 6.60M/48.3M [00:09<01:02, 667kB/s]
 14%|█████▏                                | 6.67M/48.3M [00:09<01:02, 669kB/s]
 14%|█████▎                                | 6.75M/48.3M [00:09<01:01, 682kB/s]
 14%|█████▎                                | 6.83M/48.3M [00:09<01:01, 680kB/s]
 14%|█████▍                                | 6.90M/48.3M [00:09<01:03, 654kB/s]
 14%|█████▍                                | 7.00M/48.3M [00:10<00:58, 702kB/s]
 15%|█████▌                                | 7.08M/48.3M [00:10<00:57, 715kB/s]
 15%|█████▋                                | 7.16M/48.3M [00:10<00:58, 704kB/s]
 15%|█████▋                                | 7.24M/48.3M [00:10<00:59, 696kB/s]
 15%|█████▊                                | 7.32M/48.3M [00:10<00:58, 706kB/s]
 15%|█████▊                                | 7.41M/48.3M [00:10<00:58, 704kB/s]
 15%|█████▉                                | 7.49M/48.3M [00:10<01:01, 664kB/s]
 16%|█████▉                                | 7.59M/48.3M [00:10<00:57, 704kB/s]
 16%|██████                                | 7.67M/48.3M [00:10<00:58, 699kB/s]
 16%|██████                                | 7.75M/48.3M [00:11<01:01, 657kB/s]
 16%|██████▏                               | 7.83M/48.3M [00:11<00:58, 696kB/s]
 16%|██████▏                               | 7.90M/48.3M [00:11<00:57, 699kB/s]
 17%|██████▎                               | 7.98M/48.3M [00:11<00:58, 685kB/s]
 17%|██████▎                               | 8.05M/48.3M [00:11<00:58, 685kB/s]
 17%|██████▍                               | 8.13M/48.3M [00:11<00:58, 685kB/s]
 17%|██████▍                               | 8.20M/48.3M [00:11<00:58, 685kB/s]
 17%|██████▍                               | 8.27M/48.3M [00:11<00:59, 669kB/s]
 17%|██████▌                               | 8.34M/48.3M [00:11<01:01, 654kB/s]
 17%|██████▌                               | 8.42M/48.3M [00:12<01:00, 659kB/s]
 18%|██████▋                               | 8.50M/48.3M [00:12<00:58, 681kB/s]
 18%|██████▋                               | 8.57M/48.3M [00:12<01:00, 662kB/s]
 18%|██████▊                               | 8.65M/48.3M [00:12<00:57, 687kB/s]
 18%|██████▊                               | 8.73M/48.3M [00:12<00:56, 696kB/s]
 18%|██████▉                               | 8.81M/48.3M [00:12<00:54, 722kB/s]
 18%|██████▉                               | 8.90M/48.3M [00:12<00:57, 681kB/s]
 19%|███████                               | 8.99M/48.3M [00:12<00:54, 725kB/s]
 19%|███████▏                              | 9.07M/48.3M [00:13<00:54, 723kB/s]
 19%|███████▏                              | 9.14M/48.3M [00:13<00:54, 720kB/s]
 19%|███████▏                              | 9.21M/48.3M [00:13<00:57, 681kB/s]
 19%|███████▎                              | 9.29M/48.3M [00:13<00:59, 658kB/s]
 19%|███████▍                              | 9.39M/48.3M [00:13<00:54, 720kB/s]
 20%|███████▍                              | 9.46M/48.3M [00:13<00:54, 717kB/s]
 20%|███████▍                              | 9.54M/48.3M [00:13<00:54, 707kB/s]
 20%|███████▌                              | 9.62M/48.3M [00:13<00:53, 719kB/s]
 20%|███████▌                              | 9.70M/48.3M [00:13<00:55, 690kB/s]
 20%|███████▋                              | 9.78M/48.3M [00:14<00:55, 697kB/s]
 20%|███████▊                              | 9.86M/48.3M [00:14<00:53, 716kB/s]
 21%|███████▊                              | 9.95M/48.3M [00:14<00:53, 721kB/s]
 21%|███████▉                              | 10.0M/48.3M [00:14<00:53, 713kB/s]
 21%|███████▉                              | 10.1M/48.3M [00:14<00:53, 712kB/s]
 21%|███████▉                              | 10.2M/48.3M [00:14<00:54, 694kB/s]
 21%|████████                              | 10.3M/48.3M [00:14<00:53, 718kB/s]
 21%|████████▏                             | 10.3M/48.3M [00:14<00:51, 732kB/s]
 22%|████████▏                             | 10.4M/48.3M [00:14<00:52, 725kB/s]
 22%|████████▎                             | 10.5M/48.3M [00:15<00:52, 725kB/s]
 22%|████████▎                             | 10.6M/48.3M [00:15<00:52, 720kB/s]
 22%|████████▍                             | 10.7M/48.3M [00:15<00:53, 701kB/s]
 22%|████████▍                             | 10.7M/48.3M [00:15<00:51, 725kB/s]
 22%|████████▌                             | 10.8M/48.3M [00:15<00:54, 683kB/s]
 23%|████████▌                             | 10.9M/48.3M [00:15<00:57, 657kB/s]
 23%|████████▋                             | 11.0M/48.3M [00:15<00:53, 694kB/s]
 23%|████████▋                             | 11.1M/48.3M [00:15<00:52, 708kB/s]
 23%|████████▊                             | 11.1M/48.3M [00:15<00:54, 686kB/s]
 23%|████████▊                             | 11.2M/48.3M [00:16<00:51, 715kB/s]
 23%|████████▉                             | 11.3M/48.3M [00:16<00:51, 713kB/s]
 24%|████████▉                             | 11.4M/48.3M [00:16<00:52, 705kB/s]
 24%|█████████                             | 11.5M/48.3M [00:16<00:53, 692kB/s]
 24%|█████████                             | 11.5M/48.3M [00:16<00:53, 687kB/s]
 24%|█████████▏                            | 11.6M/48.3M [00:16<00:53, 680kB/s]
 24%|█████████▏                            | 11.7M/48.3M [00:16<00:54, 678kB/s]
 24%|█████████▏                            | 11.8M/48.3M [00:16<00:54, 675kB/s]
 24%|█████████▎                            | 11.8M/48.3M [00:16<00:54, 676kB/s]
 25%|█████████▎                            | 11.9M/48.3M [00:17<00:55, 662kB/s]
 25%|█████████▍                            | 12.0M/48.3M [00:17<00:55, 650kB/s]
 25%|█████████▍                            | 12.0M/48.3M [00:17<00:56, 647kB/s]
 25%|█████████▌                            | 12.1M/48.3M [00:17<00:57, 627kB/s]
 25%|█████████▌                            | 12.2M/48.3M [00:17<00:55, 648kB/s]
 25%|█████████▋                            | 12.3M/48.3M [00:17<00:54, 662kB/s]
 26%|█████████▋                            | 12.4M/48.3M [00:17<00:52, 683kB/s]
 26%|█████████▊                            | 12.4M/48.3M [00:17<00:53, 675kB/s]
 26%|█████████▊                            | 12.5M/48.3M [00:17<00:52, 681kB/s]
 26%|█████████▉                            | 12.6M/48.3M [00:18<00:50, 715kB/s]
 26%|█████████▉                            | 12.7M/48.3M [00:18<00:51, 687kB/s]
 26%|██████████                            | 12.7M/48.3M [00:18<00:52, 682kB/s]
 27%|██████████                            | 12.8M/48.3M [00:18<00:53, 664kB/s]
 27%|██████████▏                           | 12.9M/48.3M [00:18<00:52, 681kB/s]
 27%|██████████▏                           | 13.0M/48.3M [00:18<00:51, 690kB/s]
 27%|██████████▎                           | 13.1M/48.3M [00:18<00:51, 691kB/s]
 27%|██████████▎                           | 13.1M/48.3M [00:18<00:50, 698kB/s]
 27%|██████████▍                           | 13.2M/48.3M [00:19<00:50, 689kB/s]
 28%|██████████▍                           | 13.3M/48.3M [00:19<00:50, 698kB/s]
 28%|██████████▌                           | 13.4M/48.3M [00:19<00:49, 707kB/s]
 28%|██████████▌                           | 13.5M/48.3M [00:19<00:52, 666kB/s]
 28%|██████████▋                           | 13.5M/48.3M [00:19<00:49, 702kB/s]
 28%|██████████▋                           | 13.6M/48.3M [00:19<00:49, 700kB/s]
 28%|██████████▊                           | 13.7M/48.3M [00:19<00:49, 698kB/s]
 29%|██████████▊                           | 13.8M/48.3M [00:19<00:51, 667kB/s]
 29%|██████████▉                           | 13.9M/48.3M [00:19<00:50, 688kB/s]
 29%|██████████▉                           | 13.9M/48.3M [00:20<00:50, 680kB/s]
 29%|███████████                           | 14.0M/48.3M [00:20<00:50, 680kB/s]
 29%|███████████                           | 14.1M/48.3M [00:20<00:50, 673kB/s]
 29%|███████████▏                          | 14.2M/48.3M [00:20<00:48, 703kB/s]
 29%|███████████▏                          | 14.2M/48.3M [00:20<00:49, 686kB/s]
 30%|███████████▎                          | 14.3M/48.3M [00:20<00:45, 741kB/s]
 30%|███████████▎                          | 14.4M/48.3M [00:20<00:48, 701kB/s]
 30%|███████████▍                          | 14.5M/48.3M [00:20<00:48, 693kB/s]
 30%|███████████▍                          | 14.6M/48.3M [00:20<00:48, 696kB/s]
 30%|███████████▌                          | 14.6M/48.3M [00:21<00:49, 683kB/s]
 30%|███████████▌                          | 14.7M/48.3M [00:21<00:48, 695kB/s]
 31%|███████████▌                          | 14.8M/48.3M [00:21<00:48, 694kB/s]
 31%|███████████▋                          | 14.9M/48.3M [00:21<00:52, 640kB/s]
 31%|███████████▋                          | 14.9M/48.3M [00:21<00:48, 686kB/s]
 31%|███████████▊                          | 15.0M/48.3M [00:21<00:47, 696kB/s]
 31%|███████████▉                          | 15.1M/48.3M [00:21<00:47, 697kB/s]
 31%|███████████▉                          | 15.2M/48.3M [00:21<00:49, 664kB/s]
 32%|████████████                          | 15.3M/48.3M [00:21<00:47, 690kB/s]
 32%|████████████                          | 15.3M/48.3M [00:22<00:47, 690kB/s]
 32%|████████████                          | 15.4M/48.3M [00:22<00:47, 695kB/s]
 32%|████████████▏                         | 15.5M/48.3M [00:22<00:49, 657kB/s]
 32%|████████████▏                         | 15.6M/48.3M [00:22<00:48, 670kB/s]
 32%|████████████▎                         | 15.7M/48.3M [00:22<00:47, 690kB/s]
 33%|████████████▎                         | 15.7M/48.3M [00:22<00:47, 687kB/s]
 33%|████████████▍                         | 15.8M/48.3M [00:22<00:48, 676kB/s]
 33%|████████████▍                         | 15.9M/48.3M [00:22<00:48, 673kB/s]
 33%|████████████▌                         | 16.0M/48.3M [00:23<00:46, 699kB/s]
 33%|████████████▌                         | 16.1M/48.3M [00:23<00:45, 714kB/s]
 33%|████████████▋                         | 16.1M/48.3M [00:23<00:45, 712kB/s]
 34%|████████████▊                         | 16.2M/48.3M [00:23<00:45, 713kB/s]
 34%|████████████▊                         | 16.3M/48.3M [00:23<00:45, 700kB/s]
 34%|████████████▉                         | 16.4M/48.3M [00:23<00:44, 722kB/s]
 34%|████████████▉                         | 16.5M/48.3M [00:23<00:44, 718kB/s]
 34%|█████████████                         | 16.5M/48.3M [00:23<00:45, 695kB/s]
 34%|█████████████                         | 16.6M/48.3M [00:23<00:44, 705kB/s]
 35%|█████████████▏                        | 16.7M/48.3M [00:24<00:47, 661kB/s]
 35%|█████████████▏                        | 16.8M/48.3M [00:24<00:45, 688kB/s]
 35%|█████████████▎                        | 16.9M/48.3M [00:24<00:44, 701kB/s]
 35%|█████████████▎                        | 16.9M/48.3M [00:24<00:44, 701kB/s]
 35%|█████████████▍                        | 17.0M/48.3M [00:24<00:45, 696kB/s]
 35%|█████████████▍                        | 17.1M/48.3M [00:24<00:45, 684kB/s]
 36%|█████████████▌                        | 17.2M/48.3M [00:24<00:45, 689kB/s]
 36%|█████████████▌                        | 17.3M/48.3M [00:24<00:44, 695kB/s]
 36%|█████████████▋                        | 17.4M/48.3M [00:24<00:44, 698kB/s]
 36%|█████████████▋                        | 17.4M/48.3M [00:25<00:45, 681kB/s]
 36%|█████████████▊                        | 17.5M/48.3M [00:25<00:44, 695kB/s]
 36%|█████████████▊                        | 17.6M/48.3M [00:25<00:44, 689kB/s]
 37%|█████████████▊                        | 17.6M/48.3M [00:25<00:44, 695kB/s]
 37%|█████████████▉                        | 17.7M/48.3M [00:25<00:44, 687kB/s]
 37%|██████████████                        | 17.8M/48.3M [00:25<00:44, 686kB/s]
 37%|██████████████                        | 17.9M/48.3M [00:25<00:46, 659kB/s]
 37%|██████████████▏                       | 18.0M/48.3M [00:25<00:43, 700kB/s]
 37%|██████████████▏                       | 18.1M/48.3M [00:26<00:45, 672kB/s]
 38%|██████████████▎                       | 18.1M/48.3M [00:26<00:43, 702kB/s]
 38%|██████████████▎                       | 18.2M/48.3M [00:26<00:42, 705kB/s]
 38%|██████████████▍                       | 18.3M/48.3M [00:26<00:43, 698kB/s]
 38%|██████████████▍                       | 18.4M/48.3M [00:26<00:42, 704kB/s]
 38%|██████████████▌                       | 18.4M/48.3M [00:26<00:43, 688kB/s]
 38%|██████████████▌                       | 18.5M/48.3M [00:26<00:43, 687kB/s]
 38%|██████████████▌                       | 18.6M/48.3M [00:26<00:44, 664kB/s]
 39%|██████████████▋                       | 18.7M/48.3M [00:26<00:44, 665kB/s]
 39%|██████████████▋                       | 18.7M/48.3M [00:27<00:45, 649kB/s]
 39%|██████████████▊                       | 18.8M/48.3M [00:27<00:43, 672kB/s]
 39%|██████████████▊                       | 18.9M/48.3M [00:27<00:42, 691kB/s]
 39%|██████████████▉                       | 19.0M/48.3M [00:27<00:43, 676kB/s]
 39%|██████████████▉                       | 19.1M/48.3M [00:27<00:41, 707kB/s]
 40%|███████████████                       | 19.1M/48.3M [00:27<00:40, 714kB/s]
 40%|███████████████                       | 19.2M/48.3M [00:27<00:41, 695kB/s]
 40%|███████████████▏                      | 19.3M/48.3M [00:27<00:42, 683kB/s]
 40%|███████████████▏                      | 19.4M/48.3M [00:27<00:42, 679kB/s]
 40%|███████████████▎                      | 19.5M/48.3M [00:28<00:42, 673kB/s]
 40%|███████████████▎                      | 19.5M/48.3M [00:28<00:42, 681kB/s]
 41%|███████████████▍                      | 19.6M/48.3M [00:28<00:42, 682kB/s]
 41%|███████████████▍                      | 19.7M/48.3M [00:28<00:42, 667kB/s]
 41%|███████████████▌                      | 19.8M/48.3M [00:28<00:42, 665kB/s]
 41%|███████████████▌                      | 19.8M/48.3M [00:28<00:43, 662kB/s]
 41%|███████████████▋                      | 19.9M/48.3M [00:28<00:42, 665kB/s]
 41%|███████████████▋                      | 20.0M/48.3M [00:28<00:42, 670kB/s]
 42%|███████████████▊                      | 20.1M/48.3M [00:29<00:44, 640kB/s]
 42%|███████████████▊                      | 20.2M/48.3M [00:29<00:40, 694kB/s]
 42%|███████████████▉                      | 20.3M/48.3M [00:29<00:38, 725kB/s]
 42%|███████████████▉                      | 20.3M/48.3M [00:29<00:38, 723kB/s]
 42%|████████████████                      | 20.4M/48.3M [00:29<00:37, 739kB/s]
 42%|████████████████                      | 20.5M/48.3M [00:29<00:38, 717kB/s]
 43%|████████████████▏                     | 20.6M/48.3M [00:29<00:38, 726kB/s]
 43%|████████████████▏                     | 20.7M/48.3M [00:29<00:39, 704kB/s]
 43%|████████████████▎                     | 20.7M/48.3M [00:29<00:41, 658kB/s]
 43%|████████████████▎                     | 20.8M/48.3M [00:30<00:39, 704kB/s]
 43%|████████████████▍                     | 20.9M/48.3M [00:30<00:38, 719kB/s]
 43%|████████████████▍                     | 21.0M/48.3M [00:30<00:38, 718kB/s]
 44%|████████████████▌                     | 21.1M/48.3M [00:30<00:37, 722kB/s]
 44%|████████████████▌                     | 21.1M/48.3M [00:30<00:38, 708kB/s]
 44%|████████████████▋                     | 21.2M/48.3M [00:30<00:38, 703kB/s]
 44%|████████████████▋                     | 21.3M/48.3M [00:30<00:39, 690kB/s]
 44%|████████████████▊                     | 21.4M/48.3M [00:30<00:38, 696kB/s]
 44%|████████████████▊                     | 21.5M/48.3M [00:30<00:38, 698kB/s]
 45%|████████████████▉                     | 21.5M/48.3M [00:31<00:38, 689kB/s]
 45%|█████████████████                     | 21.6M/48.3M [00:31<00:38, 689kB/s]
 45%|█████████████████                     | 21.7M/48.3M [00:31<00:39, 682kB/s]
 45%|█████████████████▏                    | 21.8M/48.3M [00:31<00:38, 688kB/s]
 45%|█████████████████▏                    | 21.9M/48.3M [00:31<00:40, 659kB/s]
 45%|█████████████████▎                    | 22.0M/48.3M [00:31<00:38, 682kB/s]
 46%|█████████████████▎                    | 22.0M/48.3M [00:31<00:39, 670kB/s]
 46%|█████████████████▍                    | 22.1M/48.3M [00:31<00:39, 662kB/s]
 46%|█████████████████▍                    | 22.2M/48.3M [00:32<00:40, 644kB/s]
 46%|█████████████████▌                    | 22.3M/48.3M [00:32<00:38, 684kB/s]
 46%|█████████████████▌                    | 22.3M/48.3M [00:32<00:38, 673kB/s]
 46%|█████████████████▋                    | 22.4M/48.3M [00:32<00:38, 677kB/s]
 47%|█████████████████▋                    | 22.5M/48.3M [00:32<00:38, 663kB/s]
 47%|█████████████████▋                    | 22.6M/48.3M [00:32<00:37, 681kB/s]
 47%|█████████████████▊                    | 22.6M/48.3M [00:32<00:38, 675kB/s]
 47%|█████████████████▊                    | 22.7M/48.3M [00:32<00:38, 668kB/s]
 47%|█████████████████▉                    | 22.8M/48.3M [00:32<00:38, 669kB/s]
 47%|█████████████████▉                    | 22.9M/48.3M [00:33<00:36, 691kB/s]
 47%|██████████████████                    | 23.0M/48.3M [00:33<00:34, 726kB/s]
 48%|██████████████████                    | 23.0M/48.3M [00:33<00:35, 717kB/s]
 48%|██████████████████▏                   | 23.1M/48.3M [00:33<00:35, 706kB/s]
 48%|██████████████████▏                   | 23.2M/48.3M [00:33<00:37, 673kB/s]
 48%|██████████████████▎                   | 23.3M/48.3M [00:33<00:36, 690kB/s]
 48%|██████████████████▎                   | 23.4M/48.3M [00:33<00:36, 687kB/s]
 48%|██████████████████▍                   | 23.4M/48.3M [00:33<00:37, 669kB/s]
 49%|██████████████████▍                   | 23.5M/48.3M [00:33<00:37, 668kB/s]
 49%|██████████████████▌                   | 23.6M/48.3M [00:34<00:36, 670kB/s]
 49%|██████████████████▌                   | 23.6M/48.3M [00:34<00:37, 668kB/s]
 49%|██████████████████▋                   | 23.7M/48.3M [00:34<00:36, 668kB/s]
 49%|██████████████████▋                   | 23.8M/48.3M [00:34<00:37, 653kB/s]
 49%|██████████████████▋                   | 23.8M/48.3M [00:34<00:37, 653kB/s]
 49%|██████████████████▊                   | 23.9M/48.3M [00:34<00:36, 660kB/s]
 50%|██████████████████▊                   | 24.0M/48.3M [00:34<00:36, 660kB/s]
 50%|██████████████████▉                   | 24.1M/48.3M [00:34<00:35, 684kB/s]
 50%|██████████████████▉                   | 24.2M/48.3M [00:34<00:35, 681kB/s]
 50%|███████████████████                   | 24.2M/48.3M [00:35<00:35, 686kB/s]
 50%|███████████████████                   | 24.3M/48.3M [00:35<00:35, 674kB/s]
 50%|███████████████████▏                  | 24.4M/48.3M [00:35<00:34, 692kB/s]
 51%|███████████████████▏                  | 24.5M/48.3M [00:35<00:35, 676kB/s]
 51%|███████████████████▎                  | 24.5M/48.3M [00:35<00:35, 664kB/s]
 51%|███████████████████▎                  | 24.6M/48.3M [00:35<00:35, 666kB/s]
 51%|███████████████████▍                  | 24.7M/48.3M [00:35<00:35, 665kB/s]
 51%|███████████████████▍                  | 24.8M/48.3M [00:35<00:35, 660kB/s]
 51%|███████████████████▌                  | 24.8M/48.3M [00:35<00:35, 653kB/s]
 51%|███████████████████▌                  | 24.9M/48.3M [00:36<00:36, 643kB/s]
 52%|███████████████████▋                  | 25.0M/48.3M [00:36<00:35, 657kB/s]
 52%|███████████████████▋                  | 25.1M/48.3M [00:36<00:34, 677kB/s]
 52%|███████████████████▊                  | 25.1M/48.3M [00:36<00:34, 671kB/s]
 52%|███████████████████▊                  | 25.2M/48.3M [00:36<00:33, 699kB/s]
 52%|███████████████████▉                  | 25.3M/48.3M [00:36<00:32, 699kB/s]
 53%|███████████████████▉                  | 25.4M/48.3M [00:36<00:32, 710kB/s]
 53%|████████████████████                  | 25.5M/48.3M [00:36<00:32, 712kB/s]
 53%|████████████████████                  | 25.5M/48.3M [00:36<00:33, 687kB/s]
 53%|████████████████████                  | 25.6M/48.3M [00:37<00:33, 678kB/s]
 53%|████████████████████▏                 | 25.7M/48.3M [00:37<00:33, 680kB/s]
 53%|████████████████████▏                 | 25.7M/48.3M [00:37<00:34, 653kB/s]
 53%|████████████████████▎                 | 25.8M/48.3M [00:37<00:34, 661kB/s]
 54%|████████████████████▎                 | 25.9M/48.3M [00:37<00:33, 673kB/s]
 54%|████████████████████▍                 | 26.0M/48.3M [00:37<00:32, 679kB/s]
 54%|████████████████████▍                 | 26.1M/48.3M [00:37<00:32, 689kB/s]
 54%|████████████████████▌                 | 26.1M/48.3M [00:37<00:32, 690kB/s]
 54%|████████████████████▌                 | 26.2M/48.3M [00:37<00:32, 688kB/s]
 54%|████████████████████▋                 | 26.3M/48.3M [00:38<00:32, 683kB/s]
 55%|████████████████████▋                 | 26.4M/48.3M [00:38<00:32, 679kB/s]
 55%|████████████████████▊                 | 26.4M/48.3M [00:38<00:33, 653kB/s]
 55%|████████████████████▊                 | 26.5M/48.3M [00:38<00:33, 647kB/s]
 55%|████████████████████▉                 | 26.6M/48.3M [00:38<00:32, 680kB/s]
 55%|████████████████████▉                 | 26.6M/48.3M [00:38<00:32, 677kB/s]
 55%|█████████████████████                 | 26.7M/48.3M [00:38<00:31, 688kB/s]
 55%|█████████████████████                 | 26.8M/48.3M [00:38<00:32, 669kB/s]
 56%|█████████████████████▏                | 26.9M/48.3M [00:38<00:31, 678kB/s]
 56%|█████████████████████▏                | 27.0M/48.3M [00:39<00:31, 680kB/s]
 56%|█████████████████████▎                | 27.0M/48.3M [00:39<00:31, 684kB/s]
 56%|█████████████████████▎                | 27.1M/48.3M [00:39<00:32, 659kB/s]
 56%|█████████████████████▍                | 27.2M/48.3M [00:39<00:31, 671kB/s]
 56%|█████████████████████▍                | 27.3M/48.3M [00:39<00:31, 674kB/s]
 57%|█████████████████████▌                | 27.4M/48.3M [00:39<00:31, 674kB/s]
 57%|█████████████████████▌                | 27.4M/48.3M [00:39<00:30, 684kB/s]
 57%|█████████████████████▋                | 27.5M/48.3M [00:39<00:30, 672kB/s]
 57%|█████████████████████▋                | 27.6M/48.3M [00:40<00:31, 669kB/s]
 57%|█████████████████████▊                | 27.7M/48.3M [00:40<00:30, 670kB/s]
 57%|█████████████████████▊                | 27.8M/48.3M [00:40<00:32, 625kB/s]
 58%|█████████████████████▉                | 27.8M/48.3M [00:40<00:30, 666kB/s]
 58%|█████████████████████▉                | 27.9M/48.3M [00:40<00:30, 666kB/s]
 58%|██████████████████████                | 28.0M/48.3M [00:40<00:30, 659kB/s]
 58%|██████████████████████                | 28.1M/48.3M [00:40<00:30, 669kB/s]
 58%|██████████████████████▏               | 28.1M/48.3M [00:40<00:30, 671kB/s]
 58%|██████████████████████▏               | 28.2M/48.3M [00:40<00:29, 679kB/s]
 59%|██████████████████████▎               | 28.3M/48.3M [00:41<00:29, 673kB/s]
 59%|██████████████████████▎               | 28.4M/48.3M [00:41<00:29, 672kB/s]
 59%|██████████████████████▎               | 28.5M/48.3M [00:41<00:29, 665kB/s]
 59%|██████████████████████▍               | 28.5M/48.3M [00:41<00:29, 670kB/s]
 59%|██████████████████████▌               | 28.6M/48.3M [00:41<00:29, 666kB/s]
 59%|██████████████████████▌               | 28.7M/48.3M [00:41<00:29, 662kB/s]
 59%|██████████████████████▌               | 28.8M/48.3M [00:41<00:29, 658kB/s]
 60%|██████████████████████▋               | 28.8M/48.3M [00:41<00:29, 654kB/s]
 60%|██████████████████████▋               | 28.9M/48.3M [00:42<00:30, 646kB/s]
 60%|██████████████████████▊               | 29.0M/48.3M [00:42<00:28, 675kB/s]
 60%|██████████████████████▊               | 29.1M/48.3M [00:42<00:28, 675kB/s]
 60%|██████████████████████▉               | 29.2M/48.3M [00:42<00:27, 696kB/s]
 61%|██████████████████████▉               | 29.2M/48.3M [00:42<00:27, 689kB/s]
 61%|███████████████████████               | 29.3M/48.3M [00:42<00:28, 670kB/s]
 61%|███████████████████████               | 29.4M/48.3M [00:42<00:29, 652kB/s]
 61%|███████████████████████▏              | 29.5M/48.3M [00:42<00:28, 655kB/s]
 61%|███████████████████████▏              | 29.5M/48.3M [00:42<00:27, 676kB/s]
 61%|███████████████████████▎              | 29.6M/48.3M [00:43<00:27, 680kB/s]
 61%|███████████████████████▎              | 29.7M/48.3M [00:43<00:27, 675kB/s]
 62%|███████████████████████▍              | 29.8M/48.3M [00:43<00:26, 707kB/s]
 62%|███████████████████████▍              | 29.9M/48.3M [00:43<00:26, 693kB/s]
 62%|███████████████████████▌              | 29.9M/48.3M [00:43<00:26, 696kB/s]
 62%|███████████████████████▌              | 30.0M/48.3M [00:43<00:26, 693kB/s]
 62%|███████████████████████▋              | 30.1M/48.3M [00:43<00:26, 687kB/s]
 62%|███████████████████████▋              | 30.2M/48.3M [00:43<00:26, 689kB/s]
 63%|███████████████████████▊              | 30.3M/48.3M [00:43<00:26, 686kB/s]
 63%|███████████████████████▊              | 30.3M/48.3M [00:44<00:26, 688kB/s]
 63%|███████████████████████▉              | 30.4M/48.3M [00:44<00:28, 637kB/s]
 63%|███████████████████████▉              | 30.5M/48.3M [00:44<00:27, 641kB/s]
 63%|████████████████████████              | 30.6M/48.3M [00:44<00:27, 650kB/s]
 63%|████████████████████████              | 30.6M/48.3M [00:44<00:27, 654kB/s]
 64%|████████████████████████▏             | 30.7M/48.3M [00:44<00:26, 661kB/s]
 64%|████████████████████████▏             | 30.8M/48.3M [00:44<00:26, 658kB/s]
 64%|████████████████████████▎             | 30.9M/48.3M [00:44<00:26, 665kB/s]
 64%|████████████████████████▎             | 31.0M/48.3M [00:45<00:26, 665kB/s]
 64%|████████████████████████▍             | 31.0M/48.3M [00:45<00:26, 659kB/s]
 64%|████████████████████████▍             | 31.1M/48.3M [00:45<00:26, 659kB/s]
 65%|████████████████████████▌             | 31.2M/48.3M [00:45<00:26, 653kB/s]
 65%|████████████████████████▌             | 31.3M/48.3M [00:45<00:25, 681kB/s]
 65%|████████████████████████▋             | 31.3M/48.3M [00:45<00:25, 675kB/s]
 65%|████████████████████████▋             | 31.4M/48.3M [00:45<00:26, 635kB/s]
 65%|████████████████████████▊             | 31.5M/48.3M [00:45<00:24, 684kB/s]
 65%|████████████████████████▊             | 31.6M/48.3M [00:45<00:24, 679kB/s]
 65%|████████████████████████▉             | 31.7M/48.3M [00:46<00:24, 673kB/s]
 66%|████████████████████████▉             | 31.7M/48.3M [00:46<00:24, 666kB/s]
 66%|████████████████████████▉             | 31.8M/48.3M [00:46<00:25, 660kB/s]
 66%|█████████████████████████             | 31.9M/48.3M [00:46<00:24, 662kB/s]
 66%|█████████████████████████             | 31.9M/48.3M [00:46<00:25, 641kB/s]
 66%|█████████████████████████▏            | 32.0M/48.3M [00:46<00:23, 681kB/s]
 66%|█████████████████████████▏            | 32.1M/48.3M [00:46<00:22, 706kB/s]
 67%|█████████████████████████▎            | 32.2M/48.3M [00:46<00:22, 707kB/s]
 67%|█████████████████████████▎            | 32.2M/48.3M [00:46<00:23, 689kB/s]
 67%|█████████████████████████▍            | 32.3M/48.3M [00:47<00:23, 687kB/s]
 67%|█████████████████████████▍            | 32.4M/48.3M [00:47<00:23, 685kB/s]
 67%|█████████████████████████▌            | 32.5M/48.3M [00:47<00:23, 687kB/s]
 67%|█████████████████████████▌            | 32.5M/48.3M [00:47<00:23, 663kB/s]
 67%|█████████████████████████▋            | 32.6M/48.3M [00:47<00:23, 678kB/s]
 68%|█████████████████████████▋            | 32.7M/48.3M [00:47<00:22, 689kB/s]
 68%|█████████████████████████▊            | 32.8M/48.3M [00:47<00:23, 649kB/s]
 68%|█████████████████████████▊            | 32.8M/48.3M [00:47<00:22, 674kB/s]
 68%|█████████████████████████▉            | 32.9M/48.3M [00:47<00:22, 695kB/s]
 68%|█████████████████████████▉            | 33.0M/48.3M [00:48<00:22, 688kB/s]
 68%|██████████████████████████            | 33.1M/48.3M [00:48<00:22, 680kB/s]
 69%|██████████████████████████            | 33.2M/48.3M [00:48<00:21, 696kB/s]
 69%|██████████████████████████▏           | 33.3M/48.3M [00:48<00:21, 703kB/s]
 69%|██████████████████████████▏           | 33.3M/48.3M [00:48<00:21, 704kB/s]
 69%|██████████████████████████▎           | 33.4M/48.3M [00:48<00:21, 704kB/s]
 69%|██████████████████████████▎           | 33.5M/48.3M [00:48<00:21, 678kB/s]
 69%|██████████████████████████▍           | 33.6M/48.3M [00:48<00:22, 666kB/s]
 70%|██████████████████████████▍           | 33.6M/48.3M [00:49<00:22, 664kB/s]
 70%|██████████████████████████▌           | 33.7M/48.3M [00:49<00:21, 672kB/s]
 70%|██████████████████████████▌           | 33.8M/48.3M [00:49<00:22, 636kB/s]
 70%|██████████████████████████▌           | 33.9M/48.3M [00:49<00:21, 667kB/s]
 70%|██████████████████████████▋           | 33.9M/48.3M [00:49<00:21, 675kB/s]
 70%|██████████████████████████▊           | 34.0M/48.3M [00:49<00:21, 674kB/s]
 71%|██████████████████████████▊           | 34.1M/48.3M [00:49<00:21, 677kB/s]
 71%|██████████████████████████▉           | 34.2M/48.3M [00:49<00:20, 685kB/s]
 71%|██████████████████████████▉           | 34.3M/48.3M [00:49<00:20, 685kB/s]
 71%|██████████████████████████▉           | 34.3M/48.3M [00:50<00:20, 679kB/s]
 71%|███████████████████████████           | 34.4M/48.3M [00:50<00:20, 679kB/s]
 71%|███████████████████████████           | 34.5M/48.3M [00:50<00:20, 678kB/s]
 71%|███████████████████████████▏          | 34.6M/48.3M [00:50<00:20, 683kB/s]
 72%|███████████████████████████▏          | 34.6M/48.3M [00:50<00:19, 713kB/s]
 72%|███████████████████████████▎          | 34.7M/48.3M [00:50<00:18, 729kB/s]
 72%|███████████████████████████▎          | 34.8M/48.3M [00:50<00:17, 761kB/s]
 72%|███████████████████████████▍          | 34.9M/48.3M [00:50<00:18, 743kB/s]
 72%|███████████████████████████▍          | 35.0M/48.3M [00:50<00:17, 750kB/s]
 73%|███████████████████████████▌          | 35.1M/48.3M [00:51<00:18, 731kB/s]
 73%|███████████████████████████▋          | 35.1M/48.3M [00:51<00:17, 735kB/s]
 73%|███████████████████████████▋          | 35.2M/48.3M [00:51<00:18, 718kB/s]
 73%|███████████████████████████▋          | 35.3M/48.3M [00:51<00:18, 719kB/s]
 73%|███████████████████████████▊          | 35.4M/48.3M [00:51<00:18, 717kB/s]
 73%|███████████████████████████▊          | 35.4M/48.3M [00:51<00:18, 716kB/s]
 73%|███████████████████████████▉          | 35.5M/48.3M [00:51<00:18, 695kB/s]
 74%|███████████████████████████▉          | 35.6M/48.3M [00:51<00:18, 693kB/s]
 74%|████████████████████████████          | 35.7M/48.3M [00:51<00:18, 686kB/s]
 74%|████████████████████████████          | 35.7M/48.3M [00:52<00:18, 692kB/s]
 74%|████████████████████████████▏         | 35.8M/48.3M [00:52<00:17, 702kB/s]
 74%|████████████████████████████▏         | 35.9M/48.3M [00:52<00:17, 693kB/s]
 74%|████████████████████████████▎         | 36.0M/48.3M [00:52<00:17, 693kB/s]
 75%|████████████████████████████▎         | 36.1M/48.3M [00:52<00:18, 682kB/s]
 75%|████████████████████████████▍         | 36.1M/48.3M [00:52<00:18, 655kB/s]
 75%|████████████████████████████▍         | 36.2M/48.3M [00:52<00:17, 690kB/s]
 75%|████████████████████████████▌         | 36.3M/48.3M [00:52<00:17, 691kB/s]
 75%|████████████████████████████▌         | 36.4M/48.3M [00:52<00:17, 672kB/s]
 75%|████████████████████████████▋         | 36.4M/48.3M [00:53<00:17, 667kB/s]
 76%|████████████████████████████▋         | 36.5M/48.3M [00:53<00:17, 688kB/s]
 76%|████████████████████████████▊         | 36.6M/48.3M [00:53<00:16, 708kB/s]
 76%|████████████████████████████▊         | 36.7M/48.3M [00:53<00:16, 728kB/s]
 76%|████████████████████████████▉         | 36.8M/48.3M [00:53<00:15, 727kB/s]
 76%|████████████████████████████▉         | 36.8M/48.3M [00:53<00:16, 717kB/s]
 76%|█████████████████████████████         | 36.9M/48.3M [00:53<00:15, 721kB/s]
 77%|█████████████████████████████         | 37.0M/48.3M [00:53<00:15, 708kB/s]
 77%|█████████████████████████████▏        | 37.1M/48.3M [00:53<00:15, 725kB/s]
 77%|█████████████████████████████▏        | 37.2M/48.3M [00:54<00:15, 708kB/s]
 77%|█████████████████████████████▎        | 37.3M/48.3M [00:54<00:15, 698kB/s]
 77%|█████████████████████████████▎        | 37.3M/48.3M [00:54<00:15, 699kB/s]
 77%|█████████████████████████████▍        | 37.4M/48.3M [00:54<00:16, 684kB/s]
 78%|█████████████████████████████▍        | 37.5M/48.3M [00:54<00:16, 678kB/s]
 78%|█████████████████████████████▌        | 37.5M/48.3M [00:54<00:16, 660kB/s]
 78%|█████████████████████████████▌        | 37.6M/48.3M [00:54<00:15, 693kB/s]
 78%|█████████████████████████████▋        | 37.7M/48.3M [00:54<00:14, 741kB/s]
 78%|█████████████████████████████▋        | 37.8M/48.3M [00:54<00:13, 772kB/s]
 78%|█████████████████████████████▊        | 37.9M/48.3M [00:55<00:13, 789kB/s]
 79%|█████████████████████████████▊        | 38.0M/48.3M [00:55<00:13, 791kB/s]
 79%|█████████████████████████████▉        | 38.1M/48.3M [00:55<00:13, 765kB/s]
 79%|█████████████████████████████▉        | 38.2M/48.3M [00:55<00:13, 762kB/s]
 79%|██████████████████████████████        | 38.2M/48.3M [00:55<00:13, 731kB/s]
 79%|██████████████████████████████▏       | 38.3M/48.3M [00:55<00:13, 753kB/s]
 79%|██████████████████████████████▏       | 38.4M/48.3M [00:55<00:13, 746kB/s]
 80%|██████████████████████████████▎       | 38.5M/48.3M [00:55<00:13, 722kB/s]
 80%|██████████████████████████████▎       | 38.6M/48.3M [00:55<00:13, 724kB/s]
 80%|██████████████████████████████▍       | 38.6M/48.3M [00:56<00:13, 725kB/s]
 80%|██████████████████████████████▍       | 38.7M/48.3M [00:56<00:13, 688kB/s]
 80%|██████████████████████████████▌       | 38.8M/48.3M [00:56<00:12, 739kB/s]
 80%|██████████████████████████████▌       | 38.9M/48.3M [00:56<00:12, 731kB/s]
 81%|██████████████████████████████▋       | 39.0M/48.3M [00:56<00:13, 713kB/s]
 81%|██████████████████████████████▋       | 39.1M/48.3M [00:56<00:13, 708kB/s]
 81%|██████████████████████████████▊       | 39.1M/48.3M [00:56<00:13, 699kB/s]
 81%|██████████████████████████████▊       | 39.2M/48.3M [00:56<00:13, 679kB/s]
 81%|██████████████████████████████▉       | 39.3M/48.3M [00:57<00:13, 683kB/s]
 81%|██████████████████████████████▉       | 39.4M/48.3M [00:57<00:12, 702kB/s]
 82%|███████████████████████████████       | 39.5M/48.3M [00:57<00:12, 694kB/s]
 82%|███████████████████████████████       | 39.5M/48.3M [00:57<00:12, 693kB/s]
 82%|███████████████████████████████▏      | 39.6M/48.3M [00:57<00:12, 678kB/s]
 82%|███████████████████████████████▏      | 39.7M/48.3M [00:57<00:12, 693kB/s]
 82%|███████████████████████████████▎      | 39.8M/48.3M [00:57<00:12, 694kB/s]
 82%|███████████████████████████████▎      | 39.8M/48.3M [00:57<00:12, 687kB/s]
 83%|███████████████████████████████▍      | 39.9M/48.3M [00:57<00:11, 705kB/s]
 83%|███████████████████████████████▍      | 40.0M/48.3M [00:58<00:11, 699kB/s]
 83%|███████████████████████████████▌      | 40.1M/48.3M [00:58<00:11, 704kB/s]
 83%|███████████████████████████████▌      | 40.2M/48.3M [00:58<00:11, 715kB/s]
 83%|███████████████████████████████▋      | 40.3M/48.3M [00:58<00:11, 718kB/s]
 83%|███████████████████████████████▋      | 40.3M/48.3M [00:58<00:11, 711kB/s]
 84%|███████████████████████████████▊      | 40.4M/48.3M [00:58<00:11, 702kB/s]
 84%|███████████████████████████████▊      | 40.5M/48.3M [00:58<00:11, 696kB/s]
 84%|███████████████████████████████▉      | 40.6M/48.3M [00:58<00:11, 688kB/s]
 84%|███████████████████████████████▉      | 40.6M/48.3M [00:58<00:11, 689kB/s]
 84%|████████████████████████████████      | 40.7M/48.3M [00:59<00:10, 713kB/s]
 84%|████████████████████████████████      | 40.8M/48.3M [00:59<00:10, 723kB/s]
 85%|████████████████████████████████▏     | 40.9M/48.3M [00:59<00:10, 742kB/s]
 85%|████████████████████████████████▏     | 41.0M/48.3M [00:59<00:09, 737kB/s]
 85%|████████████████████████████████▎     | 41.1M/48.3M [00:59<00:09, 733kB/s]
 85%|████████████████████████████████▎     | 41.1M/48.3M [00:59<00:10, 709kB/s]
 85%|████████████████████████████████▍     | 41.2M/48.3M [00:59<00:09, 721kB/s]
 85%|████████████████████████████████▍     | 41.3M/48.3M [00:59<00:09, 736kB/s]
 86%|████████████████████████████████▌     | 41.4M/48.3M [00:59<00:09, 737kB/s]
 86%|████████████████████████████████▌     | 41.5M/48.3M [01:00<00:09, 718kB/s]
 86%|████████████████████████████████▋     | 41.5M/48.3M [01:00<00:09, 705kB/s]
 86%|████████████████████████████████▋     | 41.6M/48.3M [01:00<00:09, 706kB/s]
 86%|████████████████████████████████▊     | 41.7M/48.3M [01:00<00:09, 706kB/s]
 86%|████████████████████████████████▊     | 41.8M/48.3M [01:00<00:09, 697kB/s]
 87%|████████████████████████████████▉     | 41.9M/48.3M [01:00<00:09, 712kB/s]
 87%|████████████████████████████████▉     | 41.9M/48.3M [01:00<00:08, 727kB/s]
 87%|█████████████████████████████████     | 42.0M/48.3M [01:00<00:08, 738kB/s]
 87%|█████████████████████████████████     | 42.1M/48.3M [01:00<00:08, 730kB/s]
 87%|█████████████████████████████████▏    | 42.2M/48.3M [01:01<00:08, 730kB/s]
 87%|█████████████████████████████████▏    | 42.3M/48.3M [01:01<00:08, 717kB/s]
 88%|█████████████████████████████████▎    | 42.4M/48.3M [01:01<00:08, 712kB/s]
 88%|█████████████████████████████████▎    | 42.4M/48.3M [01:01<00:08, 721kB/s]
 88%|█████████████████████████████████▍    | 42.5M/48.3M [01:01<00:08, 689kB/s]
 88%|█████████████████████████████████▍    | 42.6M/48.3M [01:01<00:08, 715kB/s]
 88%|█████████████████████████████████▌    | 42.7M/48.3M [01:01<00:07, 710kB/s]
 88%|█████████████████████████████████▌    | 42.8M/48.3M [01:01<00:07, 717kB/s]
 89%|█████████████████████████████████▋    | 42.8M/48.3M [01:01<00:07, 708kB/s]
 89%|█████████████████████████████████▋    | 42.9M/48.3M [01:02<00:07, 689kB/s]
 89%|█████████████████████████████████▊    | 43.0M/48.3M [01:02<00:07, 691kB/s]
 89%|█████████████████████████████████▊    | 43.1M/48.3M [01:02<00:07, 717kB/s]
 89%|█████████████████████████████████▉    | 43.2M/48.3M [01:02<00:07, 683kB/s]
 89%|█████████████████████████████████▉    | 43.2M/48.3M [01:02<00:07, 685kB/s]
 90%|██████████████████████████████████    | 43.3M/48.3M [01:02<00:06, 718kB/s]
 90%|██████████████████████████████████    | 43.4M/48.3M [01:02<00:06, 720kB/s]
 90%|██████████████████████████████████▏   | 43.5M/48.3M [01:02<00:06, 723kB/s]
 90%|██████████████████████████████████▏   | 43.6M/48.3M [01:02<00:06, 748kB/s]
 90%|██████████████████████████████████▎   | 43.6M/48.3M [01:03<00:06, 720kB/s]
 90%|██████████████████████████████████▎   | 43.7M/48.3M [01:03<00:06, 717kB/s]
 91%|██████████████████████████████████▍   | 43.8M/48.3M [01:03<00:06, 691kB/s]
 91%|██████████████████████████████████▍   | 43.9M/48.3M [01:03<00:06, 657kB/s]
 91%|██████████████████████████████████▌   | 44.0M/48.3M [01:03<00:06, 710kB/s]
 91%|██████████████████████████████████▋   | 44.1M/48.3M [01:03<00:06, 714kB/s]
 91%|██████████████████████████████████▋   | 44.1M/48.3M [01:03<00:06, 681kB/s]
 91%|██████████████████████████████████▊   | 44.2M/48.3M [01:03<00:05, 708kB/s]
 92%|██████████████████████████████████▊   | 44.3M/48.3M [01:04<00:05, 698kB/s]
 92%|██████████████████████████████████▉   | 44.4M/48.3M [01:04<00:05, 697kB/s]
 92%|██████████████████████████████████▉   | 44.5M/48.3M [01:04<00:05, 683kB/s]
 92%|███████████████████████████████████   | 44.5M/48.3M [01:04<00:05, 683kB/s]
 92%|███████████████████████████████████   | 44.6M/48.3M [01:04<00:05, 674kB/s]
 92%|███████████████████████████████████▏  | 44.7M/48.3M [01:04<00:05, 694kB/s]
 93%|███████████████████████████████████▏  | 44.8M/48.3M [01:04<00:05, 679kB/s]
 93%|███████████████████████████████████▎  | 44.8M/48.3M [01:04<00:05, 692kB/s]
 93%|███████████████████████████████████▎  | 44.9M/48.3M [01:04<00:05, 665kB/s]
 93%|███████████████████████████████████▎  | 45.0M/48.3M [01:05<00:04, 694kB/s]
 93%|███████████████████████████████████▍  | 45.1M/48.3M [01:05<00:04, 695kB/s]
 93%|███████████████████████████████████▍  | 45.1M/48.3M [01:05<00:04, 695kB/s]
 94%|███████████████████████████████████▌  | 45.2M/48.3M [01:05<00:04, 696kB/s]
 94%|███████████████████████████████████▌  | 45.3M/48.3M [01:05<00:04, 662kB/s]
 94%|███████████████████████████████████▋  | 45.4M/48.3M [01:05<00:04, 676kB/s]
 94%|███████████████████████████████████▋  | 45.4M/48.3M [01:05<00:04, 651kB/s]
 94%|███████████████████████████████████▊  | 45.5M/48.3M [01:05<00:04, 665kB/s]
 94%|███████████████████████████████████▊  | 45.6M/48.3M [01:05<00:04, 673kB/s]
 94%|███████████████████████████████████▉  | 45.6M/48.3M [01:06<00:04, 663kB/s]
 95%|███████████████████████████████████▉  | 45.7M/48.3M [01:06<00:03, 659kB/s]
 95%|████████████████████████████████████  | 45.8M/48.3M [01:06<00:03, 673kB/s]
 95%|████████████████████████████████████  | 45.9M/48.3M [01:06<00:03, 690kB/s]
 95%|████████████████████████████████████▏ | 46.0M/48.3M [01:06<00:03, 686kB/s]
 95%|████████████████████████████████████▏ | 46.1M/48.3M [01:06<00:03, 646kB/s]
 95%|████████████████████████████████████▎ | 46.1M/48.3M [01:06<00:03, 682kB/s]
 96%|████████████████████████████████████▎ | 46.2M/48.3M [01:06<00:03, 684kB/s]
 96%|████████████████████████████████████▍ | 46.3M/48.3M [01:07<00:02, 687kB/s]
 96%|████████████████████████████████████▍ | 46.4M/48.3M [01:07<00:02, 704kB/s]
 96%|████████████████████████████████████▌ | 46.5M/48.3M [01:07<00:02, 705kB/s]
 96%|████████████████████████████████████▌ | 46.5M/48.3M [01:07<00:02, 695kB/s]
 96%|████████████████████████████████████▋ | 46.6M/48.3M [01:07<00:02, 694kB/s]
 97%|████████████████████████████████████▋ | 46.7M/48.3M [01:07<00:02, 683kB/s]
 97%|████████████████████████████████████▊ | 46.8M/48.3M [01:07<00:02, 699kB/s]
 97%|████████████████████████████████████▊ | 46.9M/48.3M [01:07<00:02, 690kB/s]
 97%|████████████████████████████████████▉ | 47.0M/48.3M [01:07<00:01, 730kB/s]
 97%|████████████████████████████████████▉ | 47.0M/48.3M [01:08<00:01, 740kB/s]
 97%|█████████████████████████████████████ | 47.1M/48.3M [01:08<00:01, 715kB/s]
 98%|█████████████████████████████████████ | 47.2M/48.3M [01:08<00:01, 670kB/s]
 98%|█████████████████████████████████████▏| 47.3M/48.3M [01:08<00:01, 687kB/s]
 98%|█████████████████████████████████████▏| 47.3M/48.3M [01:08<00:01, 685kB/s]
 98%|█████████████████████████████████████▎| 47.4M/48.3M [01:08<00:01, 688kB/s]
 98%|█████████████████████████████████████▎| 47.5M/48.3M [01:08<00:01, 706kB/s]
 98%|█████████████████████████████████████▍| 47.6M/48.3M [01:08<00:01, 719kB/s]
 99%|█████████████████████████████████████▍| 47.7M/48.3M [01:08<00:00, 741kB/s]
 99%|█████████████████████████████████████▌| 47.8M/48.3M [01:09<00:00, 722kB/s]
 99%|█████████████████████████████████████▌| 47.8M/48.3M [01:09<00:00, 711kB/s]
 99%|█████████████████████████████████████▋| 47.9M/48.3M [01:09<00:00, 707kB/s]
 99%|█████████████████████████████████████▋| 48.0M/48.3M [01:09<00:00, 670kB/s]
 99%|█████████████████████████████████████▊| 48.1M/48.3M [01:09<00:00, 667kB/s]
100%|█████████████████████████████████████▊| 48.1M/48.3M [01:09<00:00, 671kB/s]
100%|█████████████████████████████████████▉| 48.2M/48.3M [01:09<00:00, 670kB/s]
100%|█████████████████████████████████████▉| 48.3M/48.3M [01:09<00:00, 670kB/s]
  0%|                                              | 0.00/48.3M [00:00<?, ?B/s]
100%|██████████████████████████████████████| 48.3M/48.3M [00:00<00:00, 220GB/s]

  0%|                                              | 0.00/4.62k [00:00<?, ?B/s]
  0%|                                              | 0.00/4.62k [00:00<?, ?B/s]
100%|█████████████████████████████████████| 4.62k/4.62k [00:00<00:00, 28.1MB/s]

  0%|                                              | 0.00/51.1M [00:00<?, ?B/s]
  0%|                                      | 65.5k/51.1M [00:00<01:24, 607kB/s]
  0%|                                       | 147k/51.1M [00:00<01:17, 662kB/s]
  0%|▏                                      | 214k/51.1M [00:00<01:17, 660kB/s]
  1%|▏                                      | 295k/51.1M [00:00<01:11, 708kB/s]
  1%|▎                                      | 377k/51.1M [00:00<01:13, 688kB/s]
  1%|▎                                      | 475k/51.1M [00:00<01:09, 731kB/s]
  1%|▍                                      | 557k/51.1M [00:00<01:13, 690kB/s]
  1%|▍                                      | 639k/51.1M [00:00<01:13, 686kB/s]
  1%|▌                                      | 721k/51.1M [00:01<01:13, 689kB/s]
  2%|▌                                      | 803k/51.1M [00:01<01:12, 694kB/s]
  2%|▋                                      | 885k/51.1M [00:01<01:11, 700kB/s]
  2%|▋                                      | 955k/51.1M [00:01<01:14, 676kB/s]
  2%|▊                                     | 1.03M/51.1M [00:01<01:11, 697kB/s]
  2%|▊                                     | 1.10M/51.1M [00:01<01:11, 696kB/s]
  2%|▉                                     | 1.18M/51.1M [00:01<01:12, 686kB/s]
  2%|▉                                     | 1.25M/51.1M [00:01<01:14, 667kB/s]
  3%|▉                                     | 1.33M/51.1M [00:01<01:13, 679kB/s]
  3%|█                                     | 1.41M/51.1M [00:02<01:13, 678kB/s]
  3%|█                                     | 1.49M/51.1M [00:02<01:12, 681kB/s]
  3%|█▏                                    | 1.57M/51.1M [00:02<01:13, 673kB/s]
  3%|█▏                                    | 1.64M/51.1M [00:02<01:13, 673kB/s]
  3%|█▎                                    | 1.72M/51.1M [00:02<01:12, 683kB/s]
  4%|█▎                                    | 1.80M/51.1M [00:02<01:12, 682kB/s]
  4%|█▍                                    | 1.87M/51.1M [00:02<01:12, 680kB/s]
  4%|█▍                                    | 1.95M/51.1M [00:02<01:13, 673kB/s]
  4%|█▍                                    | 2.02M/51.1M [00:02<01:13, 670kB/s]
  4%|█▌                                    | 2.08M/51.1M [00:03<01:13, 667kB/s]
  4%|█▌                                    | 2.16M/51.1M [00:03<01:13, 669kB/s]
  4%|█▋                                    | 2.24M/51.1M [00:03<01:09, 706kB/s]
  5%|█▋                                    | 2.34M/51.1M [00:03<01:05, 741kB/s]
  5%|█▊                                    | 2.42M/51.1M [00:03<01:06, 730kB/s]
  5%|█▊                                    | 2.49M/51.1M [00:03<01:07, 715kB/s]
  5%|█▉                                    | 2.57M/51.1M [00:03<01:09, 698kB/s]
  5%|█▉                                    | 2.65M/51.1M [00:03<01:12, 664kB/s]
  5%|██                                    | 2.75M/51.1M [00:03<01:09, 701kB/s]
  6%|██                                    | 2.83M/51.1M [00:04<01:08, 703kB/s]
  6%|██▏                                   | 2.92M/51.1M [00:04<01:08, 700kB/s]
  6%|██▏                                   | 2.99M/51.1M [00:04<01:12, 660kB/s]
  6%|██▎                                   | 3.06M/51.1M [00:04<01:11, 676kB/s]
  6%|██▎                                   | 3.15M/51.1M [00:04<01:10, 678kB/s]
  6%|██▍                                   | 3.23M/51.1M [00:04<01:06, 716kB/s]
  6%|██▍                                   | 3.31M/51.1M [00:04<01:05, 726kB/s]
  7%|██▌                                   | 3.39M/51.1M [00:04<01:04, 739kB/s]
  7%|██▌                                   | 3.47M/51.1M [00:05<01:05, 726kB/s]
  7%|██▋                                   | 3.56M/51.1M [00:05<01:06, 718kB/s]
  7%|██▋                                   | 3.64M/51.1M [00:05<01:07, 703kB/s]
  7%|██▊                                   | 3.72M/51.1M [00:05<01:07, 698kB/s]
  7%|██▊                                   | 3.80M/51.1M [00:05<01:07, 701kB/s]
  8%|██▉                                   | 3.87M/51.1M [00:05<01:10, 674kB/s]
  8%|██▉                                   | 3.95M/51.1M [00:05<01:08, 689kB/s]
  8%|██▉                                   | 4.02M/51.1M [00:05<01:08, 689kB/s]
  8%|███                                   | 4.10M/51.1M [00:05<01:09, 680kB/s]
  8%|███                                   | 4.18M/51.1M [00:06<01:08, 681kB/s]
  8%|███▏                                  | 4.26M/51.1M [00:06<01:09, 678kB/s]
  8%|███▏                                  | 4.34M/51.1M [00:06<01:06, 702kB/s]
  9%|███▎                                  | 4.42M/51.1M [00:06<01:08, 678kB/s]
  9%|███▎                                  | 4.52M/51.1M [00:06<01:04, 717kB/s]
  9%|███▍                                  | 4.60M/51.1M [00:06<01:05, 713kB/s]
  9%|███▍                                  | 4.68M/51.1M [00:06<01:06, 697kB/s]
  9%|███▌                                  | 4.75M/51.1M [00:06<01:09, 669kB/s]
  9%|███▌                                  | 4.83M/51.1M [00:07<01:09, 669kB/s]
 10%|███▋                                  | 4.92M/51.1M [00:07<01:08, 671kB/s]
 10%|███▋                                  | 5.00M/51.1M [00:07<01:07, 687kB/s]
 10%|███▊                                  | 5.07M/51.1M [00:07<01:06, 688kB/s]
 10%|███▊                                  | 5.14M/51.1M [00:07<01:05, 700kB/s]
 10%|███▉                                  | 5.22M/51.1M [00:07<01:05, 698kB/s]
 10%|███▉                                  | 5.29M/51.1M [00:07<01:08, 669kB/s]
 11%|███▉                                  | 5.37M/51.1M [00:07<01:09, 655kB/s]
 11%|████                                  | 5.46M/51.1M [00:07<01:05, 692kB/s]
 11%|████                                  | 5.54M/51.1M [00:08<01:06, 689kB/s]
 11%|████▏                                 | 5.62M/51.1M [00:08<01:05, 690kB/s]
 11%|████▏                                 | 5.70M/51.1M [00:08<01:08, 666kB/s]
 11%|████▎                                 | 5.80M/51.1M [00:08<01:03, 714kB/s]
 12%|████▎                                 | 5.88M/51.1M [00:08<01:03, 707kB/s]
 12%|████▍                                 | 5.96M/51.1M [00:08<01:05, 693kB/s]
 12%|████▍                                 | 6.05M/51.1M [00:08<01:05, 693kB/s]
 12%|████▌                                 | 6.13M/51.1M [00:08<01:05, 686kB/s]
 12%|████▌                                 | 6.21M/51.1M [00:09<01:06, 674kB/s]
 12%|████▋                                 | 6.29M/51.1M [00:09<01:06, 679kB/s]
 12%|████▋                                 | 6.37M/51.1M [00:09<01:04, 690kB/s]
 13%|████▊                                 | 6.46M/51.1M [00:09<01:02, 710kB/s]
 13%|████▊                                 | 6.54M/51.1M [00:09<01:02, 710kB/s]
 13%|████▉                                 | 6.62M/51.1M [00:09<01:01, 721kB/s]
 13%|████▉                                 | 6.70M/51.1M [00:09<01:02, 714kB/s]
 13%|█████                                 | 6.77M/51.1M [00:09<01:06, 670kB/s]
 13%|█████                                 | 6.86M/51.1M [00:09<01:02, 706kB/s]
 14%|█████▏                                | 6.95M/51.1M [00:10<01:03, 696kB/s]
 14%|█████▏                                | 7.03M/51.1M [00:10<01:03, 692kB/s]
 14%|█████▎                                | 7.10M/51.1M [00:10<01:06, 658kB/s]
 14%|█████▎                                | 7.18M/51.1M [00:10<01:06, 660kB/s]
 14%|█████▍                                | 7.26M/51.1M [00:10<01:04, 681kB/s]
 14%|█████▍                                | 7.34M/51.1M [00:10<01:03, 688kB/s]
 15%|█████▌                                | 7.42M/51.1M [00:10<01:02, 696kB/s]
 15%|█████▌                                | 7.50M/51.1M [00:10<01:02, 701kB/s]
 15%|█████▋                                | 7.59M/51.1M [00:10<01:02, 700kB/s]
 15%|█████▋                                | 7.66M/51.1M [00:11<01:02, 696kB/s]
 15%|█████▋                                | 7.73M/51.1M [00:11<01:04, 673kB/s]
 15%|█████▊                                | 7.80M/51.1M [00:11<01:08, 635kB/s]
 15%|█████▊                                | 7.88M/51.1M [00:11<01:05, 661kB/s]
 16%|█████▉                                | 7.95M/51.1M [00:11<01:05, 659kB/s]
 16%|█████▉                                | 8.03M/51.1M [00:11<01:04, 672kB/s]
 16%|██████                                | 8.11M/51.1M [00:11<01:03, 681kB/s]
 16%|██████                                | 8.18M/51.1M [00:11<01:05, 657kB/s]
 16%|██████▏                               | 8.26M/51.1M [00:12<01:04, 668kB/s]
 16%|██████▏                               | 8.33M/51.1M [00:12<01:03, 669kB/s]
 16%|██████▏                               | 8.40M/51.1M [00:12<01:04, 664kB/s]
 17%|██████▎                               | 8.49M/51.1M [00:12<01:02, 682kB/s]
 17%|██████▎                               | 8.57M/51.1M [00:12<01:02, 680kB/s]
 17%|██████▍                               | 8.65M/51.1M [00:12<01:02, 680kB/s]
 17%|██████▍                               | 8.73M/51.1M [00:12<01:02, 681kB/s]
 17%|██████▌                               | 8.81M/51.1M [00:12<01:02, 678kB/s]
 17%|██████▌                               | 8.90M/51.1M [00:12<01:02, 680kB/s]
 18%|██████▋                               | 8.97M/51.1M [00:13<01:02, 678kB/s]
 18%|██████▋                               | 9.03M/51.1M [00:13<01:03, 666kB/s]
 18%|██████▊                               | 9.11M/51.1M [00:13<01:03, 662kB/s]
 18%|██████▊                               | 9.19M/51.1M [00:13<01:02, 672kB/s]
 18%|██████▉                               | 9.27M/51.1M [00:13<01:00, 687kB/s]
 18%|██████▉                               | 9.36M/51.1M [00:13<01:00, 690kB/s]
 18%|███████                               | 9.44M/51.1M [00:13<00:58, 714kB/s]
 19%|███████                               | 9.52M/51.1M [00:13<00:57, 719kB/s]
 19%|███████▏                              | 9.60M/51.1M [00:13<00:56, 739kB/s]
 19%|███████▏                              | 9.68M/51.1M [00:14<00:58, 710kB/s]
 19%|███████▏                              | 9.75M/51.1M [00:14<01:00, 686kB/s]
 19%|███████▎                              | 9.83M/51.1M [00:14<00:59, 699kB/s]
 19%|███████▎                              | 9.91M/51.1M [00:14<01:03, 652kB/s]
 20%|███████▍                              | 10.0M/51.1M [00:14<00:58, 704kB/s]
 20%|███████▌                              | 10.1M/51.1M [00:14<00:59, 687kB/s]
 20%|███████▌                              | 10.2M/51.1M [00:14<00:59, 694kB/s]
 20%|███████▌                              | 10.2M/51.1M [00:14<00:58, 693kB/s]
 20%|███████▋                              | 10.3M/51.1M [00:14<00:59, 691kB/s]
 20%|███████▋                              | 10.4M/51.1M [00:15<00:59, 685kB/s]
 20%|███████▊                              | 10.5M/51.1M [00:15<01:01, 664kB/s]
 21%|███████▊                              | 10.5M/51.1M [00:15<00:59, 681kB/s]
 21%|███████▉                              | 10.6M/51.1M [00:15<00:55, 729kB/s]
 21%|███████▉                              | 10.7M/51.1M [00:15<00:55, 731kB/s]
 21%|████████                              | 10.8M/51.1M [00:15<00:54, 735kB/s]
 21%|████████                              | 10.9M/51.1M [00:15<00:54, 737kB/s]
 21%|████████▏                             | 11.0M/51.1M [00:15<00:54, 742kB/s]
 22%|████████▏                             | 11.1M/51.1M [00:16<00:54, 733kB/s]
 22%|████████▎                             | 11.1M/51.1M [00:16<00:55, 720kB/s]
 22%|████████▎                             | 11.2M/51.1M [00:16<00:56, 706kB/s]
 22%|████████▍                             | 11.3M/51.1M [00:16<00:57, 691kB/s]
 22%|████████▍                             | 11.4M/51.1M [00:16<00:57, 691kB/s]
 22%|████████▌                             | 11.5M/51.1M [00:16<00:58, 674kB/s]
 23%|████████▌                             | 11.5M/51.1M [00:16<00:58, 674kB/s]
 23%|████████▋                             | 11.6M/51.1M [00:16<01:00, 652kB/s]
 23%|████████▋                             | 11.7M/51.1M [00:16<00:55, 710kB/s]
 23%|████████▊                             | 11.8M/51.1M [00:17<00:56, 695kB/s]
 23%|████████▊                             | 11.9M/51.1M [00:17<00:56, 695kB/s]
 23%|████████▊                             | 11.9M/51.1M [00:17<00:57, 686kB/s]
 23%|████████▉                             | 12.0M/51.1M [00:17<00:57, 683kB/s]
 24%|████████▉                             | 12.1M/51.1M [00:17<00:57, 678kB/s]
 24%|█████████                             | 12.2M/51.1M [00:17<00:59, 651kB/s]
 24%|█████████                             | 12.2M/51.1M [00:17<00:57, 677kB/s]
 24%|█████████▏                            | 12.3M/51.1M [00:17<00:55, 705kB/s]
 24%|█████████▏                            | 12.4M/51.1M [00:17<00:54, 708kB/s]
 24%|█████████▎                            | 12.5M/51.1M [00:18<00:56, 690kB/s]
 25%|█████████▎                            | 12.6M/51.1M [00:18<00:54, 705kB/s]
 25%|█████████▍                            | 12.6M/51.1M [00:18<00:53, 716kB/s]
 25%|█████████▍                            | 12.7M/51.1M [00:18<00:52, 735kB/s]
 25%|█████████▌                            | 12.8M/51.1M [00:18<00:52, 726kB/s]
 25%|█████████▌                            | 12.9M/51.1M [00:18<00:53, 708kB/s]
 25%|█████████▋                            | 13.0M/51.1M [00:18<00:54, 704kB/s]
 26%|█████████▋                            | 13.0M/51.1M [00:18<00:53, 706kB/s]
 26%|█████████▊                            | 13.1M/51.1M [00:19<00:54, 696kB/s]
 26%|█████████▊                            | 13.2M/51.1M [00:19<00:55, 687kB/s]
 26%|█████████▉                            | 13.3M/51.1M [00:19<00:55, 687kB/s]
 26%|█████████▉                            | 13.4M/51.1M [00:19<00:54, 686kB/s]
 26%|██████████                            | 13.5M/51.1M [00:19<00:55, 684kB/s]
 26%|██████████                            | 13.5M/51.1M [00:19<00:53, 699kB/s]
 27%|██████████                            | 13.6M/51.1M [00:19<00:53, 698kB/s]
 27%|██████████▏                           | 13.7M/51.1M [00:19<00:53, 702kB/s]
 27%|██████████▏                           | 13.8M/51.1M [00:19<00:53, 699kB/s]
 27%|██████████▎                           | 13.8M/51.1M [00:20<00:54, 689kB/s]
 27%|██████████▎                           | 13.9M/51.1M [00:20<00:54, 684kB/s]
 27%|██████████▍                           | 14.0M/51.1M [00:20<00:53, 693kB/s]
 28%|██████████▍                           | 14.1M/51.1M [00:20<00:53, 690kB/s]
 28%|██████████▌                           | 14.2M/51.1M [00:20<00:53, 694kB/s]
 28%|██████████▌                           | 14.3M/51.1M [00:20<00:53, 686kB/s]
 28%|██████████▋                           | 14.3M/51.1M [00:20<00:53, 683kB/s]
 28%|██████████▋                           | 14.4M/51.1M [00:20<00:53, 682kB/s]
 28%|██████████▊                           | 14.5M/51.1M [00:20<00:55, 661kB/s]
 28%|██████████▊                           | 14.6M/51.1M [00:21<00:56, 648kB/s]
 29%|██████████▉                           | 14.6M/51.1M [00:21<00:54, 670kB/s]
 29%|██████████▉                           | 14.7M/51.1M [00:21<00:52, 694kB/s]
 29%|██████████▉                           | 14.8M/51.1M [00:21<00:51, 704kB/s]
 29%|███████████                           | 14.9M/51.1M [00:21<00:51, 699kB/s]
 29%|███████████                           | 15.0M/51.1M [00:21<00:51, 697kB/s]
 29%|███████████▏                          | 15.0M/51.1M [00:21<00:50, 708kB/s]
 30%|███████████▏                          | 15.1M/51.1M [00:21<00:50, 709kB/s]
 30%|███████████▎                          | 15.2M/51.1M [00:22<00:51, 695kB/s]
 30%|███████████▎                          | 15.3M/51.1M [00:22<00:51, 702kB/s]
 30%|███████████▍                          | 15.4M/51.1M [00:22<00:51, 700kB/s]
 30%|███████████▍                          | 15.4M/51.1M [00:22<00:52, 676kB/s]
 30%|███████████▌                          | 15.5M/51.1M [00:22<00:52, 678kB/s]
 31%|███████████▌                          | 15.6M/51.1M [00:22<00:51, 690kB/s]
 31%|███████████▋                          | 15.7M/51.1M [00:22<00:50, 705kB/s]
 31%|███████████▋                          | 15.8M/51.1M [00:22<00:49, 707kB/s]
 31%|███████████▊                          | 15.8M/51.1M [00:22<00:51, 690kB/s]
 31%|███████████▊                          | 15.9M/51.1M [00:23<00:48, 718kB/s]
 31%|███████████▉                          | 16.0M/51.1M [00:23<00:49, 704kB/s]
 31%|███████████▉                          | 16.1M/51.1M [00:23<00:49, 705kB/s]
 32%|████████████                          | 16.2M/51.1M [00:23<00:51, 678kB/s]
 32%|████████████                          | 16.2M/51.1M [00:23<00:51, 674kB/s]
 32%|████████████                          | 16.3M/51.1M [00:23<00:51, 672kB/s]
 32%|████████████▏                         | 16.4M/51.1M [00:23<00:50, 694kB/s]
 32%|████████████▎                         | 16.5M/51.1M [00:23<00:45, 754kB/s]
 32%|████████████▎                         | 16.6M/51.1M [00:23<00:46, 748kB/s]
 33%|████████████▍                         | 16.6M/51.1M [00:24<00:45, 762kB/s]
 33%|████████████▍                         | 16.7M/51.1M [00:24<00:45, 751kB/s]
 33%|████████████▍                         | 16.8M/51.1M [00:24<00:47, 722kB/s]
 33%|████████████▌                         | 16.9M/51.1M [00:24<00:48, 702kB/s]
 33%|████████████▌                         | 16.9M/51.1M [00:24<00:48, 700kB/s]
 33%|████████████▋                         | 17.0M/51.1M [00:24<00:48, 698kB/s]
 33%|████████████▋                         | 17.1M/51.1M [00:24<00:50, 675kB/s]
 34%|████████████▊                         | 17.2M/51.1M [00:24<00:48, 694kB/s]
 34%|████████████▊                         | 17.3M/51.1M [00:24<00:48, 704kB/s]
 34%|████████████▉                         | 17.3M/51.1M [00:25<00:47, 712kB/s]
 34%|████████████▉                         | 17.4M/51.1M [00:25<00:46, 719kB/s]
 34%|█████████████                         | 17.5M/51.1M [00:25<00:46, 716kB/s]
 34%|█████████████                         | 17.6M/51.1M [00:25<00:47, 708kB/s]
 35%|█████████████▏                        | 17.7M/51.1M [00:25<00:48, 696kB/s]
 35%|█████████████▏                        | 17.7M/51.1M [00:25<00:49, 670kB/s]
 35%|█████████████▎                        | 17.8M/51.1M [00:25<00:48, 692kB/s]
 35%|█████████████▎                        | 17.9M/51.1M [00:25<00:50, 654kB/s]
 35%|█████████████▍                        | 18.0M/51.1M [00:25<00:48, 682kB/s]
 35%|█████████████▍                        | 18.1M/51.1M [00:26<00:48, 680kB/s]
 35%|█████████████▍                        | 18.1M/51.1M [00:26<00:50, 655kB/s]
 36%|█████████████▌                        | 18.2M/51.1M [00:26<00:48, 676kB/s]
 36%|█████████████▌                        | 18.3M/51.1M [00:26<00:50, 652kB/s]
 36%|█████████████▋                        | 18.4M/51.1M [00:26<00:48, 671kB/s]
 36%|█████████████▋                        | 18.4M/51.1M [00:26<00:48, 671kB/s]
 36%|█████████████▊                        | 18.5M/51.1M [00:26<00:48, 668kB/s]
 36%|█████████████▊                        | 18.6M/51.1M [00:26<00:50, 646kB/s]
 37%|█████████████▊                        | 18.7M/51.1M [00:27<00:49, 650kB/s]
 37%|█████████████▉                        | 18.7M/51.1M [00:27<00:50, 647kB/s]
 37%|█████████████▉                        | 18.8M/51.1M [00:27<00:49, 655kB/s]
 37%|██████████████                        | 18.9M/51.1M [00:27<00:49, 657kB/s]
 37%|██████████████                        | 19.0M/51.1M [00:27<00:49, 650kB/s]
 37%|██████████████▏                       | 19.0M/51.1M [00:27<00:49, 652kB/s]
 37%|██████████████▏                       | 19.1M/51.1M [00:27<00:48, 659kB/s]
 38%|██████████████▎                       | 19.2M/51.1M [00:27<00:47, 666kB/s]
 38%|██████████████▎                       | 19.3M/51.1M [00:27<00:45, 702kB/s]
 38%|██████████████▍                       | 19.4M/51.1M [00:28<00:45, 696kB/s]
 38%|██████████████▍                       | 19.5M/51.1M [00:28<00:45, 698kB/s]
 38%|██████████████▌                       | 19.5M/51.1M [00:28<00:45, 690kB/s]
 38%|██████████████▌                       | 19.6M/51.1M [00:28<00:45, 687kB/s]
 39%|██████████████▋                       | 19.7M/51.1M [00:28<00:46, 681kB/s]
 39%|██████████████▋                       | 19.8M/51.1M [00:28<00:46, 680kB/s]
 39%|██████████████▊                       | 19.8M/51.1M [00:28<00:46, 677kB/s]
 39%|██████████████▊                       | 19.9M/51.1M [00:28<00:47, 657kB/s]
 39%|██████████████▊                       | 20.0M/51.1M [00:29<00:47, 662kB/s]
 39%|██████████████▉                       | 20.1M/51.1M [00:29<00:48, 646kB/s]
 39%|██████████████▉                       | 20.2M/51.1M [00:29<00:46, 662kB/s]
 40%|███████████████                       | 20.2M/51.1M [00:29<00:46, 667kB/s]
 40%|███████████████                       | 20.3M/51.1M [00:29<00:45, 673kB/s]
 40%|███████████████▏                      | 20.4M/51.1M [00:29<00:46, 662kB/s]
 40%|███████████████▏                      | 20.5M/51.1M [00:29<00:45, 668kB/s]
 40%|███████████████▎                      | 20.5M/51.1M [00:29<00:45, 669kB/s]
 40%|███████████████▎                      | 20.6M/51.1M [00:29<00:45, 664kB/s]
 40%|███████████████▍                      | 20.7M/51.1M [00:30<00:46, 660kB/s]
 41%|███████████████▍                      | 20.8M/51.1M [00:30<00:46, 655kB/s]
 41%|███████████████▍                      | 20.8M/51.1M [00:30<00:46, 651kB/s]
 41%|███████████████▌                      | 20.9M/51.1M [00:30<00:45, 660kB/s]
 41%|███████████████▌                      | 21.0M/51.1M [00:30<00:44, 672kB/s]
 41%|███████████████▋                      | 21.1M/51.1M [00:30<00:44, 683kB/s]
 41%|███████████████▋                      | 21.2M/51.1M [00:30<00:44, 678kB/s]
 42%|███████████████▊                      | 21.2M/51.1M [00:30<00:44, 671kB/s]
 42%|███████████████▊                      | 21.3M/51.1M [00:30<00:43, 683kB/s]
 42%|███████████████▉                      | 21.4M/51.1M [00:31<00:43, 688kB/s]
 42%|███████████████▉                      | 21.5M/51.1M [00:31<00:43, 685kB/s]
 42%|████████████████                      | 21.6M/51.1M [00:31<00:43, 687kB/s]
 42%|████████████████                      | 21.6M/51.1M [00:31<00:41, 707kB/s]
 42%|████████████████▏                     | 21.7M/51.1M [00:31<00:42, 696kB/s]
 43%|████████████████▏                     | 21.8M/51.1M [00:31<00:42, 687kB/s]
 43%|████████████████▏                     | 21.9M/51.1M [00:31<00:43, 676kB/s]
 43%|████████████████▎                     | 21.9M/51.1M [00:31<00:42, 691kB/s]
 43%|████████████████▎                     | 22.0M/51.1M [00:31<00:42, 683kB/s]
 43%|████████████████▍                     | 22.1M/51.1M [00:32<00:42, 680kB/s]
 43%|████████████████▍                     | 22.2M/51.1M [00:32<00:42, 674kB/s]
 44%|████████████████▌                     | 22.3M/51.1M [00:32<00:42, 674kB/s]
 44%|████████████████▌                     | 22.3M/51.1M [00:32<00:41, 689kB/s]
 44%|████████████████▋                     | 22.4M/51.1M [00:32<00:42, 683kB/s]
 44%|████████████████▋                     | 22.5M/51.1M [00:32<00:41, 692kB/s]
 44%|████████████████▊                     | 22.5M/51.1M [00:32<00:41, 689kB/s]
 44%|████████████████▊                     | 22.6M/51.1M [00:32<00:41, 684kB/s]
 44%|████████████████▉                     | 22.7M/51.1M [00:32<00:40, 699kB/s]
 45%|████████████████▉                     | 22.8M/51.1M [00:33<00:39, 718kB/s]
 45%|████████████████▉                     | 22.9M/51.1M [00:33<00:39, 718kB/s]
 45%|█████████████████                     | 22.9M/51.1M [00:33<00:41, 685kB/s]
 45%|█████████████████                     | 23.0M/51.1M [00:33<00:40, 689kB/s]
 45%|█████████████████▏                    | 23.1M/51.1M [00:33<00:39, 704kB/s]
 45%|█████████████████▏                    | 23.2M/51.1M [00:33<00:40, 697kB/s]
 45%|█████████████████▎                    | 23.3M/51.1M [00:33<00:40, 691kB/s]
 46%|█████████████████▎                    | 23.3M/51.1M [00:33<00:40, 682kB/s]
 46%|█████████████████▍                    | 23.4M/51.1M [00:34<00:40, 689kB/s]
 46%|█████████████████▍                    | 23.5M/51.1M [00:34<00:38, 710kB/s]
 46%|█████████████████▌                    | 23.6M/51.1M [00:34<00:38, 709kB/s]
 46%|█████████████████▌                    | 23.7M/51.1M [00:34<00:37, 729kB/s]
 46%|█████████████████▋                    | 23.7M/51.1M [00:34<00:38, 702kB/s]
 47%|█████████████████▋                    | 23.8M/51.1M [00:34<00:37, 727kB/s]
 47%|█████████████████▊                    | 23.9M/51.1M [00:34<00:39, 694kB/s]
 47%|█████████████████▊                    | 24.0M/51.1M [00:34<00:38, 713kB/s]
 47%|█████████████████▉                    | 24.1M/51.1M [00:34<00:38, 704kB/s]
 47%|█████████████████▉                    | 24.2M/51.1M [00:35<00:37, 713kB/s]
 47%|██████████████████                    | 24.2M/51.1M [00:35<00:38, 702kB/s]
 48%|██████████████████                    | 24.3M/51.1M [00:35<00:38, 700kB/s]
 48%|██████████████████▏                   | 24.4M/51.1M [00:35<00:38, 688kB/s]
 48%|██████████████████▏                   | 24.5M/51.1M [00:35<00:38, 696kB/s]
 48%|██████████████████▎                   | 24.6M/51.1M [00:35<00:37, 704kB/s]
 48%|██████████████████▎                   | 24.6M/51.1M [00:35<00:38, 693kB/s]
 48%|██████████████████▎                   | 24.7M/51.1M [00:35<00:38, 689kB/s]
 49%|██████████████████▍                   | 24.8M/51.1M [00:35<00:38, 675kB/s]
 49%|██████████████████▍                   | 24.9M/51.1M [00:36<00:36, 709kB/s]
 49%|██████████████████▌                   | 25.0M/51.1M [00:36<00:36, 720kB/s]
 49%|██████████████████▌                   | 25.0M/51.1M [00:36<00:35, 738kB/s]
 49%|██████████████████▋                   | 25.1M/51.1M [00:36<00:34, 748kB/s]
 49%|██████████████████▋                   | 25.2M/51.1M [00:36<00:34, 749kB/s]
 49%|██████████████████▊                   | 25.3M/51.1M [00:36<00:34, 748kB/s]
 50%|██████████████████▊                   | 25.4M/51.1M [00:36<00:36, 714kB/s]
 50%|██████████████████▉                   | 25.4M/51.1M [00:36<00:36, 711kB/s]
 50%|██████████████████▉                   | 25.5M/51.1M [00:36<00:37, 689kB/s]
 50%|███████████████████                   | 25.6M/51.1M [00:37<00:37, 687kB/s]
 50%|███████████████████                   | 25.7M/51.1M [00:37<00:36, 703kB/s]
 50%|███████████████████▏                  | 25.7M/51.1M [00:37<00:36, 701kB/s]
 50%|███████████████████▏                  | 25.8M/51.1M [00:37<00:35, 710kB/s]
 51%|███████████████████▏                  | 25.9M/51.1M [00:37<00:35, 710kB/s]
 51%|███████████████████▎                  | 26.0M/51.1M [00:37<00:36, 692kB/s]
 51%|███████████████████▎                  | 26.0M/51.1M [00:37<00:36, 690kB/s]
 51%|███████████████████▍                  | 26.1M/51.1M [00:37<00:35, 702kB/s]
 51%|███████████████████▍                  | 26.2M/51.1M [00:37<00:35, 701kB/s]
 51%|███████████████████▌                  | 26.3M/51.1M [00:38<00:34, 717kB/s]
 52%|███████████████████▌                  | 26.3M/51.1M [00:38<00:33, 739kB/s]
 52%|███████████████████▋                  | 26.4M/51.1M [00:38<00:35, 700kB/s]
 52%|███████████████████▋                  | 26.5M/51.1M [00:38<00:33, 727kB/s]
 52%|███████████████████▊                  | 26.6M/51.1M [00:38<00:34, 719kB/s]
 52%|███████████████████▊                  | 26.7M/51.1M [00:38<00:34, 712kB/s]
 52%|███████████████████▉                  | 26.7M/51.1M [00:38<00:34, 706kB/s]
 52%|███████████████████▉                  | 26.8M/51.1M [00:38<00:34, 702kB/s]
 53%|███████████████████▉                  | 26.9M/51.1M [00:38<00:34, 694kB/s]
 53%|████████████████████                  | 27.0M/51.1M [00:39<00:34, 706kB/s]
 53%|████████████████████                  | 27.0M/51.1M [00:39<00:32, 731kB/s]
 53%|████████████████████▏                 | 27.1M/51.1M [00:39<00:34, 699kB/s]
 53%|████████████████████▏                 | 27.2M/51.1M [00:39<00:32, 738kB/s]
 53%|████████████████████▎                 | 27.3M/51.1M [00:39<00:33, 717kB/s]
 54%|████████████████████▎                 | 27.4M/51.1M [00:39<00:33, 715kB/s]
 54%|████████████████████▍                 | 27.4M/51.1M [00:39<00:34, 686kB/s]
 54%|████████████████████▍                 | 27.5M/51.1M [00:39<00:33, 708kB/s]
 54%|████████████████████▌                 | 27.6M/51.1M [00:39<00:32, 732kB/s]
 54%|████████████████████▌                 | 27.7M/51.1M [00:40<00:31, 746kB/s]
 54%|████████████████████▋                 | 27.8M/51.1M [00:40<00:31, 731kB/s]
 54%|████████████████████▋                 | 27.8M/51.1M [00:40<00:32, 707kB/s]
 55%|████████████████████▊                 | 27.9M/51.1M [00:40<00:33, 688kB/s]
 55%|████████████████████▊                 | 28.0M/51.1M [00:40<00:33, 681kB/s]
 55%|████████████████████▉                 | 28.1M/51.1M [00:40<00:33, 678kB/s]
 55%|████████████████████▉                 | 28.2M/51.1M [00:40<00:32, 711kB/s]
 55%|█████████████████████                 | 28.2M/51.1M [00:40<00:31, 724kB/s]
 55%|█████████████████████                 | 28.3M/51.1M [00:40<00:30, 740kB/s]
 56%|█████████████████████▏                | 28.4M/51.1M [00:41<00:30, 753kB/s]
 56%|█████████████████████▏                | 28.5M/51.1M [00:41<00:29, 776kB/s]
 56%|█████████████████████▎                | 28.6M/51.1M [00:41<00:28, 777kB/s]
 56%|█████████████████████▎                | 28.7M/51.1M [00:41<00:29, 771kB/s]
 56%|█████████████████████▍                | 28.8M/51.1M [00:41<00:30, 742kB/s]
 56%|█████████████████████▍                | 28.9M/51.1M [00:41<00:30, 740kB/s]
 57%|█████████████████████▌                | 28.9M/51.1M [00:41<00:30, 730kB/s]
 57%|█████████████████████▌                | 29.0M/51.1M [00:41<00:30, 733kB/s]
 57%|█████████████████████▋                | 29.1M/51.1M [00:41<00:30, 711kB/s]
 57%|█████████████████████▋                | 29.2M/51.1M [00:42<00:30, 713kB/s]
 57%|█████████████████████▋                | 29.2M/51.1M [00:42<00:31, 689kB/s]
 57%|█████████████████████▊                | 29.3M/51.1M [00:42<00:31, 687kB/s]
 58%|█████████████████████▉                | 29.4M/51.1M [00:42<00:29, 728kB/s]
 58%|█████████████████████▉                | 29.5M/51.1M [00:42<00:30, 709kB/s]
 58%|██████████████████████                | 29.6M/51.1M [00:42<00:28, 749kB/s]
 58%|██████████████████████                | 29.7M/51.1M [00:42<00:28, 745kB/s]
 58%|██████████████████████▏               | 29.8M/51.1M [00:42<00:29, 729kB/s]
 58%|██████████████████████▏               | 29.8M/51.1M [00:42<00:29, 729kB/s]
 59%|██████████████████████▏               | 29.9M/51.1M [00:43<00:30, 705kB/s]
 59%|██████████████████████▎               | 30.0M/51.1M [00:43<00:30, 692kB/s]
 59%|██████████████████████▎               | 30.1M/51.1M [00:43<00:30, 692kB/s]
 59%|██████████████████████▍               | 30.2M/51.1M [00:43<00:29, 705kB/s]
 59%|██████████████████████▍               | 30.2M/51.1M [00:43<00:29, 709kB/s]
 59%|██████████████████████▌               | 30.3M/51.1M [00:43<00:29, 709kB/s]
 59%|██████████████████████▌               | 30.4M/51.1M [00:43<00:30, 680kB/s]
 60%|██████████████████████▋               | 30.5M/51.1M [00:43<00:31, 657kB/s]
 60%|██████████████████████▋               | 30.6M/51.1M [00:44<00:29, 688kB/s]
 60%|██████████████████████▊               | 30.6M/51.1M [00:44<00:30, 682kB/s]
 60%|██████████████████████▊               | 30.7M/51.1M [00:44<00:29, 685kB/s]
 60%|██████████████████████▉               | 30.8M/51.1M [00:44<00:29, 688kB/s]
 60%|██████████████████████▉               | 30.9M/51.1M [00:44<00:29, 688kB/s]
 61%|███████████████████████               | 30.9M/51.1M [00:44<00:29, 677kB/s]
 61%|███████████████████████               | 31.0M/51.1M [00:44<00:29, 676kB/s]
 61%|███████████████████████               | 31.1M/51.1M [00:44<00:29, 675kB/s]
 61%|███████████████████████▏              | 31.2M/51.1M [00:44<00:28, 688kB/s]
 61%|███████████████████████▏              | 31.3M/51.1M [00:45<00:29, 680kB/s]
 61%|███████████████████████▎              | 31.3M/51.1M [00:45<00:29, 670kB/s]
 61%|███████████████████████▎              | 31.4M/51.1M [00:45<00:29, 679kB/s]
 62%|███████████████████████▍              | 31.5M/51.1M [00:45<00:28, 683kB/s]
 62%|███████████████████████▍              | 31.6M/51.1M [00:45<00:27, 705kB/s]
 62%|███████████████████████▌              | 31.7M/51.1M [00:45<00:28, 693kB/s]
 62%|███████████████████████▌              | 31.8M/51.1M [00:45<00:27, 702kB/s]
 62%|███████████████████████▋              | 31.8M/51.1M [00:45<00:27, 696kB/s]
 62%|███████████████████████▋              | 31.9M/51.1M [00:46<00:27, 692kB/s]
 63%|███████████████████████▊              | 32.0M/51.1M [00:46<00:27, 695kB/s]
 63%|███████████████████████▊              | 32.1M/51.1M [00:46<00:27, 694kB/s]
 63%|███████████████████████▉              | 32.1M/51.1M [00:46<00:28, 673kB/s]
 63%|███████████████████████▉              | 32.2M/51.1M [00:46<00:27, 684kB/s]
 63%|███████████████████████▉              | 32.3M/51.1M [00:46<00:27, 683kB/s]
 63%|████████████████████████              | 32.4M/51.1M [00:46<00:27, 671kB/s]
 63%|████████████████████████              | 32.4M/51.1M [00:46<00:27, 685kB/s]
 64%|████████████████████████▏             | 32.5M/51.1M [00:46<00:26, 702kB/s]
 64%|████████████████████████▏             | 32.6M/51.1M [00:47<00:26, 702kB/s]
 64%|████████████████████████▎             | 32.7M/51.1M [00:47<00:26, 705kB/s]
 64%|████████████████████████▎             | 32.8M/51.1M [00:47<00:26, 702kB/s]
 64%|████████████████████████▍             | 32.8M/51.1M [00:47<00:26, 680kB/s]
 64%|████████████████████████▍             | 32.9M/51.1M [00:47<00:28, 640kB/s]
 65%|████████████████████████▌             | 33.0M/51.1M [00:47<00:27, 664kB/s]
 65%|████████████████████████▌             | 33.1M/51.1M [00:47<00:26, 684kB/s]
 65%|████████████████████████▋             | 33.1M/51.1M [00:47<00:26, 689kB/s]
 65%|████████████████████████▋             | 33.2M/51.1M [00:47<00:27, 659kB/s]
 65%|████████████████████████▊             | 33.3M/51.1M [00:48<00:25, 703kB/s]
 65%|████████████████████████▊             | 33.4M/51.1M [00:48<00:24, 716kB/s]
 65%|████████████████████████▉             | 33.5M/51.1M [00:48<00:25, 704kB/s]
 66%|████████████████████████▉             | 33.5M/51.1M [00:48<00:26, 670kB/s]
 66%|█████████████████████████             | 33.6M/51.1M [00:48<00:24, 701kB/s]
 66%|█████████████████████████             | 33.7M/51.1M [00:48<00:25, 695kB/s]
 66%|█████████████████████████▏            | 33.8M/51.1M [00:48<00:25, 691kB/s]
 66%|█████████████████████████▏            | 33.9M/51.1M [00:48<00:24, 692kB/s]
 66%|█████████████████████████▏            | 33.9M/51.1M [00:48<00:25, 683kB/s]
 67%|█████████████████████████▎            | 34.0M/51.1M [00:49<00:24, 691kB/s]
 67%|█████████████████████████▎            | 34.1M/51.1M [00:49<00:25, 678kB/s]
 67%|█████████████████████████▍            | 34.2M/51.1M [00:49<00:25, 653kB/s]
 67%|█████████████████████████▍            | 34.3M/51.1M [00:49<00:25, 660kB/s]
 67%|█████████████████████████▌            | 34.3M/51.1M [00:49<00:24, 678kB/s]
 67%|█████████████████████████▌            | 34.4M/51.1M [00:49<00:23, 700kB/s]
 68%|█████████████████████████▋            | 34.5M/51.1M [00:49<00:23, 695kB/s]
 68%|█████████████████████████▋            | 34.6M/51.1M [00:49<00:23, 708kB/s]
 68%|█████████████████████████▊            | 34.7M/51.1M [00:50<00:23, 706kB/s]
 68%|█████████████████████████▊            | 34.8M/51.1M [00:50<00:23, 705kB/s]
 68%|█████████████████████████▉            | 34.8M/51.1M [00:50<00:23, 704kB/s]
 68%|█████████████████████████▉            | 34.9M/51.1M [00:50<00:23, 685kB/s]
 68%|██████████████████████████            | 35.0M/51.1M [00:50<00:23, 684kB/s]
 69%|██████████████████████████            | 35.1M/51.1M [00:50<00:23, 686kB/s]
 69%|██████████████████████████▏           | 35.1M/51.1M [00:50<00:23, 675kB/s]
 69%|██████████████████████████▏           | 35.2M/51.1M [00:50<00:23, 682kB/s]
 69%|██████████████████████████▎           | 35.3M/51.1M [00:50<00:22, 692kB/s]
 69%|██████████████████████████▎           | 35.4M/51.1M [00:51<00:22, 703kB/s]
 69%|██████████████████████████▎           | 35.5M/51.1M [00:51<00:22, 691kB/s]
 70%|██████████████████████████▍           | 35.6M/51.1M [00:51<00:22, 702kB/s]
 70%|██████████████████████████▍           | 35.6M/51.1M [00:51<00:22, 696kB/s]
 70%|██████████████████████████▌           | 35.7M/51.1M [00:51<00:22, 696kB/s]
 70%|██████████████████████████▌           | 35.8M/51.1M [00:51<00:22, 694kB/s]
 70%|██████████████████████████▋           | 35.9M/51.1M [00:51<00:22, 692kB/s]
 70%|██████████████████████████▋           | 35.9M/51.1M [00:51<00:22, 681kB/s]
 70%|██████████████████████████▊           | 36.0M/51.1M [00:51<00:21, 713kB/s]
 71%|██████████████████████████▊           | 36.1M/51.1M [00:52<00:20, 723kB/s]
 71%|██████████████████████████▉           | 36.2M/51.1M [00:52<00:20, 727kB/s]
 71%|██████████████████████████▉           | 36.3M/51.1M [00:52<00:20, 713kB/s]
 71%|███████████████████████████           | 36.4M/51.1M [00:52<00:20, 727kB/s]
 71%|███████████████████████████           | 36.4M/51.1M [00:52<00:20, 725kB/s]
 71%|███████████████████████████▏          | 36.5M/51.1M [00:52<00:19, 731kB/s]
 72%|███████████████████████████▏          | 36.6M/51.1M [00:52<00:19, 733kB/s]
 72%|███████████████████████████▎          | 36.7M/51.1M [00:52<00:20, 692kB/s]
 72%|███████████████████████████▎          | 36.8M/51.1M [00:52<00:20, 717kB/s]
 72%|███████████████████████████▍          | 36.8M/51.1M [00:53<00:19, 727kB/s]
 72%|███████████████████████████▍          | 36.9M/51.1M [00:53<00:19, 728kB/s]
 72%|███████████████████████████▌          | 37.0M/51.1M [00:53<00:19, 711kB/s]
 73%|███████████████████████████▌          | 37.1M/51.1M [00:53<00:19, 702kB/s]
 73%|███████████████████████████▌          | 37.1M/51.1M [00:53<00:20, 698kB/s]
 73%|███████████████████████████▋          | 37.2M/51.1M [00:53<00:19, 715kB/s]
 73%|███████████████████████████▋          | 37.3M/51.1M [00:53<00:19, 714kB/s]
 73%|███████████████████████████▊          | 37.4M/51.1M [00:53<00:19, 697kB/s]
 73%|███████████████████████████▊          | 37.5M/51.1M [00:53<00:19, 686kB/s]
 73%|███████████████████████████▉          | 37.5M/51.1M [00:54<00:19, 683kB/s]
 74%|███████████████████████████▉          | 37.6M/51.1M [00:54<00:19, 680kB/s]
 74%|████████████████████████████          | 37.7M/51.1M [00:54<00:19, 678kB/s]
 74%|████████████████████████████          | 37.8M/51.1M [00:54<00:19, 678kB/s]
 74%|████████████████████████████▏         | 37.8M/51.1M [00:54<00:19, 683kB/s]
 74%|████████████████████████████▏         | 37.9M/51.1M [00:54<00:19, 691kB/s]
 74%|████████████████████████████▏         | 38.0M/51.1M [00:54<00:19, 683kB/s]
 74%|████████████████████████████▎         | 38.1M/51.1M [00:54<00:18, 689kB/s]
 75%|████████████████████████████▎         | 38.2M/51.1M [00:55<00:18, 700kB/s]
 75%|████████████████████████████▍         | 38.2M/51.1M [00:55<00:17, 720kB/s]
 75%|████████████████████████████▍         | 38.3M/51.1M [00:55<00:18, 705kB/s]
 75%|████████████████████████████▌         | 38.4M/51.1M [00:55<00:17, 725kB/s]
 75%|████████████████████████████▌         | 38.5M/51.1M [00:55<00:17, 711kB/s]
 75%|████████████████████████████▋         | 38.6M/51.1M [00:55<00:17, 727kB/s]
 76%|████████████████████████████▋         | 38.6M/51.1M [00:55<00:17, 722kB/s]
 76%|████████████████████████████▊         | 38.7M/51.1M [00:55<00:16, 737kB/s]
 76%|████████████████████████████▊         | 38.8M/51.1M [00:55<00:16, 745kB/s]
 76%|████████████████████████████▉         | 38.9M/51.1M [00:56<00:16, 727kB/s]
 76%|████████████████████████████▉         | 39.0M/51.1M [00:56<00:16, 726kB/s]
 76%|█████████████████████████████         | 39.1M/51.1M [00:56<00:16, 719kB/s]
 77%|█████████████████████████████         | 39.1M/51.1M [00:56<00:16, 715kB/s]
 77%|█████████████████████████████▏        | 39.2M/51.1M [00:56<00:16, 716kB/s]
 77%|█████████████████████████████▏        | 39.3M/51.1M [00:56<00:17, 659kB/s]
 77%|█████████████████████████████▎        | 39.4M/51.1M [00:56<00:17, 673kB/s]
 77%|█████████████████████████████▎        | 39.5M/51.1M [00:56<00:16, 690kB/s]
 77%|█████████████████████████████▍        | 39.6M/51.1M [00:56<00:16, 710kB/s]
 78%|█████████████████████████████▍        | 39.6M/51.1M [00:57<00:16, 716kB/s]
 78%|█████████████████████████████▌        | 39.7M/51.1M [00:57<00:16, 678kB/s]
 78%|█████████████████████████████▌        | 39.8M/51.1M [00:57<00:15, 718kB/s]
 78%|█████████████████████████████▋        | 39.9M/51.1M [00:57<00:16, 689kB/s]
 78%|█████████████████████████████▋        | 40.0M/51.1M [00:57<00:15, 718kB/s]
 78%|█████████████████████████████▊        | 40.1M/51.1M [00:57<00:15, 703kB/s]
 79%|█████████████████████████████▊        | 40.1M/51.1M [00:57<00:15, 699kB/s]
 79%|█████████████████████████████▉        | 40.2M/51.1M [00:57<00:16, 676kB/s]
 79%|█████████████████████████████▉        | 40.3M/51.1M [00:58<00:16, 647kB/s]
 79%|██████████████████████████████        | 40.4M/51.1M [00:58<00:16, 650kB/s]
 79%|██████████████████████████████        | 40.4M/51.1M [00:58<00:15, 670kB/s]
 79%|██████████████████████████████        | 40.5M/51.1M [00:58<00:15, 683kB/s]
 79%|██████████████████████████████▏       | 40.6M/51.1M [00:58<00:14, 705kB/s]
 80%|██████████████████████████████▏       | 40.7M/51.1M [00:58<00:15, 688kB/s]
 80%|██████████████████████████████▎       | 40.8M/51.1M [00:58<00:14, 701kB/s]
 80%|██████████████████████████████▎       | 40.8M/51.1M [00:58<00:14, 708kB/s]
 80%|██████████████████████████████▍       | 40.9M/51.1M [00:58<00:14, 712kB/s]
 80%|██████████████████████████████▍       | 41.0M/51.1M [00:59<00:14, 711kB/s]
 80%|██████████████████████████████▌       | 41.1M/51.1M [00:59<00:14, 701kB/s]
 81%|██████████████████████████████▌       | 41.2M/51.1M [00:59<00:14, 702kB/s]
 81%|██████████████████████████████▋       | 41.2M/51.1M [00:59<00:14, 689kB/s]
 81%|██████████████████████████████▋       | 41.3M/51.1M [00:59<00:14, 664kB/s]
 81%|██████████████████████████████▊       | 41.4M/51.1M [00:59<00:14, 682kB/s]
 81%|██████████████████████████████▊       | 41.5M/51.1M [00:59<00:13, 700kB/s]
 81%|██████████████████████████████▉       | 41.5M/51.1M [00:59<00:13, 690kB/s]
 81%|██████████████████████████████▉       | 41.6M/51.1M [00:59<00:14, 663kB/s]
 82%|███████████████████████████████       | 41.7M/51.1M [01:00<00:13, 712kB/s]
 82%|███████████████████████████████       | 41.8M/51.1M [01:00<00:13, 709kB/s]
 82%|███████████████████████████████▏      | 41.9M/51.1M [01:00<00:13, 703kB/s]
 82%|███████████████████████████████▏      | 42.0M/51.1M [01:00<00:13, 682kB/s]
 82%|███████████████████████████████▏      | 42.0M/51.1M [01:00<00:13, 682kB/s]
 82%|███████████████████████████████▎      | 42.1M/51.1M [01:00<00:13, 676kB/s]
 83%|███████████████████████████████▎      | 42.2M/51.1M [01:00<00:13, 666kB/s]
 83%|███████████████████████████████▍      | 42.3M/51.1M [01:00<00:12, 706kB/s]
 83%|███████████████████████████████▍      | 42.4M/51.1M [01:01<00:12, 675kB/s]
 83%|███████████████████████████████▌      | 42.4M/51.1M [01:01<00:12, 679kB/s]
 83%|███████████████████████████████▌      | 42.5M/51.1M [01:01<00:12, 680kB/s]
 83%|███████████████████████████████▋      | 42.6M/51.1M [01:01<00:12, 700kB/s]
 83%|███████████████████████████████▋      | 42.7M/51.1M [01:01<00:12, 688kB/s]
 84%|███████████████████████████████▊      | 42.8M/51.1M [01:01<00:11, 718kB/s]
 84%|███████████████████████████████▊      | 42.8M/51.1M [01:01<00:11, 717kB/s]
 84%|███████████████████████████████▉      | 42.9M/51.1M [01:01<00:11, 716kB/s]
 84%|███████████████████████████████▉      | 43.0M/51.1M [01:01<00:11, 703kB/s]
 84%|████████████████████████████████      | 43.1M/51.1M [01:02<00:11, 690kB/s]
 84%|████████████████████████████████      | 43.2M/51.1M [01:02<00:11, 695kB/s]
 85%|████████████████████████████████▏     | 43.2M/51.1M [01:02<00:11, 675kB/s]
 85%|████████████████████████████████▏     | 43.3M/51.1M [01:02<00:10, 708kB/s]
 85%|████████████████████████████████▎     | 43.4M/51.1M [01:02<00:10, 704kB/s]
 85%|████████████████████████████████▎     | 43.5M/51.1M [01:02<00:11, 666kB/s]
 85%|████████████████████████████████▍     | 43.6M/51.1M [01:02<00:10, 700kB/s]
 85%|████████████████████████████████▍     | 43.7M/51.1M [01:02<00:10, 710kB/s]
 86%|████████████████████████████████▌     | 43.7M/51.1M [01:02<00:10, 733kB/s]
 86%|████████████████████████████████▌     | 43.8M/51.1M [01:03<00:09, 740kB/s]
 86%|████████████████████████████████▋     | 43.9M/51.1M [01:03<00:10, 715kB/s]
 86%|████████████████████████████████▋     | 44.0M/51.1M [01:03<00:09, 718kB/s]
 86%|████████████████████████████████▊     | 44.1M/51.1M [01:03<00:10, 694kB/s]
 86%|████████████████████████████████▊     | 44.2M/51.1M [01:03<00:09, 700kB/s]
 87%|████████████████████████████████▉     | 44.2M/51.1M [01:03<00:09, 698kB/s]
 87%|████████████████████████████████▉     | 44.3M/51.1M [01:03<00:09, 728kB/s]
 87%|█████████████████████████████████     | 44.4M/51.1M [01:03<00:09, 719kB/s]
 87%|█████████████████████████████████     | 44.5M/51.1M [01:04<00:09, 733kB/s]
 87%|█████████████████████████████████▏    | 44.6M/51.1M [01:04<00:09, 724kB/s]
 87%|█████████████████████████████████▏    | 44.6M/51.1M [01:04<00:09, 706kB/s]
 88%|█████████████████████████████████▎    | 44.7M/51.1M [01:04<00:09, 698kB/s]
 88%|█████████████████████████████████▎    | 44.8M/51.1M [01:04<00:09, 695kB/s]
 88%|█████████████████████████████████▎    | 44.9M/51.1M [01:04<00:09, 685kB/s]
 88%|█████████████████████████████████▍    | 45.0M/51.1M [01:04<00:09, 654kB/s]
 88%|█████████████████████████████████▍    | 45.0M/51.1M [01:04<00:09, 663kB/s]
 88%|█████████████████████████████████▌    | 45.1M/51.1M [01:04<00:08, 697kB/s]
 88%|█████████████████████████████████▌    | 45.2M/51.1M [01:05<00:08, 689kB/s]
 89%|█████████████████████████████████▋    | 45.3M/51.1M [01:05<00:08, 683kB/s]
 89%|█████████████████████████████████▋    | 45.3M/51.1M [01:05<00:08, 655kB/s]
 89%|█████████████████████████████████▊    | 45.4M/51.1M [01:05<00:08, 668kB/s]
 89%|█████████████████████████████████▊    | 45.5M/51.1M [01:05<00:08, 659kB/s]
 89%|█████████████████████████████████▉    | 45.6M/51.1M [01:05<00:08, 684kB/s]
 89%|█████████████████████████████████▉    | 45.7M/51.1M [01:05<00:07, 706kB/s]
 90%|██████████████████████████████████    | 45.7M/51.1M [01:05<00:07, 731kB/s]
 90%|██████████████████████████████████    | 45.8M/51.1M [01:05<00:07, 740kB/s]
 90%|██████████████████████████████████▏   | 45.9M/51.1M [01:06<00:07, 727kB/s]
 90%|██████████████████████████████████▏   | 46.0M/51.1M [01:06<00:07, 712kB/s]
 90%|██████████████████████████████████▎   | 46.1M/51.1M [01:06<00:07, 693kB/s]
 90%|██████████████████████████████████▎   | 46.2M/51.1M [01:06<00:06, 710kB/s]
 90%|██████████████████████████████████▍   | 46.2M/51.1M [01:06<00:07, 696kB/s]
 91%|██████████████████████████████████▍   | 46.3M/51.1M [01:06<00:06, 689kB/s]
 91%|██████████████████████████████████▍   | 46.4M/51.1M [01:06<00:06, 683kB/s]
 91%|██████████████████████████████████▌   | 46.5M/51.1M [01:06<00:06, 680kB/s]
 91%|██████████████████████████████████▌   | 46.6M/51.1M [01:07<00:06, 687kB/s]
 91%|██████████████████████████████████▋   | 46.6M/51.1M [01:07<00:06, 665kB/s]
 91%|██████████████████████████████████▋   | 46.7M/51.1M [01:07<00:06, 686kB/s]
 92%|██████████████████████████████████▊   | 46.8M/51.1M [01:07<00:06, 689kB/s]
 92%|██████████████████████████████████▊   | 46.9M/51.1M [01:07<00:05, 718kB/s]
 92%|██████████████████████████████████▉   | 47.0M/51.1M [01:07<00:05, 715kB/s]
 92%|██████████████████████████████████▉   | 47.1M/51.1M [01:07<00:05, 719kB/s]
 92%|███████████████████████████████████   | 47.2M/51.1M [01:07<00:05, 760kB/s]
 92%|███████████████████████████████████▏  | 47.3M/51.1M [01:07<00:04, 772kB/s]
 93%|███████████████████████████████████▏  | 47.3M/51.1M [01:08<00:04, 767kB/s]
 93%|███████████████████████████████████▎  | 47.4M/51.1M [01:08<00:04, 759kB/s]
 93%|███████████████████████████████████▎  | 47.5M/51.1M [01:08<00:04, 760kB/s]
 93%|███████████████████████████████████▎  | 47.6M/51.1M [01:08<00:04, 750kB/s]
 93%|███████████████████████████████████▍  | 47.7M/51.1M [01:08<00:04, 692kB/s]
 93%|███████████████████████████████████▍  | 47.7M/51.1M [01:08<00:04, 720kB/s]
 94%|███████████████████████████████████▌  | 47.8M/51.1M [01:08<00:04, 714kB/s]
 94%|███████████████████████████████████▌  | 47.9M/51.1M [01:08<00:04, 712kB/s]
 94%|███████████████████████████████████▋  | 48.0M/51.1M [01:09<00:04, 713kB/s]
 94%|███████████████████████████████████▋  | 48.1M/51.1M [01:09<00:04, 707kB/s]
 94%|███████████████████████████████████▊  | 48.1M/51.1M [01:09<00:04, 708kB/s]
 94%|███████████████████████████████████▊  | 48.2M/51.1M [01:09<00:04, 672kB/s]
 94%|███████████████████████████████████▉  | 48.3M/51.1M [01:09<00:04, 666kB/s]
 95%|███████████████████████████████████▉  | 48.4M/51.1M [01:09<00:04, 680kB/s]
 95%|████████████████████████████████████  | 48.4M/51.1M [01:09<00:03, 679kB/s]
 95%|████████████████████████████████████  | 48.5M/51.1M [01:09<00:03, 692kB/s]
 95%|████████████████████████████████████▏ | 48.6M/51.1M [01:09<00:03, 687kB/s]
 95%|████████████████████████████████████▏ | 48.7M/51.1M [01:10<00:03, 683kB/s]
 95%|████████████████████████████████████▏ | 48.7M/51.1M [01:10<00:03, 681kB/s]
 96%|████████████████████████████████████▎ | 48.8M/51.1M [01:10<00:03, 670kB/s]
 96%|████████████████████████████████████▎ | 48.9M/51.1M [01:10<00:03, 654kB/s]
 96%|████████████████████████████████████▍ | 49.0M/51.1M [01:10<00:03, 660kB/s]
 96%|████████████████████████████████████▍ | 49.1M/51.1M [01:10<00:03, 662kB/s]
 96%|████████████████████████████████████▌ | 49.1M/51.1M [01:10<00:03, 661kB/s]
 96%|████████████████████████████████████▌ | 49.2M/51.1M [01:10<00:02, 666kB/s]
 96%|████████████████████████████████████▋ | 49.3M/51.1M [01:10<00:02, 683kB/s]
 97%|████████████████████████████████████▋ | 49.4M/51.1M [01:11<00:02, 695kB/s]
 97%|████████████████████████████████████▊ | 49.4M/51.1M [01:11<00:02, 699kB/s]
 97%|████████████████████████████████████▊ | 49.5M/51.1M [01:11<00:02, 700kB/s]
 97%|████████████████████████████████████▊ | 49.6M/51.1M [01:11<00:02, 699kB/s]
 97%|████████████████████████████████████▉ | 49.7M/51.1M [01:11<00:02, 640kB/s]
 97%|████████████████████████████████████▉ | 49.7M/51.1M [01:11<00:01, 685kB/s]
 97%|█████████████████████████████████████ | 49.8M/51.1M [01:11<00:01, 685kB/s]
 98%|█████████████████████████████████████ | 49.9M/51.1M [01:11<00:01, 687kB/s]
 98%|█████████████████████████████████████▏| 50.0M/51.1M [01:11<00:01, 681kB/s]
 98%|█████████████████████████████████████▏| 50.1M/51.1M [01:12<00:01, 701kB/s]
 98%|█████████████████████████████████████▎| 50.1M/51.1M [01:12<00:01, 697kB/s]
 98%|█████████████████████████████████████▎| 50.2M/51.1M [01:12<00:01, 700kB/s]
 98%|█████████████████████████████████████▎| 50.3M/51.1M [01:12<00:01, 699kB/s]
 98%|█████████████████████████████████████▍| 50.3M/51.1M [01:12<00:01, 664kB/s]
 99%|█████████████████████████████████████▍| 50.4M/51.1M [01:12<00:01, 643kB/s]
 99%|█████████████████████████████████████▌| 50.5M/51.1M [01:12<00:00, 681kB/s]
 99%|█████████████████████████████████████▌| 50.6M/51.1M [01:12<00:00, 672kB/s]
 99%|█████████████████████████████████████▋| 50.6M/51.1M [01:12<00:00, 678kB/s]
 99%|█████████████████████████████████████▋| 50.7M/51.1M [01:13<00:00, 638kB/s]
 99%|█████████████████████████████████████▊| 50.8M/51.1M [01:13<00:00, 689kB/s]
100%|█████████████████████████████████████▊| 50.9M/51.1M [01:13<00:00, 682kB/s]
100%|█████████████████████████████████████▉| 51.0M/51.1M [01:13<00:00, 653kB/s]
100%|█████████████████████████████████████▉| 51.1M/51.1M [01:13<00:00, 689kB/s]
  0%|                                              | 0.00/51.1M [00:00<?, ?B/s]
100%|██████████████████████████████████████| 51.1M/51.1M [00:00<00:00, 264GB/s]

  0%|                                              | 0.00/3.90k [00:00<?, ?B/s]
  0%|                                              | 0.00/3.90k [00:00<?, ?B/s]
100%|█████████████████████████████████████| 3.90k/3.90k [00:00<00:00, 27.8MB/s]
Download complete in 02m24s (94.8 MB)
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Writing /tmp/tmpgj8_qr20/0/0-raw.fif
Closing /tmp/tmpgj8_qr20/0/0-raw.fif
[done]
Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Writing /tmp/tmpgj8_qr20/1/1-raw.fif
Closing /tmp/tmpgj8_qr20/1/1-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmpgj8_qr20 contains other subdirectories or files ['0'].
  warnings.warn(
Opening raw data file /tmp/tmpgj8_qr20/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmpgj8_qr20/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7e9ed5b70>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Writing /tmp/tmpgj8_qr20/0/0-raw.fif
Closing /tmp/tmpgj8_qr20/0/0-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:777: UserWarning: The number of saved datasets (1) does not match the number of existing subdirectories (2). You may now encounter a mix of differently preprocessed datasets!
  warnings.warn(
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmpgj8_qr20 contains other subdirectories or files ['1'].
  warnings.warn(
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7e9ed5b70>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Writing /tmp/tmpgj8_qr20/1/1-raw.fif
Closing /tmp/tmpgj8_qr20/1/1-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmpgj8_qr20 contains other subdirectories or files ['0'].
  warnings.warn(
Opening raw data file /tmp/tmpgj8_qr20/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmpgj8_qr20/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Opening raw data file /tmp/tmplpunh4hh/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmplpunh4hh/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Opening raw data file /tmp/tmplpunh4hh/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmplpunh4hh/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7e9f3a290>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7e9f3a290>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Writing /tmp/tmp6tjf5rsj/0/0-raw.fif
Closing /tmp/tmp6tjf5rsj/0/0-raw.fif
[done]
Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Writing /tmp/tmp6tjf5rsj/1/1-raw.fif
Closing /tmp/tmp6tjf5rsj/1/1-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmp6tjf5rsj contains other subdirectories or files ['0'].
  warnings.warn(
Opening raw data file /tmp/tmp6tjf5rsj/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmp6tjf5rsj/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7ea908d00>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Writing /tmp/tmp6tjf5rsj/0/0-raw.fif
Closing /tmp/tmp6tjf5rsj/0/0-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:777: UserWarning: The number of saved datasets (1) does not match the number of existing subdirectories (2). You may now encounter a mix of differently preprocessed datasets!
  warnings.warn(
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmp6tjf5rsj contains other subdirectories or files ['1'].
  warnings.warn(
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7ea908d00>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Writing /tmp/tmp6tjf5rsj/1/1-raw.fif
Closing /tmp/tmp6tjf5rsj/1/1-raw.fif
[done]
/home/runner/work/braindecode/braindecode/braindecode/datasets/base.py:788: UserWarning: Chosen directory /tmp/tmp6tjf5rsj contains other subdirectories or files ['0'].
  warnings.warn(
Opening raw data file /tmp/tmp6tjf5rsj/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmp6tjf5rsj/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Opening raw data file /tmp/tmpk4b06ri1/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmpk4b06ri1/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Opening raw data file /tmp/tmpk4b06ri1/0/0-raw.fif...
Isotrak not found
    Range : 2884000 ... 5391000 =  28840.000 ... 53910.000 secs
Ready.
Opening raw data file /tmp/tmpk4b06ri1/1/1-raw.fif...
Isotrak not found
    Range : 1975000 ... 5235000 =  19750.000 ... 52350.000 secs
Ready.
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Reading 0 ... 2507000  =      0.000 ... 25070.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

Reading 0 ... 3260000  =      0.000 ... 32600.000 secs...
Filtering raw data in 1 contiguous segment
Setting up low-pass filter at 30 Hz

FIR filter parameters
---------------------
Designing a one-pass, zero-phase, non-causal lowpass filter:
- Windowed time-domain design (firwin) method
- Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation
- Upper passband edge: 30.00 Hz
- Upper transition bandwidth: 7.50 Hz (-6 dB cutoff frequency: 33.75 Hz)
- Filter length: 45 samples (0.450 s)

/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7ea8d4670>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
/home/runner/work/braindecode/braindecode/braindecode/preprocessing/preprocess.py:244: UserWarning: Applying preprocessors [<braindecode.preprocessing.preprocess.Preprocessor object at 0x7fe7ea8d4670>] to the mne.io.Raw of an EEGWindowsDataset.
  warn(
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4001E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...
Extracting EDF parameters from /home/runner/mne_data/physionet-sleep-data/SC4011E0-PSG.edf...
EDF file detected
Setting channel info structure...
Creating raw.info structure...

Finally, we can plot the results:

df = pd.DataFrame(results)

fig, ax = plt.subplots(figsize=(6, 4))
colors = {True: "tab:orange", False: "tab:blue"}
markers = {n: m for n, m in zip(all_n_jobs, ["o", "x", "."])}
for (save, n_jobs), sub_df in df.groupby(["save", "n_jobs"]):
    ax.scatter(
        x=sub_df["time"],
        y=sub_df["max_mem"],
        color=colors[save],
        marker=markers[n_jobs],
        label=f"save={save}, n_jobs={n_jobs}",
    )
ax.legend()
ax.set_xlabel("Execution time (s)")
ax.set_ylabel("Memory usage (MiB)")
ax.set_title(
    f"Loading and preprocessing {all_n_recs} recordings from Sleep " "Physionet"
)
plt.show()
Loading and preprocessing 2 recordings from Sleep Physionet

We see that parallel preprocessing without serialization (blue crosses) is faster than simple sequential processing (blue circles), however it uses more memory.

Combining parallel preprocessing and serialization (orange crosses) reduces memory usage significantly, however it increases run time by a few seconds. Depending on available resources (e.g. in limited memory settings), it might therefore be more advantageous to use both parallelization and serialization together.

Total running time of the script: (3 minutes 5.804 seconds)

Estimated memory usage: 781 MB

Gallery generated by Sphinx-Gallery